zoukankan      html  css  js  c++  java
  • 斯坦福大学公开课:监督学习应用,梯度下降

    监督学习应用例子:以房屋大小和价格为例,本次采用47个样本。

    m: training examples,训练样本集

    x: "input",variables/features变量,x为输入变量,在本次例子中,表示房屋大小

    y: "output", variable/"target" variable,y为输出变量,在本次例子中,表示房屋价格

    (x,y): training examples 表示训练样本

    监督学习的流程如下(以房子为例):

                                            training set(训练集)

                                                    ↓

                                        learning algorithm(学习算法)

                                                    ↓

    new living area(新的房子大小)   →  h(假设与之相关的函数)→estimate price(根据h函数评估房子价格)

    对于函数h(x)=hθ(x)=θ01x12x2

    其中x1表示房子大小,x2表示卧室数量;

    hθ(x)表示特征向量x预测的价格;

    因此公式会转为为:

    n表示特征向量的个数;

    在本例中,特征向量只有2,一个是房子大小,另外一个是卧室数量,因此n为2,如下公式所示,

    J(θ)表示的是真实值和预测值之间的差距。利用的原理是最小二乘法。

    对于J(θ),我们要做的就是使J(θ)最小化,J(θ)越小,说明我们预测的结果越准确。

    梯度下降法的原理是通过多次迭代,当J(θ)不再发生很大变化,说明已经收敛了。

    随机梯度下降:当样本量很大时,比如几十亿的训练样本量。这个时候采用随机梯度下降法比较合适。可以有效节省时间。但是随机梯度下降法不会精确收敛到全局的最小值。也就是意味着,你在下降过程中,可能在全局最小值附近徘徊,有可能还会往高处走。但是你的参数总体趋向于全局最小值附近徘徊。

    随机梯度下降法的公式:

    repeat {

     for J: 1 to m {

    ( for all i )

     }

    }

    表示对参数向量的,所有第i个位置按公式的方式进行更新。这个方法的好处是,修改参数时,仅需要查看第一个训练样本,并且利用第一个训练样本进行更新,之后使用第二个训练样本执行下一次更新。这样调整参数就会快很多。因为你不需要在调整之前,遍历所有的数据。

  • 相关阅读:
    July 22nd 2017 Week 29th Saturday
    July 21st 2017 Week 29th Friday
    社交类APP原型模板分享——QQ
    专访UI中国认证设计师卤大湿 | 一位UI大师关于UI设计的思考
    第十届Mockplus ▪ UXPA用户体验西南赛区决赛成功举行
    【附案例】UI交互设计不会做?设计大神带你开启动效灵感之路
    旅游类APP原型模板分享——爱彼迎
    有了这款自动标注/切图神器,攻城狮终于可以省心了
    设计师升职加薪必须知道的10个设计网站
    官网类原型模板分享——Apple
  • 原文地址:https://www.cnblogs.com/chenwenyan/p/6821558.html
Copyright © 2011-2022 走看看