反向传播和梯度下降法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卷积层的训练——简单情形
• 先来考虑最简单的情况: 步长为1,深度为1,filter个数为1的情况.
il,j1 第 l 1 层第 j 行 第 j 列的误差项
wm , n
wb
filter W l 第 m 行 第 n 列权重 filter W l 的偏置项
ail,j1 第 l 1 层第 i 行 第 j 列神经元的输出
i
• 训练的最终目的是求 J 对参数
①
J a J J a z a z
W,b
的偏导数
• 反向传播是从后往前一步步求偏导数
(a)
1 ( x) 1 e x ' ( x) (1 )
(z)
(a)
a (1 a )
②
J J z W W z W J J z bJ (z) b z b J
• 第一层的 a1 是整个网络的输入,最后一层 a L 是损失函数的输入. • 假设第 l 1 层的输入和输出分别为:z l 1 , a l 1
(a) L
J a L
a l 1 a l 1 (1 a l 1 ) z l 1
z l 1 W l x l
T
bl
l 1 i, j
a il,j1 E E net il,j1 a il,j1 net il,j1
卷积层神经元误差的训练——简单情形
• 先来看乘积的第一项:
net 1l,1 E E 1l,1 w 1 ,1 l 1 l l 1 a 1 ,1 net 1 ,1 a 1 ,1 net 1l,1 net 1l, 2 E E E l l w 1 ,1 1, 2 1 , 2 w 1 ,1 l 1 l l 1 l l 1 a 1, 2 net 1 ,1 a 1 , 2 net 1 , 2 a 1 , 2 E 1l,1 w 2 , 2 1l, 2 w 2 ,1 2l ,1 w 1 , 2 2l , 2 w 1 ,1 l 1 a 1, 2
m n
l l wm ,n i m , j n
卷积层神经元误差的训练——简单情形
l 1 i l 1 层神经元的误差为: , j • 根据链式求导法则,
a il,j1 E E l 1 l 1 net i , j a i , j net il,j1
(z)
xT
③
W k 1 W k W J b k 1 b k b J
激活函数表
多层全连接网络的前向传播
• 神经网络实际上就是一个输入向量 x 到输出向量 y 的函数,即:
矩阵表示 线 性 部 分 激 活 部 分
y f network ( x )
• 上升最快的方向即为方向导数最大的方向:
f ( x t cos , y t sin ) f ( x, y) f ( x t cos , y t sin ) f ( x, y t sin ) f ( x, y t sin ) f ( x, y) t t f ( x, y) f ( x, y) cos sin t 0 x y
梯度下降和反向传播算法
• 引言 • • • • •
————— 感知机与Delta法则
• 梯度下降算法 梯度下降概述 为什么梯度方向是上升最快的方向 梯度下降图解 梯度下降的一些问题 链式求导法则
• 反向传播算法 • 单个逻辑神经元的反向传播 • 多层全连接神经网络的反向传播 • 卷积神经网络的反向传播
z l 1 z l 1 z l 1 Wl , al , I a l W l bl
l( a ) l( z )
J J z l 1 W l T l(z1) a l z l 1 a l J J a l l( a ) a l (1 a l ) zl a l zl
因此要用全导数反向计算误差; • 我们使用每个filter 对第 l 层相应的误差项矩阵进行 * 操作(翻转,卷积), 最后将 所有结果按元素相加.
卷积层 filter 权重的训练
l l l net1l, 2 net 2 net E E net1,1 E E E ,1 2, 2 l l w1,1 net1l,1 w1,1 w w1,1 net1l, 2 w1,1 net 2 net 1,1 ,1 2, 2 1 l l 1 l l 1 l l 1 1l,1 a1l, 1 1, 2 a1, 2 2 ,1 a 2 ,1 2 , 2 a 2 , 2
• 接着来看乘积的第2项:
• 第1项和第2项结合:
• 或写为如下表达式:
卷积层神经元误差的训练——多步长
• 上面是步长为1时的卷积结果, 下面是步长为2时的卷积结果
• 当我们反向计算误差项时, 先对第 l 层的误差项相应的填充0, 再按照步长为的情形处理即可.
卷积层神经元误差的训练——输入层多深度
• 梯度下降的优化算法
引言
————— 感知机与Delta法则 • 线性单元与Delta法则
• 阈值与感知机法则:
wi wi wi w i (t o ) x i
t 是当前样例的目标输出,o 是感知机的输出, 是学习率. • • 数据必须线性可分,特征选取是关键 收敛快,不容易推广为大型网络 •
z xi
j
z y j y j xi
T
向量表达式为:
y x
y xz x
是函数
yz
其中,
g 的 n m Jacobian 矩阵.
单个逻辑神经元的反向传播
f (W , b , x ) a ( x i w i b )
x1 x a1 2 , x3 1
z4 , a2 z 5 z6
w4 w41, w42 , w43 , w4b1 W1 w5 w51, w52 , w53 , w5b1 w , w , w , w w6 61 62 63 6b1
d
) x id
收敛慢,容易推广为大型网络
E ( w)
1 (t d o d ) 2 2 d
梯度下降概述
极值问题:
f : D
1. 随机搜索法 尽量多的去尝试,从里面选择使得目标函数 取值最小的参数. 2. 随机局部搜索 在现有的参数的基础上,搜寻一下周边临近的参数, 若有更好的就更新参数,如此不断迭代. 3. 根据梯度选择方向搜索
• CNN的特征提取层参数是通过训练数据学习得到的, 避免了人工特征抽取; • 同一特征图的神经元共享权值,减少网络参数, 这是卷积神经网络相对于全连接网络的一大优势.
卷积神经网络的训练
• CNN基本层包括卷积层和池化层,二者通常一起使用,一个池化层紧跟在一个卷积层之后。 • 这两层包括三个级联函数:卷积,激活函数函数,池化。 • 其前向传播和后向传播的示意图如下:
l 1 net i , j 第 l 1 层第 i 行 第 j 列神经元的加权输入
il, j 第 l 层第 i 行 第 j 列的误差项
f l 1 第 l 1 层的激活函数
• 卷积层前向传播公式:
卷积层神经元误差的训练——简单情形
• 根据链式求导法则,l 1 层神经元的误差为:
2
,
f ( x, y) y
2 2
梯度下降图解
• 梯度下降算法核心迭代公式:
x ( i 1) x ( i ) x f ( x ( i ) )
走一步,看一步
跑下去? (momentum)
梯度下降的一些问题
• 梯度为 0 的点成为 critical point • 梯度下降迭代在梯度为0的点会终止运行, 但是critical point 不一定是极值点
上式即为向量 (
f ( x, y) f ( x, y) , ) 在 (cos , sin ) 上的投影. x y
f ( x, y) x f ( x, y) x f ( x, y) x
2
cos
总之,
sin
f ( x, y) y f ( x, ຫໍສະໝຸດ Baidu) y
a 2 ( z 2 ) (W 1 a 1 )
4 5 6
a 2 (W1 a1 ) a 3 (W 2 a 2 ) a L (W L 1 a L 1 ) J (a L , y )
- --
全 部 过 程
多层全连接神经网络的反向传播
卷积层神经元误差的训练——简单情形
• 上一页的计算,相当于把 l 层的误差项 矩阵周围补一圈0,再与旋转180度后的 filter进行卷积操作,简记此操作为 • 其实,旋转180度之后进行现在的卷积, 才是卷积的本来的含义:
* conv flip
• 写为求和的形式如下:
E l 1 a i, j
E 1 l l 1 l l 1 1l,1 a1l,21 1l, 2 a1l, a a 3 2 ,1 2,2 2,2 2 ,3 w1, 2
通式为:
E w i, j
m
l 1 a m ,n i m , j n n
• filter的深度和输入层的深度相同
• 各算各的,用filter的第d通道权重 对第 层误差项矩阵进行操作即可.
卷积层神经元误差的训练——多 filter
• filter数量为 N 时,输出层即第 l 层的深度也为 N
l 1 • 由于第 l-1 层的每个加权输入 net i , j 都同时影响着第 l 层所有 feature map 的输出,
a l 1 ( z l 1 )
Wl
J J
J J z l 1 W l z l 1 W l J J z l 1 bl z l 1 b l
(z) l 1
a lT
bl
(z) l 1
卷积神经网络(Convolutional Neural Network -- CNN)
• D 是domain, 函数的定义域, 是实数域.
D . • D 是一维或者是高维的,
n
• 每个维度的取值是离散的,或者连续的. • 我们这里限制D的每个维度都是连续的. • 求解:
x
argmin
x D
f (x)
在现有的参数的基础上,计算函数梯度,按照 梯度进行调参,如此不断迭代.
为什么梯度方向上升最快?
w w w, 其中, w -E(w)
损失函数的梯度:
E E E E (w) , , , w n 1 w 0 w1 E ( t d o d )( x d ) w i d D
w
i
d D
(t d o
• 梯度下降不断逼近局部极小 • 局部极小与全局极小
链式求导法则
• 粗略的讲,若 x 是实数, y
g ( x), z f ( g ( x)) f ( y ) , 则
dz dx dz dy dy dx
• 粗略的讲,一般地,若 x m , 则
y n , g : m n , f : n , y g ( x), z f ( y )