在这个算法里,我们的假设函数长这样:
简化一下,把叫做Z,那么原函数就变成了
图示如下:
是不是感觉长得很像累计分布函数啊……
(第二个图是累计分布函数的)
嗯。反正差不多,所以高数的知识可以直接拿过来用了。
逻辑回归算法,计算目的是为了分类。按照图中所示,当的时候,大于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,得到的图像如下(左边的)然而左边的凹凸不平(非凸),不方便梯度下降,我们想要的是右边那种滑溜溜(凸)的图像。:
原函数J变成了
反正我们要的是符合决策边界的条件就可以了,反正都把结果四舍五入成1或者0了,也没必要非得是某个函数对吧?
所以它是什么函数无所谓。只要(它的函数处理了x以后,得到的y)符合决策边界的条件即可。而现在我们希望得到一个滑溜溜的凸函数。那么我们就假设(注意,这是假设出来的,符合条件的函数之一,没说非得这样。然而这是已有的函数中最好的。):
y=1的时候,
y=0的时候,
它们的图像如下:
符合条件。那么这时候还有一个问题,大家都很懒对吧,懒得分情况讨论,那么如何做呢?
你看,由于y只有1和0两个值,所以我们就直接把两种情况的cost函数相加,然后分别乘以y和y-1即可:
看,是不是很方便呢?
于是原来的那个代价函数J就变成了:
然后照旧,我们目的是拿x和y训练样本得到嘛!所以对这玩意求导,然后取个α,然后不断重复梯度下降……以得到,就是下面这个玩意:
(repeat:)
这坨玩意里,我们需要计算,直接照搬之前笔记里的,即可。只不过这里的
于是我们最终得到的
(repeat:)
逻辑回归函数就是这样了。
然后是拟合问题,下面是3种情况:
第一种是欠拟合,通常是因为特征量选少了。第二种是我们想要的,第三个是过拟合,通常是因为特征量选多了。
欠拟合的解决方法是增加特征量。
过拟合的解决方法是减少特征量或者正则化。
比如我们的逻辑回归函数,不选个自定义的函数,就用我们那个类似泰勒展开式的函数来做的画,这货长得凹凸不平的
,一点都不光滑。那么,按照这货拟合回来的函数,十有八九也是过拟合了。于是我们就会得到一个类似这样的决策边界(蓝色线)显然,这条决策边界很……不实用。
我们想要的,是一根滑溜溜的凸函数,但是我们又不能确定哪些特征量该去掉,所以我们就选择正则化的方式解决过拟合。
正则化的方法,就是给代价函数后面加个“惩罚项”……来降低它对数据的拟合能力。
于是我们的
就变成了:(这里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