本文介绍了机器学习中基本的优化算法—梯度下降算法和随机梯度下降算法,以及实际应用到线性回归、Logistic回归、矩阵分解推荐算法等ML中。

梯度下降算法基本公式

常见的符号说明和损失函数

X :所有样本的特征向量组成的矩阵 
x(i) 是第i个样本包含的所有特征组成的向量x(i)=(x(i)1,x(i)2...,x(i)n) 
y(i) 第i个样本的label,每个样本只有一个label,y(i)是标量(一个数值) 
hθ(x(i)) :拟合函数,机器学习中可以用多种类型的拟合函数 
θ 是函数变量,是多个变量的向量 θ=[θ1,θ2,...] 
|hθ(xi)−y(i)| :拟合绝对误差 
求解的目标是使得所有样本点(m个)平均误差最小,即:

或者平方误差最小,即:

argmin表示使目标函数取最小值时的变量值(即θ)值。

都被称为损失函数(Cost Function) 
J(θ)不只是上面两种形式,不同的机器学习算法可以定义各种其它形式。

梯度下降迭代公式

为了求解θ=[θ1,θ2,...]的值,可以先对其赋一组初值,然后改变θ的值,使得J(θ)最小。函数J(θ)在其负梯度方向下降最快,所以只要使得每个参数θ按函数负梯度方向改变,则J(θ)能最快找到最小值。即

这就是梯度下降算法的迭代公式,其中α表示步长,即往每次下降最快的方向走多远。

线性回归

以多变量线性回归为例: 
拟合函数如下:

Logistic回归

代价函数: 
以Sigmoid函数(Logistic函数)为例说明:

为什么这么定义代价函数呢?我自己通俗理解是,求导后形式简洁,而且: 
y=0,hθ(x)范围为[0,0.5),越接近0.5,代价越高: 
 
由上图可以看出:−log(1−hθ(x(i)))可以很好衡量某一个样本的代价。

y=1时,hθ(x)范围为(0.5,1],越接近0.5,代价越高: 
 
同样由上图可以看到:−loghθ(x(i))可以很好衡量某一个样本的代价。

迭代更新公式: 
求导过程蛮复杂的,直接给出结果吧:

和线性回归中最后给的更新迭代公式是一模一样的,这也就理解了为什么代价函数设计时比较复杂,还套了log,敢情是为了这?? 
总之logisitc回归和线性回归最终使用的是一模一样的优化算法。 
还可将这个公式写成用向量来表达的形式:

矩阵分解的推荐算法

可以参考我转载的另一篇文章: 
http://www.cnblogs.com/kobedeshow/p/3651833.html?utm_source=tuicool&utm_medium=referral

随机梯度下降(SGD)

stochastic gradient descent

从梯度上升算法公式可以看出,每次更新回归系数θ时都需要遍历整个数据集。该方法在处理100个左右的数据集尚可,但是如果有数十亿的样本和成千万的特征,这种方法的计算复杂度就太高了。一种改进的方法是一次仅用一个样本点来更新回归系数。由于可以在新样本到来时,对分类器进行增量更新,因此是一个“在线学习”算法,而梯度下降算法一次处理所有的数据被称为“批处理”。更新公式如下:

参考文献

(1)Stanford机器学习—第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization 
http://blog.csdn.net/abcjennifer/article/details/7716281?locationNum=2 
(2)机器学习入门:线性回归及梯度下降 
http://blog.csdn.net/xiazdong/article/details/7950084 
(3)梯度下降深入浅出 
http://binhua.info/machinelearning/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA

转载于:https://www.cnblogs.com/itboys/p/8391130.html

