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 介于二者之间
  • 相关阅读:
    九度OJ 1136:Number Steps(步数) (基础题)
    九度OJ 1135:字符串排序 (排序)
    九度OJ 1134:密码翻译 (翻译)
    day 2克隆虚拟机器minimal需要注意的问题和制作本地yum源和常用的Linux的命令
    ssh 免 密码登录另一台机器 和 secureCRT的乱码问题
    Select2 用法
    JS常用功能
    虚拟机CentOS的NAT模式联网和SecureCRT远程登录管理工具
    2.网络配置和shell获取ip
    1.安装虚拟机遇到到问题和内存拓展
  • 原文地址:https://www.cnblogs.com/parkin/p/7401272.html
Copyright © 2011-2022 走看看