机器学习-神经网络

积跬步以致千里,积怠惰以致深渊

注:本篇文章在整理时主要参考了 周志华 的《机器学习》。

主要内容

神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),神经网络就是通过这种方式来模拟人类的记忆。网络的输出则取决于网络的结构、网络的连接方式、权重和激活函数。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

神经元模型

神经网络的基础单元:神经元(neuron)

机器学习中的神经元接收来自 n 个其它神经元传递过来的输入信号,这些输入数据通过加权计算之后,神经元将会判断其是否超过神经元阈值。如果超过阈值,神经元将被激活,并通过“激活函数”(activation function)产生神经元的输出。

回顾我们在线性模型中学到的内容,其实每一个神经元就如同一个广义线性模型一般,激活函数就是广义线性模型中的联系函数。

激活函数

激活函数将输入值映射为输出值“0”或“1”,“1”对应于神经元兴奋,“0”对应于神经元抑制。阶跃函数具有不连续、不光滑等不太好的性质。因此常用Sigmoid函数作为激活函数进行非线性转化。

把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。

我们可以将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数,例如

相互(嵌套)代入而得。有效的神经网络学习算法大多以数学证明为支撑。

感知机与多层神经网络

感知机(perceptron)

感知机是早期的神经网络组合形式,由输入层和输出层两层神经元组成。因为感知机只拥有一层功能神经元(functional neuron)-输出层,只有输出神经元进行激活函数处理,其学习能力有限,在处理线性可分问题(如逻辑与、非、或运算)上效果很好,但在非线性可分问题(逻辑异或)上无法求得合适解。

参数学习

一般地给定训练样本集,权重wi(i=1,2,...,n)以及阈值θ可通过学习得到。阈值θ可看作一个固定输入为-1.0的“哑结点”(dummy node)所对应的连接权重wn+1,这样,权重和阈值的学习就可统一为权重的学习。感知机学习规则非常简单,对训练例(x,y),若当前感知机的输出为̂y,则感知机权重将这样调整:

其中η∈(0,1)称为学习率(learning rate)。若感知机对训练样例(x,y)预测正确,即为̂y=y,则感知机不发生变化,否则将根据错误的程度进行权重调整。

多层网络

要解决非线性可分问题,需要考虑使用多层功能神经元,即在输入输出层之外再加入中间层,这个中间层也叫隐含层。隐含层可以是一到多层,当隐含层很多时,这时的神经网络就是深度神经网络。

另外,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为“多层前馈神经网络”(multi-layer feedforward neural networks)

神经网络的学习过程就是根据训练数据对网络中神经元之间的权重以及每个功能神经元的阈值进行调整的过程;换言之,神经网络“学”到的东西,蕴涵在权重和阈值中。

多层网络的学习算法:误差逆传播算法(error BackPropagation,简称BP算法)

多层网络学习算法的目标是通过调整网络中的权重和阈值使得神经网络模型的泛化误差最小(其实每一种机器学习算法的中心思想都是一致的,这在我们模型评估与选择的学习中已经了解到了,设定一个模型/算法,用训练数据进行训练,然后用测试数据进行测试,以找到泛化性能最高的模型结构和参数)。

BP算法也是一样的,其目标是要最小化训练集 D 上的累计误差。对每个训练样例,BP算法执行以下操作:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元;最后根据隐层神经元的误差来对连接权和阈值进行调整。该循环过程重复进行直到达到停止条件(比如训练误差小于一定的值,或循环次数达到指定阈值)。

参数v的估计式
隐层到输出层的连接权

学习率η∈(0,1)控制着算法每一轮迭代中的更新步长,若太大则容易震荡,太小则收敛速度又会过慢。

如何设置隐含层神经元的个数仍是个未决问题,实际应用中通常靠“试错法”(trial-by-error)调整。

由于神经网络具有强大的表示能力,BP神经网络容易遭遇过拟合。目前有两种策略常用来缓解神经网络过拟合现象:

[1]早停(early stopping):将数据分成训练集和验证集的策略,训练集用来计算梯度、更新权值和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练。

[2]正则化(regularization):其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,这样的话训练过程将会偏好比较小的连接权和阈值,使网络输出更加“光滑”,从而对过拟合有所缓解。

参数学习的最优解

神经网络的学习算法是根据误差的导数来对参数进行调优的过程。在数学上,导数值代表的是一个函数的斜率,是一种倾向性,所以以目标的负梯度方向对参数进行调整会使得误差变小。

当梯度为零时,此时的误差达到了一个极值,即其误差函数值小于邻点的误差函数值。但是这个极值只可能是一个局部极小值,而并不一定是全局极小值。我们可以根据下图来理解一下局部极小和全局极小之间的关系:

实际上,我们所要计算的是全局最小值,在现实任务中,人们常采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:

[1]以多组不同参数初始化多个神经网络,取其中误差最小的解。类似于从不同出发点开始搜索最小值,得到的多个局部最小中最小的那个更可能是全局最小。

[2]“模拟退火”(simulated annealing)技术:每一步以一定概率接受次优解。每次以一定概率接受次优解有助于“跳出”局部极小,不过接受次优解的概率要随着时间的推移而逐渐降低,从而保证算法稳定。

[3]随机梯度下降。每次一个训练样本算完后就直接调整参数,而不要积累一定误差再调整,这样的好处在于在计算梯度时加入了随机因素,于是即便陷入局部极小点,它计算的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索了。

此外,遗传算法(genetic algorithms)也常用来训练神经网络以更好地逼近全局最小。需注意的是,上述用于跳出局部极小的技术大多是启发式,理论上尚缺乏保障。

注解

激活函数(activation function)

sigmoid函数(S曲线)用来作activation function:

 [1] 双曲函数(tanh)

双曲线函数是一类常见的三角函数(也叫圆函数)类似的函数。


双曲函数
双曲函数的导数

 [2] 逻辑函数(logistic function)

逻辑函数的导数

总结

1)神经元是神经网络中的基础元件,其接收来自其它神经元传递过来的输入信号,这些输入数据通过加权计算之后,神经元将会判断其是否超过神经元阈值。如果超过阈值,神经元将被激活,并通过“激活函数”(activation function)产生神经元的输出。

2)神经网络的学习过程就是根据训练数据对网络中神经元之间的权重以及每个功能神经元的阈值进行调整的过程。

3)对于分类问题,如果是2类,可以用一个输出单元表示(0和1分别代表2类);如果多余2类,每一个类别用一个输出单元表示。

4)神经网络训练过程中要加入适当的“意外”,以避免陷入局部最优。

5)终止条件:权重的更新低于某个阈值;预测的错误率低于某个阈值;达到预设一定的循环次数。

6)将许多个神经元按一定的层次结构连接起来,就得到了神经网络,而不同的神经元结构、不同的激活函数选择、不同的误差指标选择、不同的学习策略都会导致形成不同的神经网络。

7)深度学习的训练是基于“预训练+微调”的策略进行的。

8)我们可以将深度学习理解为进行“特征学习”的过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容

  • 一存二存,简下如一。 文/邓荣 编辑/邓荣 拍摄/小白,娟儿,高娃,珊珊
    邓荣阅读 259评论 0 0
  • 文/心理咨询 一般而言,恐惧是指对实体事物夸大的害怕,而对于虚拟或非实体事物夸大的害怕则称之为恐慌。 恐惧症的患者...
    安羽心理阅读 1,820评论 0 0