机器学习-cs229-线性回归part one

  • 任务:预测房价
    • 损失函数cost function
    • 线性回归的逻辑:
    • 梯度下降法
      • 房价函数的梯度下降式子:
        • 学习率learning rate:参数 α
      • 求J(θ)的极小值
        • 方法一:BDG 批量梯度下降,计算整个数据集的梯度
        • 方法二:随机梯度下降法

任务:预测房价

价格= F(面积,床数)

目标函数:

向量表示:

损失函数cost function

我们最终确定的线性函数 h(x) 上每个x值对应的 h(x) 值 & 真实的y值之间的差别,而差别我们用平方差来表示。

  • 注:
    – 1/2是为了后续求导时能够约掉平方,对于结果来说无影响
    – 这里针对其中一个i的情况,而所有情况是1/2m(如果有m个房间)
    – 为什么要用平方?

线性回归的逻辑:

要确定参数θ—》就要确定使得J(θ)最小的θ,让代价函数越低,越靠近样本值----》求J(θ)的极小值----》方法:梯度下降法

梯度下降法

  • 梯度:多元函数的导数
    表示:
  • 梯度下降的式子

    这里梯度前面有一个参数η,意义是:沿η率的梯度下降达到更新后的值
    -图片表示:

房价函数的梯度下降式子:

学习率learning rate:参数 α

是对梯度做调整,防止步长过大或者过小,错过极小值
由于h(x)由参数θ和x决定,在损失函数中由于

求J(θ)的极小值


所以原来的梯度下降的式子可以写成:

当梯度下降表达式稳定收敛时,我们才能求出对应的参数θ值。
梯度下降算法主要有三种变种,主要区别在于使用多少数据来计算目标函数的梯度。 不同方法主要在准确性和优化速度间做权衡。

方法一:BDG 批量梯度下降,计算整个数据集的梯度

  • 优点:
    对于凸目标函数,可以保证全局最优; 对于非凸目标函数,可以保证一个局部最优

  • 缺点:
    速度慢; 数据量大时不可行; 无法在线优化(即无法处理动态产生的新样本)

单变量示例:

多变量示例:

在多变量里,我们看到一个3维的图,这个图的含义是,底部xy轴是变量,当取不同变量值时,对应的损失函数的值呈现3维上的凸函数:

用矩阵化的形式表示代价函数:

当我们运行BDG方法时,当J(θ)的梯度无限接近于0,则说明此时的θ为我们要的解。
伪代码

方法二:随机梯度下降法

如果使用梯度下降法(批量梯度下降法),那么每次迭代过程中都要对 n个样本进行求梯度,所以开销非常大,随机梯度下降的思想就是随机采样一个样本**J(xi)**来更新参数,那么计算开销就从 O(n)下降到 O(1)。

随机梯度下降虽然提高了计算效率,降低了计算开销,但是由于每次迭代只随机选择一个样本,因此随机性比较大,所以下降过程中非常曲折(图片来自《动手学深度学习》)

作者:Jackpop
链接:https://www.zhihu.com/question/264189719/answer/932262940

缺点:
对于最优化问题,凸问题,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。
优点:
但是相比于批量梯度,这样的方法更快,更快收敛,虽然不是全局最优,但很多时候是我们可以接受的,所以这个方法用的也比上面的多。

参考链接:
梯度下降优化算法总结.
知乎关于随机梯度算法的讨论
cs229 别人的整理
梯度下降法推导和示例

