从零开始机器学习-17 神经网络的训练过程

本文由 沈庆阳 所有,转载请与作者取得联系!

损失函数

在神经网络训练的时候往往要确定目标函数,也就是损失函数。在训练的时候,损失函数的选择有很多种,最常用的则是均方误差(mean-square error, MSE)。
假定一个多分类问题,其输出的类别有N个类别,我们希望每个输出都是以概率的形式进行输出。则在所有输出中得分最高的也就是最有可能的类别,因此则需要在输出层使用Softmax函数。
假设我们有一个数组,Vi表示数组中中的第i个元素,那么该元素的Softmax值就是:

Softmax函数定义

也就是说,Softmax值就是该元素的指数,与所有元素指数和的比值。
理解了Softmax的定义之后,我们的输出用Softmax函数来表示就是:
用Softmax表示的输出

通过Softmax表示的输出之后,输出就被转换成了概率值。对于以Softmax作为输出层的神经网络模型来说,使用交叉熵(Cross-entropy)作为损失函数最为合适。
交叉熵损失函数

逆误差传播

在训练多层神经网络的时候,简单感知机的训练方法不再适用,从而需要更加强大的算法——逆误差传播算法(Error BackPropagation,BP)。BP算法在神经网络的训练中被广泛使用,其不仅适用于多层前馈网络,同样也适用于如递归神经网络等各种其他类型的神经网络。BP网络即使用BP算法训练的多层前馈神经网络。

逆误差传播算法的推导

假设训练集D={(x1,y1),(x2,y2)....(xm,ym)}。且定义如下形式的多层前馈网络:

多层前馈神经网络

其中,输入层的权重用ν表示,隐含层到输出层的权重用ω表示。
则,第h个隐藏层神经元的输入为:
第h个隐藏层神经元的输入

则,第j个输出神经元的输入为:
第j个输出神经元的输入

假定隐藏层和输出层的神经元都使用S函数。
则上述神经网络对于训练(xk,yk)的输出为:
训练样本(xk,yk)的输出

其在训练例的均方误差为:
均方误差

在上述网络中,一共有d个输入层,q个隐藏层和l个输出层。则,输入层到隐藏层之间有d * q个权值待定,隐藏层到输出层有q * l个权值待定,隐藏层有q个阈值待定,输出层有l个阈值待定。因此,该神经网络中一共有(d+l+1) * q + l个需要确定的参数。 由于逆误差传播是一个迭代的学习算法,因此在每轮迭代的过程中使用广义的感知机学习规则来更新参数。对于参数ν,其更新的公式为:
参数更新公式

逆误差传播算法使用梯度下降策略,其参数调整方向为目标的负梯度方向。对于误差Ek、学习速率η,有:

逆误差传播,顾名思义,其ωhj线影响到了第j个输出层的神经元的输入值βj,而后再传播影响到输出值,最后再影响到其误差Ek
由于:


将上式带入:

得:

类似可以推导出其他待定的参数。

逆误差传播算法的描述

让我们先来看一下逆误差传播算法的描述:


算法输入:训练集D;学习速率η


算法过程:
1:在(0,1)区间内随机初始化网络中的所有连接权值和阈值
2:repeat
3:    for all (xk,yk) ∈ D do
4:        根据当前参数和公式计算输出
5:        计算输出层神经元的梯度项gj
6:        计算隐藏层神经元的梯度项eh
7:        计算和更新连接权值ωhj、νih和阈值θj γh
8:    end for
9:until 达到停止训练的条件


算法输出:连接权值与阈值确定的多层前馈神经网络


逆误差传播算法中,对于每一个训练样本,其算法先初始化随机的权值和阈值参数,然后将相关的输入示例提供给输入层神经元,并一层一层将信号向前传递(输入层->隐藏层->输出层),直到输出层产生输出值。再根据输出值计算输出等的误差,而后将误差逆向传播到隐藏层的神经元,最终根据隐藏层神经元计算得来的误差来调整连接的权值和神经元的阈值。BP算法不断地迭代循环执行上述步骤,直到达到训练停止的条件。对于上述算法的描述,我们回到前面的网络图上去查看会更加直观。

BP算法的相关问题

BP算法的目标是最小化训练集上的累积误差。由于每次迭代仅根据一个输入样本更新,因此上述BP算法也被称为“标准BP算法”。如果推导出的基于累计误差最小化的更新规则便是“累积误差逆传播算法(Accumulated Error Backpropagation)”,又称累积BP算法。
与累积BP算法相比,标准BP算法每次更新只针对单个样本,由此导致模型的参数更新十分频繁,从而对不同的样例处理的时候可能会导致不同的更新相互抵消的情况。标准BP算法为了达到最小的累计误差则需要更多次数的迭代。
而累积BP算法不是针对单个样本,而是直接针对累计误差最小化,从而在算法对整个数据集进行遍历之后再进行一次参数的更新,由此算法更新参数的频率更小。
但我们并不能片面的评价标准BP算法与累积BP算法孰优孰劣。因为在累计误差下降到一定地步的时候,进一步降低累计误差将会很慢。此时累积BP算法的计算速度就远不如标准BP算法的计算速度了。这种情况在数据集庞大的时候更为突出。
事实证明,神经网络算法的表示能力十分强大。只要包含足够多的神经元的隐藏层,多层前馈网络就可以以任意精度逼近任意复杂度的连续函数。但是足够多的隐藏层的个数具体为多少,仍不可通过计算得到,在实践的过程中只能通过不断试验来调整。


这里提供一个可以供大家通过调整隐藏层来找到合适参数的地方,Tensorflow Playground可以让我们选择学习速率,激活函数,正则化方法,λ等参数。在浏览器中实时构建自己的神经网络,并且对指定的数据集进行训练,观察训练的结果。
通过在TensorFlow Playground中玩耍,我们会加深对深度学习的相关概念的理解。
PS. Tensorflow Playground使用TensorFlow.JS搭建。
http://playground.tensorflow.org

Tensorflow Playground


上文提到,多层前馈网络具有很强的表示能力。也正是由此,其强大的表示能力会造成神经网络的过拟合。对于解决过拟合的策略,同样可以使用早停法和正则化。
添加了正则化之后的误差目标函数表示如下:


添加正则化后误差目标函数

全局最小与局部极小

神经网络的训练过程其实质上就是在参数空间内,寻找最优解的过程,也就是找到合适的参数使得误差E最小。

全局最小与局部极小

对于权值ω* 和阈值θ*,若存在ε>0使:

有E(ω;θ)≥E(ω**)成立,则(ω**)为局部极小解。若对任意(ω;θ)均有E(ω;θ)≥E(ω**)成立,则(ω**)为全局最小。
从上图中,我们可以看出,全局最小和局部极小均属于参数空间内梯度为0的点,其与函数的极小值和最小值的定义类似,全局最小一定是局部极小。使用梯度下降法来寻找最优参数的方法就是寻找全局最小的过程。
在寻找全局最小的过程中,如果沿着负梯度的方向,找到了梯度为0的点,并且只找到了一个这样的点。那么便称这个点为全局最小。但是如果我们在误差函数上找到了多个局部极小,并且不能保证找到了全局最小,那么便称参数寻优的过程陷入了局部极小。
对于解决陷入局部极小,有如下几种方式:
1、使用多组不同的数值初始化多个神经网络,在对神经网络训练之后,取其中误差最小的作为最优解。
2、使用随机梯度下降算法。
3、使用遗传算法来训练神经网络,从而更好地逼近最优解。

觉得写的不错的朋友可以点一个 喜欢♥ ~
谢谢你的支持!

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

推荐阅读更多精彩内容