机器学习读书笔记(二)

本文介绍了机器学习的两个基础算法——感知机和自适应线性神经元(Adaline),阐述了它们的工作原理和权重更新过程。感知机通过单位跃阶函数进行预测,权重更新依赖于学习率和预测误差。Adaline则改进了权重更新,引入激活函数和损失函数,使得每个特征的权重更新更具区分性。此外,文章还提到了梯度下降法在权重更新中的应用,包括批量梯度下降和随机梯度下降,以及它们在不同数据规模下的适用情况。

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

介绍机器学习所有算法前,首先介绍两个最基本的算法,即 Perceptron 感知机 和adaptive linear neurons 自适应线性神经元。了解这两个基本算法有助于帮助理解后续的高级算法。
机器学习发源于对神经元的模仿,即神经元的反射过程:信号输入–>信号处理–>信号输出。
而一个巨大的飞跃,就是Frank Rosenblatt在1957年提出的在上述过程中加入自动学习过程,即 [ 信号输入–>信号处理–>信号输入权重更新 ] —> 信号输出。
自动权重更新过程的概念提出及实现是里程碑式的跨越,也让机器学习算法拥有了强大的适应数据的能力,因此才能逐渐发光发热。
下面可以从两个基础的机器学习模型来见证 权重更新 的过程,即Perceptron感知机 和 adaptive linear neurons 自适应线性神经元。

Perceptron 感知机

假设你有一个二维数据,包含100个样本量,表示为x1,x2,x3。。。x100,假设每个样本包含10个特征值,表示为x1,x2,x3。。。x10

