线性回归

线性回归是一个回归问题,即用一条线去拟合训练数据

线性回归的模型: 通过训练数据学习一个特征的线性组合,以此作为预测函数。

训练目标:根据训练数据学习参数(w1,w2, ... , wn,b)

学习策略:

要确定参数(w1,w2, ... , wn,b),即关键在于如何衡量 预测函数f(x)与训练数据y之间的差别。

     如果要使得预测函数f(x)尽可能准确,那么即要求f(x)-y尽可能小,而f(x)-y便是一个样本(x,y)的损失函数。

对于整个训练数据的损失函数,用均方误差损失函数(1/2是为了求导方便)

即当均方误差损失函数J最小时的参数(w1,w2, ... , wn,b),便是最终线性模型中的参数。

所以目标就是求:

求解这个损失函数的方法主要有两个: 最小二乘法,梯度下降法


使用梯度下降法求解  (梯度下降,批量梯度下降,随机梯度下降)

我们知道曲面上沿着梯度的方向是函数值变化(增大)最快的方向,因此要得到J(w)最小值,应该沿着梯度的反方向。

使用沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。

更新过程如下:

说明:

1. 上述是对参数向量W的分量wj进行更新的表达式。由更新表达式可知,每次更新使用所有的训练数据(m个样本)。

2. 在对参数wj更新时,使用到了样本xi(样本xi是个向量)的第j个分量。

3. 使用类似上面的表达式同时更新参数向量W的每一个分量,即更新参数向量W。

4. 更新参数时为什么使用 参数当前值 - 步长和导数的乘积

更新参数时应该是 参数当前值 + 步长和导数的乘积,但是由于曲面上沿着梯度的方向是函数值变化(增大)最快的方向,而我们求函数值减小最快的方向,因此应该给梯度方向取

       因此更新表达式为 参数当前值 - 步长和导数的乘积。

5. 未写出b的更新表达式,实质上可将参数W拓展,将b包含进W之中,更新过程是相同的。

参数拓展:w=(w1, w2, ... , wn, b)  ,x=(x1, x2, ... , xn, 1)


梯度下降,批量梯度下降,随机梯度下降 

  • 梯度下降:W的每一次更新,使用所有的样本。计算得到的是一个标准梯度。更新一次的幅度较大,样本不大的情况,收敛速度可以接受;但是若样本太大,收敛会很慢。

  • 随机梯度下降:随机 --- 每次使用训练数据中的一个样本更新,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,容易陷入到局部最优解中

  • 批量梯度下降:批量的梯度下降就是一种折中的方法,他用了一些小样本来近似全部的样本。即:每次更新w使用一批样本。

  • 步长的选择: 
    • 步长太小,收敛速度太慢
    • 步长太大,会在最佳收敛点附近徘徊

感知机

感知机是一个二分类问题

感知机模型:

 说明:

  1. 上式中的w和x,都表示向量。w=(w1, w2, ... , wn)  ,x=(x1, x2, ... , xn)

  2. 感知机的(wx+b)可以理解为线性回归,即感知机将线性回归的输出 作为使用单位阶跃函数的输入,最终的分类结果是阶跃函数的输出。

训练目标:根据训练数据学习参数(w1,w2, ... , wn,b)

学习策略:误分类点到分类超平面的总距离


对于超平面wx+b=0,w是垂直于超平面的法向量,因此

点到超平面的距离:

误分类点到超平面的距离:(误分类说明预测的分类 (wx+b)和实际分类不一致,因此乘积为-1,而距离是绝对值,所以应该是 -y(wx+b))


损失函数:误分类点到超平面(wx+b=0)的总距离(未考虑前面的参数1/|w|)

即当损失函数L(w,b)最小时的参数(w1,w2, ... , wn,b),便是最终模型中的参数。

所以目标就是求:

可以使用梯度下降法,更新参数w,b。类似于线性回归中的方法,可以拓展参数向量w=(w,b)

梯度:

更新过程:

说明:

1. 上述M是误分类点的集合,每次使用一批样本更新参数

2. wj表示参数向量w的第j个分量

3. 使用样本xi的第j个分量 更新参数wj


逻辑回归

逻辑回归是一个二分类问题

逻辑回归模型:

说明:本质是将线性回归的输出作为sigmoid函数的输入,最终的输出便是分类的结果。

模型解释:对于给定的x,输出y=1的概率

训练目标:根据训练数据学习参数

学习策略:条件概率p(y|x),表示x是输入,y是正确的输出的概率。学习策略即为求所有训练样本的条件概率之积的最大值。即要求概率之积尽可能大,这样模型的预测效果就会越准确。

损失函数:对数似然损失函数


对于y=1 以及y=0有下列概率:

因此,综合以上两种情况:

损失函数原始形式:

L表示所有训练样本的条件概率之积

取对数得到损失函数:

目标是求得损失函数的最大值,即:最大似然估计。要得到损失函数的最大值,可转化为求其最小值

其最小值是:

即:

使用梯度下降法,求J的最小值

由于:

因此:

更新过程:


如有错误之处,请评论中指正。

