本文主要是介绍【深度学习详解】Task2 分段线性模型-引入深度学习 Datawhale X 李宏毅苹果书 AI夏令营,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
《苹果书》第一章的内容包括
机器学习基础 -> 线性模型 -> 分段线性模型 -> 引入深度学习
这一篇章我们继续后续内容 ~
其中涉及到“激活函数”的作用理解:
除了 开源项目 - 跟李宏毅学深度学习(入门) 之外,
还有 @3Blue1Brown 的神经网络 和 @StatQuest 的深度学习 视频内容辅助。
🍎 🍎
系列文章导航
【深度学习详解】Task1 机器学习基础-线性模型 Datawhale X 李宏毅苹果书 AI夏令营
【深度学习详解】Task2 分段线性模型-引入深度学习 Datawhale X 李宏毅苹果书 AI夏令营
【深度学习详解】Task3 实践方法论-分类任务实践 Datawhale X 李宏毅苹果书 AI夏令营本篇目录导航
- 前言
- 系列文章导航
- 分段线性模型 - 机器学习的三个步骤
- Step 1:写出目标函数
- 激活函数
- 模型计算过程
- 引入“深度学习”概念
- Step 2:定义 loss 损失函数
- Step 3:通过优化器调整超参数 更新参数
- 参数
- 超参数
- 常见的优化器
- Read more
分段线性模型 - 机器学习的三个步骤
Step 1:写出目标函数
激活函数
鼠标右键 -> 在新标签页中打开图像
模型计算过程
鼠标右键 -> 在新标签页中打开图像
只是考虑一个训练数据
- i "分段线性模型"的段数 <=> “Sigmoid 函数”的个数
同时考虑多个训练数据
- (得到更有灵活性 flexibility 的函数)
i "分段线性模型"的线段数目 <=> “Sigmoid 函数”的个数
j "分段线性模型"的训练数据个数
- r 代表:“分段线性模型”小括号里面的式子
- α 代表:r 的 Sigmoid 函数
- y 代表:分段线性模型
只是考虑一个训练数据
- 两个 变形的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 "分段线性模型"的训练数据个数
只是考虑一个训练数据
同时考虑多个训练数据
- (得到更有灵活性 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/
这篇关于【深度学习详解】Task2 分段线性模型-引入深度学习 Datawhale X 李宏毅苹果书 AI夏令营的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!