线性模型(3):Logistic Regression
此笔记源于台湾大学林轩田老师《机器学习基石》《机器学习技法》
(一)Logistic Regression 原理
对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式,而是(x属于某一类的概率是多少)这种形式。
因为s的范围是(-∞,+∞), 而概率的范围是[0,1],所以我们需要一个映射函数:
我们如何应用概率知识来解决这一问题呢?一种想法是使用极大似然法。
现在出现了类似于linear Regression中的形式,我们可以求梯度。
根据上式,并不能得出向量w的close-form solution。
(二)Logistic Regression Algorithm
现在回想一下PLA算法,我们要从中提取出一种非常普遍的模式:iterative Optimization。
回想一下,我们在PLA算法中何如一步步改善向量w?首先选择一个mistake 数据,然后用mistake数据矫正原来的w。
再抽象一下这个模型:
我们只需要关系两个参数即可:η代表了wt的变化大小,v代表了wt的变化方向(|v|=1)。
现在我们采用iterative Optimization方法来求解logistic regression中的w。
(1)考虑v
假设,当eta非常小的情况下,根据Taylor展开公式,可以得到:
现在如果想使得上述公式最小,只需要使v为与方向完全相反的单位向量即可。
(2)考虑η
(3)小结
(三) Stochastic Gradient Descent(SGD)
上述方法有什么问题吗?
每一个迭代,我们都必须使用training dataset中所有的N个数据。1)效率很低。2)只适合batch protocol类型的问题。
我们怎么做呢?随机选择一个数据来计算,而不是使用所有的数据。