1、首先给每一个特征值加一个权重w,即w1,w2,w3。。。w10,每一个w和每一个x的特征值一一对应,另外还有一个w0作为常数项(类比于一元线性回归方程)
2、Perceptron感知机的计算函数是unit step function(单位跃阶函数)。所谓unit step function,其实理解起来很简单,就是如果f(x)<0,输出-1,如果f(x)>0,输出1,即
f ( x ) = { 1 ,   i f   f ( x ) > = 0 − 1 ,   o t h e r w i s e f(x) = \begin{cases} 1,\,if \ f(x)>= 0 \\ -1, \, otherwise \\ \end{cases} f(x)={1,if f(x)>=01,otherwise

-1和1分别代表我们数据的标签label,,例如在预测患者是否吸烟中,1为吸烟,-1为不吸烟。
3、Perceptron感知机的权重更新是
Δ w = η ( y i − y i ^ ) x i \Delta w=\eta(y^i-\widehat{y^i})x^i Δw=η(yiyi )xi
其中eta( η \eta η)就是我们在机器学习中经常看到的专有名词:学习率。简单解释一下,首先初始权重w为非零值,然后在初始情况下,根据特征值xi乘以wi来计算 y i ^ \widehat{y^i} yi ,如果模型预测正确,即 y i ^ = y = 1 \widehat{y^i}=y=1 yi =y=1,则 Δ w = 0 \Delta w=0 Δw=0,不需要更新权重;假如我们预测错误,例如 y i ^ = 1 , y = − 1 \widehat{y^i}=1, y=-1 yi =1,y=1,则需要更新权重,而学习率 η \eta η是为了控制我们每次更新权重的大小,比如你可以选择一点一点的增加权重,也可以很多很多的更新权重。
4、不断循环更新权重这个过程,直至所有的预测都正确,然后权重更新停止,所有 Δ w = 0 \Delta w=0 Δw=0,就得到了最终的模型。
5、理解收敛过程(convergence)和迭代次数(epochs,iteration times)。以感知机为例,在第四点中,设想一下,假如数据是线性可分的,那么经过几次权重更新,就可以让 Δ w = 0 \Delta w=0 Δw=0,从而停止更新,得到最终模型。那么,假如数据是非线性不可分呢?那 Δ w \Delta w Δw将会一直变化,不停止。这个时候怎么办呢?有两种方法,一个是设置epochs,即最大的迭代次数,超过这个次数我就自动停止,二个是设置允许误差和阈值,达到了能容忍的误差我就停止。因此,设置epochs就是避免模型陷入循环中导致系统崩溃,而从初始状态到达到 Δ w = 0 \Delta w=0 Δw=0或者允许误差的过程就是convergence收敛。

理解上述过程非常重要。

当然,感知机是最基础的模型,有很多缺陷,例如由 Δ w \Delta w Δw的计算公式可以看出,它是在一个样本计算 Δ w \Delta w Δw,并且所有w增加同样的 Δ w \Delta w Δw(w += Δ w \Delta w Δw),然后再纳入下一个样本继续更新w,然后再纳入下下一个样本继续更新w。所有w的增加都相同,不会对权重大小进行区分,很粗糙,所以感知机目前基本不用了,但是它的原理很关键,尤其是 Δ w \Delta w Δw,机器学习的魅力就在于此。

adaptive linear neurons 自适应线性神经元

Bernard Widrow和Tedd Hoff在1960年提出了adaptive linear neurons模型(adaline),他们在Perceptron模型中改变了 Δ w \Delta w Δw的计算公式,加入了一个activation function,如下:
Δ w = η ∑ i ( y i − ϕ ( z i ) ) x i \Delta w=\eta \sum_{i} (y^i-\phi(z^i))x^i Δw=ηi(yiϕ(zi))xi
其中, z i = w T x i z^i=w^Tx^i zi=wTxi,而 ϕ z i \phi z^i ϕzi z i z^i zi经过计算后的结果。
可以看出来,activation function是加入了一个求和公式(平均误差和,SSE),并且改变了 y i ^ \widehat{y^i} yi

1、首先给每一个特征值一个初始非零w,计算实际结果与预计结果的差值error。其中,实际结果是wixi的真实值(有小数点,不经过跃阶),预计结果是-1和1。这样会产生一个error矩阵,且数字都不同。
2、把error和所有样本的特征值进行点积,乘以学习率,就得到 Δ w \Delta w Δw,这个 Δ w \Delta w Δw是一个矩阵,数字都不同。
3、error是一个矩阵,计算error的平方和,作为损失值(cost)。
4、重复上述1-3过程。

由此可以看出,adaline的思想优势在于两点,(1)在每一次迭代中,所有样本和所有特征值均纳入分析,(2)在每一次迭代中,每一个特征值的权重w更新值不同。

adaline模型给领域注入了全新的活力和强大的性能,极大的扩宽了应用场景。

gradient descent 梯度下降

梯度下降,听的很高级,其实就是,通过不断的权重更新过程,让损失函数(cost funtion)变得最小 / 最优。
对于一般大小的数据集,可以用批量梯度下降法(batch gradient descent);
对于大规模的数据集,内存一次性放不下这么大的数据,则使用随机梯度下降法(stochastic gradient descent),有些时候也称为在线梯度下降法(online gradient descent);
随机梯度下降法的另一个高级方法就是在线学习(online learning);
还有一种介于 batch 和 stochastic 的gradient descent方法,就是mini-batch learning(小批量学习)

批量梯度下降法:其实就是上面描述的adaline的过程,在每次迭代中,纳入所有的样本,进行权重更新。
Δ w = η ∑ i ( y i − ϕ ( z i ) ) x i \Delta w=\eta \sum_{i} (y^i-\phi(z^i))x^i Δw=ηi(yiϕ(zi))xi
随机梯度下降法:在整个样本中,随机抽取部分样本进行权重更新,注意,这个时候的权重更新方法不是adaline,而是类似perceptron。之所以去掉求和公式,是因为只是取整体的部分,所以不需要计算cost function(计算了也没用),所以就去掉了。当然,要理解随机梯度下降求出的结果,并不会是最小或者最优,而是在允许误差范围内的较好选择(也不排除碰巧是最小),相当于是牺牲了部分精度而追求速度。
Δ w = η ( y i − ϕ ( z i ) ) x i \Delta w=\eta (y^i-\phi(z^i))x^i Δw=η(yiϕ(zi))xi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clancy_wu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值