2022李宏毅机器学习深度学习学习笔记第十六周

文章目录

  • 前言
  • 一、训练循环神经网络RNN
  • 二、训练卷积神经网络CNN
  • 总结


前言

RNN主要是用于处理序列数据的神经网络,本文主要了解RNN的内部结构以及每个参数代表什么,通过一个简单的例子了解RNN正向和反向运算的具体过程;通过例子了解CNN的正向和反向运算的具体过程,理解卷积层和池化层的过程。


一、训练循环神经网络RNN

RNN内部结构示意图:
2022李宏毅机器学习深度学习学习笔记第十六周_第1张图片
t下标指的是当前的时间点。St 是由ht-1 和xt 拼起来,乘上参数W得到的。St 到ht 使用tanh作为激活函数。最后用softmax算概率分布。循环神经网络的循环指的是分析图中划线处的参数,每一轮的h都被输入到下一轮。

需要更新的参数有:
Wyh :2x2的矩阵,表示从h到y的参数矩阵
Whh :2x2的矩阵,表示从旧的h到新的h的参数矩阵
Whx :2x3的矩阵,表示从x算h的参数矩阵

将RNN展开来:
2022李宏毅机器学习深度学习学习笔记第十六周_第2张图片
假设词汇量只有三个字,好、不、看,训练数据为“不好看”,用one-hot vector 表示输入为
[ 0 1 0 1 0 0 0 0 1 ] \begin{gathered} \begin{bmatrix} 0 & 1 &0 \\ 1 & 0 &0 \\ 0 & 0 &1\end{bmatrix} \quad \end{gathered} 010100001
将需要更新的参数初始化:

2022李宏毅机器学习深度学习学习笔记第十六周_第3张图片

正向运算
初始的h0为0;
2022李宏毅机器学习深度学习学习笔记第十六周_第4张图片
从起点h0开始,用W矩阵乘以h和x拼接的矩阵计算s1,s1通过tanh得到h1,同时h1作为下一次的输入;后面s2、s3的计算与s1类似,h2、h3的计算与h1一样都是通过tanh(st)得到的。算出h3,与Wyh相乘得到o,把o放进softmax进行计算。正向传播运算的过程如上所述。

反向运算
2022李宏毅机器学习深度学习学习笔记第十六周_第5张图片
计算loss对Wyh 的导数,链式法则展开为loss对Ot ,Ot 对Wyh 的导;计算loss对Whh的导数,展开如图中所示,发现S3对Whh的导有些复杂,因为不仅h3影响损失,h2也在通过h3影响损失,h1通过h2、h3影响损失。S3对Whh求导指的是S3本身对Whh求导,加上S2通过S3对Whh求导;S2对Whh求导又嵌套了一层,包括S2本身对Whh求导,加上S1通过S2对Whh求导。全部展开可以看到Whh对loss影响的三个路径,有直接通过h3影响的,有通过h2h3影响的,有通过h1h2h3影响的。loss对Wyx 的求导与上面的类似。
算出三个矩阵一轮训练的梯度,在学习率为一的情况下,新的参数W为原来的值减去梯度,从而更新参数。

二、训练卷积神经网络CNN

2022李宏毅机器学习深度学习学习笔记第十六周_第6张图片
1.convolution 4x3的输入和2x3 的filter ,得到3x1的结果S。
2.Relu作为激活函数,将S放入Relu函数中得到P,将P进行max pooling得到Z,将Z放进softmax layer。
需要优化的参数有八个,filter上的六个参数以及w1,w2。

将参数初始化,filter上的六个参数都为1,w1=-0.1149,w2=-0.8085.

正向计算:
2022李宏毅机器学习深度学习学习笔记第十六周_第7张图片
先进行卷积运算,卷积完得到的三个数1.6、1.4、2.5,经过relu(大于0,是它本身,小于0,则为0)得到的是它本身,maxpooling选取最大的值,最大的值分别乘上w1w2得到的值通过softmax得到输出。

Backpropagation:
2022李宏毅机器学习深度学习学习笔记第十六周_第8张图片
步骤一:loss 分别对O1O2求导。
步骤二:loss分别对W1W2求导,链式法则展开为loss对O1求导,O1对W1求导。
步骤三:loss对Z求导,链式法则展开为loss对O1求导,O1对Z求导,加上loss对O2求导,O2对Z求导。
步骤四:loss分别对P1P2P3求导,链式法则展开为loss对Z求导,Z对P1求导。
步骤五:loss分别对S1S2S3求导。
步骤六:计算卷积层的导数,数字少的话,可以通过向量展开进行计算,也可以转化成一个反过来的卷积运算,用x和loss对s的导进行卷积。
2022李宏毅机器学习深度学习学习笔记第十六周_第9张图片

最后进行参数更新。


总结

通过一轮训练了解了卷积神经网络主要由输入层、卷积层、RELU层、池化层、及全连接层构成;卷积层主要是提取特征,RELU层把卷积结果做非线性映射,池化层主要包括最大池化和均值池化,提取主要特征。

你可能感兴趣的:(深度学习,机器学习,学习)