1. 前言

本系列文章将总结一些机器学习中应用到的数学基础,想要学好机器学习,首先得去理解其中的数学意义,不一定要到能够轻松自如的推导中间的公式,不过至少要认识这些公式,不然一些相关的论文就看不懂,这个系列的文章将着重于机器学习的数学描述这个部分。

2.回归

回归在数学上就是通过一个点集,用一条曲线去拟合这些点,如果这条曲线是直线,就称为线性拟合,如果曲线是一条二次曲线则称为二次回归。
用一个简单的例子来说明回归。一套房子的价值取决于面积、房间的数量、地段、朝向等,这些影响房子价格的因素称为特征,特征在机器学习中是一个很重要的概念,有很多论文专门探讨这个东西。在这,为了简单,假设我们的房子价格只受到面积这一因素的影响。
假设有一份房屋销售的数据如下:

面积(m² ) 销售价格(万元)
123 250
150 320
87 160
102 220
…… ……

以x轴是房屋的面积,y轴是房屋的售价,可以绘制绘制散点图如下:

如果来了一个新的面积房子,假设在销售价格价钱的记录中没有,那应该怎么估计该房子的售价?
我们可以用一条曲线去尽量拟合这些数据,如果有新的输入过来,我们可以将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面这样子:

绿色的点就是我们想要的预测点。
为了描述机器学习,首先给出一些概念和常用的符号,在不同的机器学习书籍中可能有一定的区别。
(1)房屋销售记录表-训练数据集或者训练数据,是机器学习中的输入数据,一般记为x;
(2)房屋售价-输出数据,记为y:
(3)拟合函数(或者称为假设或者模型),记为y=h(x);
(4)训练数据的数量,一条训练数据是由一对输入数据和输出数据组成的,输入数据的维度(特征的个数),记为n.
下面是一个典型的机器学习过程,首先给出一个输入数据,我们的算法通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也称为构建模型。就如同上面的线性回归函数。

我们将用X1,X2……Xn去描述特征里面的分量,比如x1=房间的面积,x2=房间的朝向,等等,我们可以做出一个估计函数:

θ在这儿称为参数,在这儿的意思是调整特征向量中每个分量的影响力,就是到底是房屋的面积更重要还是房屋的地段更重要。为此,如果我们令X0 = 1,就可以用向量的方式来表示了:

我们程序也需要一个机制去评估我们θ是否比较好,所以需要对我们做出的h函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function),描述h函数不好的程度,在下面,我们称这个函数为J函数。
在这儿我们可以做出下面的一个损失函数:

这个损失函数是去对x(i)的估计值与真实值y(i)差的平方和作为错误估计函数,前面乘上的1/2是为了在求导的时候,这个系数就不见了。
如何调整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法,是一种完全是数学描述的方法,在stanford机器学习开放课最后的部分会推导最小二乘法的公式的来源,这个在很多的机器学习和数学书上都可以找到,这里就不提最小二乘法,而谈谈梯度下降法。

3.梯度下降

首先描述一下梯度下降的流程:
(1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量;
(2)改变θ的值,使得J(θ)按梯度下降的方向进行减少,直到得到全局最小值。
为了更清楚,给出下面的图:

这是一个表示参数θ与损失函数J(θ)的关系图,红色的部分是表示J(θ)有着比较高的取值,我们需要的是,能够让J(θ)的值尽量的低。也就是深蓝色的部分。θ0,θ1表示θ向量的两个维度。
在上面提到梯度下降法的第一步是给θ给一个初值,假设随机给的初值是在图上的红色十字点。
然后我们将θ按照梯度下降的方向进行调整,就会使得J(θ)往更低的方向进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止。

当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,可能是下面的情况:

上面这张图就是描述的一个局部最小点,这是我们重新选择了一个初始点得到的,看来梯度下降将会在很大的程度上被初始点的选择影响而陷入局部最小点。
下面我将用一个例子描述一下梯度减少的过程,对于我们的函数J(θ)求偏导J(偏导的意义就是描述每个维度(特征)方向的变化对损失函数值的影响程度):

下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,-后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。

一个很重要的地方值得注意的是,梯度是有方向的,对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。
用更简单的数学语言进行描述步骤2)是这样的:

4.参考文献

http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html

