逻辑回归及正则化

"逻辑回归算法”(分类算法)

在这个算法里,我们的假设函数长这样:

简化一下,把叫做Z,那么原函数就变成了

图示如下:

逻辑回归及正则化_第1张图片 是不是感觉长得很像累计分布函数啊……

逻辑回归及正则化_第2张图片 (第二个图是累计分布函数的)

嗯。反正差不多,所以高数的知识可以直接拿过来用了。

逻辑回归算法,计算目的是为了分类。按照图中所示,当的时候,大于0.5,那么假如你要分类,1为在某类,0为不在某类,那四舍五入就是1个1……。同理,z<0时,g(z)<0.5,四舍五入到0……(当然实际不是这么做的,实际做法是用数学方法使z的绝对值超过一个界限,使得和1或者0很近。)

我们可以把g(z)=0.5,也就是z=0的时候,称为决策边界。假设y为结果,y的值是1或者0。

那么,z=0,也就是=0的时候为边界。时y=1。时y=0。分类就靠这个……

然后继续,机器学习嘛,根据前两周的经验,肯定有那个J,代价函数。逻辑回归算法的代价函数如下:

(m是y总数,嫌麻烦的话,和第二周一样,如果你把那个加和符号去掉,那么这里x和y就变成向量了也就是:。)

然后因为y只有0和1两个取值,这里就可以分两种情况讨论,让y从函数中去掉:

y=0:

y=1:

然而我们发现,这样拿出来的函数,因为y一会儿是1,一会儿是0,得到的图像如下(左边的)然而左边的凹凸不平(非凸),不方便梯度下降,我们想要的是右边那种滑溜溜(凸)的图像。:

逻辑回归及正则化_第3张图片
所以我们假设有个函数cost,

原函数J变成了

反正我们要的是符合决策边界的条件就可以了,反正都把结果四舍五入成1或者0了,也没必要非得是某个函数对吧?

所以它是什么函数无所谓。只要(它的函数处理了x以后,得到的y)符合决策边界的条件即可。而现在我们希望得到一个滑溜溜的凸函数。那么我们就假设(注意,这是假设出来的,符合条件的函数之一,没说非得这样。然而这是已有的函数中最好的。):

y=1的时候,

y=0的时候,

它们的图像如下:

逻辑回归及正则化_第4张图片

符合条件。那么这时候还有一个问题,大家都很懒对吧,懒得分情况讨论,那么如何做呢?

你看,由于y只有1和0两个值,所以我们就直接把两种情况的cost函数相加,然后分别乘以y和y-1即可:


看,是不是很方便呢?

于是原来的那个代价函数J就变成了:


然后照旧,我们目的是拿x和y训练样本得到嘛!所以对这玩意求导,然后取个α,然后不断重复梯度下降……以得到,就是下面这个玩意:

(repeat:)

这坨玩意里,我们需要计算,直接照搬之前笔记里的,即可。只不过这里的

于是我们最终得到的

(repeat:)

逻辑回归函数就是这样了。

然后是拟合问题,下面是3种情况:

逻辑回归及正则化_第5张图片

第一种是欠拟合,通常是因为特征量选少了。第二种是我们想要的,第三个是过拟合,通常是因为特征量选多了。

欠拟合的解决方法是增加特征量。

过拟合的解决方法是减少特征量或者正则化。

比如我们的逻辑回归函数,不选个自定义的函数,就用我们那个类似泰勒展开式的函数来做的画,这货长得凹凸不平的

逻辑回归及正则化_第6张图片 ,一点都不光滑。那么,按照这货拟合回来的函数,十有八九也是过拟合了。于是我们就会得到一个类似这样的决策边界(蓝色线)显然,这条决策边界很……不实用。 逻辑回归及正则化_第7张图片

我们想要的,是一根滑溜溜的凸函数,但是我们又不能确定哪些特征量该去掉,所以我们就选择正则化的方式解决过拟合。

正则化的方法,就是给代价函数后面加个“惩罚项”……来降低它对数据的拟合能力。

于是我们的

就变成了:(这里n表示特征量的总数,意思就是让所有的n个正义的为了解决过拟合问题,大喊一声“合体!”然后一起来惩罚那个过度拟合了的函数……是正规化参数,决定了你惩罚得有多狠。你要惩罚狠点,你就把提高一点,过高会变得欠拟合,过小无法解决过拟合。)

那么我们的就顺利变成了:

 ~→


注意,当的时候,由于=1,所以这一项不会欠拟合也不会过拟合,所以不惩罚它。

然后,如果你用的不是线性回归,而是正规方程的话,同理,给

加个惩罚项就好了。这里加的惩罚项为 , 是一个n+1阶的单位矩阵把第一项变成0(因为第一项不惩罚),我们把 写作varsigma,代码差不多就是下面这个:
varsigma =ones(n+1,n+1); #没有ones方法的自己写个循环给列表赋值,非常简单。
varsigma [0,0]=0 #python,c,php等编程的话,等这里是0,0
varsigma [1,1]=0 #matlab等这里是1,1,因为一个从0开始计数,一个从1开始计数。真是……就不能统一一下么,老因为这个引起一群嘴强王者的唇战。
写出来差不多就是这样一个矩阵:
[
0,0,0,0,0,0,0,0,...,0,0
0,1,0,0,0,0,0,0,...,0,0
0,0,1,0,0,0,0,0,...,0,0
0,0,0,1,0,0,0,0,...,0,0
0,0,0,0,1,0,0,0,...,0,0
0,0,0,0,0,1,0,0,...,0,0
0,0,0,0,0,0,1,0,...,0,0
0,0,0,0,0,0,0,1,...,0,0
.                     .
.                     .
.                     .
0,0,0,0,0,0,0,0,...,0,1
]

得到的正规化后的公式为

转载:https://zhuanlan.zhihu.com/p/21378251

你可能感兴趣的:(Machine,Learn)