本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片
机器学习 | 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章相关推荐

  1. 【CV】吴恩达机器学习课程笔记第10章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 10 应用机器学习的建议 10-1 决定下一步做什么 10 ...

  2. 【CV】吴恩达机器学习课程笔记 | 第1-2章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量 ...

  3. 【CV】吴恩达机器学习课程笔记第18章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 18 应用案例:照片OCR 18-1 问题描述与流程(pi ...

  4. 【CV】吴恩达机器学习课程笔记第16章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 16 推荐系统 16-1 问题规划 16-2 基于内容的推 ...

  5. 【CV】吴恩达机器学习课程笔记第11章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 11 机器学习系统设计 11-1 确定执行的优先级:以垃圾 ...

  6. 【CV】吴恩达机器学习课程笔记 | 第1-15章

    目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量线性回归 2-2 代价函数 2-5 Batch 梯度下降算法 4 多变量线性回归 4-1 多特征 4-2 多元梯度下降法 4-3 多元梯 ...

  7. 吴恩达机器学习课程笔记(11-19章)

    第十一章 11.1 确定执行的优先级 垃圾邮件分类器算法: 为了解决这样一个问题,我们首先要做的决定是如何选择并表达特征向量 x x x .我们可以选择一个由 100 100 100 个最常出现在垃圾 ...

  8. 吴恩达机器学习课程笔记(1-10章)

    第一章 1.1 什么是机器学习? 定义: 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准. 解释: 计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经 ...

  9. 吴恩达机器学习课程笔记一

    吴恩达机器学习课程笔记 前言 监督学习---`Supervised learning` 无监督学习---`Unsupervised learning` 聚类 异常检测 降维 增强学习---`Reinf ...

最新文章

  1. msys下产生dll的导入库
  2. 根号分治 ---- D. Mr. Kitayuta‘s Colorful Graph(根号均摊复杂度 + 数据结构维护)
  3. 有了这个科研思路,高水平SCI就在手边!
  4. Java 面试知识点解析(七)——Web篇
  5. 大数据WEB阶段(四)JavaScript
  6. SpringSecurity remeber功能源码跟踪
  7. 深度学习菜鸟的信仰地︱Supervessel超能云服务器、深度学习环境全配置
  8. EPS绘图常用快捷键及复杂台阶的画法
  9. 金格插件WebOffice2015使用体会
  10. day7_操作excel的三种方式
  11. python爬取拉钩python数据分析职位招聘信息
  12. 使用IPMI安装操作系统--超微服务器为例,以及ipmivier安装与使用
  13. 前端框架MVC和MVVM的理解
  14. winform语音播报
  15. simpletransformers的 single sentence classification和sentence pair classification
  16. CentOS SVN使用
  17. 地表最强! Unity 5.x 插件合集专用贴 - 更新日期 2015.12.06
  18. 第十四届蓝桥杯三月真题刷题训练——第 27 天
  19. java 数据源监控_spring boot基于DRUID实现数据源监控过程解析
  20. 曹操最出名的4首诗赏析

热门文章

  1. spring boot项目 中止运行 最常用的几种方法
  2. sql移除数据中的换行符和回车符
  3. kwargs.pop是什么意思
  4. 查看已安装tensorflow版本
  5. FPGA多功能应用处理器
  6. 寻找汽车连接的解决方案
  7. 深度人脸识别:CVPR2020论文要点
  8. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置
  9. php将图片链接转换为base64编码文件流
  10. Android aar 代码查看