[UFLDL] Linear Regression & Classification
博客内容取材于:http://www.cnblogs.com/tornadomeet/archive/2012/06/24/2560261.html
Deep learning:六(regularized logistic回归练习)
Deep learning:五(regularized线性回归练习)
Deep learning:四(logistic regression练习)
Deep learning:三(Multivariance Linear Regression练习)
Deep learning:二(linear regression练习)
outline
参考资料:
Comment: 难点不多,故补充CMU 10-702线性部分的章节。
本文主要是个概括,具体内容还需要看具体章节讲解。
概念辨析
线性拟合是线性回归么?
回归,仅表示一个“repeative 回归过程”,或者叫做“回归模型”。
至于要解决什么问题,这要取决于 solver。
基本问题
Ref: https://www.zhihu.com/question/21329754
- Logistic Regression 分类问题
- Linear Regression 拟合问题
- Support Vector Regression 拟合问题
- Support Vector Machine 分类问题
- Naive Bayes 拟合/分类都可以
- A multilayer perceptron (MLP)
- 前馈神经网络(如 CNN 系列) 用于 分类 和 回归
- 循环神经网络(如 RNN 系列) 用于分类 和 回归
拟合:线性回归
简单模式:一元线性回归问题(一个因子)
Ref: Deep learning:二(linear regression练习)
求:孩子的年纪和身高的关系,training过程。

进阶模式:多元线性回归问题(两个因子)
Ref: 三(Multivariance Linear Regression练习)
【损失函数】其向量表达形式如下:

【参数更新】当使用梯度下降法进行参数的求解时,参数的更新公式如下:

就是感知器,一点小区别的是:1/m有没有必要的问题。
分类:线性分类
二分类 - 逻辑回归
基本原理
Ref: 一文读懂逻辑回归【比较全面】
【损失函数】采用cross-entropy as loss function:

【参数更新】如果采用牛顿法来求解回归方程中的参数,则参数的迭代公式为:

其中一阶导函数和hessian矩阵表达式如下:

线性不可分 - 升维
具有2个特征的一堆训练数据集,从该数据的分布可以看出它们并不是非常线性可分的,因此很有必要用更高阶的特征来模拟。
如下用到了特征值的5次方来求解。【升维的意义和思路】

"正则项" 的意义
Regularization项在分类问题中(logistic回归)的应用。


没正则项:

有正则项:

Weight Decay: lamda的选择也可以看作是模型的选择。
小总结:
- 注意对比”拟合“与“分类”的公式表达的区别。
- sigmoid + xentropy算是绝配。
多分类 - Softmax Regression
多分类问题,共有k个类别。在softmax regression中这时候的系统的方程为:

其中的参数sidta不再是列向量,而是一个矩阵,矩阵的每一行可以看做是一个类别所对应分类器的参数【the parameters on edges (fan in) of Output Layer】,总共有k行。
所以矩阵sidta可以写成下面的形式:

【thetai就是fan in的各个边的权重们】
“指数分布就有失忆性”
比较有趣的时,softmax regression中对参数的最优化求解不只一个,每当求得一个优化参数时,如果将这个参数的每一项都减掉同一个数,其得到的损失函数值也是一样的。
这说明这个参数不是唯一解。用数学公式证明过程如下所示:

从宏观上可以这么理解,因为此时的损失函数不是严格非凸的,也就是说在局部最小值点附近是一个”平坦”的,所以在这个参数附近的值都是一样的了。
那么怎样避免这个问题呢?加入规则项就可以解决。
比如说,用牛顿法求解时,hession矩阵如果没有加入规则项,就有可能不是可逆的从而导致了刚才的情况,如果加入了规则项后该hession矩阵就不会不可逆。
- 损失函数的方程对比:【1{.}是一个指示性函数】


- 偏导函数对比:
如果要用梯度下降法,牛顿法,或者L-BFGS法求得系统的参数的话,就必须求出损失函数的偏导函数,softmax regression中损失函数的偏导函数如下所示:


