Machine Learning/Introducing Logistic Function
Machine Learning/Introducing Logistic Function
打算写点关于Machine Learning的东西, 正好也在cnBlogs上新开了这个博客, 也就更新在这里吧。
这里主要想讨论的是统计学习, 涵盖SVM, Linear Regression等经典的学习方法。 而最近流行的基于神经网略的学习方法并不在讨论范围之内。 不过以后有时间我会以Deep Learning为label新开一个系列, 大概写写我的理解。 总之Machine Learning的label下都是和一些数学上比较清晰的东西, 不会像deep learning一样要等着Brain Science那群人做实验, 找出新东西才能确定方向。
第一篇本来觉得从Linear Regression开始比较好, 引入问题后导入MP一般逆就能解决。 最后还是不打算这么写, 太简单了没有什么价值。 于是从Linear Regression开始。
最后, 刚刚设置了latex的代码, 不知能不能用, 不行的话事后再修改。
- Logistic Classification
首先来考虑一个问题, 我们有一组数据$X$, 现在打算将它分类成$k$个类$C$, 那么应该怎么办?
我们这么考虑, 对于每一个数据$x$, 显然都有$P(C_i|x)$, 代表了每个数据属于这个类的分布, 我们的目的就是找出一个最好的分界线, 让每个数据能有最大概率属于某个类。 (说句闲话, 当然我们也有$P(x)$, 并且有联合分布$P(C_i,x)$, 我们会在今后用这个结合bayesian的想法去做些更有意思的事情。 不过因为不是这次的主题, 下面不再提及。) 解决这个问题虽然有很多方法, 为了导出logistic, 这里我们用log-odds来解决这个问题。
$log(\frac{P(C_i|x)}{P(C_k|x)}) = \beta x + \alpha$
在这里, 对于每个类$C_i$, 我们都选择一个固定的类$C_k$作为参考, 同时只用linear model。 最终显然会有$k-1$个分界。现在我们来求每个$P(C_i|x)$:
$P(C_i|x) = \frac{e^{\beta x + \alpha}P(C_k|x)}{Z(\theta)}$
这里凭空多了个$Z$, 这是归一化项, 它是所有$P$的总和$Z(\theta)=P(C_k|x)+\sum_i{e^{\beta x + \alpha}P(C_i|x)}$, 注意到因为$C_k$我们已经单独拿了出来, 所以单独加上。
现在试着将$Z(\theta)$带进去, 看看发生了什么? $P(C_k|x)$消失了, 我们得到了一个新的式子:
$P(C_i|x) = \frac{e^{\beta x + \alpha}}{1+\sum_i{e^{\beta x + \alpha}}}$
看起来是不是很眼熟? 这个其实就是multi-class下面的logistic的形式。 当然, 在neural network里面, 他有个很唬人的名字, 叫做SoftMax Layer。 但值得注意的是这里我为了简单, 省略了$\beta$和$\alpha$的下标, 显然对不同的clas需要不同的曲线。
当然, 如果$k=2$, 他自然会回到我们熟悉的形式:
$P(C_i|x) = \frac{e^{\beta x + \alpha}}{1+e^{\beta x + alpha}}$
这就是我们熟悉的logistic function。 虽然导出的过程多少有点不太令人满意, 但最终还是得到了这个结果。实际上完全不必拘泥于这个方法, 随着深入, 我们会看到各种各样的方法里都能够自然地导出logistic function, 比如在RBM里, 我们就能发现$P(1|x)$是logistic function。 这也是为什么很多方法都倾向于选择这个非线性方程。
- 在最开始我提到了linear regression, 在logistic function的推到过程里也不加说明的用了线性边界, 这里应该有必要简单的介绍下这个问题。
首先是问题设定, 我们依然有一组数据$X,Y$, 我们想找出这组数据的特征。 所谓特征, 你可以想象有一堆点, 它们排成直线, 那显然我们如果有$\beta x + \alpha$的话, 特征就是两个参数$\beta$和$\alpha$, 有时我们也会称这个为数据的结构, 它们表达的意义差别不太大。
简单的说, 我们就是想用直线拟合这组数据, 如果没记错, 中学生都学过如何用最小二乘法拟合一组数据, 并且给出误差。 不过中学生的知识水平还很难把这个问题写成简单的形式, 我们这里当然不会出现$\sum_{ij}\|x_i-x_j\|^2$这种形式。
当然, linear regression的应用范围很广, 分类问题也可以处理。比如我们将每个类都设置为$e_i$, 然后自然就可以用linear model去找一个平面进行分类。 过程跟这里是完全一样的。
为了后面更容易解释, 我们稍微换个方向看这个问题, 我们有一组数据$x$, 如果它有什么结构, 那么一定就有这么一个函数能生成它, $f(x)=y$, {x,y}就是现在我们看到的。 因此我们的目标自然就是尝试找到$f$.
对于linear model, 这个问题非常简单
$Bx=Y$
只要有$B$, 一切就解决了。 不过这个事情没有想象中那么简单, 因为很多时候这个等式是无解的, 直接去求显然不合适。 因此我们转而去尝试最小化下面这个式子:
$f=\|Bx-Y\|^2$
这里我们加了L-2范数来保证能够最小化。 或许你会怀疑为什么没有偏移项, 这是因为为了简单, 我们把偏移项放进了B和x里, 从而不再需要求两次导数了。
到这里一切就显得很清晰了, 虽然很多时候不能保证误差为0(实际上是所有情况下, 因为实际问题的观测数据总和真值有偏移, 我们需要$E(Y)$才能推测真值), 但总是可以最小化这个误差。取导数, 令$f’ = 0$, 我们可以得到:
$B=(x’x)^{-1}x’Y$
这个结果很容易推导, 我也不给出详细的过程。 但这个结果很有意思。你可能已经注意到了, 这个形式满足M-P逆的四个条件, 也就是说这是M-P逆的表达形式。
虽然我们并没有引入vec算符, 也没有引入固有向量分界后空间的意义, 从数学上讲可能很难。 不过可以想像一下这个函数干了什么。 首先, 如果我们能够找到一个完美的$f$, 显然这个曲线会和点完全重合。 但首先我们的模型可能太过简单, 那么我们就用了直线上距离观测点最近的地方作为预测结果, 相当于一个投影过程, 这也是MP逆的定义所导出的东西。
当然, linear regression也会有很多变形和优化方法。 不过今天就到此为止, 今后我们会讲讲LASSO, 局域权重等一些实际中常用的东西。 或许还会补补数学上的一些东西。 总之, 以后有机会再见。
Machine Learning/Introducing Logistic Function的更多相关文章
- CheeseZH: Stanford University: Machine Learning Ex2:Logistic Regression
1. Sigmoid Function In Logisttic Regression, the hypothesis is defined as: where function g is the s ...
- machine learning 之 logistic regression
整理自Adrew Ng 的 machine learning课程week3 目录: 二分类问题 模型表示 decision boundary 损失函数 多分类问题 过拟合问题和正则化 什么是过拟合 如 ...
- 白话machine learning之Loss Function
转载自:http://eletva.com/tower/?p=186 有关Loss Function(LF),只想说,终于写了 一.Loss Function 什么是Loss Function?wik ...
- Machine Learning - 第3周(Logistic Regression、Regularization)
Logistic regression is a method for classifying data into discrete outcomes. For example, we might u ...
- [machine learning] Loss Function view
[machine learning] Loss Function view 有关Loss Function(LF),只想说,终于写了 一.Loss Function 什么是Loss Function? ...
- [Machine Learning]学习笔记-Logistic Regression
[Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为" ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 3) Logistic Regression & Regularization
coursera上面Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 我曾经使用Logistic Regressio ...
- Machine Learning in Action(4) Logistic Regression
从这节算是开始进入“正规”的机器学习了吧,之所以“正规”因为它开始要建立价值函数(cost function),接着优化价值函数求出权重,然后测试验证.这整套的流程是机器学习必经环节.今天要学习的话题 ...
- Andrew Ng Machine Learning 专题【Logistic Regression & Regularization】
此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记. 力求简洁,仅代表本人观点,不足之处希望大家探 ...
随机推荐
- LSM树存储模型
----<大规模分布式存储系统:原理解析与架构实战>读书笔记 之前研究了Bitcask存储模型,今天来看看LSM存储模型,两者尽管同属于基于键值的日志型存储模型.可是Bitcask使用哈希 ...
- ThinkPHP框架设计与扩展总结
详见:http://www.ucai.cn/blogdetail/7028?mid=1&f=5 可在线运行查看效果哦 导言:ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一 ...
- MVC验证03-自定义验证规则、禁止输入某些值
原文:MVC验证03-自定义验证规则.禁止输入某些值 本文继续体验自定义验证规则,需求是禁止输入某些值.本文与前2篇相关,请参考:MVC验证01-基础.远程验证 MVC验证02-自定义验证规则.邮 ...
- C# 获取与解析枚举类型的 DescriptionAttribute
原文:C# 获取与解析枚举类型的 DescriptionAttribute System.ComponentModel.DescriptionAttribute 这个 Attribute,经常被用来为 ...
- Java小知识点学习--------数组和位运算小知识点
位运算符: >>>无符号右移运算符,无符号右移的规则和右移的规则同样,仅仅是在填充时,无论原来是正数还是负数都用0来补充. 数组: arr1=arr2; 此时两个数组变量都会同一时 ...
- ios背景更新和下载
ios背景更新和下载 by 吴雪莹 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NS ...
- OCP-1Z0-051-题目解析-第13题
13. View the Exhibit and examine the structure of the PRODUCTS table. You need to generate a report ...
- [译]Java 设计模式之装饰器
(文章翻译自Java Design Pattern: Decorator – Decorate your girlfriend) 1.装饰模式的来历 让我们假设你在寻找一个女朋友.有来自像没美国中国日 ...
- Inno Setup connection to the database and create
原文 Inno Setup connection to the database and create Description: the first half of this program in I ...
- sbt公布assembly解决jar包冲突 deduplicate: different file contents found in the following
一个.问题定义 近期使用sbt战斗assembly发生故障时,包,在package什么时候,发生jar包冲突/文件冲突,两个相同class来自不同jar包classpath内心冲突. 有关详细信息:我 ...