“一天搞懂深度学习”笔记

“一天搞懂深度学习”笔记

1. A brief Introduction of Deep Learning

1.1 Introduction of Deep Learning

  • Neuron
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190109113921652.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1ZWd1aXpoaWxpbg==,size_16,color_FFFFFF,t_70)

权重和偏置称为神经元的参数,区别于神经网络结构参数,如神经元个数,隐含层层数,网络连接方式等,网络结构参数是超参之一, 需要人为根据经验设置。

  • 全连接前馈神经网络
“一天搞懂深度学习”笔记_第1张图片

深度意味神经网络具有多个隐含层。

“一天搞懂深度学习”笔记_第2张图片

神经网络结构确定了一个函数集(函数空间),特定的神经元参数确定了函数集中一个函数。

  • soft max 输出层
“一天搞懂深度学习”笔记_第3张图片

“一天搞懂深度学习”笔记_第4张图片

softmax 输出层将网络输出值归一化到[0,1), softmax 层的输出可解释成输入vector 属于不同类的概率值。

  • loss function
“一天搞懂深度学习”笔记_第5张图片

“一天搞懂深度学习”笔记_第6张图片

loss 可以衡量网络输出和期望输出的距离。在网络结构超参确定的情况下,我们的目标就是寻找一个使loss最小的函数,最终目标转化为:通过训练数据,以最小化 loss 函数为目标,寻找最佳神经元参数。

  • 网络优化算法:寻找最佳神经元参数

基于梯度下降法的BP算法

1.2 why deep ?

“一天搞懂深度学习”笔记_第7张图片

实验证明,网络参数的增多,网络性能提升。

“一天搞懂深度学习”笔记_第8张图片

任何复杂函数均能由单隐含层的网络拟合出来。

“一天搞懂深度学习”笔记_第9张图片

网络参数的增多可以通过“广度学习”和“深度学习”的方式实现,哪一种方式更好呢?

“一天搞懂深度学习”笔记_第10张图片

在编程中,我门通过定义子函数,实现复杂函数模块化,模块化的好处是子模块实现简单、子模块可以共用、高层调度实现复杂功能且形式简洁高效(main 函数形式通常是elegant的).类似的,我们说深度学习实现了模块化Modularization

“一天搞懂深度学习”笔记_第11张图片

假设我们有一个图像分类任务,若按照上图方式训练各个分类器,则因为长发男数据较少,则 Classifier 2 的性能就较为 weak.

“一天搞懂深度学习”笔记_第12张图片

若我们先训练两个基分类器,则两个基分类器因为有足够数据,可以训练得相当好。然后将它们视作module,第二层的每个分类器只需去 call 第一层的两个共用 modules 的 output ,就可以实现每个分类器的任务。所以虽然长头发男生的数据依然较少,此时 Classifier 2 的性能却比较 strong.

“一天搞懂深度学习”笔记_第13张图片

在 Deep learnin 中,第一层的每个神经元是最 basic 的 classifier ,第二层 将第一层的 classifier 当做 module 去实现复杂的 classifier ,以此类推。
故 deep learning 的好处是: 实现模组化后,每个模块会变得简单,所需训练数据较少。(这与人们津津乐谈的 AI = 深度学习+人工智能 的说法不同)

关于why deep 的直观实例,可以参看油管上一个很好的视频:
But what is a Neural Network? | Chapter 1, deep learning

2.Tips for Training Deep Neural Network

“一天搞懂深度学习”笔记_第14张图片

当我们训练两个分别为56层和20层的网络时,在测试集上的表现如右图所示,我门无法根据 20-layer 的损失曲线在 56-layer 的下方 ,就得出56-layer 的网络已经过拟合了。因为观察左图两者在训练集上的损失曲线,我们发现,56 layer 的网络性能居然弱于 20-layer, 这是不合理的,因为我们只要将56- layer 的网络前20 层参数与 20-layer保持一致,则损失曲线便与20-layer identity . 所以根据在训练集上的损失曲线表现看,我们对56-layer 的网络训练得还不够好,可能落入了局部最优。

“一天搞懂深度学习”笔记_第15张图片

所以我们得根据网络在训练集上的表现和在测试集上的表现,对症下药。例如drop out 就是针对网络在测试集上的表现较差使用的技术。

“一天搞懂深度学习”笔记_第16张图片

“一天搞懂深度学习”笔记_第17张图片

2.1 train set: choosing proper loss

“一天搞懂深度学习”笔记_第18张图片

“一天搞懂深度学习”笔记_第19张图片

当我们使用softmax输出层时,我们倾向于使用交叉熵损失函数。原因是:相较平方损失函数,交叉熵损失函数的地貌更加陡峭,梯度更大,更不容易陷入局部最优。

“一天搞懂深度学习”笔记_第20张图片

“一天搞懂深度学习”笔记_第21张图片

[图片上传中...(image.png-60b999-1518163976905-0)]

2.2 train set: Mini-batch

“一天搞懂深度学习”笔记_第22张图片

“一天搞懂深度学习”笔记_第23张图片

