zoukankan      html  css  js  c++  java
  • 机器学习逻辑回归

    (整理的简单,公式也没使用公式编辑器。)

    对于数据集D={(x1,y1),(x2,y2),...,{xn,yn}} ,而xi= {xi1,xi2,...,xim} 代表m维 。

      在线性回归中,我们想学习一个线性的函数 f(x) = w1*x1+w2*x2+w3*x3+...+wm*xm+b . 向量形式 f(X) = Wt*X +b  其中Wt 是W 向量的转置。其可能值范围是(-oo,+oo)。

      对于二分类任务,其类别标记为y={0,1},  需要将范围取到(0,1),就使用sigmoid函数。为什么会想到用这个函数,我想大概也是凑出来的吧。sigmoid 函数形式 如下: y = 1/(1+e-z)   , z= f(x) . 

      p(y=1|x)=e(f(x)) /(1+e(f(x)) ,p(y=0|x)= 1 /(1+e(f(x)) .

           两种解释:

      1. 极大似然法:

           对于给定的数据集D ,可以用极大似然法估计 W 。

           l(w,b) = 所有数据在给定假设概率情况下,所有数据产生的概率的积。  即存在即合理。

      2. 交叉熵损失

      在线性归回中,用的是平方误差和 的损失函数。 在逻辑回归中, 用交叉熵损失函数。 

      这两种解释,最终推到出来的结果是一致的。殊途同归。

      由于无法直接求解损失函数,损失函数有是高阶可导连续凸函数,可以使用梯度下降法、牛顿法求取最优值。 梯度下降就是泰勒展开一阶的情况,牛顿法是泰勒展开二阶的情况。

      牛顿法 条件严格 一二阶连续可导,海森矩阵必须正定。

      参数更新形式:

        分三种: batch gradient descent  BGD , stochastic gradient descent SGD, mini-batch gradient descent mini-BGD.

      区别就是 wj = wj + alpha * E(i=1,m) ( y(i) - h(x(i)))xj(i)  

      当 上式的m = n 时, 就是BGD ,

      当m<n时,是mini-BGD,

      当m=1时, 是SGD。

    方法 优缺点
    BGD 可能落入局部极值点,跳不出来
    SGD 训练快,能有一定概率跳出局部极值点,可以在线学习
    mini-BGD 介于二者之间
  • 相关阅读:
    CentOS+Phpstudy安装Sqli-Labs
    机器学习中的偏差与方差
    DVWA学习之SQL注入
    【转】EDNS
    【转】个人总结-网络安全学习和CTF必不可少的一些网站
    信息安全书单
    全球信息安全会议 Top 50
    【转】Linux编程之UDP SOCKET全攻略
    网络协议栈学习之重要的数据结构
    网络协议栈学习(二)创建 socket
  • 原文地址:https://www.cnblogs.com/parkin/p/7401272.html
Copyright © 2011-2022 走看看