《Deep Learning Tutorial》by Hung-yi Lee

这篇台湾大学李宏毅教授的文章应该是关于深度学习入门最浅显易懂的了。

深度学习介绍

先简单的介绍了一下深度学习大致分为三步,建立一组方法-从中选出性能更好的-挑出最佳的

《Deep Learning Tutorial》by Hung-yi Lee_第1张图片
three steps

神经网络

神经网络的神经元构成如下,


《Deep Learning Tutorial》by Hung-yi Lee_第2张图片
neuron

而每一个神经元都可以赋以不同的权重和偏差值,


《Deep Learning Tutorial》by Hung-yi Lee_第3张图片

如下是一个简单的神经网络的结构,sigmoid函数是神经网络中一种常用的激活函数,可以看到,分别用初值乘以权重再加上偏差值代入激活函数就得到下一层的数据,以此类推,


《Deep Learning Tutorial》by Hung-yi Lee_第4张图片
这是一个简单的前馈神经网络

由此我们可以得到一个神经网络的结构如下,分为输入层、输出层和隐藏层,
《Deep Learning Tutorial》by Hung-yi Lee_第5张图片

下面是一个具体示例,


《Deep Learning Tutorial》by Hung-yi Lee_第6张图片

评估方法的优劣

在神经网络的进行过程中,所得到的预测值和所需要的目标值之间往往会有一个差值loss,将其进行比对,所以评估一个方法的优劣,也就是让这个loss尽可能的小。


《Deep Learning Tutorial》by Hung-yi Lee_第7张图片
total loss

寻找最优方法

这里采用的是梯度下降法,不过也会进入局部最优的误区。


《Deep Learning Tutorial》by Hung-yi Lee_第8张图片
梯度下降

Why Deep?

这里可以看出,参数越多,性能越好,


《Deep Learning Tutorial》by Hung-yi Lee_第9张图片

同时还提出一个疑问,为什么一定要更深, 更宽难道不行么,这里做了一个对比,


《Deep Learning Tutorial》by Hung-yi Lee_第10张图片
shallow vs deep

先看结论,
《Deep Learning Tutorial》by Hung-yi Lee_第11张图片

作者认为deep可以带来模块化的好处,


《Deep Learning Tutorial》by Hung-yi Lee_第12张图片

这样模块化可以使得随着层级的深入,神经网络可以将像素元素逐步归纳出一些基本的特征,进而变成纹理,再变成对象。
《Deep Learning Tutorial》by Hung-yi Lee_第13张图片

Tips for training DNN

作者总结了两种在训练过程中的情况,

  • 第一是得不到很好的训练结果,那就需要重新选择训练方法;
  • 第二是得不到很好的测试结果,往往是由过拟合导致的,这就需要重新定义方法了。
《Deep Learning Tutorial》by Hung-yi Lee_第14张图片
Recipe of Deep Learning

作者总结了五种优化训练方法的手段,

  • Choosing proper loss,选择适当的loss function:这里举例,使用cross entropy要优于square error;


    《Deep Learning Tutorial》by Hung-yi Lee_第15张图片
  • mini-batch:每次使用少量数据而不使用全部数据;


    《Deep Learning Tutorial》by Hung-yi Lee_第16张图片

你可能感兴趣的:(《Deep Learning Tutorial》by Hung-yi Lee)