机器学习-cs229-线性回归-梯度下降法
机器学习-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-线性回归-梯度下降法相关推荐
- 吴恩达《机器学习》笔记(一)【线性回归梯度下降法】
通过在网易云课堂学习吴恩达先生的<机器学习>课程,为了巩固自己的学习且方便读者们共同交流学习,特此做此学习笔记,希望与大家共勉. 吴恩达<机器学习>课程链接:https://s ...
- 深度学习原理-----线性回归+梯度下降法
系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...
- 机器学习中的梯度下降法
1. 机器学习中为什么需要梯度下降 梯度下降是机器学习中常见优化算法之一,梯度下降法有以下几个作用: (1)梯度下降是迭代法的一种,可以用于求解最小二乘问题. (2)在求解机器学习算法的模型参数,即无 ...
- 机器学习:用梯度下降法实现线性回归
之前在 机器学习算法数学基础之 -- 线性代数篇 中,总结过求解线性回归的两种方法: 最小二乘法 梯度下降法 这篇文章重点总结一下梯度下降法中的一些细节和需要注意的地方. 梯度下降法是什么 假设有一个 ...
- 机器学习:随机梯度下降法
1.梯度下降 1)什么是梯度下降? 因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降. 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方.但是因为选择方向的原因, ...
- 线性回归 --梯度下降法与标准方程法
线性回归 简单线性回归 机器学习三要素 – 模型 策略 算法 线性回归 输入空间为XXX 输出空间为Y" role="presentation" style=" ...
- python一元线性回归_Python实现——一元线性回归(梯度下降法)
2019/3/25 一元线性回归--梯度下降/最小二乘法又名:一两位小数点的悲剧 感觉这个才是真正的重头戏,毕竟前两者都是更倾向于直接使用公式,而不是让计算机一步步去接近真相,而这个梯度下降就不一样了 ...
- 机器学习知识点(五)梯度下降法Java实现
梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代(步长)能使待优化的目标函数逐步减小.梯度下降法是2范数下的最速下降法,用来求解函数的最小值,无约束优化. 看数学定义都晦涩,网 ...
- [云炬python3玩转机器学习]6-2模拟梯度下降法
模拟梯度下降法 In [1]: import numpy as np import matplotlib.pyplot as plt import datetime;print ('Run by CY ...
- 李宏毅机器学习课程3~~~梯度下降法
梯度下降法描述 梯度下降法是为了找到最优的目标函数,寻找的过程就是沿着损失函数下降的方向来确定参数变化的方向.参数更新的过程就是一个不断迭代的过程,每次更新参数学到的函数都会使得误差损失越来越小,也就 ...
最新文章
- SoC(System on chip)与NoC(network-on-chip)
- QIIME 2用户文档. 22Python命令行模式(2019.7)
- 每日源码分析-Lodash(uniq.js)
- 2020年首届算法竞赛网络挑战赛直播讲解课程
- 困兽之斗!使用JavaScript执行客户端的exe文件(excute the .exe file on client-side machine by JavaScript)...
- [2019杭电多校第五场][hdu6629]string matching(扩展kmp)
- iOS 常见的六种 手势
- 利用ffmpeg将H264解码为RGB
- Spring Boot入门教程(三十九):微信支付集成-申请服务号和微信支付
- 2022-2028全球远程浏览器隔离(RBI)解决方案行业调研及趋势分析报告
- html中的表格和表单设计总结
- 502粘到手上变硬了怎么办_急手被502胶水粘住了怎么办?
- Z04 - 999、Flink与电商指标分析
- 生吃素食健康驻颜5大注意
- 本质矩阵E的内在性质证明
- Qt 添加界面背景图片
- @EventListener注解使用及源码解析
- 电子商务交易系统的设计与实现(javaee+mysql)
- Mocha Pro:移除模块
- 黑客讲述 | 我如何逼小偷把 iPhone 还回来