下篇:02 机器学习任务攻略-学习笔记-李宏毅深度学习2021年度
前言
为了巩固深度学习知识,学习和复习了2021年度的李宏毅老师的深度学习课程
在之后的笔记中,我会将字体分为红色,黄色,和绿色,分别表示重点,次重点和了解
本节内容及相关链接
机器学习与深度学习介绍
课程笔记
机器学习 ≈ 找出一个函数 使其可以解决能够解决我们的问题
机器学习经历三个步骤:
- 定义包含未知参数的函数
- 定义损失函数
- 定义优化方法
模型太简单,导致具有局限线性,称为Model Bias
为什么需要非线性激活函数?简单理解为:因为所有的分段函数都可以由常量加一组非线性函数组成,详情请参考链接
Sigmoid函数及其变化:
y
=
c
1
1
+
e
(
−
b
+
w
x
1
)
y = c \frac{1}{1+e^{(-b+wx_1)}}
y=c1+e(−b+wx1)1
变化如下图,可以通过链接感受一下
神经网络对应公式为:
y
=
b
+
c
T
σ
(
b
+
W
x
)
y = b + c^T\sigma(b+Wx)
y=b+cTσ(b+Wx)
其中:
b
+
W
x
b+Wx
b+Wx 如下图:
使用图表示为:
损失函数(Loss)描述了当前的模型有多好,或多不好。损失函数值越大,模型越差
损失函数符号为: L ( θ ) L(\theta) L(θ),其中 θ \theta θ 为模型要学习的参数
优化目标:使损失函数最小,即 θ ∗ = arg min θ L \boldsymbol{\theta}^{*}=\arg \min _{\boldsymbol{\theta}} L θ∗=argθminL
优化步骤:
1. 随机初始化参数
θ
0
\theta^0
θ0
2. 求gradient,
g
=
∇
L
(
θ
0
)
\boldsymbol{g}=\nabla L\left(\boldsymbol{\theta}^{0}\right)
g=∇L(θ0),详细公式为:
g
=
[
∂
L
∂
θ
1
∣
θ
=
θ
0
∂
L
∂
θ
2
∣
θ
=
θ
0
⋮
]
\boldsymbol{g}=\left[\begin{array}{c} \left.\frac{\partial L}{\partial \theta_{1}}\right|_{\boldsymbol{\theta}=\boldsymbol{\theta}^{0}} \\ \left.\frac{\partial L}{\partial \theta_{2}}\right|_{\boldsymbol{\theta}=\boldsymbol{\theta}^{0}} \\ \vdots \end{array}\right]
g=⎣⎢⎢⎢⎡∂θ1∂L∣∣∣θ=θ0∂θ2∂L∣∣∣θ=θ0⋮⎦⎥⎥⎥⎤
3. 更新参数
θ
\theta
θ,
θ
1
←
θ
0
−
η
g
\boldsymbol{\theta}^{1} \leftarrow \boldsymbol{\theta}^{0}-\eta \boldsymbol{g}
θ1←θ0−ηg
4. 重复2,3步骤,直到“你满意为止”
θ i \theta^i θi 的上角标 i i i 表示当前的更新次数
通常会将数据集分成多组,每一组称为一个batch,计算损失函数也是以batch为单位。
Batch中的数据量称为Batch Size
当所有的数据都被看过一遍,称为一个epoch
两个ReLU可以大致拼成一个Sigmoid,所以如果激活函数是ReLU的话,相比Sigmoid,可能需要2倍的神经元
参考资料
2021年度的李宏毅老师的深度学习课程:https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php