目录
1、什么是机器学习?
机器学习就是让机器具有寻找一个函数的能力
2、任务类别?
输入可以为vector向量、Matrix矩阵、Sequence序列
Regression:输出一个scalar(数值)
Classification:给出classes,输出一个选项
Structured Learning:输出一些结构化的东西(图像、文件等)
3、机器如何形成函数?
第一步:选择带有未知参数的Model
其中未知参数包括bias(偏差)、weight(权重)等
第二步:定义loss
- 计算label()与预估值()之间的差异e
- 构建Error Surface(维数取决于Model中未知参数数量)
误差loss表示?
均值绝对误差MAE =
均值方差MSE =
第三步:优化未知参数
使用梯度下降法让w,b逼近loss的局部极小值
- 随机初始化w0
- 更新w,步伐大小为 (为超参数learning rate)
即下一步为
注:
1. 梯度是一个向量,它指向损失函数增加最快的方向。我们希望最小化损失函数,因此需要沿着损失函数的梯度下降方向,也就是梯度的反方向更新权重,从而最小化损失函数
2. 学习率 η控制每次更新的步长。如果学习率过大,可能会导致更新步幅过大,错过最小值;如果学习率过小,收敛速度会变慢。因此,通过合适的学习率和沿梯度的反方向更新,模型能够有效地收敛到最小值。
- 反复操作,直到达到更新次数阈值或在该参数点梯度为0
4.减小Model 拟合误差?使用激活函数改写Model
激活函数使神经网络能够学习和表示复杂的非线性关系。如果没有激活函数,神经网络只能执行线性变换,无论网络有多少层,其输出仍然是输入的线性组合。通过引入非线性,网络能够更好地拟合数据的复杂分布,从而减少过度简单的线性模型可能带来的误差。
1.sigmoid函数
Sigmoid 函数是一种类型为曲线函数的数学函数,通常用于将输入值映射到 0 和 1 之间的输出值。Sigmoid 函数的数学形式为:
Sigmoid 函数的输出范围是 (0, 1)
通常Sigmoid函数是逼近硬Sigmoid函数,分段线性函数由 常数constant与一组硬Sigmoid函数组成。
利用多条分段线性函数可以逼近任何曲线
2.Rectified Linear Unit(ReLU)
两个ReLU函数可以表示一个Sigmoid函数
5.数据集分割?
dataset可以分成多个batch,batch size为一个batch中的data数量
根据每个batch可算出对应loss,使用梯度下降法更新参数为一次update
所有batch都被update过称为一个Epoch
6.训练集、验证集、测试集
关系:training过程中使用训练集去优化模型,验证集来检验模型的有效性,经过反复迭代,最终根据测试集来预测结果
形式:通常训练集与验证集是由dataset划分而来
附:一些概念
local minima局部最小值和global minima全局最小值
过拟合:是指模型只过分地匹配特定数据集,以至于对其他数据无良好地拟合及预测。其本质是模型从训练数据中学习到了统计噪声。
超参数:控制参数的参数,包括学习率lr,sidmoid函数数量,batchsize,神经网络层数layer等