机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)...相关推荐

  1. 机器学习/算法面试笔记1——损失函数、梯度下降、优化算法、过拟合和欠拟合、正则化与稀疏性、归一化、激活函数

    正值秋招,参考网络资源整理了一些面试笔记,第一篇包括以下7部分. 1.损失函数 2.梯度下降 3.优化算法 4.过拟合和欠拟合 5.正则化与稀疏性 6.归一化 7.激活函数 损失函数 损失函数分为经验 ...

  2. 【数据挖掘】神经网络 后向传播算法 ( 梯度下降过程 | 梯度方向说明 | 梯度下降原理 | 损失函数 | 损失函数求导 | 批量梯度下降法 | 随机梯度下降法 | 小批量梯度下降法 )

    文章目录 I . 梯度下降 Gradient Descent 简介 ( 梯度下降过程 | 梯度下降方向 ) II . 梯度下降 示例说明 ( 单个参数 ) III . 梯度下降 示例说明 ( 多个参数 ...

  3. |●梯度下降是什么|●梯度下降算法原理|●梯度下降实例

    <老饼讲解机器学习>--一个经典的机器学习算法网站http://ml.bbbdata.com/teach#193 目录 一.问题背景 二.梯度下降算法思路 (一) 思路概览 (二) 关于梯 ...

  4. 线性回归随机梯度下降_线性回归的批次梯度与随机梯度下降

    线性回归随机梯度下降 In this article, we will introduce about batch gradient and stochastic gradient descent m ...

  5. 专访 | PP云技术副总监:如何使用机器学习算法优化分发链路

    转载声明:本文转自公众号[PP视频云] 4月21日PP云作为LiveVideoStack的特别支持单位,将在上海浦东新区陆家嘴软件园苏宁文创园区举办<多媒体开发新趋势>系列沙龙,为大家展现 ...

  6. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录

    ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值--bug调试记录 目录 输出结果 1.增加XGBR算法 ...

  7. ML之回归预测:利用八(9-1)种机器学习算法对无人驾驶汽车参数(2017年的data,18+2)进行回归预测值VS真实值

    ML之回归预测:利用八(9-1)种机器学习算法对无人驾驶汽车参数(2017年的data,18+2)进行回归预测值VS真实值 目录 模型评估 输出结果 模型评估 相关文章:ML之回归预测:利用八(9-1 ...

  8. ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值

    ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值 相关文章 ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018 ...

  9. java ML回归预测_ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值...

    ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值 目录 输出结果 数据的初步查验:输出回归目标值的差异 The max targe ...

  10. 机器学习算法系列(二十)-梯度提升决策树算法(Gradient Boosted Decision Trees / GBDT)

    阅读本文需要的背景知识点:自适应增强算法.泰勒公式.One-Hot编码.一丢丢编程知识 一.引言   前面一节我们学习了自适应增强算法(Adaptive Boosting / AdaBoost Alg ...

最新文章

  1. BZOJ3572: [Hnoi2014]世界树
  2. 企业 SpringBoot 教程(六)springboot整合mybatis
  3. liuux/ Unix 文件管理命令(三)
  4. 一个Setup Factory的Lua脚本
  5. Linux高级管理之ACL(访问控制列表)实战应用
  6. 【TensorFlow基础】加载和预处理数据
  7. 基金知识整理--基金购买那些事(2)
  8. kvm文档翻译-第六章
  9. 基于医疗RFID手术用品智能柜管理应用方案
  10. 【实战技能】非技术背景经理的技术管理
  11. web前端开发基础知识整理以及前端视频教程
  12. 短信、邮件、通讯录、蓝牙、社交、Game Center、应用内购买、iClould、Passbook
  13. 关于云原生入门技能树图片资源展示问题
  14. 介绍qmake2cmake
  15. Unable to access ‘https://github.com/**/**/‘: OpenSSL SSL_read: Connection was aborted, errno 10053
  16. EverBox 能否成为中国的dropbox
  17. 【深度学习】【Python】【Widerface数据集】 转VOC格式,VOC 转YOLOv5格式,YOLOv5训练WiderFace数据集,检查yolo labels对不对
  18. cocos2d-x分享系统
  19. 68 SpringBoot
  20. H5调用摄像头拍照,录音及选择文件

热门文章

  1. Python 的电子邮件编程
  2. IIS6.0+PHP+Mysql+Zend环境组建[图文]
  3. DOS获取局域网内所有正在使用的ip地址
  4. 如何基于 String 实现同步锁?
  5. 计算机网络基础知识,仅此一篇足矣
  6. Demo:基于 Flink SQL 构建流式应用
  7. 使用Consul实现服务发现:instance-id自定义(3种方式)
  8. 并发的核心:CAS 是什么?Java8是如何优化 CAS 的?
  9. 支持本地 持久化的 单机版 consul 服务
  10. t66y.buzz index.php,6.FizzBuzz