机器学习基本概述

机器学习核心概念与流程解析

机器学习基本概述

机器学习本质与定义

本质:通过大量数据训练,让计算机自动发现数据中的规律,学习到一个函数(模型)

示例

  1. 语音识别:识别一段音频信号对应的文本内容。

  2. 图像识别:输入一张数字图片(如手写的数字"7"的像素矩阵),输出图片中物体的类别(“7”)。

机器学习的分类

分类(classification)

定义:给定一些预定义的类别(class)和待分类的样本,输出样本所属的类别(离散的类别标签,而非连续的数值)。

示例

  1. 垃圾邮件分类(二分类):根据一封邮件的内容,判断邮件类别(是否为垃圾邮件)。

  2. 手写数字识别(多分类):根据一张手写数字的图片,判断数字类别(0, 1, 2, …, 9)。

回归(regression)

定义:函数输出一个连续的数值(标量或向量)。

示例

  1. 空气质量预测:根据今天中午的PM2.5浓度(50 μg/m³)、气温(25°C)、O₃浓度(80 μg/m³),预测明天中午的PM2.5浓度预测值(如45 μg/m³)

  2. 房价预测:根据房屋特征(面积、位置、楼层),预测房屋价格预测值

结构化学习(structured learning)

定义:产生一个结构化的物体,比如画一张图片、写一篇文档。

示例:根据文本描述生成图像,输入一段文字描述,输出对应的图片。

机器学习流程 – 以 youtube 视频的观看量为例

下面以 youtube 视频的观看量预测为研究场景,探究机器学习中的函数(模型)、损失函数的定义,以及问题求解的一般过程。

问题描述:在 youtube 平台中,根据视频的各种特征(标题长度、发布时间、视频时长、前一天的观看量等),预测发布后某一天的观看量预测值。

模型定义与设计

建立数学模型

假设观察到视频观看量的某种规律,比如:前一天观看量高的视频,第二天观看量也可能较高,也就是前一天视频观看量与第二天的视频观看量有一定相关性。

基于此,设计一个简单线性模型:y=b+wx1y = b + wx_1y=b+wx1

上式中,yyy 表示要预测的第二天的视频观看量;x1x_1x1 表示前一天的视频观看量;www权重,表示前一天观看量对第二天观看量的影响程度;bbb偏置,表示基础观看量。其中,权重(weight)www 控制特征对预测结果的影响程度,为正数表示为正相关,反之为负相关,绝对值越大影响越强。

需要注意的是,模型(函数)的设计需要结合领域知识(domain knowledge)。比如:视频观看量通常不会为负数,所以模型应该保证输出为正;观看量可能存在周期性(工作日vs周末)。

损失函数设计

损失函数(loss):关于未知量 wwwbbb 的函数 L(w,b)L(w, b)L(w,b),由一组 wwwbbb 估测的 y^\hat{y}y^ 和真实值 yyy 的差距 eee 累计计算得到损失值。

计算预估值 y^\hat{y}y^ 和真实值 yyy 的差距有如下几种方式:

  • 平均绝对误差(Mean Absolute Error, MAE)e1=∣y−y^∣e_1 = |y-\hat{y}|e1=yy^,适用于回归问题
  • 均方误差(Mean Squared Error, MSE)e2=(y−y^)2e_2 = (y-\hat{y})^2e2=(yy^)2,适用于回归问题,对大误差更敏感
  • 交叉熵损失(Cross Entropy)e3=−∑i=1Cyilog⁡(y^i)e_3 = -\sum_{i=1}^{C} y_i \log(\hat{y}_i)e3=i=1Cyilog(y^i),其中 CCC 是类别数,适用于多分类问题。在多分类中,yiy_iyi 是真实标签(只有一个位置为1,其余为0),y^i\hat{y}_iy^i 是模型预测的第i个类别的概率。求和操作计算所有类别的交叉熵并求和,得到最终的损失值。

累计方式:L=1N∑nenL = \frac{1}{N} \sum_{n} e_nL=N1nen。其中,NNN 表示训练数据的个数,ene_nen 表示第 n 个样本的损失值。

以不同的参数计算损失值,画出的等损失线图称为误差表面(error surface),可以直观看出参数取值与损失值的关系。

