zoukankan      html  css  js  c++  java
  • 斯坦福大学机器学习第二课“单变量线性回归

    斯坦福大学机器学习第二课"单变量线性回归“学习笔记,本次课程主要包括7部分:

    1) Model representation(模型表示)

    2) Cost function(代价函数,成本函数)

    3) Cost function intuition I(直观解释1)

    4) Cost function intuition II(直观解释2)

    5) Gradient descent(梯度下降)

    6) Gradient descent intuition(梯度下降直观解释)

    7) Gradient descent for linear regression(应用于线性回归的的梯度下降算法)

    以下是第二课“单变量线性回归”的课件资料下载链接,视频可以在Coursera机器学习课程上观看或下载:
    PPT   PDF
     
    另外课程答题时间推迟一周,具体可参考:  Coursera机器学习课程作业截止时间推迟一周
     
    如转载52opencourse上的任何原创文章,请务必注明出处,谢谢。
     
    时间: 2012年 5月 2日 分类:机器学习 作者: 52nlp (2,630 基本)
      
     

    2个回答

    0投票
     
     

    1) Model representation(模型表示)

    回到第一课中的房屋价格预测问题, 首先它是一个有监督学习的问题(对于每个样本的输入,都有正确的输出或者答案),同时它也是一个回归问题(预测一个实值输出)。

    训练集表示如下:

    traing-set-52opencourse.com

    其中:

    m = 训练样本的数目

    x's = “输入”变量,也称之为特征

    y's = “输出”变量,也称之为“目标”变量

    对于房价预测问题,学习过程可用下图表示:

    model-represation-52opencourse.com

    其中x代表房屋的大小,y代表预测的价格,h(hypothesis)将输入变量 x 映射到输出变量 y,如何表示h?

    事实上Hypothesis可以表示成如下形式:

    hθ(x)=θ0+θ1x

    简写为 h(x),也就是带一个变量的线性回归或者单变量线性回归问题。

    2) Cost function(代价函数,成本函数)

    对于Hypothesis:  hθ(x)=θ0+θ1x

    θi 为参数

    如何求θi?

    theta-cost function-52opencourse.com

    构想: 对于训练集(x, y),选取参数θ0θ1使得hθ(x)尽可能的接近y。  

    如何做呢?一种做法就是求训练集的平方误差函数(squared error function),Cost Function可表示为:

    J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2

    并且选取合适的参数使其最小化,数学表示如下:

    minimizeθ0,θ1J(θ0,θ1)

    3) Cost function intuition I(直观解释1)

    直观来看,线性回归主要包括如下四大部分,分别是Hypothesis, Parameters, Cost Function, Goal:

    costfunction-I-52opencourse.com

    这里作者给出了一个简化版的Cost function解释,也就是令θ0为0:

    然后令θ1分别取1、0.5、-0.5等值,同步对比hθ(x)J(θ0,θ1)在二维坐标系中的变化情况,具体可参考原PPT中的对比图,很直观。

    4) Cost function intuition II(直观解释2)

    回顾线性回归的四个部分,这一次不在对Cost Function做简化处理,这个时候J(θ0,θ1)的图形是一个三维图或者一个等高线图,具体可参考原课件。

    可以发现,当hθ(x)的直线越来越接近样本点时,J(θ0,θ1)在等高线的图中的点越来越接近最小值的位置。

    已回复 2012年 5月 2日 作者: 52nlp (2,630 基本) 
    编辑 2012年 5月 3日 作者:52nlp
      
     
    0投票
     
     

    5) Gradient descent(梯度下降)

    应用的场景之一-最小值问题:

    对于一些函数,例如J(θ0,θ1)

    目标:  minθ0,θ1J(θ0,θ1)

    方法的框架:

    1、给θ0θ1一个初始值,例如都等于0

    2、每次改变θ0θ1的时候都保持J(θ0,θ1)递减,直到达到一个我们满意的最小值;

    对于任一J(θ0,θ1) , 初始位置不同,最终达到的极小值点也不同,例如以下两个例子:

    梯度下降-1-52opencourse.com

    梯度下降2-52opencourse.com

    梯度下降算法:

    重复下面的公式直到收敛:

    梯度下降算法

    举例:

    参数正确的更新过程如下(同步更新):

    梯度下降-3-52opencourse.com

    错误的更新过程如下:

    梯度下降-4-52opencourse.com

    6) Gradient descent intuition(梯度下降直观解释)

    举例,对于一个简化的J(θ1)来说,无论抛物线的左边还是右边,在梯度下降算法下,θ1)都是保持正确的方向(递增或递减)

    对于learning rate(又称为步长)来说:

    learning rate-我爱公开课—52opencourse.com

    如果α过小,梯度下降可能很慢;如果过大,梯度下降有可能“迈过”(overshoot)最小点,并且有可能收敛失败,并且产生“分歧”(diverge)

    梯度下降可以使函数收敛到一个局部最小值,特别对于learning rate α是固定值的时候:

    我爱公开课-52opencourse.com

    当函数接近局部最小值的时候,梯度下降法将自动的采取“小步子”, 所以没有必要随着时间的推移减小learning rate.

    关于梯度下降算法,可以参考维基百科的介绍:http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95

    7) Gradient descent for linear regression(应用于线性回归的的梯度下降算法)

    梯度下降算法:
    梯度下降算法-我爱公开课-52opencourse.com

    线性回归模型:

    线性回归模型-我爱公开课—52opencouse.com

    J(θ0,θ1)对于θ0)θ1)求导,得:

    梯度下降求导-我爱公开课-52opencouse.com

    在梯度下降算法中进行替换,就得到单变量线性回归梯度下降算法:

    单变量信息回归梯度下降算法-我爱公开课-52opencourse.com

    详细的图形举例请参考官方PPT,主要是在等高线图举例梯度下降的收敛过程,逐步逼近最小值点,其中一幅图说明:线性回归函数是凸函数(convex function),具有碗状(bowl shape)。

    总结: 这里的梯度下降算法也称为"Batch" 梯度下降: 梯度下降的每一步都使用了所有的训练样本。

    已回复 2012年 5月 4日 作者: 52nlp (2,630 基本) 
    编辑 2012年 5月 6日 作者:52nlp
  • 相关阅读:
    本周个人总结(14周)
    本周个人总结
    排球计分规则
    我与计算机
    Tomcat处理HTTP请求原理
    数据结构与算法之排序算法(四):归并排序
    数据结构与算法之排序算法(三):选择排序
    数据结构与算法之排序算法(二):交换排序
    数据结构与算法之排序算法(一):插入排序
    数据结构与算法:概述+思维导图
  • 原文地址:https://www.cnblogs.com/renly/p/2844880.html
Copyright © 2011-2022 走看看