课时六 逻辑回归
今天学习的是解决分类问题的算法,逻辑回归算法。逻辑回归算法的输出值总是在0-1之间。下面介绍逻辑回归算法的细节。
1、假设函数和判定边界
逻辑回归算法的假设函数要满足一个条件就是输出值在0-1之间,因此,机器学习领域专家引入了一个新的模型,该模型的输出变量范围总是在0-1之间。假设函数形式如下:
其中X代表特征向量,g()代表逻辑函数,Θ代表参数向量,g是一个S型函数,公式如下:
函数图像如下:
假设函数的意义是:对于任何输入变量,根据选择的参数计算输出变量=1的可能性,即:
假如我们的分类问题是一个二分类,决策边界就是分隔y=1和y=0的曲线。我们可以用非常复杂的模型来适应非常复杂形状的判定边界。
2、代价函数
为了拟合逻辑回归模型的参数,我们需要定义代价函数,如果沿用线性回归中代价函数的定义,得到的代价函数图像是非凸的,意味着我们会有很多局部最小值就会影响梯度下降算法寻找全局最小值。所以我们重新定义了逻辑回归的代价函数:
其中:
上面我们知道了h的函数图像,取值范围是0-1,所以我们不难得出代价函数和h的关系图像:
通过这个图像我们可以发现代价函数有一个特点:当实际y=1并且预测值h=0时,说明预测完全不对,此时代价最大,如上图左边所示,同理当实际y=0预测h=1时代价最大,如上图右边所示;相反如果实际y=1预测h=1,或者实际y=0预测h=0时代价最小=0。如果代价函数是两段的话不好用梯度下降算法,所以老师把代价函数简化成一个:
我们可以通过带入不同的h和y值把上边的式子再还原成两段,所以上边的形式和我们最开始定义的代价函数形式意思是一样的。
在得到代价函数之后就可以用梯度下降算法求参数了,算法为:
求导之后:
注意:虽然我们最后得到的梯度下降算法形式看上去和线性回归一样,但是这里的假设函数和线性回归是不一样的,所以实际上二者的梯度下降算法也是不一样的,另外,在逻辑回归的梯度下降算法运行前,进行特征缩放也是必要的。
3、高级优化
本节主要是介绍了两种更加复杂的算法,共轭梯度算法BFGS和L-BFGS,这几种算法的细节超出了本门课的范畴,所以老师只是介绍了这些算法的优点:使用这些算法我们不需要手动选择学习率,这些算法内部有一个智能的内部循环,被称为线性搜索算法,用来自动尝试不同的学习率并自动选择比较好的学习率。当我们面临一个非常庞大的机器学习问题时,我们往往可以选择这些算法,可以大大提高我们的效率。这些算法非常复杂,学习起来有一点困难,但是我们可以利用octave直接调用这些算法。之后老师还介绍了如何在octave中调用这些函数,具体细节可看原笔记。
4、多类别分类
我们可以利用一对余的方法来解决多分类问题。假如我们有一个训练集,如下图所示:
这里有三个类别,我们用三角形表示y=1方框表示y=2红叉表示y=3,之后我们要做的就是使用一个训练集把它分成3个二分类问题。
我们先从类别1开始,我们可以定义一个伪训练集,把类别2和类别3归入他,定为负类,类别1是正类,然后我们创建一个新的训练集,并拟合出一个合适的分类器:
这样我们就得到了一个边界。之后我们再重复两次同样的操作,只是分别选择类别2和类别3作为正类,相应的剩下两类作为负类,最后我们得到了一系列模型:
最后,我们在做预测时把所有分类器都运行一遍,然后选择最高可能性的输出变量。这样就完成了多分类的问题。
以上就是课时六的内容,部分笔记来自“机器学习初学者”网站提供的吴恩达老师的2014机器学习课程笔记http://www.ai-start.com/