线性回归,感知机,逻辑回归(GD,SGD)的更多相关文章

  1. Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS

    Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...

  2. Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression

    原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性 ...

  3. 【数据分析】线性回归与逻辑回归(R语言实现)

    文章来源:公众号-智能化IT系统. 回归模型有多种,一般在数据分析中用的比较常用的有线性回归和逻辑回归.其描述的是一组因变量和自变量之间的关系,通过特定的方程来模拟.这么做的目的也是为了预测,但有时也 ...

  4. 【Coursera】线性回归和逻辑回归

    一.线性回归 1.批量梯度下降法 每次对参数进行一次迭代时,都要扫描一遍输入全集 算法可以收敛到局部最优值 当迭代多次之后,每次迭代参数的改变越小 2.随机梯度下降法 对于一个输入样本,对参数进行一次 ...

  5. 机器学习_线性回归和逻辑回归_案例实战:Python实现逻辑回归与梯度下降策略_项目实战:使用逻辑回归判断信用卡欺诈检测

    线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...

  6. 机器学习之感知器和线性回归、逻辑回归以及SVM的相互对比

    线性回归是回归模型 感知器.逻辑回归以及SVM是分类模型 线性回归:f(x)=wx+b 感知器:f(x)=sign(wx+b)其中sign是个符号函数,若wx+b>=0取+1,若wx+b< ...

  7. Machine Learning 学习笔记 (1) —— 线性回归与逻辑回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 梯度下降法 (Gradien ...

  8. 机器学习(三)—线性回归、逻辑回归、Softmax回归 的区别

    1.什么是回归?  是一种监督学习方式,用于预测输入变量和输出变量之间的关系,等价于函数拟合,选择一条函数曲线使其更好的拟合已知数据且更好的预测未知数据. 2.线性回归  于一个一般的线性模型而言,其 ...

  9. 线性回归、逻辑回归(LR)

    线性回归 回归是一种极易理解的模型,就相当于y=f(x),表明自变量 x 和因变量 y 的关系.最常见问题有如 医生治病时的望.闻.问.切之后判定病人是否生了什么病,其中的望闻问切就是获得自变量x,即 ...

  10. 【小白学AI】线性回归与逻辑回归(似然参数估计)

    文章转自[机器学习炼丹术] 线性回归解决的是回归问题,逻辑回归相当于是线性回归的基础上,来解决分类问题. 1 公式 线性回归(Linear Regression)是什么相比不用多说了.格式是这个样子的 ...

随机推荐

  1. 第一个spring冲刺总结

    讨论成员:罗凯旋.罗林杰.吴伟锋.黎文衷 第一阶段总体是做到了运算的功能,只是一些基本的功能实现,包括APP进入动画,以及界面的基本效果设计,还有核心算法已经实现(可以计算括号 乘除法等等)“: 燃尽 ...

  2. 【TCP/IP详解 卷一:协议】第六章:DHCP 和自动配置

    简介 为了使用 TCP/IP 协议族,每台主机or路由器都需要一定的配置信息: IP地址 子网掩码 广播地址 路由或转发表 DNS 协议配置方法: 手动 通过使用网络服务来获得 使用一些算法来自动确定 ...

  3. 如何解决abd.exe已停止工作

     打开电脑,右键点击属性会出现如下界面: 点击左边高级系统设置:将会出现如下界面: 点击环境变量,点编辑. 把环境变量中的 ANDROID_ADB_SERVER_PORT 改成1122以后还遇到这个问 ...

  4. 使用mdadm创建磁盘RAID10整列,RAID5出现故障,自动替换硬盘

    首先需了解mdadm的参数使用 . 第一步: 先在虚拟机中添加四块硬板 第二步:使用mdadm命令创建RAID10名称为"/dev/md0" -C代表创建操作,v 显示创建过程,- ...

  5. Alpha阶段敏捷冲刺①Scrum 冲刺博客

    第 1 篇 Scrum 冲刺博客对整个冲刺阶段起到领航作用,应该主要包含三个部分的内容: 各个成员在 Alpha 阶段认领的任务 成员 任务 张晨晨 完成界面设计(前端) 黄登峰 完成界面设计(前端) ...

  6. ajax 数据请求(一)同域

    参考:http://www.css88.com/jqapi-1.9/jQuery.ajax/ http://www.cnblogs.com/haitao-fan/p/3908973.html 1.常用 ...

  7. Art & Material

    Art(Android runtime)模式伴随Android 4.4发布.相对于Dalvik模式来说,Art模式改善了Android程序的性能. Material Design伴随Android 5 ...

  8. poj 2299 Ultra-QuickSort(树状数组求逆序数)

    链接:http://poj.org/problem?id=2299 题意:给出n个数,求将这n个数从小到大排序,求使用快排的需要交换的次数. 分析:由快排的性质很容易发现,只需要求每个数的逆序数累加起 ...

  9. Java多线程之ThreadLocal总结

    原贴地址:http://www.cnblogs.com/zhengbin/p/5674638.html 阅读目录 官方对ThreadLocal的描述: <Thinking in Java> ...

  10. app流畅度测试--使用手机自带功能

    1.进入开发者选项,在“监控”选项卡找到“GPU呈现模式分析”的选项 2.开启后,即可以条形图和线形图的方式显示系统的界面相应速度 3.那么要如何根据曲线判断系统是否流畅呢?实际上这个曲线表达的是GP ...