本系列内容大部分来自Standford公开课machine learning中Andrew老师的讲解,附加自己的一些理解,编程实现和学习笔记。

第一章 Linear regression

1.线性回归

线性回归是一种监督学习的方法。

线性回归的主要想法是给出一系列数据,假设数据的拟合线性表达式为:

如何求得参数θ成为这个方法唯一的问题,为此我们需要定义损失函数:

,其中m表示样本个数,表示第i组样本,所以J表示总的m个样本的损失函数。

这个损失函数的表达式我们一定很熟悉,方差?最小二乘法?没错,这就是我们最原始的最小二乘模型。我们的任务就是让损失函数J尽可能的小。

P.S:至于为什么要选择J作为我们的损失函数,从表面上看很自然,当然选择这个函数也有概率解释,概率解释会放在之后的文章中讨论。

2.LMS最小均方算法

我们现在要做的任务就是选择参数θ,使得损失函数J尽可能小,很自然我们会想到梯度下降的方法。

梯度下降的思想最形象的解释就是:你站在山顶,环顾四周,寻找一个下山最快的方向走一小步,然后再次环顾四周寻找一个下山最快的方向走一小步,在多次迭代之后就会走到最低点。

放在这里也就要求我们先选择一个初始的然后利用梯度下降进行迭代,其中α表示学习的步长。

对于单个样本来说最后迭代公式为,这就是我们熟知的Widrow-Hoff规则。

我们可以来分析一下这个迭代公式,的更新取决于真实值与拟合值的误差,从直观上我们就很能理解梯度下降和Widrow-Hoff规则了。

有了这个规则,我们就可以设计相应的算法,使得J取到最小值了。

方法一:批量梯度下降

意思很简单,每次迭代都迭代所有的m个已知样本,直到收敛。

Repeat until convergence{

     (for every j)

}

方法二:随机梯度下降

批量梯度下降其实存在一个比较大的问题,当数据组数m特别大的时候,我们迭代一次就需要很长的时间。使用随机梯度下降虽然有可能走一些“弯路”,但因为每次迭代只使用一组数据所以相比较而言,反而能更快的收敛。

Loop{

  for i=1 to m{

           if  convergence;

}

}

其实在梯度下降算法中,还有一个问题,学习率如何控制,AndrewNg并没有太多的介绍,但是其实对于学习率α的控制相当重要,如果α略大就会导致最后无法收敛。我会针对自己做的demo再写一篇博客讨论学习率控制的问题。

3.如何直接求出θ

其实我们是能利用矩阵运算直接求出参数θ,不过需要一些矩阵计算,可能会重新开一篇文章来计算这个θ。

这里就直接给出答案

线性回归 Linear regression(1)线性回归的基本算法与求解的更多相关文章

  1. 线性回归 Linear regression(3) 线性回归的概率解释

    这篇博客从一种方式推导了Linear regression 线性回归的概率解释,内容来自Standford公开课machine learning中Andrew老师的讲解. 线性回归的概率解释 在Lin ...

  2. 线性回归 Linear regression(2)线性回归梯度下降中学习率的讨论

    这篇博客针对的AndrewNg在公开课中未讲到的,线性回归梯度下降的学习率进行讨论,并且结合例子讨论梯度下降初值的问题. 线性回归梯度下降中的学习率 上一篇博客中我们推导了线性回归,并且用梯度下降来求 ...

  3. Ng第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下 ...

  4. 斯坦福第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 I 2.4  代价函数的直观理解 I ...

  5. 机器学习方法:回归(一):线性回归Linear regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 开一个机器学习方法科普系列:做基础回顾之用,学而时习之:也拿出来与大家分享.数学水平有限,只求易懂,学习与工 ...

  6. 斯坦福CS229机器学习课程笔记 Part1:线性回归 Linear Regression

    机器学习三要素 机器学习的三要素为:模型.策略.算法. 模型:就是所要学习的条件概率分布或决策函数.线性回归模型 策略:按照什么样的准则学习或选择最优的模型.最小化均方误差,即所谓的 least-sq ...

  7. 机器学习 (一) 单变量线性回归 Linear Regression with One Variable

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang的个人笔 ...

  8. ML 线性回归Linear Regression

    线性回归 Linear Regression MOOC机器学习课程学习笔记 1 单变量线性回归Linear Regression with One Variable 1.1 模型表达Model Rep ...

  9. ufldl学习笔记与编程作业:Linear Regression(线性回归)

    ufldl学习笔记与编程作业:Linear Regression(线性回归) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learning高质量群里面听一些 ...

随机推荐

  1. 【网络结构】VGG-Net论文解析

    目录 0. 论文链接 1. 概述 2. 网络结构 2.1 卷积核 2.2 池化核 2.3 全连接层 3. 训练 4. 测试 5. 其他 6.参考链接 @ 0. 论文链接 论文链接 1. 概述   VG ...

  2. 解题报告:poj 3070 - 矩阵快速幂简单应用

    2017-09-13 19:22:01 writer:pprp 题意很简单,就是通过矩阵快速幂进行运算,得到斐波那契数列靠后的位数 . 这是原理,实现部分就是矩阵的快速幂,也就是二分来做 矩阵快速幂可 ...

  3. Harbor 定制页面 和 二次开发指南

    harbor的官方地址:https://github.com/goharbor/harbor 想对Harbor进行二次开发,首先要指定一个harbor的版本,这里我们以Harbor:1.6.2为例: ...

  4. java HTTP代码示例

    //测试环境发送用例 @Test public void testSendForTest() {     String url = "http://172.16.30.108:8138/ap ...

  5. Java Collections Framework 汇总

    1. Java Collections Framework Java集合框架概览 2. Java Collections Framework 之 RandomAccess接口 3. 关于ArrayLi ...

  6. Hibernate与 MyBatis的比较(转,留作以后细细钻研)

    最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处. 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出 ...

  7. 让vs IIS Express支持本地静态Json文件

    根据前辈的解决方案是IIS Express没有配置Json文件的处理程序,只要增加对应配置即可,IIS Express 对应配置文件夹为: “%UserProfile%\Documents\IISEx ...

  8. Spring事务源码分析总结

    Spring事务是我们日常工作中经常使用的一项技术,Spring提供了编程.注解.aop切面三种方式供我们使用Spring事务,其中编程式事务因为对代码入侵较大所以不被推荐使用,注解和aop切面的方式 ...

  9. 聊一聊Spring AOP

    前两天,在给新入职的同事做技术介绍时,讲到spring的AOP.使我又一次认识到,对于AOP,特别是spring AOP的理解,虽然大家都能说上来几句,但是许多人认识并不太全面,甚至可以说是一知半解- ...

  10. 第三天 RHEL7-Unix/Linux系统 介绍

    如何称为一名优秀的linux运维人员? 如果你有机会和条件:环境能够磨练一个人的能力和意志. 大胆的做你从未做过的项目,每一个项目都是对自身的极大提升. 有好的环境资源不要浪费,好好把握,慢慢进步. ...