在人工智能深层神经网络一系列惊人的学习中,从识别系统和推理逻辑图像中,随着任务和网络架构变得越来越复杂,神经网络在越来越多的现实世界应用中的使用,了解其原理就越来越重要。
实际上,深度学习(Deep Learning)就是现代人工智能的核心技术。谷歌、微软与百度是现代人工智能领域的“三巨头”。它们拥有海量数据以及DNN技术,比如:2012年11月,微软(中国)在天津的一次会议上公开演示了一个全自动的“同声传译”系统,讲演者用英文演讲,后台的计算机一气呵成,完成语音识别、英中机器翻译,以及中文语音合成,效果非常流畅。微软使用的就是深度神经网络技术。
金准数据将通过两篇连载报告带您了解神经网络和深度学习的关系。
一、感知器与神经元
1、感知器(Perceptrons)
感知器工作原理:接收一系列二进制输入,经过特定的规则计算之后,输出一个简单的二进制。
计算规则:通过引入权重(weights)表示每个输入对于输出的重要性,则有
记w⋅x=∑jwjxj,b=-threshold,则有
其w是权重,b是偏差。
2、 Sigmoid神经元(Sigmoid Neurons)
为了使学习变得可能,需要具备的【学习特征】:权重或偏差有较小的变化,导致输出也有较小的变化。如下图所示:
感知器网络存在的缺陷是:某个感知器较小的权重或偏差变化,可能导致输出在0与1之间进行翻转。所以包含感知器的网络不具备【学习特征】。
幸运的是:Sigmoid神经元具有此【学习特征】,即其较小的权重或偏差变化,导致其输出变化较小。
Sigmoid函数:
Sigmoid神经元输出:
感知器与sigmoid神经元的差别:
· 感知器只输出0或1
· sigmoid神经元不只输出0或1,而可输出[0,1]之间的任意值
二、神经网络架构
1、 手写数字识别
训练图像大小为28x28,每个训练图像有一个手写数字。
在输出层,如果第一个神经元被激活(即其输出接近1),则此网络认为此手写数字为0;如果第二个神经元被激活(即其输出接近1),则此网络认为此手写数字为1;其它以此类推。
2、算法描述
设x表示训练图像,则x是一个28x28=784维列向量。
表示输入图片x是数字6 。
需要寻找一个算法来发现w和b,使其输出接近标签值,为了量化接近程序,定义如下成本函数:
此成本函数中,w和b为变量
注:hidden layers和output layer中的每个神经元对应一个组w、b。
(1)学习目标
如何找到满足要求的w和b:答案是梯度下降法(Gradient Descent):
· 最小化二次成本函数
· 检测分类的准确性
学习目标:在训练神经网络中,找到使二次成本最小的w和b的集合。
(2) 梯度下降更新规则
此规则用于在神经网络中学习参数w和b
(3)算法推导(梯度下降法: gradient descent)
要求极小值,先讨论具有2个变量的简单情况,然后再推广:
为梯度向量,则有:
总之,梯度下降法是:重复计算梯度,然后向相反的方向移动(即下坡最快最陡的方向),如下图所示:
上面讨论了只有两个变量的情况,现在推广到m个变量的情况,对应公式如下:
(4) 随机梯度下降法(Stochastic Gradient Descent)
为不减少计算量,把n个学习样本分成很多组,每组有m个学习样本,每次只计算一个组,则有如下推导:
则w和b的更新规则为:
注:如果m=1,则为在线学习。
(5) w和b的数量
对于hidden layers和输出层的神经元,每个神经元对应一个w向量和一个b,w向量的维数是其输入神经元的数量。第一层神经元没有w和b,其值直接输出。
第一层就表示原始图像数据,这些数据不经任何处理,直接作为Xj参与第二层的运算,第二层首先基于每个Xj,计算其z(z=wx+b),然后计算出sigmoid(z),以此类推。直到最后一层,利用BP算法,先计算最后一层w和b的梯度,然后以此向前,直到计算出第二层的梯度为止。
三、BP算法(反向传播算法)
BP(Backpropagation Algorithm) :是一个计算成本函数梯度的算法。
需要基于每个训练样本计算每一层的w和b的梯度,从而更新每一层的w和b。
BP的真正目标:是计算每个样本的偏导数:
(1) 定义标记符号
则有激活值的如下公式:
函数向量化有如下形式:
即函数对向量的每个元素分别计算,然后生成对应的向量。
则上面的函数向量表示为:
2、 公式推导过程
(1) 计算激活值
(2)最后一层(L层)的二次成本函数
(3) 单个训练样本(x)的二次成本函数
(4)定义误差
(5) 定义输出层误差
(6)求最后一层(L层)激活值的偏导数
(7)根据最后一层的误差计算前一层的误差
(8) 计算目标值
(9)BP的四个基本方程式
3、 证明四个基本议程式
(1)证明BP1
(2) 证明BP2
4、 BP计算过程
四、 SGD(随机梯度下降)计算过程