-
Datawhale 李宏毅苹果书 AI夏令营 笔记1
-
机器学习的三类任务
-
回归
-
要找的函数的输出是一个数值或标量,则称为回归
-
-
分类
-
让机器做选择题,先准备一些选项,这些选项称为类别,机器要找的函数会从设定好的选项里面选一个一个当做输出,则称为分类
-
-
结构化学习
-
机器不仅要做选择题或输出一个数字,还要产生一个有结果的结果,比如一张图、一篇文章等,则称为结构化学习
-
-
-
机器学习的过程
-
步骤1
-
写出一个带未知数的函数f,例如写成y=b+wx
-
-
步骤2
-
定义损失函数,记为L(b,w)
-
损失函数的评估方式
-
平均绝对误差 e=|y`-y|
-
均方误差e=(y`-y)^2
-
交叉熵(y和y`为概率分布)
-
-
-
步骤3
-
求损失函数最优解
-
梯度下降优化法,L(b,w)对b,w求微分,通过学习率更新b,w。学习率n是一个超参数。
-
斜率为负,参数右移;斜率为正,参数左移
-
存在局部最优解和全局最优解,由于初始参数随机,因此无法保证能求解到全局最优解
-
两个参数求解时,更新方向为一个向量
-
-
-
-
线性模型
-
通常,一个模型的修改方向,往往来自我们队这个问题的理解,即领域知识。
-
线性模型
-
把输入特征x(可为多个)乘上一个权重w,再加上一个偏置,得到预测的结果,这种模型称为线性模型
-
-
分段线性曲线
-
函数由多个不同斜率的线段组成,可由一个常数和多条不同斜坡的hard sigmoid函数叠加而成
-
可用分段线性曲线来逼近任何连续曲线,只要有足够的sigmoid函数
-
sigmoid函数表达式y=c / (1 + e^-(b+wx)),其中输入为x,输出为y,c为常数。当x趋于正无穷时,y收敛于c。当x趋于负无穷时,y收敛于0.
-
调整式中的b,w,c,可以构造不同形状的sigmoid函数。调整w,会改变斜坡的坡度。调整b,可以左右移动sigmoid函数曲线。调整c,可以改变曲线的高度。
-
叠加拥有不同w、不同b、不同c的sigmoid函数,就可以逼近各种不同分段线性函数y=b+∑c / (1 + e^-(b+wx))
-
sigmoid函数的个数是一个超参数,个数越多,可以产生更复杂的分段线性函数
-
课外知识
-
Sigmoid函数:Sigmoid函数是一种S型函数,其数学表达式通常为σ(x) = 1 / (1 + e^(-x))。这个函数通过指数运算将任意实值映射到(0, 1)区间内,输出值可以解释为概率或激活度。
-
Hard Sigmoid函数:Hard Sigmoid是Sigmoid函数的一种变体,它通过线性近似和阈值操作来简化计算。常见的Hard Sigmoid函数形式为hard_sigmoid(x) = max(0, min(1, (x + 3) / 6)),也有定义为hard_sigmoid(x) = max(0, min(1, (x * 0.2 + 0.5))),或者更简单地,它在-2.5和2.5之间进行线性变换,并在这两个临界点之外分别返回0和1。由于不涉及复杂的指数运算,Hard Sigmoid的计算速度更快。
-
-
-
梯度下降
-
将N笔数据速记分成一个个批量(batch),每个批量里面有B笔数据,拿一个批量计算得到L1,假设B够大,则L1和L会很接近。用第一个批量计算得到L1,根据L1计算的梯度更新参数,再用第二个批量计算出L2,再计算L2的梯度并更新参数,以此类推,把所有批量都计算过一遍,称为一个回合(epoch),一个回合包含多次更新参数(N/B次)
-
-
模型变形
-
使用两个relu(线性修正单元)函数合成一个hard sigmiod函数。
-
在机器学习里面,sigmoid函数或ReLU称为激活函数。有其他激活函数,但这两个效果最好。
-
网络层数是一个超参数
-
sigmoid函数或ReLU称为神经元,神经网络由神经元组成。神经网络中每一列神经元称为神经网络的一层,又称为隐藏层,隐藏层多的神经网络就深,称为深度神经网络。深度神经网络的训练会用到反向传播(BP),这是一种比较有效率的梯度计算方法。
-
过拟合:模型在训练数据和测试数据上的结果不一致,这种情况称为过拟合。
-
-
机器学习框架
-
数据
-
训练数据{(x1,y1),(x2,y2)...(xn,yn)}
-
测试数据{xn+1,xn+2,...xn+m)}
-
-
训练过程
-
写一个模型函数f,包含Θ个未知参数
-
定义损失函数L(Θ)
-
寻找一个Θ`使得损失最小
-
-
评估性能
-
在f中代入Θ`,使用测试数据评估性能
-
-
-
-
Datawhale 李宏毅苹果书 AI夏令营 笔记1
最新推荐文章于 2024-09-01 21:08:00 发布