首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程

本文会讲到:

(1)线性回归的定义

(2)单变量线性回归

(3)cost function:评价线性回归是否拟合训练集的方法
(4)梯度下降:解决线性回归的方法之一
(5)feature scaling:加快梯度下降执行速度的方法

(6)多变量线性回归


Linear Regression
注意一句话:多变量线性回归之前必须要Feature Scaling!
方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可;
注意:
(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数;
(2)因为是单变量,因此只有一个x;
我们能够给出单变量线性回归的模型:
我们常称x为feature,h(x)为hypothesis;
从上面“方法”中,我们肯定有一个疑问,怎么样能够看出线性函数拟合的好不好呢?
我们需要使用到Cost Function(代价函数),代价函数越小,说明线性回归地越好(和训练集拟合地越好),当然最小就是0,即完全拟合;

举个实际的例子:

我们想要根据房子的大小,预测房子的价格,给定如下数据集:

根据以上的数据集画在图上,如下图所示:

我们需要根据这些点拟合出一条直线,使得cost Function最小;
虽然我们现在还不知道Cost Function内部到底是什么样的,但是我们的目标是:给定输入向量x,输出向量y,theta向量,输出Cost值;
以上我们对单变量线性回归的大致过程进行了描述;
Cost Function
Cost Function的用途:对假设的函数进行评价,cost function越小的函数,说明拟合训练数据拟合的越好;
下图详细说明了当cost function为黑盒的时候,cost function 的作用;
但是我们肯定想知道cost Function的内部构造是什么?因此我们下面给出公式:
其中:
表示向量x中的第i个元素;
表示向量y中的第i个元素;
表示已知的假设函数;
m为训练集的数量;

比如给定数据集(1,1)、(2,2)、(3,3)
则x = [1;2;3],y = [1;2;3]     (此处的语法为Octave语言的语法,表示3*1的矩阵)
如果我们预测theta0 = 0,theta1 = 1,则h(x) = x,则cost function:
J(0,1) = 1/(2*3) * [(h(1)-1)^2+(h(2)-2)^2+(h(3)-3)^2] = 0;
如果我们预测theta0 = 0,theta1 = 0.5,则h(x) = 0.5x,则cost function:
J(0,0.5) = 1/(2*3) * [(h(1)-1)^2+(h(2)-2)^2+(h(3)-3)^2] = 0.58;

如果theta0 一直为 0, 则theta1与J的函数为:
如果有theta0与theta1都不固定,则theta0、theta1、J 的函数为:
当然我们也能够用二维的图来表示,即等高线图;
注意:如果是线性回归,则costfunctionJ与的函数一定是碗状的,即只有一个最小点;
以上我们讲解了cost function 的定义、公式;
Gradient Descent(梯度下降)
但是又一个问题引出了,虽然给定一个函数,我们能够根据cost function知道这个函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?
因此我们引出了梯度下降:能够找出cost function函数的最小值;
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
当然解决问题的方法有很多,梯度下降只是其中一个,还有一种方法叫Normal Equation;
方法
(1)先确定向下一步的步伐大小,我们称为Learning rate;
(2)任意给定一个初始值:
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新
(4)当下降的高度小于某个定义的值,则停止下降;
算法
特点
(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
(2)越接近最小值时,下降速度越慢;
问题:如果初始值就在local minimum的位置,则会如何变化?
答:因为已经在local minimum位置,所以derivative 肯定是0,因此不会变化;
如果取到一个正确的值,则cost function应该越来越小;
问题:怎么取值?
答:随时观察值,如果cost function变小了,则ok,反之,则再取一个更小的值;
下图就详细的说明了梯度下降的过程:
从上面的图可以看出:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
注意:下降的步伐大小非常重要,因为如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;
下图就是overshoot minimum现象:

 
如果Learning rate取值后发现J function 增长了,则需要减小Learning rate的值;
Integrating with Gradient Descent & Linear Regression
梯度下降能够求出一个函数的最小值;
线性回归需要求出,使得cost function的最小;
因此我们能够对cost function运用梯度下降,即将梯度下降和线性回归进行整合,如下图所示:
梯度下降是通过不停的迭代,而我们比较关注迭代的次数,因为这关系到梯度下降的执行速度,为了减少迭代次数,因此引入了Feature Scaling;
Feature Scaling
此种方法应用于梯度下降,为了加快梯度下降的执行速度
思想:将各个feature的值标准化,使得取值范围大致都在-1<=x<=1之间;
常用的方法是Mean Normalization,即
或者:
[X-mean(X)]/std(X);

举个实际的例子,

有两个Feature:
(1)size,取值范围0~2000;
(2)#bedroom,取值范围0~5;

则通过feature scaling后,
    
练习题
我们想要通过期中开始成绩预测期末考试成绩,我们希望得到的方程为:
给定以下训练集:
midterm exam (midterm exam) final exam
89 7921 96
72 5184 74
94 8836 87
69 4761 78
我们想对(midterm exam)^2进行feature scaling,则经过feature scaling后的值为多少?
max = 8836,min=4761,mean=6675.5,则x=(4761-6675.5)/(8836-4761) = -0.47;
多变量线性回归
前面我们只介绍了单变量的线性回归,即只有一个输入变量,现实世界不可能这么简单,因此此处我们要介绍多变量的线性回归;
举个例子:
房价其实由很多因素决定,比如size、number of bedrooms、number of floors、age of home等,这里我们假设房价由4个因素决定,如下图所示:
我们前面定义过单变量线性回归的模型:

 
这里我们可以定义出多变量线性回归的模型:
Cost function如下:
如果我们要用梯度下降解决多变量的线性回归,则我们还是可以用传统的梯度下降算法进行计算:
总练习题:

 

1.我们想要根据一个学生第一年的成绩预测第二年的成绩,x为第一年得到A的数量,y为第二年得到A的数量,给定以下数据集:
x y
3 4
2 1
4 3
0 1
(1)训练集的个数是多少?  4个;
(2)J(0,1)的结果是多少?
J(0,1) = 1/(2*4)*[(3-4)^2+(2-1)^2+(4-3)^2+(0-1)^2] = 1/8*(1+1+1+1) = 1/2 = 0.5;
我们也可以通过vectorization的方法快速算出J(0,1):

浏览人工智能教程

机器学习入门 线性回归及梯度下降相关推荐

  1. 【机器学习】线性回归之梯度下降、多元线性回归概述

    线性回归是一种监督学习方法.  对每个样本来说: Hypothesis: 即: 其中, 为预测值, 为样本的第i个特征,且:  为该特征下的权重,bias偏差.线性回归就是要在已有的样本特征和标签下学 ...

  2. 机器学习第4天:线性回归及梯度下降

    文章目录 一.简单线性回归(即一元线性回归) 二.代价函数 数学表达式: 代码实现: 实例说明 三.梯度下降 数学表达式: 具体方法 代码实现: 代价随迭代次数的变化 一.简单线性回归(即一元线性回归 ...

  3. 【机器学习基础】线性回归和梯度下降的初学者教程

    作者 | Lily Chen 编译 | VK 来源 | Towards Data Science 假设我们有一个虚拟的数据集,一对变量,一个母亲和她女儿的身高: 考虑到另一位母亲的身高为63,我们如何 ...

  4. 机器学习01-定义、线性回归、梯度下降

    目录 一.定义 What is Machine Learning 二.建模 Model Representation 三.一元线性回归 Linear Regression with One Varia ...

  5. 用懊悔法学习吴恩达机器学习【2】-----线性回归的梯度下降

    以下英文文档皆出自课程配套笔记 课9 代价函数二 这一课时考虑使用两个参数来描述代价函数.此时等价函数是一个碗形,碗底点为最小值,将碗形用等高线表示,等高线中心就是代价函数的最小值.所以距离等高线中心 ...

  6. 吴恩达机器学习(六)线性回归的梯度下降

    文章目录 1.先导知识 2.线性回归的梯度下降 1.先导知识 之前学习的内容: 2.线性回归的梯度下降 我们要做的是将梯度下降法应用到最小化平方差代价函数, 我们解决过的梯度下降问题之一就是它容易陷入 ...

  7. 为什么回归直线过平均值点_线性回归和梯度下降的初学者教程

    假设有一个虚拟的数据集包含多对变量,即每位母亲和她女儿的身高: 通过这个数据集,我们如何预测另一位身高为63的母亲的女儿的身高? 方法是用线性回归. 首先找到最佳拟合线,然后用这条直线做预测. 线性回 ...

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

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

  9. 线性回归实现——梯度下降

    文章目录 线性回归实现 实验数据: 实现结果: 算法流程: 代码实现: 线性回归实现 y=ax+by = ax + by=ax+b x,y 是向量,a,b是标量 梯度下降法: a=a−α∂cost∂a ...

最新文章

  1. 图片1---前馈神经网络+反向传播神经网络
  2. 7、计算机图形学——图形管线渲染与纹理映射
  3. 2013-12-7 在超市给思杨买东西-思杨踢球
  4. Matlab读取文本数据
  5. Eclipse中spring boot的安装和创建简单的Web应用
  6. java 同步块 抛出异常_java问题合集(一)
  7. JVM—GC垃圾回收器总结
  8. mysql xa测试方案_mysql xa导致的事务一直running问题
  9. 【数字信号处理】基于matlab数字信号软阈值+硬阈值+改进阈值小波去噪【含Matlab源码 068期】
  10. ubuntu 12.04 下安装 PyTesser 进行OCR识别 - 从波 - 博客园
  11. syslog工具_INAV:一款专用的日志审查导航工具
  12. 深层和浅层特征融合的坑
  13. 给图片添加指示箭头或者选中效果
  14. 又有朋友被骗入传销了!
  15. 洛谷 - P3403 跳楼机(同余最短路)
  16. 在html中不是链接目标属性,在HTML中,()不是链接的目标属性。A、selfB、newC、blankD、Top - 扁豆云问答...
  17. 五年级上册《桂花雨》教案
  18. vue+pdf.js 印章签署完后鼠标滑过显示签章信息
  19. android qq 设置界面大小设置,怎么设置手机腾讯QQ的字体大小
  20. 1.8-20:反反复复

热门文章

  1. python上传图片到钉钉_python实现钉钉群机器人报告推送
  2. curl指定代理_如何使用cURL指定用户代理
  3. 抖音测试年龄和年级的是什么软件,抖音年龄测试相机app
  4. 【火车头采集教程】轻而易举学会火车头采集(附带采集案例)
  5. 中国5G毫米波小基站市场行业运行动态与发展趋势预测报告
  6. c语言英语教学大纲,C语言教学大纲.doc
  7. 下载keep运动软件_Keep下载_Keep安卓版下载_Keep app下载-太平洋下载中心
  8. vue 使用fs_在vue里面使用iVew框架
  9. 底层小程序员 练手做一个网站不小心赚了几十亿
  10. 利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能