最近由于毕业设计的缘故,开始学习计算机领域最富有魅力的知识:深度学习
什么是深度学习?
深度学习可以理解为“深度”和“学习”这两个名词的组合。“深度”体现在神经网络的层数上,一般来说,神经网络的层数越多,也就是越深,则学习效果越好;“学习”体现为神经网络可以通过不断地灌溉数据来自动校正权重偏置等参数,以拟合更好的学习效果。
一个2层的神经网络的例子:
深度学习可以应用于什么?
深度学习最典型最广泛的应用就是图像识别。此外,深度学习还可以应用于语音、自然语言等领域。
现在有哪些深度学习框架?
目前主流的深度学习框架有:TensorFlow、Keras、Caffe、PyTorch等。
深度学习和神经网络是什么关系?
深度学习就是加深了层的深度神经网络,在深度学习领域中,有各式各样的神经网络,其中最出名的即是卷积神经网络(CNN)。
神经网络和感知机是什么关系?
感知机是神经网络的起源,神经网络是使用了非线性的激活函数(如sigmoid函数)的感知机。
神经网络中有哪些激活函数?
激活函数分为两类:
-
隐藏层的激活函数:sigmoid函数、ReLU函数等
-
输出层的激活函数:softmax函数、恒等函数等
神经网络中有哪些参数?
神经网络中的参数主要分为两类:
-
普通参数(自动更新):权重、偏置
-
超参数(人为设定):学习率、batch大小、各层神经元数量、权值衰减系数等
什么是泛化能力?
泛化能力指神经网络处理未被观察过的数据(不包含在训练集中的数据)的能力,获得泛化能力是深度学习的最终目的。
什么是过拟合?
与泛化能力相对的是过拟合,即仅对训练数据集表现出良好的学习效果,而无法处理其他类似的数据集,我们需要避免过拟合。
过拟合的典型表现如下:
如上图所示,训练集的识别率达到100%(正常情况下,识别率是无法达到100%的),而测试集的识别率仅有70%左右,这就是发生了过拟合。
如何抑制过拟合?
过拟合是需要避免的,一般抑制过拟合有两种方法:
-
权值衰减
-
Dropout优化
什么是损失函数?
神经网路的学习是指从训练数据中自动获取最优权重偏置参数的过程,而如何评价这个最优参数呢?这里就引入了损失函数。将损失函数作为神经网络学习的指标,损失函数的值越小,表示神经网络的学习效果越好,也就是说此刻的参数相对是最优参数。
损失函数主要有哪些?
常用的损失函数有两种:
-
均方误差
-
交叉熵误差
一般而言,使用交叉熵误差作为softmax函数的损失函数;使用均方误差作为恒等函数的损失函数。
寻找最优参数的方法有哪些?
神经网络学习的目的是寻找使损失函数尽可能小的权重偏置参数,也即是寻找最优参数,目前主要有四种寻找最优参数的方法:
-
随机梯度下降法(SGD):使用最广泛
-
Momentum
-
AdaGrad
-
Adam:综合性能最好
这四种方法的参数更新路径的对比如下图:
随机梯度下降法(SGD)的主要思路是什么?
将损失函数关于权重偏置参数的梯度作为线索,沿梯度方向更新参数,并重复步骤多次,逐渐靠近最优参数。
随机梯度下降法中有哪些求梯度的方法?
这里的梯度特指的是损失函数关于权重偏置参数的梯度。主要有两种求梯度的方法:
-
数值微分
-
误差反向传播法:速度更快
神经网络学习的整体过程是怎样的?
神经网络的学习主要是以下四大步骤:
-
步骤1(mini-batch):从训练数据中随机选择一部分数据
-
步骤2(计算梯度):使用误差反向传播法计算损失函数关于各个权重参数的梯度
-
步骤3(更新参数):将权重参数沿梯度方向进行微小的更新
-
步骤4(重复):重复步骤1、2、3。
权重初始值如何设定?
虽然权重参数是自动更新的,但其初始值仍是非常重要,一个好的初始值能够加快学习进度。
主要有三种权重初始值:
-
标准差为0.01的高斯分布
-
Xavier初始值:适用于激活函数是sigmoid函数
-
He初始值:适用于激活函数是ReLU函数
用Adam更新参数的条件下,基于MNIST数据集的三种权重初始值的比较如下图:
可以看出,He初始值的综合性能最好。
最后附上一个深度学习5分钟入门视频,讲的超级好!
原文链接:https://dwz.cn/z658B5fP
视频作者:Sebastian Lague
字幕制作:码农翻身
每天学习一点点,每天进步一点点。
网友评论