若batchsize 为1,就成为了随机梯度下降。
但我们一般不将batchsize 设为1.从上面PPT 可以看出,在使用GPU 进行并行运算后,在相同时间内,batchsize = 1和batchsize =10,参数的更新总次数是相近的,但是batchsize = 10 时更稳定,收敛地更快。
当batchsize 过大时,则一方面超出了GPU硬件并行能力,另一方面,此时去train 网络时会经常进入鞍点或局部极小值而无法逃离,训练过程中止,performance 下降,所以引入随机性是必要的,有助于逃离局部最优和鞍点。

“一天搞懂深度学习”笔记_第24张图片

“一天搞懂深度学习”笔记_第25张图片

2.3 train set: New activation function

“一天搞懂深度学习”笔记_第26张图片

“一天搞懂深度学习”笔记_第27张图片

“一天搞懂深度学习”笔记_第28张图片
  • ReLU
“一天搞懂深度学习”笔记_第29张图片

使用ReLU的好处是:
计算快速,激活机制与生理类似,相当于无穷多个加权sigmoid函数加权,可以防止梯度消失。

“一天搞懂深度学习”笔记_第30张图片

“一天搞懂深度学习”笔记_第31张图片

使用ReLU后,网络变成轻量的线性网络,并且这个线性网络随着输入input的不同而不同,相当于用多个线性网络去逼近一个复杂网络

“一天搞懂深度学习”笔记_第32张图片
  • Maxout
    Maxout 方法认为每个神经元的激活函数是可以学习的

在maxout 的隐层中的一个神经元(图中的红色框)需要比普通网络的神经元多学习一倍参数,或者多倍(取决于在一个group 中的元素个数,一个group 中的元素个数人为指定)

“一天搞懂深度学习”笔记_第33张图片

上图指出,ReLU是maxout学习到的激活函数中的一个特例, 即在Maxout 中学习到的参数为w,b,0,0时,则此时神经元的激活函数就等于ReLU。

“一天搞懂深度学习”笔记_第34张图片

学习到一个神经元的参数都非零时,则激活函数为上图形式。

“一天搞懂深度学习”笔记_第35张图片

maxout 可以学习到的激活函数为任意的分段线性凸函数,分段数目取决于一个group中的elementshumu

“一天搞懂深度学习”笔记_第36张图片

“一天搞懂深度学习”笔记_第37张图片

与ReLU一样,给定一个input,网络将变成一个线性网络,并且这个线性网络随着input的不同而改变。给定一个input,我们可以对这个线性网络进行训练,更新部分参数,再给定一个input,我们可以对产生的另一个线性网络进行训练,更新部分参数。所以虽然max操作不好求导,但是采用maxout的网络仍然是可以train 的。

2.4 train set: Adaptive Learning Rate

“一天搞懂深度学习”笔记_第38张图片
  • Adagrad
“一天搞懂深度学习”笔记_第39张图片
  • RMSprop
“一天搞懂深度学习”笔记_第40张图片

与Adagrad 只有略微的不同,RMSprop对过去梯度平方和做了加权衰减。

  • Momentum
“一天搞懂深度学习”笔记_第41张图片

“一天搞懂深度学习”笔记_第42张图片

“一天搞懂深度学习”笔记_第43张图片
  • Adam
“一天搞懂深度学习”笔记_第44张图片

2.6 test set: early stopping

“一天搞懂深度学习”笔记_第45张图片

early stopping其实是在控制epochs的大小

2.7 test set : Regularization

“一天搞懂深度学习”笔记_第46张图片

“一天搞懂深度学习”笔记_第47张图片

“一天搞懂深度学习”笔记_第48张图片

“一天搞懂深度学习”笔记_第49张图片

“一天搞懂深度学习”笔记_第50张图片

在神经网络优化中,正则项技术其实与early stopping 的功能是近似重叠的。考虑网络参数初始化为接近零的值,随着更新次数的增加,参数会越来越偏离0。所以如果参数更新次数较小,参数偏离0的程度下降,而early stopping 就是为了控制epochs 的大小。正则化技术目的也是希望参数越接近零越好。所以说两者的功能是近似的。

2.8 test set: Dropout

“一天搞懂深度学习”笔记_第51张图片

“一天搞懂深度学习”笔记_第52张图片

dripout 有效性的解释:


“一天搞懂深度学习”笔记_第53张图片

“一天搞懂深度学习”笔记_第54张图片

“一天搞懂深度学习”笔记_第55张图片

“一天搞懂深度学习”笔记_第56张图片

“一天搞懂深度学习”笔记_第57张图片

3.Variants of Neural Network

3.1 Convolutional Neural Network (CNN)

3.2 Recurrent Neural Network (RNN)

4.Next Wave

4.1Supervised Learning

4.1.1 Ultra Deep Network
“一天搞懂深度学习”笔记_第58张图片
4.1.2 Attention Model
“一天搞懂深度学习”笔记_第59张图片

“一天搞懂深度学习”笔记_第60张图片

“一天搞懂深度学习”笔记_第61张图片

4.2 Reinforcement Learning

4.3 Unsupervised Learning

4.3.1 Image: Realizing what the World Looks Like
4.3.2 Text: Understanding the Meaning of Words
4.3.3 Audio: Learning human language without supervision

参考资料

一天搞懂深度学习

      

你可能感兴趣的:(神经网络)