深度学习的概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。下面我将介绍深度学习中常见的一些概念,带你走进深度学习之旅。
2、加权/权重(Weights)当输入信号进入到神经元后,会被乘以相应的权重因子。举例来说,假设一个神经元有两个输入信号,那么每个输入将会存在着一个与之相应的权重因子。在初始化网络的时候,这些权重会被随机设置,然后在训练模型的过程中再不断地发生改变。在经过训练后的神经网络中,一个输入具有的权重因子越高,往往意味着它的重要性更高,对输出的影响越大。另一方面,当权重因子为0时意味着这个输入是无价值的。
3、偏差/偏置(Bias)除了权重之外,另一个被应用于输入的线性分量被称为偏差。它被加到权重与输入相乘的结果中。基本上添加偏差的目的是来改变权重与输入相乘所得结果的范围的。添加偏差后,结果将看起来像a*w1+Bias。这是输入变换的最终线性分量。4、激活函数之前线性处理之后的输入信号通过激活函数进行非线性变换,从而得到输出信号。
常用的激活函数常用的一些激活函数有:Sigmoid函数、线性整流函数(ReLU)和softmax函数。Sigmoid函数:作为最常用的激活函数之一,它的定义如下:
Sigmoid变换产生一个值为0到1之间更平滑的范围。我们可能需要观察在输入值略有变化时输出值中发生的变化。光滑的曲线使我们能够做到这一点,因此优于阶跃函数。线性整流函数(ReLU-RectifiedLinearUnits)近来的神经网络倾向于使用ReLU替代掉Sigmoid函数作为隐层的激活函数,它的定义如下:f(x)=max(x,0)当x大于0时,函数输出x,其余的情况输出为0。
使用ReLU函数的好处是,对于所有大于0的输入,导数是恒定的,这能够加快训练网络的速度。softmax函数softmax激活函数通常应用在分类问题的输出层上。它与Sigmoid函数相似,唯一不同的是softmax函数输出结果是归一化的。Sigmoid函数能够在双输出的时候奏效,但当面对多种类分类问题的时候,softmax函数可以方便地直接将各个分类出现的概率算出。
7、多层感知器(MLP-MultiLayerPerceptron)一个单一的神经元不能够完成复杂的任务,因此需要将它们堆叠起来工作进而产生有用的输出。最简单的神经网络包括一个输入层、一个隐藏层和一个输出层。每一层都由多个神经元组成,每一层的每个神经元都与下一层中的所有神经元相连。这样的网络可以被称为是全连接网络。
8、正向传播正常传播是指信号从输入层经过隐藏层到输出层的传输过程。在正向传播中,信号是沿着单一方向进行传播,即输入层给隐藏层提供输入,进而最终产生相应的输出。9、成本函数(costfunction)在神经网络的建造过程中,建造者们希望输出的结果能够尽可能地接近实际值,因此使用成本函数来描述网络的这种准确性。神经网络的目标是增加预测的准确性从而减少误差,即最小化成本函数。
在数学上,为了找到函数的局部最小值,我们通常采取与函数梯度的负数成比例的步长。11、学习速率(learningrate)学习速率定义为在每次迭代过程中对成本函数的最小化次数。简单来说,学习速率就是指朝着成本函数最小值的下降速率。选择学习速率需要很谨慎,过大会导致可能越过最优解,过小会导致收敛花费太多的时间。
12、反向传播(backpropagation)在定义一个神经网络的过程中,每个节点会被随机地分配权重和偏置。一次迭代后,我们可以根据产生的结果计算出整个网络的偏差,然后用偏差结合成本函数的梯度,对权重因子进行相应的调整,使得下次迭代的过程中偏差变小。这样一个结合成本函数的梯度来调整权重因子的过程就叫做反向传播。
16、批量归一化(BatchNormalization)批量归一化就像是人们在河流中用以监测水位的监察站一样。这是为了保证下一层网络得到的数据拥有合适的分布。在训练神经网络的过程中,每一次梯度下降后权重因子都会得到改变,从而会改变相应的数据结构。
但是下一层网络希望能够得到与之前分布相似的数据,因此在每一次数据传递前都需要对数据进行一次正则化处理。
17、过滤器/滤波器(Filter)CNN中的滤波器,具体是指将一个权重矩阵,我们用它乘以输入图像的一部分,产生相应的卷积输出。比方说,对于一个28x28的图片,将一个3x3的滤波器与图片中3x3的矩阵依次相乘,从而得到相应的卷积输出。滤波器的尺寸通常比原始图片要小,与权重相似,在最小化成本的反向传播中,滤波器也会被更新。
18、CNN(卷积神经网络)卷积神经网络通常用来处理图像数据,假设输入数据的形状为28x28x3,那么对于传统的神经网络来说就会有2352(28x28x3)个变量。随着图像尺寸的增加,那么变量的数量就会急剧增加。因此,通过对图片进行卷积,可以减少变量的数目。随着过滤器沿着图像上宽和高的两个方向滑动,就会产生一个相应的2维激活映射,最后在沿纵向将所有的激活映射堆叠在一起,就产生了最后的输出。
19、池化(pooling)为了进一步减少变量的数目同时防止过拟合,一种常见的做法是在卷积层中引入池化层(poolinglayer)。如下图所示,最常用的池化层的操作是将原始图片中每个4x4分块取最大值形成一个新的矩阵,这叫做最大值池化(maxpooling)。
你还可以使用其他操作(如平均池)进行池化,但是最大池数量在实践中表现更好。20、补白(padding)如下图所示,补白(padding)通常是指给图像的边缘增加额外的空白,从而使得卷积后输出的图像跟输入图像在尺寸上一致,这也被称作相同补白(SamePadding)。
有效补白(ValidPadding)指的是保持图片上每个真实的像素点,不增加空白,因此在经历卷积后数据的尺寸会不断变小。21、数据增强(DataAugmentation)数据增加(DataAugmentation)指的是从已有数据中创造出新的数据,通过增加训练量以期望能够提高预测的准确率。
22、递归神经元对于递归神经元来说,经由它自己处理过的数据会变成自身下一次的输入,这个过程总共会进行t次。如下图所示,将递归神经元展开就相当于t个不同神经元串联起来,这种神经元的长处是能够产生一个更全面的输出结果。
领取专属 10元无门槛券
私享最新 技术干货