深度学习(一)

来源:互联网 发布:阿里云域名证书下载 编辑:程序博客网 时间:2024/05/18 03:03

深度学习

神经元介绍

基础知识

人工神经网络是在现代神经生物学研究基础上提出的模拟生物过程,反映人脑某些特性的的一种计算结构,是人脑神经系统的抽象、简化和模拟。在人工神经网络中,神经元常被称作”处理单元“,有时从网络的角度出发,也被称作”节点“。总而言之,人工神经网络是对生物神经元的一种形式化描述,对生物神经元的信息处理过程进行抽象,并用数学语言予以描述;对生物神经元的结构和功能进行模拟,并用模型图进行表达。

每个神经元都是一个多输入单输出的信息处理单元,模型如图1所示:
这里写图片描述

图1

oj=f(netj)=f(i=1nwijxi+bj)

其中oj表示第j个神经元的输出,netj表示净输入,bj为阈值,为方便表示,有时把bj作为x0w0j=1,若令X=(bj,x1,...,xn)Wj=(1,w1j,...,wnj),则netj=f(WTjX)f()表示激活函数,最常用的是单极性Sigmoid函数(简称S型函数),其函数本身以及导数都是连续的,且有f(x)=f(x)[1f(x)],因而在处理上十分方便。单极性S型函数定义为:

f(x)=11+ex
,有时也采用双极性S型函数(双曲正切)等形式:
f(x)=1ex1+ex
,两者的函数形式如图2所示。

这里写图片描述

图2

神经元的学习方式

人工神经网络的功能性特征由其连接的拓扑结构和突触连接强度(即连接权值)决定,神经网络的全体连接权值可用矩阵W表示,它整体反映了神经网络对于所解决问题的知识存储,神经网络能够通过对样本的学习训练,不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。这一过程称为神经网络的学习训练,本质就是连接权值的动态调整。

神经网络的学习方式有很多种,例如Hebb学习规则、离散感知器学习规则、连续感知器学习规则、最小均方学习规则等。以比较常用的连续感知器学习规则为例进行介绍。

连续感知器学习规则

连续感知器学习规则是一种有监督学习方式,在学习过程中需要不断地给网络成对地提供一个输入模式和一个期望网络正确输出的模式,将网络的实际输出与期望输出进行比较,根据差错的方向和大小按一定的规则调整权值,使下一步网络的输出更接近于期望的结果。

dj是期望输出,oj是实际输出,Ej=12(djoj)2=12[djf(WTjX)]2定义为神经元输出与期望输出的平方误差。由于X已知,Ej其实是关于Wj的多元函数,欲通过调整WjWj=Wj+ΔWj)使Ej的变得最小,根据梯度下降原理可知,调整量为ΔWj=ηEj,比例系数η 是正常数,Ej的梯度为

Ej=(djoj)f(WTjX)X

带入ΔWj可得权值的调整计算式为:

ΔWj=η(djoj)f(netj)X.

深度学习

深度网络

与浅层网络相比,深度网络包含更多的隐藏层,在深度网络中,我们可以计算更多复杂的输入特征。由于每一个隐藏层可以对上一层的输出进行非线性变换,因此深度网络拥有比浅层网络更加优异的表达能力,例如可以学习到更加复杂的函数关系。

虽然人们很早就发现了深度网络理论上的简洁性和较强的表达能力,但在训练深度网络方面缺没有取得多少进展,这是由于研究者们主要使用的学习算法是:首先随机初始化深度网络的权重,然后使用有监督的目标函数在有标签的训练集(x1,y1),...,(xn,yn)上进行训练,例如通过梯度下降(Gradient Descent)法训练参数。但是这种方法通常不是十分有效。主要由于通常难以获得大量有标签的数据集,来拟合复杂模型的参数,数据量过小时,因为深度网络强大的表达能力而导致过拟合。同时,对深度网络而言,在训练参数时非常容易陷入局部极值,所以使用梯度下降法并不理想。另外,随着网络深度的增加,在误差反向传播时,梯度会急剧减少,导致误差对最初的几层的影响非常小,这种问题通常被成为“梯度扩散”。

卷积神经网络

卷积神经网络(Convolutional Neural Network, CNN)通常由一个或多个卷积层连接标准的全连接网络(如BP网络)组成,CNN除了可以通过局部连接充分利用输入的2D数据的结构,而且相比于同样深度的全连接网络参数更少更容易训练。以像素为32x32的图片作为输入,识别出图片中内容,如下图所示。
这里写图片描述

图3

CNN的大致结构如下图所示
这里写图片描述

图4

CNN通常包括输入层、卷积层、线性整流层、池化层和全连接层:
输入层:每张图片以32x32x3的矩阵表示,这三个元素分别表示图像的宽度、高度和RGB值。
卷积层:选取不同的卷积核扫过输入层再加上偏置,计算形式如下图
这里写图片描述
图5

图中左侧蓝色矩阵是输入图像,对每个RGB通道用不同的卷积核(中间红色矩阵)进行卷积运算(对应元素相乘后求和),偏置为0。

卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。

线性整流层:激活函数使用线性整流(Rectified Linear Units, ReLU),f(x)=max(0,x)

池化层:在卷积之后通常会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。

全连接层:与传统神经网络相同,该层的神经元与前一层的输出全部相连。

下图展现了CNN的一种应用场景 ,与传统意义上的CNN不同,图中使用的是细微VGG网络,左侧是输入图片像素值,右侧是对不同结果的打分。
这里写图片描述
图6

0 0
原创粉丝点击