下篇: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