我的位置:

金准数据 神经网络与深度学习研究报告(上)

发布人:行业研究

在人工智能深层神经网络一系列惊人的学习中,从识别系统和推理逻辑图像中,随着任务和网络架构变得越来越复杂,神经网络在越来越多的现实世界应用中的使用,了解其原理就越来越重要。

实际上,深度学习(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(随机梯度下降)计算过程