机器学习数学基础(1)-回归、梯度下降相关推荐

  1. 机器学习100天(十七):017 逻辑回归梯度下降

    机器学习 100 天,今天讲的是:逻辑回归-梯度下降! 在讲解了逻辑回归的基本原理和损失函数之后,我们来推导逻辑回归模型中参数 w 和 b 的梯度表达式. 我们之前介绍过,计算逻辑回归的代价函数实际上 ...

  2. 002-深度学习数学基础(神经网络、梯度下降、损失函数)

    002-深度学习数学基础(神经网络.梯度下降.损失函数) 这里在进入人工智能的讲解之前,你必须知道几个名词,其实也就是要简单了解一下人工智能的数学基础,不然就真的没办法往下讲了. 本节目录如下: 前言 ...

  3. 机器学习--详解基于梯度下降的Logistic回归算法原理

    先给出Logistic回归的sigmod函数数学表达式: 很简单的表达式,再看看它的性质,当时,,因此 当时,,因此 Logistic回归之所以称为Logistic是因为只有两个状态即0和1,这也是数 ...

  4. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...

    机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...

  5. 机器学习中为什么需要梯度下降_梯度下降直觉 - 机器是如何学习的

    梯度下降法是一种求函数最小值的算法.在机器学习中,预测值和实际值之间的差称为误差.将所有数据点上的所有误差加在一起时称为成本. 当然,我们希望最小化代表此成本的函数 - 成本函数. 在机器学习中梯度下 ...

  6. 机器学习-cs229-线性回归-梯度下降法

    机器学习-cs229-线性回归part one 任务:预测房价 损失函数cost function 线性回归的逻辑: 梯度下降法 房价函数的梯度下降式子: 学习率learning rate:参数 α ...

  7. 【李宏毅机器学习】Gradient Descent_1 梯度下降(p5、p6、p7 )学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Review Gradient Descent Tips Tip1: Tuning your learning rate 小心微调你的学习率 Tip 2 ...

  8. 3. 机器学习中为什么需要梯度下降_梯度提升(Gradient Boosting)算法

    本文首发于我的微信公众号里,地址:梯度提升(Gradient Boosting)算法 本文禁止任何形式的转载. 我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI ...

  9. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_一起学习西瓜书2

    今天的这两章比较枯燥!线性模型和决策树!其实机器学习说白了就是回归和分类. 机器学习之线性模型 1.一元线性回归模型 2.多元线性回归模型 3.逻辑回归模型(对数几率回归) Logistic回归模型的 ...

  10. 【李宏毅机器学习】04:梯度下降Gradient Descent

    李宏毅机器学习04:梯度下降Gradient Descent 文章目录 李宏毅机器学习04:梯度下降Gradient Descent 一.梯度下降方法 二.梯度下降的改进方法 Tip 1: Tunin ...

最新文章

  1. idea java jni 调试_IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇
  2. Dubbo入门(2) - 简单实践
  3. ssh密码长度漏洞java_Linux中 OpenSSH 输入验证错误漏洞(CVE-2019-16905) 修复解决方案...
  4. 权值线段树小结(hdu多校,普通平衡树,郁闷的出纳员)
  5. 第二学期-第一次作业
  6. 你觉得一个人有几个手机号合适?
  7. 部署Django工程
  8. c语言碰撞的小球,小球碰撞(完全弹性碰撞)
  9. 什么是CIF/4CIF/QCIF/D1?
  10. 作为空降领导,该如何做?
  11. HttpClient Java 常用写法总结
  12. 【科创人独家】华旦天使张洁:风口是创业者的造物,投资本质是件农活
  13. Linux下安装maven3.6.2遇到的问题
  14. hadoop生态系统的详细介绍-详细一点
  15. c语言数组判断不及格人数,C语言编程 运用数组求不及格人数
  16. Linux增加硬盘详细教程,Linux 添加新硬盘
  17. 全网首发 | Mac版 PS2022 终于来了,支持M1芯片,五大新黑科技
  18. apache评分标准_危重病人APACHE II评分表(标准)
  19. ASM(五) 利用TreeApi 解析生成及转换Class
  20. 云服务器是什么,怎么用,能干什么?

热门文章

  1. 机器学习----朴素贝叶斯详解
  2. 2020广西电子设计竞赛题目
  3. 基础算法|Java递归算法练习
  4. Shell编程入门学习
  5. 天才基本法中预测犯罪发生地点的数学建模真的可以为所欲为【全国大学生数学建模竞赛】
  6. CSS预处理器和后处理器
  7. Carrot2 2.0版中有 Aduna ClusterMap
  8. Jave2-Java音频视频编码器
  9. python飞机大战类_python微信飞机大战
  10. 草根站长的创业路:说说这两年的创业经历