网页教程中还介绍了softmax regression和k binary classifiers之间的区别和使用条件。总结就这么一个要点:
- 如果所需的分类类别之间是严格相互排斥的,也就是两种类别不能同时被一个样本占有,这时候应该使用softmax regression。[one-hot,严格互斥]
- 如果所需分类的类别之间允许某些重叠,这时候就应该使用binary classifiers了。[sigmoid本来就有中间地带]
[UFLDL] Linear Regression & Classification的更多相关文章
- 为什么用linear regression可以做classification
输出空间 错误衡量方式 能不能直接用linear regression for classification 当成一个分类器回传回去 heuristic(启发式的:试探) 错误衡量 complexit ...
- 深度学习 Deep Learning UFLDL 最新 Tutorial 学习笔记 1:Linear Regression
1 前言 Andrew Ng的UFLDL在2014年9月底更新了. 对于開始研究Deep Learning的童鞋们来说这真的是极大的好消息! 新的Tutorial相比旧的Tutorial添加了Conv ...
- ufldl学习笔记与编程作业:Linear Regression(线性回归)
ufldl学习笔记与编程作业:Linear Regression(线性回归) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learning高质量群里面听一些 ...
- 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别
1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...
- Coursera台大机器学习课程笔记8 -- Linear Regression
之前一直在讲机器为什么能够学习,从这节课开始讲一些基本的机器学习算法,也就是机器如何学习. 这节课讲的是线性回归,从使Ein最小化出发来,介绍了 Hat Matrix,要理解其中的几何意义.最后对比了 ...
- 斯坦福机器学习视频笔记 Week1 Linear Regression and Gradient Descent
最近开始学习Coursera上的斯坦福机器学习视频,我是刚刚接触机器学习,对此比较感兴趣:准备将我的学习笔记写下来, 作为我每天学习的签到吧,也希望和各位朋友交流学习. 这一系列的博客,我会不定期的更 ...
- Linear Regression with machine learning methods
Ha, it's English time, let's spend a few minutes to learn a simple machine learning example in a sim ...
- 斯坦福CS229机器学习课程笔记 Part1:线性回归 Linear Regression
机器学习三要素 机器学习的三要素为:模型.策略.算法. 模型:就是所要学习的条件概率分布或决策函数.线性回归模型 策略:按照什么样的准则学习或选择最优的模型.最小化均方误差,即所谓的 least-sq ...
- Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression
这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...
随机推荐
- 47. 全排列 II
47. 全排列 II 题意 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] 解题思路 去重的全排列 ...
- android textview使用ttf字体显示图片
最近在研究一个组件时,发现使用textview显示了一张图片,原以为android原生支持,仔细研究了下,是用ttf字体实现的,记录下 网上的介绍文章很多,这里就不啰嗦了,链接 https://www ...
- Reactor 3 学习笔记(1)
Reactor 3 与之前学习的RxJava是同一类(反应式编程)框架,基本概念大致差不多,简单记录一下: Reactor 3 利用了java 8中的CompletableFuture.Stream. ...
- Java项目收藏
数据库 MyCat:数据库中间件 IM.消息推送 t-io:不仅仅是百万级即时通讯框架 tio-im:基于t-io写的IM,主要目标降低即时通讯门槛,实现多端不同协议间的消息发送如http.webso ...
- Struts与jsp+javabean+servlet区别
采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...
- [Android Pro] so 动态加载—解决sdk过大问题
原文地址: https://blog.csdn.net/Rong_L/article/details/75212472 前言 相信Android 开发中大家或多或少都会集成一些第三方sdk, 而其中难 ...
- tex---就是tex文件,这个地球人都知道,是文章所在的主要文件
本demo中包括两个文件example.tex和myref.bib,用的时候參照改即可啦. example.tex:用的时候将'\'和后面文字中间的空格去掉 ----------------- \do ...
- 版本控制-搭建git服务器
GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...
- Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换
一.问题描述 在上次博文中,我们使用RadioGroup+ViewPage+Fragmen实现了顶部滑动导航(查看文章:http://www.cnblogs.com/jerehedu/p/460759 ...
- Android学习笔记(11):线性布局LinearLayout
线性布局LinearLayout是指在横向或是竖向一个接一个地排列.当排列的组件超出屏幕后,超出的组件将不会再显示出来. LinearLayout支持的XML属性和相应方法如表所看到的: Attrib ...