机器学习基础01

0 阅读2分钟

线性模型

课程:李宏毅2022深度学习 www.bilibili.com/video/BV1Wv…

egression

定义函数 y=wx+b, 定义损失函数MAE mean absolute error完全绝对值 \MSE mean square error

MAE  ∣y−y′∣

MSE (y−y′)2

Gradient descent 梯度下降方法找到loss最小的w、b,存在局部最小和全局最小的问题,梯度下降与步长step和学习速度有关(自定义)

偏微分分别对w、b进行梯度下降找到对应的w0b0

曲线= 常量+一系列折线相加

用sigmoid函数逼近 折线, w表示斜率,b表示左右平移量,c表示高度

y=csigmoid(b+wx1)

ReLU: cmax(0,b+wx1) 2倍斜率的sigmoid函数

hard sigmoid →  max(0,min(1,0.5∗x+0.5))

思考点:

1、权重到底怎么更新的

w=w0​−η∂w∂L​∣w0​

偏微分控制梯度方向,学习率 η控制步幅,实际步长 η⋅∂w∂Loss​不固定。为什么不直接用偏微分--因为偏微分数值范围不可控。优化方向有2块,学习率是否固定--余弦退火、Adam优化器,权重更新公式---解决过拟合的问题

L2正则化--权重衰减,

w新​=w旧​⋅(1−ηλ)−η⋅∂w∂Loss原始​​

2、权重更新为什么是BP反向传播

链式法则

神经网络是一层层套起来的:Loss=MSE(Layer2(Layer1(x)))。

求偏微分的工具是链式法则:

如果 z=f(y),y=g(x),要求 ∂x∂z​:

公式:∂x∂z​=∂y∂z​⋅∂x∂y​这就是 loss.backward() 在后台默默做的事情:从最后的结果往回推,把每一层的局部梯度乘起来,最终算出 Loss 对第一层权重的偏微分。

3、多层ReLU的意义

从数学上看,多层 ReLU(或其变体)堆叠起来,是在用大量的分段线性边界去逼近任意复杂的非线性函数。

一层 ReLU:只能把空间切一刀,分成“亮”和“暗”两个区域。

多层 ReLU:每一层都在上一层切分的基础上继续切分。层数越深,能切出的碎片越多,能拟合的函数形状就越复杂。

所以,多层 ReLU 的意义在于提高模型的非线性表达能力(容量) ,而不是把激活值简单相加。

对比 Sigmoid 来加深理解

Sigmoid 网络:像是在用橡皮泥捏形状。每一层都在把上一层的形状揉搓、拉伸、挤压,但边界始终是软绵绵、圆润的

ReLU 网络:像是在用剪刀和硬纸板拼形状。每一层都在剪切和拼接,边界是尖锐的、硬朗的

正因为 ReLU 这种“硬切分”的特性,它不会去“逼近”上一层的软曲线,而是直接构造新的硬边界。

参考书:李宏毅苹果书 u.jd.com/ta2MD1R