线性模型(3):Logistic Regression

此笔记源于台湾大学林轩田老师《机器学习基石》《机器学习技法

(一)Logistic Regression 原理

对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式,而是(x属于某一类的概率是多少)这种形式。

image

因为s的范围是(-∞,+∞), 而概率的范围是[0,1],所以我们需要一个映射函数:

image

我们如何应用概率知识来解决这一问题呢?一种想法是使用极大似然法。

image

image

image

image

现在出现了类似于linear Regression中的形式,我们可以求梯度。

image

根据上式,并不能得出向量w的close-form solution。

 

(二)Logistic Regression Algorithm

现在回想一下PLA算法,我们要从中提取出一种非常普遍的模式:iterative Optimization

回想一下,我们在PLA算法中何如一步步改善向量w?首先选择一个mistake 数据,然后用mistake数据矫正原来的w。

image

再抽象一下这个模型:

image

我们只需要关系两个参数即可:η代表了wt的变化大小,v代表了wt的变化方向(|v|=1)。

 

现在我们采用iterative Optimization方法来求解logistic regression中的w。

(1)考虑v

假设clip_image002,当eta非常小的情况下,根据Taylor展开公式,可以得到:clip_image002[4]

image

现在如果想使得上述公式最小,只需要使v为与clip_image002[6]方向完全相反的单位向量即可。

image

 

(2)考虑η

image

η太大太小都不好,最好是与clip_image002[6]的长度成比例。

image

 

(3)小结

image

 

(三) Stochastic Gradient Descent(SGD)

上述方法有什么问题吗?

每一个迭代,我们都必须使用training dataset中所有的N个数据。1)效率很低。2)只适合batch protocol类型的问题。

image

我们怎么做呢?随机选择一个数据来计算,而不是使用所有的数据。

image

posted @ 2016-04-28 16:48  wangyanphp  阅读(348)  评论(0编辑  收藏  举报