前言
《苹果书》第一章的内容包括
机器学习基础 -> 线性模型 -> 分段线性模型 -> 引入深度学习
这一篇章我们继续后续内容 ~
其中涉及到“激活函数”的作用理解:
除了 开源项目 - 跟李宏毅学深度学习(入门) 之外,
还有 @3Blue1Brown 的神经网络 和 @StatQuest 的深度学习 视频内容辅助。
🍎 🍎
系列文章导航
【深度学习详解】Task1 机器学习基础-线性模型 Datawhale X 李宏毅苹果书 AI夏令营
【深度学习详解】Task2 分段线性模型-引入深度学习 Datawhale X 李宏毅苹果书 AI夏令营
【深度学习详解】Task3 实践方法论-分类任务实践 Datawhale X 李宏毅苹果书 AI夏令营本篇目录导航
分段线性模型 - 机器学习的三个步骤
Step 1:写出目标函数
激活函数
鼠标右键 -> 在新标签页中打开图像
模型计算过程
鼠标右键 -> 在新标签页中打开图像
选用 Sigmoid 激活函数 逼近 Hard Sigmoid
只是考虑一个训练数据
- i "分段线性模型"的段数 <=> “Sigmoid 函数”的个数
同时考虑多个训练数据
- (得到更有灵活性 flexibility 的函数) i "分段线性模型"的线段数目 <=> “Sigmoid 函数”的个数 j "分段线性模型"的训练数据个数
- r 代表:“分段线性模型”小括号里面的式子
- α 代表:r 的 Sigmoid 函数
- y 代表:分段线性模型
选用 ReLU 激活函数 逼近 Hard Sigmoid
只是考虑一个训练数据
- 两个 变形的ReLU 合成 一个 Hard Sigmoid
tips:
这里的ReLU函数都不是“标准的”ReLU函数,
因为它们都是变形过的,即
① 通过对自变量x加减b:
实现函数左右平移,
② 通过对ReLU函数乘上c:
改变斜线陡峭程度
还有可能将斜线正负翻转 。
我们可代入具体值具体例子理解:
上面的变形Relu斜线延申y值分别是
11、12、13……
下面的变形Relu斜线对应y值分别是
-1、-2、-3……
那么用这两个Relu斜线部分合成就是
Hard Sigmoid 函数第三段(平的)
即:11-1 =12-2 =13-3 =……=10
可以观看这个视频可视化理解
@StatQuest 深度学习:【官方双语】一个例子彻底理解ReLU激活函数
该视频的例子:两个变形的ReLU
-> 分段线性模型
《苹果书》:两个变形的ReLU
-> Hard Sigmoid
-> 分段线性模型
同时考虑多个训练数据
- (得到更有灵活性 flexibility 的函数) 2i "分段线性模型"的线段数目 <=> “ReLU 函数”的个数*2 j "分段线性模型"的训练数据个数
嵌套多层 ReLU 激活函数 逼近 Hard Sigmoid
只是考虑一个训练数据
同时考虑多个训练数据
- (得到更有灵活性 flexibility 的函数) 2i "分段线性模型"的线段数目 <=> “ReLU 函数”的个数*2 j "分段线性模型"的训练数据个数
引入“深度学习”概念
引入“深度学习”概念
(旧说法)
- Neuron 神经元 Neural Network 神经网络
(新说法)
- hidden layer 隐藏层 Deep Learning 深度学习
Step 2:定义 loss 损失函数
鼠标右键 -> 在新标签页中打开图像
Step 3:通过优化器调整超参数 更新参数
参数
鼠标右键 -> 在新标签页中打开图像
参数
所有未知参数“拼”成一个向量 θ
- σ 激活函数 w weight 权重参数 b bias 偏置参数(修正) c 常数参数 b 常数参数
超参数
鼠标右键 -> 在新标签页中打开图像
常见的优化器
鼠标右键 -> 在新标签页中打开图像
梯度下降的步骤
定义代价函数
- 代价函数——误差表面(error surface): 尝试不同的权重参数,计算它的损失 L
选取初始点
- 首先在代价函数上随机选取一个初始点。
更新 参数 θ
(以权重参数 w 为例)
步伐大小
:接下来计算在这个点上,权重参数 w 对损失 L 的微分 (计算梯度
,即代价函数的导数、微分、陡峭程度)。 调整的步伐大小是 学习率 η 乘上微分的结果。步伐方向
计算
在这一个点上的代价函数的切线斜率
。 如果斜率大于0,则将w调小;反之,则将w调大。- 更新 参数 θ
上角标:迭代更新的次数
下角标:未知参数的序数
- 一个回合(epoch)内 把 N 笔数据(即需要迭代更新的总次数) 随机分成一个一个的批次(batch)
相当于分担了需要迭代更新的总次数:
1个epoch的更新次数 = N / B
N 需要迭代更新的总次数
B 批次的大小
反复迭代计算
- 输入更新后的参数 θ , 再次计算微分,再次更新参数, 反复迭代更新下去找到代价函数最低点为止。 (或者是直到不想做为止)
Read more
- 李宏毅深度学习教程 LeeDL-Tutorial(苹果书) https://github.com/datawhalechina/leedl-tutorial 李宏毅《机器学习/深度学习》2021课程(视频教程 24 h 46 min) https://www.bilibili.com/video/BV1JA411c7VT/
- @3Blue1Brown Topics: Neural Networks https://www.3blue1brown.com/topics/neural-networks
- @StatQuest 深度学习 【官方双语】一个例子彻底理解ReLU激活函数 https://www.bilibili.com/video/BV15x4y1U7T3/
版权归原作者 机动人心 所有, 如有侵权,请联系我们删除。