假设输入空间
对于分类问题,我们使用的假设空间为
对于回归问题,我们使用的假设空间为
其实际意义也比较简单:对于分类问题,用一个超平面将特征空间分成两个部分;对于回归问题,用一个超平面去拟合真实函数。
这类模型有:线性回归模型(linear regression)、逻辑回归模型(logistic regression)、感知器模型(perceptron)、支持向量机(SVM)等等。
下文中,training set为m个数据
{下文我们将交替使用J和
1. 线性回归
线性回归用于解决回归问题。其输出y通常为实数。
为了方便起见,令
1.1 选择损失函数及学习策略
很明显地,使用平方损失函数,
1.2 使用的学习算法
1.2.1 梯度下降法
由于此问题是一个凸函数,所以梯度下降法总是能找到最优解。
1.2.2 Normal equation解析解
令
1.2.3两种方法的对比
通常情况下,如果数据量大于10000,那么选择梯度下降法比较好。
1.3 正则化
2. 逻辑回归
线性回归用于解决分类问题。其输出
为了方便起见,令
2.1 引言
假设我有w,要解决分类问题可以有
所以,我们需要一个函数将wx映射为概率:
图示的s型曲线称为sigmoid函数。于是我们有了
现在,y=0的概率是1-h(x),y=1的概率是h(x)。对于sigmoid函数,有
现在我们考虑:我们已经有了training set, 那么这个trainning set出现的概率是
对于y=0,我们使用
根据极大似然法,我们应该最大化这一概率,其中
取以2为低的对数,化乘法为加法:
最大化上述公式。
2.2 损失函数和学习策略
前面是介绍了逻辑回归损失函数的来历;现在我们可以直接从此数学定义开始,定义损失函数:
2.3 学习算法——梯度下降
此损失函数并非是凸函数,所以很可能找到局部最优解,而不是全局最优解。所以我们需要用多个初始值运行梯度下降算法。
2.4正则化
2.5多分类问题
假设
2.5.1 One VS ALL
对于每一种类别都分成两类:1/not 1;2/not; 3/not 3。分别学习h:
有k个分类,就会得到k个h;对于x,我们只需要看看,它属于哪个类别的概率大,就是哪一个类,也即
2.5.2One Vs One
假设有K个类别,每个类别的数据所占比例都相同。如果K=100,那么数据严重不平衡,对于class i/not class i问题:直接预测为i,准确率也有99%。所以这种情况下,我们不能再使用One Vs All模型,而是使用One Vs One。
也即对于K个类别,对于任意两个类别,学习一个分类模型h(训练时,只使用这两个类别相关的数据),将会有
2.6 逻辑回归算法分析
对于分类算法,我们最终如何评价性能呢?
这里补充说明一下,在《机器学习一》中有这么一张图:
我们可以看到学习算法中的损失函数eˆrr 和评价算法性能用的err是不一样的。为什么呢? 理想情况下,让eˆrr=err 最好,但是很多损失函数是对计算不友好的,譬如0-1损失函数一阶不连续。所以,为了更好地计算,现实中我们常常使用不同于err 的eˆrr 。
用最小化损失函数