自适应线性神经元和梯度下降

本文介绍了自适应线性神经元(Adaline)算法,重点讲述了其与感知机的区别,即权重更新基于线性激活函数而非单位阶跃函数。通过定义损失函数并利用梯度下降法进行优化,实现权重的调整。详细解析了损失函数的求导过程及权重更新规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、自适应线性神经元和学习积聚

  这一节我们会了解单层神经网络的一种形式:自适应线性神经元(Adaline)

  这个算法的有趣之处在于它阐述了定义和最小化损失函数的关键概念,这位后面许多机器学习分类算法,如逻辑回归,支持向量机和回归模型等打下了基础。

自适应线性神经元和感知机的关键差别在于权重的更新是根据线性激活函数而不是感知机里的单位阶跃函数。在Adaline中,这个线性激活函数ϕ(z)\phi(z)ϕ(z)仅仅是净输入的确认/识别函数:
ϕ(wTx)=wTx \phi(\bm{w}^{T}\bm{x}) = \bm{w}^T\bm{x} ϕ(wTx)=wTx
同时它也用来训练权重,我们还是会用一个阀值函数来做出最后的预测,有点像我们早先说过的单位阶跃函数那样。

Adaline和感知机的主要区别,可以用下面这张图表示:
在这里插入图片描述

二、通过梯度下降最小化损失函数

监督机器学习算法的核心要素之一,就是目标函数,这也是整个机器学习过程中不断被优化的。这个目标函数也就是损失函数,我们经常要使它最小化。

比如在Adaline中,我们可以定义一个损失函数JJJ来衡量预测值和真实值之间的均方误差和(SSESSESSE):
J(w)=12∑i(y(i)−ϕ(z)(i))2 ϕ(zi)=∑iwjxjiJ(\bm{w}) = \frac{1}{2} \sum_i(y^{(i)}-\phi(z)^{(i)})^2\\ ~\\ \phi(z^i) = \sum_i w_jx_j^i J(w)=21i(y(i)ϕ(z)(i))2 ϕ(zi)=iwjxji
这个12\frac{1}{2}21加上纯属简便,这样更容易推导出梯度。用这样一个连续的线性函数相比于单位阶跃函数,最大的好处是损失函数可微分。另一大好处是函数是凸的(这里留备注)。这样我们就可以用一个简单而强大的优化算法梯度下降来找到使损失函数最小化的权重。

我们可以用下山的比喻来解释梯度下降,就像下山要达到最低点才停止一样。每次迭代,我们都往坡度的反方向前进一步,具体的步长由计算出的学习率决定,也就是梯度的斜率:
在这里插入图片描述
运用梯度下降,我们可以通过往梯度函数J(w)J(\bm{w})J(w)变化值∇J(w)\nabla J(\bm{w})J(w)的反方向前进一步,来更新权重。
w:=w+Δw\bm{w} := \bm{w} + \Delta \bm{w}w:=w+Δw
这里的权重增加值Δw\Delta \bm{w}Δw是负梯度和学习率η\etaη的乘积:
Δw=−η∇J(w) \Delta \bm{w} = -\eta \nabla J(\bm{w}) Δw=ηJ(w)
所以上式也可以这么写:
w:=w−η∇J(w) \bm{w} := \bm{w} - \eta \nabla J(\bm{w}) w:=wηJ(w)
为了计算损失函数的梯度,我们要对其求每个权重wjw_jwj的偏导:
∂J∂wj=−∑i(y(i)−ϕ(z)(i))xj(i) \frac{\partial J}{\partial w_j} = -\sum_i (y^{(i)} - \phi(z)^{(i)})x_j^{(i)} wjJ=i(y(i)ϕ(z)(i))xj(i)
这样我们把权重增加值写为:
Δwj=−η∂J∂wj=η∑i(y(i)−ϕ(z)(i))xj(i) \Delta w_j = -\eta \frac{\partial J}{\partial w_j} = \eta \sum_i (y^{(i)} - \phi(z)^{(i)})x_j^{(i)} Δwj=ηwjJ=ηi(y(i)ϕ(z)(i))xj(i)
这样,我们就同时更新了所有的权重,Adaline的学习规则就变成了:
w:=w+Δw \bm{w} := \bm{w} + \Delta \bm{w} w:=w+Δw


下面是偏导的求导过程:
∂J∂wj=∂∂wj12∑i(yi−ϕ(zi))2=12∂∂wj∑i(yi−ϕ(zi))2=12∑i2(yi−ϕ(zi))∂∂wj(yi−ϕ(zi))=∑i(yi−ϕ(zi))∂∂wj⟮yi−∑i(wjxji)⟯=∑i(yi−ϕ(zi)(−xji)=−∑i(yi−ϕ(zi))xji \frac{\partial J}{\partial w_j} = \frac{\partial}{\partial w_j} \frac{1}{2} \sum_i (y^i - \phi(z^i))^2 \\ = \frac{1}{2} \frac{\partial}{\partial w_j} \sum_i (y^i - \phi(z^i))^2 \\ = \frac{1}{2} \sum_i 2(y_i - \phi(z^i)) \frac{\partial}{\partial w_j}(y^i - \phi(z^i)) \\ = \sum_i(y^i - \phi(z^i)) \frac{\partial}{\partial w_j}\bm{\lgroup} y^i - \sum_i(w_jx_j^i) \bm{\rgroup}\\ = \sum_i (y^i - \phi(z^i)(-x_j^i)\\ = -\sum_i(y^i - \phi(z^i))x_j^i wjJ=wj21i(yiϕ(zi))2=21wji(yiϕ(zi))2=21i2(yiϕ(zi))wj(yiϕ(zi))=i(yiϕ(zi))wjyii(wjxji)=i(yiϕ(zi)(xji)=i(yiϕ(zi))xji

尽管Adaline看起来很像感知机,但是要注意这里ϕ(zi)\phi(z^i)ϕ(zi)zi=wTxiz^i=\bm{w}^T \bm{x}^izi=wTxi是实数,而不是分类标签值。而且,权重的更新是基于整个训练集的所有样本,而不是每个样本的递增,这也是这个方法被称为分批梯度下降的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值