【CV】吴恩达机器学习课程笔记第17章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片
机器学习 | Coursera
吴恩达机器学习系列课程_bilibili
目录
- 17 大规模机器学习
- 17-1 学习大数据集
- 17-2 随机梯度下降
- 17-3 mini-batch 梯度下降
- 17-4 随机梯度下降收敛
- 17-5 在线学习机制
- 17-6 map-reduce和数据并行
17 大规模机器学习
17-1 学习大数据集
- 如果数据集中有1亿个样本,那么梯度下降算法的计算量会变得很大
- 如果训练效果(误差)的图像是像左边的坐标系一样的话,那么1亿个样本的数据集训练的效果很可能会比1000个样本的数据集好
- 而如果图像像右边的坐标系一样的话,1000个样本的数据集很有可能训练效果跟1亿个样本的数据集差不多
17-2 随机梯度下降
原来的梯度下降算法称为批量梯度下降算法(batch gradient descent),因为要对所有样本遍历
下面描述随机梯度下降算法(stochastic gradient descent)
以线性回归为例,代价函数为:Jtrain(θ)=12m∑i=1m(hθ(x(i))−y(i))2J_{\operatorname{train}}(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}Jtrain(θ)=2m1∑i=1m(hθ(x(i))−y(i))2
随机梯度下降的过程:
1.随机打乱所有数据(将所有样本重新随机排列)
2.重复上图中的循环(最外层的Reapt循环可能需要1到10次)
- 随机梯度下降算法的每一步怎么走取决于遇到的那个数据集,所以随机梯度下降算法向中心靠拢的过程是迂回的,不一定每次都是向中心靠拢的
- 而原来的梯度下降算法由于每一次都遍历了整个数据集,所以他每一次都是向中心靠拢的
每一次更新参数值都是根据一个样本来更新的,如果第一个样本和第二个样本很相近,那么第一个样本更新完的参数值到第二个样本的时候,第二个样本的cost函数(即更新参数那个公式里面减掉的那项)几乎接近于0了,那么就不会怎么更新参数值了
这个算法应该会先过拟合然后再逐渐的到好的拟合
17-3 mini-batch 梯度下降
- batch梯度下降算法中每一次下降用到了全部的m个样本
- 随机梯度下降算法中每一次下降用到了1个样本
- mini-batch梯度下降算法中每一次下降用到b个样本
- b称为mini-batch size,一般取值为10,一般取值范围为2到100
假设取值为b=10
算法如上图所示
17-4 随机梯度下降收敛
在随机梯度下降算法中,如何判断是否已经收敛?
- 在每次要更新θ\thetaθ之前,计算这个样本的cost函数
- 每经历了1000次循环迭代(遍历了1000个样本),就把这1000(也可以是前5000之类的)个样本的cost函数的平均值输出出来
上图是画出的图像
- 如果是像左上角的图像,那么说明算法正在收敛,如果用一个大的学习率α\alphaα,那么可能得到左上角蓝色的曲线,如果用小的,就可能是红色的曲线(收敛相对比较慢,但震荡的比较小)
- 右上角蓝色曲线表示取1000次输出一次cost函数的均值的曲线,红色曲线表示取5000次(曲线会比较平滑,但反应会比1000次的慢)
- 左下角蓝色曲线表示取1000次(看起来是震荡的没有收敛,但是如果换成取5000次可能就能看到红色的曲线:正在收敛,只是比较慢),但也有可能看到粉色曲线,表示函数没有在收敛
- 右下角的曲线表示函数是发散的,可能需要缩小学习率α\alphaα
一般学习算法中的学习率α\alphaα是一个常数,所以一般代价函数的值会在最小值附近震荡,但是如果想要更加靠近最小值的话,可以定义学习率α\alphaα为α=常数1 循环次数 +常数2 \alpha=\frac{\text { 常数1 }}{\text { 循环次数 }+\text { 常数2 }}α= 循环次数 + 常数2 常数1 ,让α\alphaα随着循环次数的增加而逐渐变小
由于这个方法需要再额外确定两个参数,所以这个方法用的很少,因为原来的结果已经足够满意了
17-5 在线学习机制
可以解决有连续的数据流,想要用算法从中学习的问题
以寄快递网站为例:用户在网站上用确定的目的地和始发地来查询寄件费用,有时用户会选择服务(得到一个正样本y=1y=1y=1),有时不会选择(得到一个负样本y=0y=0y=0),需要我们预测选择我们的服务的概率来给出一个合理的价格
每次多一个数据就更新一次参数值,跟之前的随机梯度算法很像
这样的优点是能不断适应和更新用户的选择变化来调整输出值,但只能适用于有很多用户数据流入的情况,如果用户数据很少,不能用这样的算法
上图解释了点击率预测问题(CTR)的实现
17-6 map-reduce和数据并行
假设用批量梯度下降算法
假设训练集中共有400个样本即m=400,那么梯度下降算法中就需要对400个数据进行求和
将训练集分为4份,用4台电脑分别求和第1-100、101-200、201-300、301-400的数据,求和完后再汇总到一台主机上对4个数据进行求和,再进行接下来的运算,这样运算效率就是原来的4倍
- 只要运算中有求和操作就可以用map-reduce来做
- map-reduce也可以应用于一台电脑上的多核cpu
- 一般向量化后直接调用线性代数库来运算,有些线性代数库在计算中会自动用map-reduce分配多核分工完成计算
【CV】吴恩达机器学习课程笔记第17章相关推荐
- 【CV】吴恩达机器学习课程笔记第10章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 10 应用机器学习的建议 10-1 决定下一步做什么 10 ...
- 【CV】吴恩达机器学习课程笔记 | 第1-2章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量 ...
- 【CV】吴恩达机器学习课程笔记第18章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 18 应用案例:照片OCR 18-1 问题描述与流程(pi ...
- 【CV】吴恩达机器学习课程笔记第16章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 16 推荐系统 16-1 问题规划 16-2 基于内容的推 ...
- 【CV】吴恩达机器学习课程笔记第11章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 11 机器学习系统设计 11-1 确定执行的优先级:以垃圾 ...
- 【CV】吴恩达机器学习课程笔记 | 第1-15章
目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量线性回归 2-2 代价函数 2-5 Batch 梯度下降算法 4 多变量线性回归 4-1 多特征 4-2 多元梯度下降法 4-3 多元梯 ...
- 吴恩达机器学习课程笔记(11-19章)
第十一章 11.1 确定执行的优先级 垃圾邮件分类器算法: 为了解决这样一个问题,我们首先要做的决定是如何选择并表达特征向量 x x x .我们可以选择一个由 100 100 100 个最常出现在垃圾 ...
- 吴恩达机器学习课程笔记(1-10章)
第一章 1.1 什么是机器学习? 定义: 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准. 解释: 计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经 ...
- 吴恩达机器学习课程笔记一
吴恩达机器学习课程笔记 前言 监督学习---`Supervised learning` 无监督学习---`Unsupervised learning` 聚类 异常检测 降维 增强学习---`Reinf ...
最新文章
- msys下产生dll的导入库
- 根号分治 ---- D. Mr. Kitayuta‘s Colorful Graph(根号均摊复杂度 + 数据结构维护)
- 有了这个科研思路,高水平SCI就在手边!
- Java 面试知识点解析(七)——Web篇
- 大数据WEB阶段(四)JavaScript
- SpringSecurity remeber功能源码跟踪
- 深度学习菜鸟的信仰地︱Supervessel超能云服务器、深度学习环境全配置
- EPS绘图常用快捷键及复杂台阶的画法
- 金格插件WebOffice2015使用体会
- day7_操作excel的三种方式
- python爬取拉钩python数据分析职位招聘信息
- 使用IPMI安装操作系统--超微服务器为例,以及ipmivier安装与使用
- 前端框架MVC和MVVM的理解
- winform语音播报
- simpletransformers的 single sentence classification和sentence pair classification
- CentOS SVN使用
- 地表最强! Unity 5.x 插件合集专用贴 - 更新日期 2015.12.06
- 第十四届蓝桥杯三月真题刷题训练——第 27 天
- java 数据源监控_spring boot基于DRUID实现数据源监控过程解析
- 曹操最出名的4首诗赏析
热门文章
- spring boot项目 中止运行 最常用的几种方法
- sql移除数据中的换行符和回车符
- kwargs.pop是什么意思
- 查看已安装tensorflow版本
- FPGA多功能应用处理器
- 寻找汽车连接的解决方案
- 深度人脸识别:CVPR2020论文要点
- 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置
- php将图片链接转换为base64编码文件流
- Android aar 代码查看