当前位置: 首页 > article >正文

1-机器学习的基本概念

文章目录

  • 一、机器学习的步骤
    • Step1 - Function with unknown
    • Step2 - Define Loss from Training Data
    • Step3 - Optimization
  • 二、机器学习的改进
    • Q1 - 线性模型有一些缺点
    • Q2 - 重新诠释机器学习的三步
    • Q3 - 机器学习的扩展
    • Q4 - 过拟合问题(Overfitting)

一、机器学习的步骤


如图所示,机器学习分为以下三步:
在这里插入图片描述
下文按照这个步骤来进行整理


Step1 - Function with unknown

  1. 机器学习就是 “自动找到一个非常复杂的函数" ,其输入是原始的数据(声音信号、图片、棋盘状态等),通过这个函数,得到一个较好的答案(语音对应的文字、图片展示的对象、棋子下一步走法等),如图:
    在这里插入图片描述

  1. 为了实现不同的目标,我们可以用机器学习去找不同的函数,这些任务有如下的分类:
    (1)Regression:the function output a scalar;找一个数,如预测明天的气温、PM2.5浓度;
    (2)Classification: Given options(classes),the function output the correct one;给出一个正确的选项;
    (3)Structured Learning:让机器产生有结构性的信息(文章、图片等);

  1. x`Model:带有未知参数的函数,也就是我们机器学习的目标——建立一个model解决问题。在Model中我们有一些概念:
    (1)feature:来源于数据,是已知的参数。
    (2)weight:与feature相乘,代表feature的重要程度。
    (3)bias:预测值和真实值的偏差。

在这里插入图片描述
我们用以上式子来解释:将浏览信息输入,预测未来浏览量。
其中 y 就是我们预测的浏览量, x 1 x_1 x1是我们之前的浏览量,w是weight,b是bias。


Step2 - Define Loss from Training Data

  1. Loss也是一个函数,其输入是之前提到的weigth和bias,它的输出用来衡量这两个数值设置的好不好。
  2. 可以通过比对估测的值和真实的值之间的差距,使用 e = ∣ y − y ^ ∣ e = |y - \hat{y}| e=yy^ (MAE) 或 e = y − y ^ ) 2 e = y - \hat{y})^2 e=yy^)2 (MSE) 来衡量,其中真实的值叫做Label
  3. 可以用如下的图表衡量Loss与bias和weight的关系: 在这里插入图片描述

Step3 - Optimization

  1. 优化的目标就是找到一个让Loss - e e e 更小的函数,我们将优化方法——梯度下降(Gradient Descent)也分为如下三步:
    (1)(Randomly)Pick an initial value w 0 w^0 w0
    (2) 取微分(bias同理):
    ∂ L ∂ W ∣ w = w 0 \frac{\partial L} {\partial W} \Bigg|_{w = w^0} WL w=w0
    (3) update w w w iteratively:通过刚刚的微分,乘上学习率 η \eta η 来更新 w w w 的值,如下:
    w 1 = w 0 − η ∂ L ∂ W ∣ w = w 0 w^1 = w^0 - \eta \frac{\partial L} {\partial W} \Bigg|_{w = w^0} w1=w0ηWL w=w0
    注:机器学习中需要自己设置的参数(如学习率 η \eta η),叫做hyperparameters。

  1. 我们在 w w w 到达满意的值或者失去耐心(到达设置的移动次数)后,取定最终的值。其中我们发现,如果学习率 η \eta η 设置的较小,我们可能陷入 Local Minima 中,而找不到最优的 Global Minima。 在这里插入图片描述
    其实它不是机器学习中的难题,后续继续进行介绍。

二、机器学习的改进

Q1 - 线性模型有一些缺点

  1. 线性模型(Linear model)太过于简单,对真实情况可能做不到很好的预测:
    在这里插入图片描述

  1. 我们可以使用常数 + 多个函数来构建最终的模型:
    在这里插入图片描述
    转折点越多,需要的蓝色function越多。如果有足够多的function组合在一起,也许我们就能得到足够好的模拟效果。

  1. 引入一个新的概念:激活函数(sigmoid function),其定义如下:
    y = c 1 1 + e − ( b + w x 1 ) = c s i g m o i d ( b + w x 1 ) y = c \ \frac{1}{1 + e^{-(b + wx_1)}} = c \ sigmoid(b+wx_1) y=c 1+e(b+wx1)1=c sigmoid(b+wx1)
    改变不同的参数有如下效果:
    在这里插入图片描述
    新的Model——拥有更多Feature:
    y = b + ∑ i c i s i g m o i d ( b i + w i x 1 ) y = b + \sum_i{c_i}\ sigmoid(b_i + w_ix_1) y=b+ici sigmoid(bi+wix1)

  1. 更加复杂的model:

在这里插入图片描述
以上是三个sigmoid函数中的元素,我们还可以用线代知识对式子进行简化:
在这里插入图片描述
我们构建Model的流程就如下图所示:
在这里插入图片描述


Q2 - 重新诠释机器学习的三步

  1. function with unknown:
    现在我们定义的含有未知数的函数就变成了上图中的函数: y = b + c T σ ( b + W x ) y = b + c^T \sigma(b + Wx) y=b+cTσ(b+Wx)
    其中 σ \sigma σ 是激活函数 s i g m o i d sigmoid sigmoid,注意其中的两个常数 b b b 是不同的值。

  2. Define Loss from Training Data
    Loss的定义没有不同,依旧是 L = 1 N ∑ e n L = \frac{1}{N} \sum{e_n} L=N1en

  3. Optimization of New Model
    在新模型中,feature包含 W 、 b 、 C T W 、b、 C^T WbCT 等,我们将其全部放入一个新的矩阵 θ \theta θ 中, θ = [ θ 1 θ 2 θ 3 ] \theta = \begin{bmatrix} \theta1 \\ \theta2 \\ \theta3 \\ \end{bmatrix} θ= θ1θ2θ3
    即将feature的元素依次放入 θ \theta θ
    现在我们引入一个新的向量 gradient(梯度)来表示优化效果:
    g = [ ∂ L ∂ θ 1 ∣ θ = θ 0 ∂ L ∂ θ 2 ∣ θ = θ 0 . . . ] g = ∇ L ( θ 0 ) g = \begin{bmatrix} \frac{\partial L}{\partial \theta_1} |_{\theta = \theta_0} \\ \\ \frac{\partial L}{\partial \theta_2} |_{\theta = \theta_0} \\ ... \end{bmatrix} \; g = \nabla L(\boldsymbol{\theta}^0) g= θ1Lθ=θ0θ2Lθ=θ0... g=L(θ0)
    逐步更新参数,取得更好的结果 θ ∗ = a r g m i n L \theta^* = arg\ min_{}L θ=arg minL


Q3 - 机器学习的扩展

在实际的机器学习中,我们会将完整的数据集分为不同的batch分别进行训练,每训练完一个batch,就更新一次模型参数(即进行一次梯度下降)。

优点:
(1) 节省内存:如果你一次用整个数据集训练(叫做 full-batch),对大数据来说会爆内存。
(2) 更快训练:batch 可以并行计算,训练过程更高效。
(3) 提高泛化性:每次用不同的 batch 做梯度估计,有“抖动”,反而能避免陷入局部最优。
在这里插入图片描述


此外,激活函数还不仅仅局限于sigmoid,还有ReLU:
在这里插入图片描述
定义:
在这里插入图片描述


Q4 - 过拟合问题(Overfitting)

再训练资料上模型表现的较好,但是在新资料上表现差的问题,我们称之为过拟合(Overfitting)
在这里插入图片描述
我们应该选择在未训练数据上表现更好的。

相关文章:

1-机器学习的基本概念

文章目录 一、机器学习的步骤Step1 - Function with unknownStep2 - Define Loss from Training DataStep3 - Optimization 二、机器学习的改进Q1 - 线性模型有一些缺点Q2 - 重新诠释机器学习的三步Q3 - 机器学习的扩展Q4 - 过拟合问题(Overfitting) 一、…...

Hass-Panel - 开源智能家居控制面板

文章目录 ▎项目介绍:预览图▎主要特性安装部署Docker方式 正式版Home Assistant Addon方式详细安装方式1. Home Assistant 插件安装(推荐)2. Docker 安装命令功能说明 :3. Docker Compose 安装升级说明Docker Compose 版本升级 功…...

Ubuntu搭建NFS服务器的方法

0 工具 Ubuntu 18.041 Ubuntu搭建NFS服务器的方法 在Ubuntu下搭建NFS(网络文件系统)服务器可以让我们像访问本地文件一样访问Ubuntu上的文件,例如可以把开发板的根文件系统放到NFS服务器目录下方便调试。 1.1 安装nfs-kernel-server&#…...

网感驱动下开源AI大模型AI智能名片S2B2C商城小程序源码的实践路径研究

摘要:在数字化浪潮中,网感已成为内容创作者与商业运营者必备的核心能力。本文以开源AI大模型、AI智能名片及S2B2C商城小程序源码为技术载体,通过解析网感培养与用户需求洞察的内在关联,提出"数据驱动-场景适配-价值重构"…...

COMPUTEX 2025 | 广和通5G AI MiFi解决方案助力移动宽带终端迈向AI新未来

随着5G与AI不断融合,稳定高速、智能的移动网络已成为商务、旅行、户外作业等场景的刚需。广和通5G AI MiFi方案凭借领先技术与创新设计,重新定义5G移动网络体验。 广和通5G AI MiFi 方案搭载高通 4nm制程QCM4490平台,融合手机级超低功耗技术…...

防范Java应用中的恶意文件上传:确保服务器的安全性

防范Java应用中的恶意文件上传:确保服务器的安全性 在当今数字化时代,Java 应用无处不在,而文件上传功能作为许多应用的核心组件,却潜藏着巨大的安全隐患。恶意文件上传可能导致服务器被入侵、数据泄露甚至服务瘫痪,因…...

STM32H7时钟树

时钟树分析 STM32H7共有6个外部时钟源,分别是: HSI(高速内部振荡器)时钟:~ 8 MHz、16 MHz、32 MHz 或 64 MHzHSE(高速外部振荡器)时钟:4 MHz 到 48 MHzLSE(低速外部振荡器&#xff…...

git 的 .gitignore 规则文件

# .gitignore 使用注意事项: # 1. 所有的注释只能是独占单行注释,不能在有效代码后注释!否者不生效!比如错误示范: # 实例: MDK/ #忽略MDK目录下所有内容 (跟在有效代码后注释,非法&#xff…...

【通用智能体】Serper API 详解:搜索引擎数据获取的核心工具

Serper API 详解:搜索引擎数据获取的核心工具 一、Serper API 的定义与核心功能二、技术架构与核心优势2.1 技术实现原理2.2 对比传统方案的突破性优势 三、典型应用场景与代码示例3.1 SEO 监控系统3.2 竞品广告分析 四、使用成本与配额策略五、开发者注意事项六、替…...

asp.net web form nlog的安装

一、安装NuGet包 ‌核心包安装‌ NLog提供日志记录核心功能 NLog.Config自动生成默认配置文件模板 配置NLog文件 ‌配置文件创建‌ 项目根目录自动生成NLog.config文件&#xff08;通过NuGet安装NLog.Config时创建&#xff09; <?xml version"1.0" encoding&…...

【图像生成大模型】CogVideoX-5b:开启文本到视频生成的新纪元

CogVideoX-5b&#xff1a;开启文本到视频生成的新纪元 项目背景与目标模型架构与技术亮点项目运行方式与执行步骤环境准备模型加载与推理量化推理 执行报错与问题解决内存不足模型加载失败生成质量不佳 相关论文信息总结 在人工智能领域&#xff0c;文本到视频生成技术一直是研…...

剧本杀小程序:指尖上的沉浸式推理宇宙

在推理热潮席卷社交圈的当下&#xff0c;你是否渴望随时随地开启一场烧脑又刺激的冒险&#xff1f;我们的剧本杀小程序&#xff0c;就是你掌心的“推理魔法盒”&#xff0c;一键解锁无限精彩&#xff01; 海量剧本库&#xff0c;满足多元口味&#xff1a;小程序汇聚了从古风权…...

2024正式版企业级在线客服系统源码+语音定位+快捷回复+图片视频传输+安装教程

2024正式版企业级在线客服系统源码语音定位快捷回复图片视频传输安装教程&#xff1b; 企业客服系统是一款全功能的客户服务解决方案&#xff0c;提供多渠道支持&#xff08;如在线聊天、邮件、电话等&#xff09;&#xff0c;帮助企业建立与客户的实时互动。该系统具有智能分…...

深入解析 Oracle session_cached_cursors 参数及性能对比实验

在 Oracle 数据库管理中&#xff0c;session_cached_cursors参数扮演着至关重要的角色&#xff0c;它直接影响着数据库的性能和资源利用效率。本文将深入剖析该参数的原理、作用&#xff0c;并通过性能对比实验&#xff0c;直观展示不同参数设置下数据库的性能表现。 一、sessi…...

【RabbitMQ】整合 SpringBoot,实现工作队列、发布/订阅、路由和通配符模式

文章目录 工作队列模式引入依赖配置声明生产者代码消费者代码 发布/订阅模式引入依赖声明生产者代码发送消息 消费者代码运行程序 路由模式声明生产者代码消费者代码运行程序 通配符模式声明生产者代码消费者代码运行程序 工作队列模式 引入依赖 我们在创建 SpringBoot 项目的…...

k8s面试题-ingress

场景&#xff1a;我通过deployment更新pod&#xff0c;ingress是怎么把新的请求流量发送到我新的pod的&#xff1f;是怎么监控到我更新的pod的&#xff1f; 在 Kubernetes 中&#xff0c;Ingress 是一种 API 对象&#xff0c;用于管理外部访问到集群内服务的 HTTP 和 HTTPS 路…...

Node.js Express 项目现代化打包部署全指南

Node.js Express 项目现代化打包部署全指南 一、项目准备阶段 1.1 依赖管理优化 # 生产依赖安装&#xff08;示例&#xff09; npm install express mongoose dotenv compression helmet# 开发依赖安装 npm install nodemon eslint types/node --save-dev1.2 环境变量配置 /…...

分布式电源的配电网无功优化

分布式电源(Distributed Generation, DG)的大规模接入配电网,改变了传统单向潮流模式,导致电压波动、功率因数降低、网损增加等问题,无功优化成为保障配电网安全、经济、高效运行的关键技术。 1. 核心目标 电压稳定性:抑制DG并网点(PCC)及敏感节点的电压越限(如超过5%…...

【WebRTC】源码更改麦克风权限

WebRTC源码更改麦克风权限 仓库: https://webrtc.googlesource.com/src.git分支: guyl/m125节点: b09c2f83f85ec70614503d16e4c530484eb0ee4f...

upload-labs通关笔记-第15关 文件上传之getimagesize绕过(图片马)

目录 一、图片马 二、文件包含 三、文件包含与图片马 四、图片马制作方法 五、源码分析 六、制作图片马 1、创建脚本并命名为test.php 2、准备制作图片马的三类图片 3、 使用copy命令制作图片马 七、渗透实战 1、GIF图片马渗透 &#xff08;1&#xff09;上传gif图…...

idea无法识别Maven项目

把.mvn相关都删除了 导致Idea无法识别maven项目 或者 添加导入各个模块 最后把父模块也要导入...

前端三剑客之HTML

前端HTML 一、HTML简介 1.什么是html HTML的全称为超文本标记语言(HTML How To Make Love HyperText Markup Language )&#xff0c;是一种标记语言。它包括一系列标签&#xff0c;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整…...

linux中cpu内存浮动占用,C++文件占用cpu内存、定时任务不运行报错(root) PAM ERROR (Permission denied)

文章目录 说明部署文件准备脚本准备部署g++和编译脚本使用说明和测试脚本批量部署脚本说明执行测试定时任务不运行报错(root) PAM ERROR (Permission denied)报错说明处理方案说明 我前面已经弄了几个版本的cpu和内存占用脚本了,但因为都是固定值,所以现在重新弄个用C++编写的…...

RabbitMQ的核心原理及应用

在分布式系统架构中&#xff0c;消息中间件是实现服务解耦、流量缓冲的关键组件。RabbitMQ 作为基于 AMQP 协议的开源消息代理&#xff0c;凭借高可靠性、灵活路由和跨平台特性&#xff0c;被广泛应用于企业级开发和微服务架构中。本文将系统梳理 RabbitMQ 的核心知识&#xff…...

实时监控服务器CPU、内存和磁盘使用率

实时监控服务器CPU、内存和磁盘使用率 监控内存使用率&#xff1a; free -g | awk NR2{printf "%.2f%%\t\t", $3*100/$2 }awk NR2{...} 取第二行&#xff08;Mem 行&#xff09;。 $3 为已用内存&#xff0c;$2 为总内存&#xff0c;$3*100/$2 即计算使用率。监控磁…...

linux国产机安装GCC

目录 1.包管理器安装 2.源码编译安装 linux安装GCC有两种方式&#xff0c;方法一&#xff0c;使用包管理器安装&#xff1b;方法二&#xff0c;源码安装。 1.包管理器安装 Ubuntu 基于 Debian 发行版&#xff0c;使用apt - get进行软件包管理&#xff1b;CentOS 基于 …...

python训练营打卡第30天

模块和库的导入 知识点回顾&#xff1a; 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 一、导入官方库 1.标准导入&#xff1a;导入整个库 import mathprint(&quo…...

时间序列预测实战:用 LSTM 预测股票价格

📈 时间序列预测实战:用 LSTM 预测股票价格(PyTorch 实现) 时间序列预测是深度学习在金融领域最常见的应用之一。本文将带你使用 PyTorch 搭建一个基于 LSTM 的模型,对股票收盘价进行预测,完整掌握从数据预处理到预测结果可视化的全流程。 🎯 一、项目目标 任务:基于…...

STM32 | FreeRTOS 消息队列

01 一、概述 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、中断和任务间传递信息&#xff0c;实现了任务接收来自其他任务或中断的不固定长度的消息&#xff0c;任务能够从队列里面读取消息&#xff0c;当队列中的消…...

便捷的Office批量转PDF工具

软件介绍 本文介绍的软件是一款能实现Office批量转换的工具&#xff0c;名为五五Excel word批量转PDF。 软件小巧 这款五五Excel word批量转PDF软件大小不到2M。 操作步骤一 使用该软件时&#xff0c;只需把软件和需要转换的Word或Excel文件放在同一个文件夹里。 操作步骤…...