机器学习-cs229-线性回归-梯度下降法相关推荐

  1. 吴恩达《机器学习》笔记(一)【线性回归梯度下降法】

    通过在网易云课堂学习吴恩达先生的<机器学习>课程,为了巩固自己的学习且方便读者们共同交流学习,特此做此学习笔记,希望与大家共勉. 吴恩达<机器学习>课程链接:https://s ...

  2. 深度学习原理-----线性回归+梯度下降法

    系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...

  3. 机器学习中的梯度下降法

    1. 机器学习中为什么需要梯度下降 梯度下降是机器学习中常见优化算法之一,梯度下降法有以下几个作用: (1)梯度下降是迭代法的一种,可以用于求解最小二乘问题. (2)在求解机器学习算法的模型参数,即无 ...

  4. 机器学习:用梯度下降法实现线性回归

    之前在 机器学习算法数学基础之 -- 线性代数篇 中,总结过求解线性回归的两种方法: 最小二乘法 梯度下降法 这篇文章重点总结一下梯度下降法中的一些细节和需要注意的地方. 梯度下降法是什么 假设有一个 ...

  5. 机器学习:随机梯度下降法

    1.梯度下降 1)什么是梯度下降? 因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降. 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方.但是因为选择方向的原因, ...

  6. 线性回归 --梯度下降法与标准方程法

    线性回归 简单线性回归 机器学习三要素 – 模型 策略 算法 线性回归 输入空间为XXX 输出空间为Y" role="presentation" style=" ...

  7. python一元线性回归_Python实现——一元线性回归(梯度下降法)

    2019/3/25 一元线性回归--梯度下降/最小二乘法又名:一两位小数点的悲剧 感觉这个才是真正的重头戏,毕竟前两者都是更倾向于直接使用公式,而不是让计算机一步步去接近真相,而这个梯度下降就不一样了 ...

  8. 机器学习知识点(五)梯度下降法Java实现

    梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代(步长)能使待优化的目标函数逐步减小.梯度下降法是2范数下的最速下降法,用来求解函数的最小值,无约束优化. 看数学定义都晦涩,网 ...

  9. [云炬python3玩转机器学习]6-2模拟梯度下降法

    模拟梯度下降法 In [1]: import numpy as np import matplotlib.pyplot as plt import datetime;print ('Run by CY ...

  10. 李宏毅机器学习课程3~~~梯度下降法

    梯度下降法描述 梯度下降法是为了找到最优的目标函数,寻找的过程就是沿着损失函数下降的方向来确定参数变化的方向.参数更新的过程就是一个不断迭代的过程,每次更新参数学到的函数都会使得误差损失越来越小,也就 ...

最新文章

  1. SoC(System on chip)与NoC(network-on-chip)
  2. QIIME 2用户文档. 22Python命令行模式(2019.7)
  3. 每日源码分析-Lodash(uniq.js)
  4. 2020年首届算法竞赛网络挑战赛直播讲解课程
  5. 困兽之斗!使用JavaScript执行客户端的exe文件(excute the .exe file on client-side machine by JavaScript)...
  6. [2019杭电多校第五场][hdu6629]string matching(扩展kmp)
  7. iOS 常见的六种 手势
  8. 利用ffmpeg将H264解码为RGB
  9. Spring Boot入门教程(三十九):微信支付集成-申请服务号和微信支付
  10. 2022-2028全球远程浏览器隔离(RBI)解决方案行业调研及趋势分析报告
  11. html中的表格和表单设计总结
  12. 502粘到手上变硬了怎么办_急手被502胶水粘住了怎么办?
  13. Z04 - 999、Flink与电商指标分析
  14. 生吃素食健康驻颜5大注意
  15. 本质矩阵E的内在性质证明
  16. Qt 添加界面背景图片
  17. @EventListener注解使用及源码解析
  18. 电子商务交易系统的设计与实现(javaee+mysql)
  19. Mocha Pro:移除模块
  20. 黑客讲述 | 我如何逼小偷把 iPhone 还回来

热门文章

  1. 人工神经网络matlab啊6,MATLAB人工神经网络教程
  2. Certificates, Identifiers Profiles创建总结
  3. db2数据备份到mysql_DB2数据库自动备份详解
  4. java list 面试题_java【集合】面试题
  5. javascript全栈开发实践-web-4
  6. Vue实现的滑动切换路由组件
  7. tkinter 类继承的三种方式
  8. 27.思科防火墙(ASA)
  9. Android Studio安装genymotion模拟器
  10. Android NFC读取电子标签