上图中,横轴为参数 www 的取值,纵轴为参数 bbb 的取值,横纵轴交叉点为损失值,将相同损失值对应的 (w,b)(w, b)(w,b) 用线连接就得到等损失线。

优化求解

找出一组使得损失最小的 wwwbbb。具体优化的步骤如下:

随机初始化

初始化参数分别为:w0w^0w0b0b^0b0

参数更新

w1=w0−η∂L∂w∣w=w0w^1 = w^0 - \eta \frac{\partial L}{\partial w} |_{w=w^0}w1=w0ηwLw=w0

b1=b0−η∂L∂b∣b=b0b^1 = b^0 - \eta \frac{\partial L}{\partial b} |_{b=b^0}b1=b0ηbLb=b0

上式中,η\etaη 为学习率(learning rate),取正值。如果 η\etaη 越大,那么参数更新量会更大,学习更快,反之则变化小。这一参数需要自己设定,不由机器学习,称为超参数(hyperparameter)。

LLL 关于参数 www 的梯度(∂L∂w\frac{\partial L}{\partial w}wL)指向函数值(损失)增加最快的方向,为了使损失变小,所以增加负号,选择最小化损失的方向

终止条件

  1. 设定最大迭代次数(如1000次)
  2. 梯度接近0(如 ∣∂L∂w∣<0.001|\frac{\partial L}{\partial w}| < 0.001wL<0.001
  3. 损失值不再明显下降
优化过程可视化 – 以单参数模型为例

下面以一个参数 www 来讨论优化过程。

首先,初始化参数 w=w0w=w^0w=w0,然后更新 w1=w0−η∂L∂w∣w=w0w^1 = w^0-\eta \frac{\partial L}{\partial w} |_{w=w^0}w1=w0ηwLw=w0,其中 ∂L∂w∣w=w0\frac{\partial L}{\partial w} |_{w=w^0}wLw=w0 在几何上可以理解为损失 LLLw0w^0w0 处的斜率,如果这一数值为负,那么增大 www 就可以实现减小损失,如果这一数值为正,那么减小 www 就能减小损失。

上图损失函数有一段为负值。一般来说,损失是估计值和真实值的绝对值差距,不可能为负数,如果人工定义时为绝对值减去某个数值,那么就可能为负数。

基于梯度下降的优化方法,可能会遇到局部最小值(local minima)问题,也就是陷入一个局部最优中,无法找到全局最小值(global minima),但是在做梯度下降时,真正面对的问题不是局部最小值(待完善)。

优化过程可视化 – 在二维坐标系中的理解

想象一个二维坐标系,横轴是参数 w,纵轴是参数 b。对于每一对 (w, b),都可以计算出一个损失值 L。我们可以把损失值 L 想象成这个二维平面上的“海拔高度”。这样就形成了一个三维的“山谷”地形,也就是上文中提到的误差表面(error surface)。我们的目标是走到“山谷”的最低点。

梯度下降的过程如下:

  1. 随机选点:我们随机选择一个出发点 (w0,b0)(w^0, b^0)(w0,b0)
  2. 计算梯度:在 (w0,b0)(w^0, b^0)(w0,b0) 这个点,我们计算出梯度 (∂L∂w,∂L∂b)(\frac{∂L}{∂w}, \frac{∂L}{∂b})(wL,bL)。这个梯度向量指向该点最陡峭的上坡方向。
  3. 反向移动:我们将当前位置 (w0,b0)(w^0, b^0)(w0,b0) 沿着梯度的相反方向移动一小步(步长由 η 控制),到达新的点 (w1,b1)(w^1, b^1)(w1,b1)
    • w1=w0−η∗(∂L∂w)w^1 = w^0 - η * (\frac{∂L}{∂w})w1=w0η(wL)
    • b1=b0−η∗(∂L∂b)b^1 = b^0 - η * (\frac{∂L}{∂b})b1=b0η(bL)
  4. 重复:在新的点 (w1,b1)(w^1, b^1)(w1,b1) 重复第 2 和第 3 步,一步步地走向“山谷”的更深处,直到我们到达一个局部或全局的最低点(此时梯度接近于零,参数不再更新)。

参考资料:

  1. 深度学习 李宏毅
  2. 《深度学习详解》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值