Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lawlite19/DeepLearning_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

66 Commits

Repository files navigation

深度学习 Deep Learning

一、CNN卷积神经网络

1、概述

  • 典型的深度学习模型就是很深层的神经网络,包含多个隐含层,多隐层的神经网络很难直接使用BP算法进行直接训练,因为反向传播误差时往往会发散,很难收敛
  • CNN节省训练开销的方式是权共享weight sharing,让一组神经元使用相同的权值
  • 主要用于图像识别领域

2、卷积(Convolution)特征提取

  • 卷积核(Convolution Kernel),也叫过滤器filter,由对应的权值W和偏置b体现

  • 下图是3x3的卷积核在5x5的图像上做卷积的过程,就是矩阵做点乘之后的和 enter description here
    i个隐含单元的输入就是:$${W_{\rm{i}}}{x_{small}} + {b_i}$$,其中$${x_{small}}$$就时与过滤器filter过滤到的图片

  • 另外上图的步长stride1,就是每个filter每次移动的距离

  • 卷积特征提取的原理

  • 卷积特征提取利用了自然图像的统计平稳性,这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。

  • 当有多个filter时,我们就可以学到多个特征,例如:轮廓、颜色等

  • 多个过滤器filter(卷积核)

  • 例子如下 enter description here

  • 一张图片有RGB三个颜色通道,则对应的filter过滤器也是三维的,图像经过每个filter做卷积运算后都会得到对应提取特征的图像,途中两个filter:W0和W1,输出的就是两个图像

  • 这里的步长stride2(一般就取2,3)

  • 在原图上添加zero-padding,它是超参数,主要用于控制输出的大小

  • 同样也是做卷积操作,以下图的一步卷积操作为例:
    与w0[:,:,0]卷积:0x(-1)+0x0+0x1+0x1+0x0+1x(-1)+1x0+1x(-1)+2x0=-2
    与w0[:,:,1]卷积:2x1+1x(-1)+1x1=2
    与w0[:,:,2]卷积:1x(-1)+1x(-1)=-2
    最终结果:-2+2+(-2)+1=-1 (1为偏置) enter description here

3、池化(Pooling)

  • 也叫做下采样
  • Pooling过程
  • 把提取之后的特征看做一个矩阵,并在这个矩阵上划分出几个不重合的区域,
  • 然后在每个区域上计算该区域内特征的均值最大值,然后用这些均值或最大值参与后续的训练 enter description here -下图是使用最大Pooling的方法之后的结果 enter description here
  • Pooling的好处
  • 很明显就是减少参数
  • Pooling就有平移不变性((translation invariant) 如图feature map12x12大小的图片,Pooling区域为6x6,所以池化后得到的feature map2x2,假设白色像素值为1,灰色像素值为0,若采用max pooling之后,左上角窗口值为1 enter description here
    将图像右移一个像素,左上角窗口值仍然为1
    enter description here
    将图像缩放之后,左上角窗口值仍然为1
    enter description here
  • Pooling的方法中average方法对背景保留更好,max对纹理提取更好
  • 深度学习可以进行多次卷积、池化操作

4、激活层

  • 在每次卷积操作之后一般都会经过一个非线性层,也是激活层
  • 现在一般选择是ReLu,层次越深,相对于其他的函数效果较好,还有Sigmod,tanh函数等 enter description here
  • sigmodtanh都存在饱和的问题,如上图所示,当x轴上的值较大时,对应的梯度几乎为0,若是利用BP反向传播算法, 可能造成梯度消失的情况,也就学不到东西了

5、全连接层 Fully connected layer

  • 将多次卷积和池化后的图像展开进行全连接,如下图所示。 enter description here
  • 接下来就可以通过BP反向传播进行训练了
  • 所以总结起来,结构可以是这样的 enter description here

6、CNN是如何工作的


7、CNN的Tensorflow实现


8、CNN公式推导

(1)说明

(2)符号说明

  • l..................当前层
  • $${{M_j}}$$..................输入maps的集合
  • up()..................上采样函数
  • ᄋ....................表示对应每个元素相乘
  • β....................下采样对应的"权重"(定义为常量)
  • $${p_i^{l - 1}}$$...................$${{\rm{x}}_i^{l - 1}}$$中在卷积运算中逐个与$${k_{ij}^l}$$相乘的patch
  • down()..................下采样函数

(3)卷积层

(4)子采样层(Sub-sampling Layers)

二、权重初始化问题1_Sigmoid\tanh\Softsign激励函数

1、说明

2、实验

  • 论文先是指出了Sigmoid激励函数是不适合作为深度学习的激励函数的,因为它的均值总是大于0的,导致后面隐含层hidden layer的神经元趋于饱和
    enter description here
  • 构建了含有4个隐层的神经网络,激活函数为Sigmoid,观察每一层的激活值的均值和标准差的岁训练次数的变化情况,layer1表示第一个隐含层,一次类推。
  • 初始化权重$${W_{ij}} \sim U[ - {1 \over {\sqrt n }},{1 \over {\sqrt n }}]$$,即服从均匀分布
  • 如下图所示,实线表示均值mean value,垂直的条表示标准差。
  • 因为使用的均匀分布进行的初始化,所以前几层x的均值近似为0,所以对应Sigmoid函数的值就是0.5
  • 但是最后一层layer4的输出很快就饱和了(激活值趋于0),训练到大100的时候才慢慢恢复正常
  • 作者给出当有5个隐含层的时候,最后一层始终处于饱和状态
  • 标准差反应的是数值的波动,可以看出后面才有了标准差的值
    enter description here
  • 直观解释
  • 最后使用的是softmax(b+Wh)作为预测,刚开始训练的时候不能够很好的预测y的值,因此误差梯度会迫使Wh趋于0,所以会使h的值趋于0
  • h就是上一层的激活输出,所以对应的激活值很快降为0
  • tanh激活函数是关于原点对称的,趋于0是没有问题的,因为梯度能够反向传回去。
    enter description here

3、初试化方法公式推导


三、权重初始化问题2_ReLu激励函数

1、说明

2、ReLu/PReLu激励函数

3、前向传播推导

4、反向传播推导

5、正向和反向传播讨论、实验和PReLu函数


四、Batch Normalization(BN)批标准化

1、说明

2、论文概述

  • 2015年Google提出的Batch Normalization
  • 训练深层的神经网络很复杂,因为训练时每一层输入的分布在变化,导致训练过程中的饱和,称这种现象为:internal covariate shift
  • 需要降低学习率Learning Rate和注意参数的初始化
  • 论文中提出的方法是对于每一个小的训练batch都进行标准化(正态化)
  • 允许使用较大的学习率
  • 不必太关心初始化的问题
  • 同时一些例子中不需要使用Dropout方法避免过拟合
  • 此方法在ImageNet classification比赛中获得4.82% top-5的测试错误率

3、BN思路

4、BN网络的训练和推断

5、实验

  • 最后给出的实验可以看出使用BN的方式训练精准度很高而且很稳定enter description here

五、RNN和LSTM_01基础

About

Deep Learning--深度学习

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /