首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
线性回归模型
最小二乘法
梯度下降算法
线性回归算法实现
线性回归项目实战
Logistic回归
Softmax回归
梯度下降编码实现
项目实战二
决策树模型
生成决策树
切分特征的选择
分类树算法实现
绘制决策树
分类树项目实战
CART算法的改进
处理连续值特征
CART分类树与回归树
朴素贝叶斯模型
模型参数估计
朴素贝叶斯算法实现
叶斯分类器的项目实战
线性可分支持向量机
线性支持向量机
非线性支持向量机
SMO算法
kNN学习模型
kNN的一种实现:k-d树
K-Means
K-Means++
人造神经元
反向传播算法
当前位置:
首页>>
技术小册>>
机器学习算法原理与实战
小册名称:机器学习算法原理与实战
有很多机器学习模型的最优化参数不能像普通最小二乘法那样通过“闭式”方程直接计算,此时需要求助于迭代优化方法。通俗地讲,迭代优化方法就是每次根据当前情况做出一点点微调,反复迭代调整,直到达到或接近最优时停止,应用最为广泛的迭代优化方法是梯度下降(Gradient Descent)。图1-2所示为梯度下降算法逐步调整参数,从而使损失函数最小化的过程示意图。 ![](/uploads/images/20231211/e1bcfe623dc937717d5c2b2c93a320d6.png) 梯度下降算法常被形象地比喻为“下山”。如果你想尽快走下一座山,那么每迈一步的方向应选择当前山坡最陡峭的方向,迈一步调整一下方向,一直走到发现脚下已是平地。对于函数而言,梯度向量的反方向是其函数值下降最快的方向,即最陡峭的方向。梯度下降算法可描述为: ![](/uploads/images/20231211/8c5c4f668b5741726013afea6e5c256a.png) ![](/uploads/images/20231211/5059753cbf98b09b8af304afa3e70ca4.png) 另外,还需知道的是,图1-3中的损失函数对于梯度下降算法是很理想的,它仅有一个全局最小值点,算法最终将收敛于该点。但也有很多机器学习模型的损失函数存在局部最小值,其曲线如绵延起伏的山脉,如图1-4所示。 对于图1-4中的损失函数,假设梯度下降算法的起始点位于局部最小值点左侧,算法则有可能收敛于局部最小值,而非全局最小值。此例子表明,梯度下降算法并不总收敛于全局最小值。 本节我们讨论的线性回归的损失函数是一个凸函数,不存在局部最小值,即只有一个全局最小值,因此梯度下降算法可收敛于全局最小值。 ![](/uploads/images/20231211/b9278ac71161988b7a1f6b9c7941e6c7.png) 在1.2节中,我们计算出线性回归损失函数的梯度为: ![](/uploads/images/20231211/ff8bd7c33da465fcc7144a023b1a5b0d.png) ![](/uploads/images/20231211/1565133b943b4426e5ee3c142736e007.png) 随机梯度下降和小批量梯度下降 随机梯度下降和小批量梯度下降可以看成是对批量梯度下降的近似,算法流程基本相同,只是每步使用少量的训练样本计算梯度。 随机梯度下降是与批量随机下降相反的极端情况,每一步只使用一个样本来计算梯度。 随机梯度下降算法的梯度计算公式为: ![](/uploads/images/20231211/55f4d1a15da52acead3f790059365571.png) 因为每次只使用一个样本来计算梯度,所以随机梯度下降运行速度很快,并且内存开销很小,这使得随机梯度下降算法可以支持使用海量数据集进行训练。随机梯度下降过程中,损失函数的下降不像批量梯度下降那样缓缓降低,而是不断上下起伏,但总体上趋于降低,逐渐接近最小值。通常随机梯度下降收敛时,参数w是足够优的,但不是最优的。随机梯度下降算法的另一个优势是,当损失函数很不规则时(存在多个局部最小值),它更有可能跳过局部最小值,最终接近全局最小值。 随机梯度下降算法的一轮(Epoch)训练是指:迭代训练集中每一个样本,使用单个样本计算梯度并更新参数(一轮即m步),在每轮训练前通常要随机打乱训练集。 小批量梯度下降是介于批量梯度下降和随机梯度下降之间的折中方案,每一步既不使用整个训练集又不使用单个样本,而使用一小批样本计算梯度。 设一小批样本的数量为N,小批量梯度下降算法的梯度计算公式为: ![](/uploads/images/20231211/5f8612e5f94abcdae5cf8057b0408598.png) 小批量梯度下降同时具备批量梯度下降和随机梯度下降二者的优缺点,应用时可视具体情况指定N值。
上一篇:
最小二乘法
下一篇:
线性回归算法实现
该分类下的相关小册推荐:
Python机器学习基础教程(下)
Python合辑2-字符串常用方法
Python合辑12-面向对象
Python编程轻松进阶(三)
剑指Python(磨刀不误砍柴工)
Python合辑7-集合、列表与元组
Python3网络爬虫开发实战(下)
Python高性能编程与实战
Python高并发编程与实战
Python3网络爬虫开发实战(上)
Python甚础Django与爬虫
Python编程轻松进阶(五)