本周主要讲分类、逻辑回归以及正则化
分类
分类问题的几个例子
- 判别一个邮件是/不是垃圾邮件
- 判别一个转账交易是/不是欺诈交易
- 判别肿瘤是恶性/良性
也就是说输出的y的取值是 {0,1} { 0 , 1 } ,0一般表示negative class,1表示positive class。对于多类别则是 y∈{0,1,2,3,...} y ∈ { 0 , 1 , 2 , 3 , . . . } 。
线性回归解决这个分类问题会有什么问题?
如下图所示:
如果用线性回归的话,会出现假如样本点有一个离均值很远的点的情况下,这个点导致整个判别面发生巨大的改变。这里边最主要的一点就是线性回归的
y=hθ(x)
y
=
h
θ
(
x
)
可以>1可以<0。我们希望能够有一个方法使得
0≤y≤1
0
≤
y
≤
1
。
逻辑回归的hypothesis representation
如下图所示:
我们在线性回归的基础上,外边套上一个非线性函数使得输出在[0,1]之间。这个函数就是sigmoid 函数,或者叫logistic函数。
那么现在这个
hθ(x)
h
θ
(
x
)
表达的是什么意思呢?表达的是对一个输入x,y等于1的概率是多少。也就是说假如y=0.1,那么说明P(y=1)=0.1,P(y=0)=0.9。这就是逻辑回归。
逻辑回归的决策面
如下图所示:
假如我们认定如果
hθ(x)>0.5
h
θ
(
x
)
>
0.5
的话,我们就判定
y=1
y
=
1
那么,也就是要求
z=θTx>0
z
=
θ
T
x
>
0
。
所以对于线性分类面,只要考虑
z>0
z
>
0
和
z<0
z
<
0
的情况即可:
非线性的分类面也是如此:
逻辑回归的cost function
不能使用线性回归的cost function,因为直接使用的话,cost function 会变成非凸函数。而是使用如下的:
梯度下降
优化进阶
其实出了梯度下降之外,还有很多其他进阶的优化方法,这些方法比梯度下降的方法要快,但是会比较复杂。
多分类:one vs all
one vs all(rest)这种方法,其实就是对每一类i,训练一个逻辑回归分类器,然后有新的输入x,那么找到一个i,使得
hiθ(x)
h
θ
i
(
x
)
最大。
正则化
过拟合
过拟合就是因为模型的feature太多,结果导致对训练集上拟合的很好,但是泛化能力很弱。
过拟合的处理方法
过拟合有几种处理方法,一种是减少feature数量,然后在模型之间选择,另外就是正则化,正则化就是减少参数
θj
θ
j
的幅度,这样每一个feature都会给最终的模型贡献一点点。这个对于很多feature的情况下很有用。
Intuition
其实就是假如各个参数的大小比较小,那么一些高次的feature贡献的就少,这时候就能够不要那么过拟合。
方法就是在cost function后边加上一个
λ∑Nj=1θj
λ
∑
j
=
1
N
θ
j
加上正则化之后,过拟合的情况就会得到改善:
正好有一个小问题:假如
λ
λ
选的很大会出现什么结果?答:underfitting,没法拟合了。
如下图所示:
线性回归的正则化
如下图所示,其实可以看出来,L2 Regularization等价于weight decay:
如果是正规方程的方法:
可以看到,假如
XXT
X
X
T
是奇异的,那么经过正则化之后,变成非奇异的:
其实思路很简单,因为
XXT
X
X
T
的特征值一定是非负的,非零特征值一定大于1个,那么加上这个矩阵之后,所有特征值都是整的了,那么就不是奇异的了。
逻辑回归的正则化
同样,加上weight decay。