python机器·学习常见训练方法和代码理解
2020-07-03 15:50
47 查看
python机器·学习常见训练方法和代码理解
一个样本即单条数据所有属性以及其对应结果
一、批量梯度下降(Batch GD)
优点:
(1)一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行。
(2)由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。
缺点:
(1)当样本数目 mm 很大时,每迭代一步都需要对所有样本计算,训练过程会很慢。
从迭代的次数上来看,BGD迭代的次数相对较少。
一句话一次迭代是对所有样本进行计算
for 迭代次数 训练所有样本 ,改变参数
二、小批量梯度下降(Mini-batch GD)
优点:
(1)通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多。
(2)每次使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。(比如上例中的30W,设置batch_size=100时,需要迭代3000次,远小于SGD的30W次)
(3)可实现并行化。
缺点:
(1)batch_size的不当选择可能会带来一些问题。
一句话每次迭代 使用 ** batch_size** 个样本来对参数进行更新,一次性训练batch_size个样本,通过feed_dict放在预先设定的占位张量中。
for 迭代次数 for 样本数/batch_size 训练batch_size个样本,改变参数
三、 随机梯度下降(Stochastic GD)
优点:
(1)由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。
缺点:
(1)准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛。
(2)可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势。
(3)不易于并行实现。
一句话,训练一个样本变一次参数
for迭代次数 for 样本总数目 训练一个样本,改变参数
相关文章推荐
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(二)
- 机器学习实战_初识kNN算法_理解其python代码
- 机器学习实战python版第三章决策树代码理解
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(一)
- 读书笔记:机器学习实战(4)——章五的逻辑回归代码和个人理解
- 机器学习实战 第二章KNN(1)python代码及注释
- 机器学习实战-边学边读python代码(5)
- Effective Python:编写高质量Python代码的59个有效方法的学习笔记
- python3爬虫学习系列02-常见的下载和抽取网页的方法
- 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA
- 【Python学习系列十八】基于scikit-learn库逻辑回归训练模型(delta比赛代码3)
- 笨方法学习Python-习题38: 阅读代码
- 少说话多写代码之Python学习054——类的成员(生成器的方法和模拟生成器))
- python基础较差的我学习关于语义分割模型训练代码
- 机器学习之决策树(Decision Tree)及其Python代码实现
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
- Python机器学习应用 | 降维——NMF方法及实例
- 机器学习实战-AdaBoost-python代码
- Python学习总结:python基础(第2版)八皇后代码理解与总结
- 【机器学习实战学习笔记(1-2)】k-近邻算法应用实例python代码