zoukankan      html  css  js  c++  java
  • 1.线性回归、Logistic回归、Softmax回归

    本次回归章节的思维导图版总结已经总结完毕,但自我感觉不甚理想。不知道是模型太简单还是由于自己本身的原因,总结出来的东西感觉很少,好像知识点都覆盖上了,但乍一看,好像又什么都没有。不管怎样,算是一次尝试吧,慢慢地再来改进。在这里再梳理一下吧!


    线性回归(Linear Regression

    1. 什么是回归?                   

    给定一些数据,{(x1,y1),(x2,y2)…(xn,yn) },x的值来预测y的值,通常地,y的值是连续的就是回归问题,y的值是离散的就叫分类问题。

    高尔顿的发现,身高的例子就是回归的典型模型。

    1. 回归分为线性回归(Linear Regression)和Logistic 回归。

    线性回归可以对样本是线性的,也可以对样本是非线性的,只要对参数是线性的就可以,所以线性回归能得到曲线。

    1. 线性回归的目标函数?

    (1)

    为了防止过拟合,将目标函数增加平方和损失:

    (2)

    增加了平方和损失,是2次的正则,叫L2-norm,有个专有名字:Ridge。【岭回归】

    也可以增加绝对值损失,叫L1-norm,也有个专有名字:Lasso。

    都假定参数θ服从高斯分布。

    1. 目标函数的推导?

    以极大似然估计解释最小二乘。过程如下:

    (3)

    1. θ的解析式?

    一句话:目标函数对θ求偏导,再求驻点。

    防止过拟合,加入λ扰动:本质是L2-norm

    1. 梯度下降算法?

    梯度下降得到得是局部最小值,而不是全局最小值。

    SGD随机梯度下降的优点?

    1. 速度快
    2. 往往能跳出局部最小值
    3. 适合于在线学习

    由于线性回归的目标函数是凸函数,所以在这个地方用梯度下降得到的就是全局最小值。

    沿着负梯度方向迭代,更新后的θ会使得J(θ)更小。

    注意:这里是对某一个样本,对θj求偏导。

    每一个样本都对此时的θj求偏导。

    注意:梯度是矢量,既有方向,又有值。例如,在二维空间中的表现为斜率,当斜率为1时,能想象方向,1不就是它的值吗?厉害了,竟然现在才明白过来。

    梯度下降:(又称批量梯度下降batch gradient descent

    得到所有样本后,再做梯度下降。

    随机梯度下降:(stochastic gradient descent

    来一个样本就进行梯度下降,来一个样本就进行梯度下降,适合于在线学习。

    还有一个二者的折衷:

    mini-batch:

    攒够若干个做一次批梯度下降,若干个样本的平均梯度作为下降方向。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------

    LR(Logistic Regression)Logistic回归

    广义线性模型(General Linear Regression  GLR)

    1.Logistic回归的损失函数?

    负对数似然NLL。

    Softmax回归是Logistic回归的多分类情况。

    沿着似然函数正梯度上升

    这个图很能理解线性回归和LR回归之间的关系。

    LogisticRegression 就是一个被logistic方程归一化后的线性回归,仅此而已。

    1. 提到Logistic回归,首先要说他跟线性回归的联系:其实就是被Logistic方程归一化的线性回归。将预测的输出映射到0,1之间。以概率判断类别,大于0.5,判为一类,小于0.5判为一类。
    2. Logistic 方程/Sigmoid 函数,大概长这样。

    概率分布函数:

    似然函数:

    对数似然:

    对θj求偏导:

    沿着梯度上升。梯度上升也行,梯度下降也对。

    注意:线性回归里面求损失函数的最小值得时候用到了梯度下降算法。

    一定注意,那个是求损失函数的最小值,越小越好,当然用下降;而在这里,要求对数似然函数的最大值,则需要沿着梯度上升,越大越好。到最后得到极大似然估计值θ,那么学到的Logistic回归模型就是:

    一定注意,这两次用梯度的目的不同,一次是为了损失值最小,一次是为了似然值最大,一个下降,一个上升!

    Logistic的损失函数:

    负对数似然损失函数NLL。

    可以很好的解释。

    常见的损失函数

    机器学习或者统计机器学习常见的损失函数如下:

    1.0-1损失函数 (0-1 loss function)

     

    2.平方损失函数(quadratic loss function)

     

    3.绝对值损失函数(absolute loss function)

    L(Y,f(x))=|Y−f(X)| 

    4.对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)

     

    逻辑回归中,采用的则是对数损失函数。如果损失函数越小,表示模型越好。

    说说对数损失函数与平方损失函数

    在逻辑回归的推导中国,我们假设样本是服从伯努利分布(0-1分布)的,然后求得满足该分布的似然函数,最终求该似然函数的极大值。整体的思想就是求极大似然函数的思想。而取对数,只是为了方便我们的在求MLE(Maximum Likelihood Estimation)过程中采取的一种数学手段而已。

    全体样本的损失函数可以表示为:


    这就是逻辑回归最终的损失函数表达式。

    Logistic 回归的总结:

    优点:方法简单、容易实现、效果良好、易于解释

    特征选择很重要:人工选择,随机森林、PCA、LDA

    梯度下降算法是参数优化的重要手段,尤其是SGD。(适用于在线学习,能挑出局部极小值。)

    Softmax回归

    Logistic回归的推广,概率计算公式:

     

     

     

    本章总结:

    对于线性回归,求解参数θ即可,可以用解析解的方法求解,也可以用梯度下降的方式求解。

    对于Logistic回归和Softmax回归,推导及求解方式相同。基本遵循以下步骤:

    1. 给出分类概率函数
    2. 求累加的似然函数
    3. 转换为对数似然函数求驻点
    4. 利用梯度下降法求解。
  • 相关阅读:
    IO流遍历文件夹下所有文件问题
    java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)
    IO流读取文件内容时,出现空格的问题(未找到原因)
    查看程序运行时间的例子
    OOP和
    java语言的特点
    java三大版本解析
    关于培训的一些文章
    Android-自定义开关(ViewGroup版)
    Android-自定义开关(升级版)
  • 原文地址:https://www.cnblogs.com/xubing-613/p/6537777.html
Copyright © 2011-2022 走看看