二元分类
在二元分类问题中,我们想要预测的变量是y,它可以取值0或者1:
0:“负类”(例如:良性肿瘤)
1:“正类”(例如:恶性肿瘤)
逻辑回归算法(Logistic Regression)
逻辑回归算法,适用于y值为离散值的情况,并且它的输出值保证在0到1之间:
逻辑回归算法是一个分类算法,即使它的名字里有回归,但我们也把它当成分类算法来使用。
假设函数表达式
逻辑回归的假设函数表达式:
其中g函数的表达式为:
这个函数被称为S型函数(Sigmoid function),或者逻辑函数(Logistic function),其图形如下:
因此我们可以得到:
假设函数的解释:
是对于新注入样本x的满足y=1的概率估计,用更加正式的式子来表示就是:
这个式子代表着在给定的特征x的情况下,y=1的概率,其中参数为θ。由于y的取值不是0就是1,因此当我们得到了y=1的概率时,y=0的概率就很容易得出:
决策边界
假设函数中:
- 如果 我们认为y=1
- 如果 我们认为y=0
即:
- 当 时,y=1;
- 当 时,y=0;
假设我们有一个训练集,其假设函数为:
假设我们已经拟合好了数据,并且得到了θ0=−3、θ1=1、θ2=1。
- 当 时,y=1
- 当 时,y=0
因此,当 时,我们可以得到一条直线:
这条直线被称为决策边界(decision boundary)。所以一旦能确定θ的值时,就能确定出决策边界了。
对于更复杂的假设函数,会有形态各异的决策边界:
逻辑回归的代价函数
线性回归的的代价函数如下:
而逻辑回归的假设函数是非线性的非凸函数,直接代入会有多个局部最优值。因此,为了表现为凸函数,逻辑回归的代价函数如下:
对应的函数的图形如下:
在y=1的情况下:
- 如果假设函数hθ(x)=1,那么代价函数为0:Cost=0。
- 如果假设函数hθ(x)→0,那么代价函数趋近于∞:Cost→∞
在y=0的情况下:
- 如果假设函数hθ(x)→1,那么代价函数为0: Cost→∞。
- 如果假设函数hθ(x)=0,那么代价函数等于0: Cost=0
当假设函数和期望值越接近时,代价函数值越小,反之越大。
简化代价函数以及梯度下降
代价函数的简化格式:
完整的逻辑回归的代价函数:
逻辑回归问题中最小化代价函数的方法,是通过梯度下降算法来实现。
由于假设函数的不同,虽然形式相似,但线性回归和逻辑回归的梯度下降是两个完全不同的东西。
在讨论线性回归的梯度下降算法时,我们谈到了如何监控梯度下降法以确保其收敛。其实我们通常也把这种方法运用在逻辑回归中,来检测梯度下降,以确保其正常收敛。
高级优化
除了梯度下降算法(Gradient descent),还有其他几种优化算法:
- 共轭梯度法(Conjugate gradient)
- 变尺度法(BFGS)
- 限制变尺度法(L-BFGS)
优点
不需要手动选择学习率a
其思路是,给出计算导数项和代价函数J(θ)的方法,你可以认为算法有一个智能的内部循环,这种智能的内部循环被称为线性搜索(line search)算法,它可以自动尝试不同的学习速率a,并自动选择一个好的学习速率a。因此它甚至可以在每次迭代时都选择不同的学习速率,那么你就不需要自己选择a了。通常情况下收敛速度比梯度下降算法更快
这些算法实际上在做更复杂的事情,而不仅仅是选择一个好的学习速率a,所以他们往往最终收敛的远远快于梯度下降。
缺点
- 比梯度下降法复杂多了
如果你不是数值计算方面的专家,不建议你亲自去写共轭梯度法、BFGS和L-BFGS,而是去使用一些现成的库。实际上Octave和Matlab都有很理想的库来实现这些先进的优化算法。
一对多分类问题
二元分类问题中,只有两个类别需要处理,对于一对多的分类问题,也可以借鉴二元分类的思想。
对于由三个类别元素组成的训练集。可以将其分成三个二元分类问题。
正规化
欠拟合
欠拟合(under fitting),这个问题的另一个术语叫做高偏差(High bias)。这两种说法大致相似,意思是它只是没有很好地拟合训练数据。
刚好合适
过拟合
过度拟合(over fitting),另一个描述该问题的术语是高方差(variance)。
介于高偏差和高方差这两者之间的情况叫做“刚好合适”。
概括地说,过拟合的问题将会在变量过多的时候发生,这种时候训练出的方程总能很好的拟合训练数据,所以你的代价函数实际上可能非常接近于0,甚至就是0。但是这会导致这种模型无法泛化到新的数据样本中,以至于无法预测新样本价格。
在这里术语“泛化(generalize)”指的是一个假设模型能够应用到新样本的能力。
解决过拟合问题
为了解决过度拟合问题,有两种方法:
要尽量减少选取的变量的数量。
- 可以人工检测变量的条目,保留重要的特征,舍弃无用的特征
- 模型选择算法
- 正则化
- 保留所有的特征变量,但是通过减少参数θj的数量级或值的大小。
正规化优化的目标
正规化之后的代价函数如下:
正规化项中的λ称为正规化参数,控制在两个不同的目标中的一个平衡关系:
- 第一个目标:使假设函数更好的拟合训练数据。
- 第二个目标:保持参数值较小。
在正规化线性回归中,如果正规化参数值被设定为非常大,那么会发生什么呢?
我们将会非常大地惩罚我们的参数,会使得所有的参数接近于0。如果我们这么做,那么就相当于我们从假设函数中去掉了这些项,并且使得我们只是留下了一个简单的假设:
那就是类似于拟合了一条水平直线,对于数据来说这就是欠拟合(underfitting)。