zoukankan      html  css  js  c++  java
  • ### 线性回归(Regression)

    linear regression
    logistic regression
    softmax regression

    #@author:       gr
    #@date:         2014-01-21
    #@email:        forgerui@gmail.com
    

    一、linear regression

    线性模型:

    [h_ heta(x) = heta^T X ]

    代价函数:
    代价函数使用平方误差损失函数。

    [min_ heta J( heta) = dfrac{1}{2} sum_{i=1}^m(h_ heta(x^{(i)}) - y^{(i)})^2 ]

    求解:
    可以使用最小二乘法和梯度下降法。
    最小二乘法:

    [ heta = (X^TX)^{-1}X^T overrightarrow y ]

    梯度下降法:
    批梯度下降,增量梯度下降。更新参数,以使代价函数最小化。

    二、logistic regression

    逻辑回归模型:
    输出 (Y=1) 的对数几率是由输入 (x) 的线性函数表示的模型,即logistic regression

    [P(Y=1 mid x) = dfrac{1}{1+e^{-z}} = dfrac{1}{1 + e^{-w cdot x}} = dfrac{e^{w cdot x}}{1 + e^{w cdot x}} ]

    [P(Y=0 mid x) = 1- P(Y=1 mid x) = dfrac{1}{1 + e^{w cdot x}} ]

    求事件的对数几率:

    [logit(p) = logdfrac{p}{1-p} = w cdot x ]

    对数几率是一个关于x的线性函数。

    模型参数估计:
    逻辑回归的参数估计可以采用极大似然估计求得。

    $$egin{align*} l( heta) = & Pi_{i=1}^N (p_i)^{y_i}(1-p_i)^{1-y_i} \ = & sum_{i=1}^{N} [y_ilog{(p_i)} + (1-y_i)log{(1 - p_i)}] \ = & sum_{i=1}^{N} [ y_i log{(dfrac{p_i}{1-p_i})} + log{(1-p_i)}] \ = & sum_{i=1}^N [y_i(w cdot x_i) - log{(1 + e^{(w cdot x )})}] end{align*} $$

    (L(w))求极大值,就可以得到(w)的估计值。用梯度下降法或拟牛顿法求解。

    损失函数:

    1. Gold Standard
    2. Hinge Loss
      SVM
    3. Log Loss
      Logistic RegressionSoftmax Regression
    4. Squared Loss
      Linear Regression
    5. Boosting

    代价函数:
    这里使用对数函数作为损失函数:

    [J( heta) = -dfrac{1}{m}[ ~ sum_{i=1}^m y_ilog(h_ heta(x_i)) + (1-y_i)log(1-h_ heta(x_i)) ~] ]

    用梯度下降法或拟牛顿法求解。

    三、softmax regression

    模型:
    对于多分类问题,(y_i in { 1, 2, cdots , k})。对于其中一类作为positive,则另外的k-1类就为negative。

    $$ egin{align*} h_ heta(x^{(i)}) = & left[ egin{array}{c} p(y^{(i)} = 1 mid x^{(i)}, heta) \ p(y^{(i)} = 2 mid x^{(i)}, heta) \ vdots \ p(y^{(i)} = k mid x^{(i)}, heta) \ end{array} ight] \ = & dfrac{1}{sum_{j=1}^k e^{ heta_j^Tx^{(i)}}} left[ egin{array}{c} e^{ heta_1^T x^{(i)}} \ e^{ heta_2^T x^{(i)}} \ vdots \ e^{ heta_k^T x^{(i)}} \ end{array} ight] end{align*} $$

    ( heta)( heta_1, heta_2, ldots heta_K)罗列起来:

    [ heta = left[ egin{array}{c} heta_1^T \ heta_2^T \ vdots \ heta_k^T end{array} ight]]

    得到softmax回归的代价函数:

    [J( heta) = -dfrac{1}{m} [~ sum_{i=1}^m sum_{j=1}^k 1 {y^{(i)} = j}log{dfrac{e^{ heta_j^T x^{(i)}}}{sum_{l=1}^k e^{ heta_l^Tx^{(i)}}}} ~] ]

    可以看出softmax是logistic的推广,同样用梯度下降法或拟牛顿法求解。

    Reference

    1. http://www.cnblogs.com/bzjia-blog/p/3366780.html
    2. http://www.cnblogs.com/bzjia-blog/p/3370869.html
    3. 李航 著 《统计学习方法》
    4. http://blog.csdn.net/viewcode/article/details/8794401
    5. http://blog.csdn.net/abcjennifer/article/details/7716281
    6. Deva Ramanan 《Machine Learning》 Lecture1
  • 相关阅读:
    小程序-文章:微信小程序常见的UI框架/组件库总结
    小程序-文章:微信第三方登录(静默授权和非静默授权)
    asterisk
    Java实现 洛谷 P1423 小玉在游泳
    Java实现 洛谷 P1423 小玉在游泳
    Java实现 洛谷 P1423 小玉在游泳
    Java实现 洛谷 P1035 级数求和
    Java实现 洛谷 P1035 级数求和
    Java实现 洛谷 P1035 级数求和
    Java实现 洛谷 P1035 级数求和
  • 原文地址:https://www.cnblogs.com/gr-nick/p/4264772.html
Copyright © 2011-2022 走看看