购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.4 学习模型参数

3.4.1 梯度下降法

感知机模型可以调节的参数是权重和偏置。对于简单的问题,这些参数可以人工设置,比如求解逻辑与、逻辑或运算的感知机,如图3.3所示。

052-1

图3.3 计算逻辑与运算和或运算的感知机

对于复杂的模型,我们需要能够从训练样本数据中自动学习到参数的取值。假设对于输入{x 1 ,…,x N },感知机的实际输出值是y,而期望的输出目标值是ŷ。学习的目标就是通过调整参数w和b,使得实际输出值y和目标值ŷ之间的差距极小化。衡量两者之间差异的方式有很多种,比如,差的绝对值,也就是绝对误差|y−ŷ|;或者差的平方,也就是平方误差(y−ŷ) 2 。这里不展开讨论各种误差函数的定义,为了数学计算方便,主要是便于求导计算,采用平方误差,而且给它加上一个系数。误差定义方式如下。

052-2

可以看到,误差E是y的函数,因此它也是w和b的函数。如何调整自变量的值,才能使得函数值更小呢?我们采取一种贪婪的、渐进的方法,每次观察当前取值周围局部的情况,做一个小调整,使得函数值小一些,然后不断重复这个过程,直至达到函数的极小值,或者足够小到我们认为可以停止学习。这个过程像下山,也许我们无法宏观地观察整个地面的起伏变化,但是选择沿着眼前的下坡路走下去,有很大希望能够走向谷底。我们称之为梯度下降法。如图3.4所示,为了逼近最小值,要沿着与导数相反的方向前进,对于多维函数,就是要沿着与梯度(偏导数)相反的方向前进。因此,称为 梯度下降法 。可以把它直观地想象为一个小球沿着山坡向下滚动,从而寻找到谷底最低的地方。

053-1

图3.4 梯度下降法在一维函数上的示意图

3.4.2 DeIta法则

下面来计算误差E对权重w i 的偏导数,这时我们可以理解为什么要求激活函数σ是可导的,否则我们无法计算导数。

053-2

上面公式中有一个常数α,它是用来调整每次微调参数的步长,叫作学习率。通常它是一个比较小的正数,比如0.01。从计算结果可以看出,权值的更新是符合赫布法则的。当输入和输出要同时激活的时候,输入x i 是正值。由于我们希望输出增大,(y−ŷ)是负值,而激活单数是单调增函数,导数σ′总是正值,所以权值增量Δw i 是正值,也就是说两个激活神经元之间的连接权重会增加。反之,如果输入/输出不同时激活,权值的更新量就会是负值。由此可见,通过梯度下降法得到的感知机权值更新策略和赫布法则是相似的,这从侧面印证了用赫布法则来解释神经突触塑造过程的合理性。

当激活函数是Sigmoid函数时,我们可以利用Sigmoid函数导数的特殊性质,进一步简化权值更新公式。

Δw i =α·(y−ŷ)·y·(1−y)·x i

无论我们采取哪一种激活函数,由于激活函数的导数σ′总是正值,即使将它省去也不会影响权值调整的方向。这样我们就得出了更加简洁的 Delta法则

Δw i =α(ŷ−y)x i

与早期感知机采用的赫布法则相比,Delta法则或者梯度下降法采用了一种更为一般化的数值优化方法,可以推广到更加复杂的模型,比如人工神经网络。只要我们把输出定义为输入和权重的函数,就可以进一步得到误差也是输入和权重的函数,然后就可以对权重求偏导数,采取梯度下降法,调整权重以减小误差。这是求解很多机器学习模型的共同思路。 lWbg5HjfXndi9qBU76NBR+4fs7MVsNY4G9haOtM2OaRlJhHHyngAhwnBUYiXjGIe

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开