00:00
然后接下来我我们继续讲,大家就会想到我这个思路是有了,那我这个模型啊,已经能定了,对吧?我就我就长这样,就长一个C贸易的函数,然后里边这里边再去设计,是不是可能会有一堆参数啊,可能是西塔1X1加西塔2X2加西塔零对不对啊,可能是这样的一个表达式,呃,然后外面套在这个里边模型已经定了,那我们的损失函数怎么定呢?我们求解的时候是不是得让损失函数最小对吧?啊又回来了,又是这个问题,损失函数怎么定呢?大家自然可以想到我们相性回归不是都是平方损失函数吗?那我们现在是不是还是可以平方损失函数啊?诶大家这里就会注意一下,平方损失函数带进去,它会是一一个什么样的表达呢?就是每一个HC的X,这就是我们模型算出来那个预测值对不对,减去它实际的分类的那个值,哎,这个误差。
01:00
啊,平方求和,求平均数,平方损失函数,那这个函数有一个什么问题啊,之前我们想要用它这个平方损失函数,为什么用它呢?是因为。大家会想到本来我们里边的那个西塔参数是不是都是一次啊,一次项的参数对不对?平方之后是不是就变成了二次项啊,二次项是不是一个凸函数,一个抛物线啊,找最小值就没问题对吧?那现在大家还能保证它是一个一个凸函数吗?这个好像就不好说了,对不对?首先我们是不是这个本身它就是这个贸易的函数,是不是有一个指数项啊,指数项你如果再把它外面再去平方,这个显然你就不能直接说它是一个二次函数了,另外还有一个就是Z负Z对吧?Z这个里边C它的一个表达式是不是也不太确定啊,我们不知道到底设计一个什么样的模型对不对,也有可能很复杂,所以这里大家就会发现,如果我们还是用这个平方损失函数的话,有可能得到的曲线,它有可能不是严格意义。
02:16
这样的凸函数对不对,有可能出现这种坑坑洼洼,奇里古怪的形状,对吧?那我们直接去做计算的时候,特别是用梯度下降的时候,他会想到这个,显然它这个比较复杂,我们直接要是想精确求解比较难,对不对,应该是梯度下降靠谱一点,那你如果要不是突函数的话,梯度下降是不是很容易陷入到局部局部极小值啊。所以这个问题是我们想要去避免的一个问题。另外大家会想到还有一个问题,平方损失函数还有一个什么问题?我前面去做预测,带入到这个自贸易的函数,我们这个模型里边来得到的这个值,大家会看到就是就是这样的一个一个函数曲线对不对,这是预测出来的值,然后我们实际的那个Y呢,它是不是只有零和一两个选择啊,那大家就会想到了,你要是本身这个值比较大的时候啊,那这个跟一就差不多,这个误差比较小,诶我觉得可以理解,那如果这个值它是贴近这个分类边界的时候呢,贴近分类边界的时候,尽管我们这里边C的函数已经是快速上升了,但是其实还是有一点,比方说在这里,呃,毕竟是以0.5去做区分嘛,接近0.5这里大家想到我我取一的这里啊,本身大家会想到这是不是应该分到一这一类,一按照我们这个模型,它就分到一这一类啊,那大家会想到,如果它的实际分类就是一的。
03:52
话。这个误差是不是应该是从这里到一的这个误差对不对,那如果说把它分类分错了,大家会看到,如果分类分对,分到一这一类,是不是它误差还挺大啊,如果把它分错了,分到了零那一类的话,那是不是到零的距离应该是这么大这个误差啊。
04:16
对不对,那大家会想到确实到零的这个误差会更大一点,但是好像到一的误差这个距离好像也不小,对不对。如果我们想极端的情况的话,比方说这里啊,我的这个误差是,假如说算出来的那个预测值是0.51。按照我们的模型,它应该分到哪一类,它是不是分到一这一类啊,假如说它分类正确,它的误差是多少,0.49,这个误差其实还挺大的,对吧,我都分正确了,你还认为我误差这么大。那如果我分错了的话,0.51的时候,分错的时候是不是分到零这一类了,那误差是多少?0.51分对的时候我误差0.49,分错的时候0.51,这差不多对吧?那那这种状态是不是根本没有体现出来,我们分类正确,正确与否对他是一个惩罚,我们想要的是一个什么状态呢?是不是应该假如你分类正确。
05:23
我是不是还应该让这个只要分类正确,就应该让这个损失函数,函数是不是快速减小啊,如果要是分类错误,是不是应该快速上升啊,对吧,而且是你错的越离谱,这个上升也应该越来越大,对吧。哎,这才符合我们的要求,所以你这里边直接如果平方损失函数,诶喂啊有点低,是不是没电了是吧?好,那么我我就这里直接给大家讲啊,大家应该听得到对吧?好,如果说这里如果直接让他这个平方损失函数,我们是直接去减的话,那是不是就根本没有体现出来分类正确还是分类错误的这种惩罚或者奖励啊,诶所以这也是我们要考虑的一个问题。
06:17
那当然了,平方损失函数还有一个问题,就是里边有一个指数项,你平方之后有可能飞突,对不对啊,这也是我们要解决的一个问题,那我们希望的损失函数是不是最后你还是老老实实的构建一个突函数对吧?然后我们梯度下降是不是一步一步就下去了,这是我们想要的一个状态,而且最好是对于这个分类正确错误,还有一个对应的惩罚,对不对啊,你能把这个也好好的给我分开,那接下来大家就会想到我怎么样去构建这样的一个函数呢?刚才我们提到啊,有两个问题,一个是你里边引入了指数项,所以出来的那个函数有可能就飞突了,我们就觉得不靠谱了,那大家会想到我是不是有指数项,我是不是可以考虑再引入一个对,引入一个对数函数,然后去把那个指数项做一个抵消啊,因为他俩是不是就是反函数对吧,是逆向的运算,所以。
07:17
这是一个直观的想法,另外我们再来考察一下这个对数函数的函数特性,它有一个什么特点呢?大家看啊,我们就直接看这个大于零的这个情况吧,我们一般用的都是要不是呃,这个以E为底对吧,要不烙N,那就是以E为底,是烙N,要不就是直接那个LG,那是常用对数,那那就是以十为底,对不对?或者我们一般取的这个对数都是大于一的,我们就看大于一这个红线。大于一的时候,它是不是单调递增对吧,经过的点是不是一零这个点啊,然后大家会想到它是不是。如果要是接近零的时候,是不是这个值会减小的特别特别快啊,对吧,衰减的特别特别快对不对?然后接近一的时候,那呃,就是比一大的时候更大的时候,这个过程是不是就会变化的比较缓慢啊,然后逐渐是不是就会贴近某一个值了,哎,这是我们看到它的这个图像,这个图像是不是很符合我们当时的那个想法啊。
08:23
就假如说你这个预测错了之后,我让它就快速增大,对吧,假如预测对的话,是不是你就应该是这个误差是越来越小,越来越小变化,而且会比较缓慢对不对?好,有了这个思想之后,我们就可以给大家讲构建出来的损失函数到底是一个什么样的状态了,我们构建利用log这个对数函数,构建一个这样的损失函数,现在这个cost表示损失函数对不对,这个损失函数它有一个什么样的表达式呢?大家看到它跟Y有关了。啊,当然,本来损失函数应该也有跟Y有关对不对?呃,它的这个关联在于哪里呢?是根据Y的不同取值,它变成了分段函数了,对不对?假如Y取一的时候是这样负的log这样的一个表达式,把H西塔放进来,Y等于零的时候呢,里边变成了一减HC,我们的这个模型预测值对不对?
09:24
诶,大家会想到这能代表一个什么事情呢?好,那我们来看一下它的它的函数图像吧,大家想一想它会有一个什么样的变化,横坐标是HC的X,这是不是就是我们这里边的这一个模型的预测值啊?大家会想到预测值当Y等于一的时候,是不是真实分类应该是一这一类啊,预测值如果真的是一,那它的损失是不是就应该是零?越接近一是不是损失就应该越小啊?诶,越接近零是不是损失应该越大?
10:03
而且大家会发现我们的这个函数应该是怎么样的一个状态呢?HCX带到log里边,大家回忆一下啊,Log log是不是这个啊,这个图像。如果我们这里的H西塔X是不是在零和一之间取啊,压缩函数对不对,压缩函数零和一之间取是不是其实是这个到这里为止的这个这个曲线啊,然后前面后面是不是还要去前面加一个负号,负号之后是不是反上去变成蓝色的这条曲线了啊,当然这里边比较夸张对吧,我们写出来是不是类似于这样的一个形状啊。哎,这就是这样的一个形状,这个形状代表什么样的意思呢?是不是当它趋近于零的时候。这是不是代表预测错误啊,实际是一,你如果算出来这个预测值趋近于零的话,是不是预测错了呀,预测的越接近于零,是不是错的越离谱,所以大家会看这个惩罚是不是越来越大啊,你假如要能直接代进去,直接算出零的话,那不好意思,我这个。
11:13
无穷大对吧?你的误差无穷大,你不能算出这样的结果,那大家继续再看,当它预测值越来越接近一的时候,是不是误差就会。越来越小,而且是不是这个衰减的也会越来越慢,对不对,一开始衰减的特别快,然后当它大于0.5之后,大家就会看到这个是不是衰减就比较慢了呀,所有的误差只要大于0.5,是不是相当于分类正确了,误差是不是就都比较小了呀?都比较小,然后逐渐趋近于一到一的时候,误差是不是就是零了。只有大于零点就是预测值,你小于0.5的时候,误差值才会急速上升,对不对,哎,这是不是完全符合之前我们想到的要解决的那两个问题啊,一个加入一个。
12:05
一个log项抵消那个指数,另外一个是不是要满足我们的这个变化规律,你不要均匀的按照那个分类标准,就不知道分类对分类错了,对吧?好,那么同样Y等于零的时候,这个函数图像是什么样呢?大家会想到这里边是不是一减只是有一个一减这个过程啊,一减如果大家之前呃对这个函数图像呃学的比较熟悉的话,一减跟上面的这个函数图像是不是就是关于。对,关于1/2,这里应该有个对称啊,也就相当于它是按照一,这里把它直接反了一下,对不对,那大家看这个函数图像,它代表什么呢。现在是Y等于零,实际分类应该是零,对不对?如果你分类小于这个,预测的这个分类自贸易的函数小于0.5的话,是不是代表代表分类正确了,分类正确是不是这个误差就很小啊?如果大于0.5,分类错误是不是误差急速上升?
13:11
假如你要敢给它分类,预测出来是一的话,那这个就无穷大了,对不对?如果你预测出来是零的话,那它的误差就是零,哎,这就是我们这个定义出来的损失函数。好,大家再把这一块稍微的理解理解,那接下来这个损失函数,大家会想到我们是不是想要求这个损失函数的最小值啊,让它求得最小值的时候,然后找那个西塔对不对?哎哟,这么一个函数怎么求最小值啊,这个求导这个分段啊,Y等于零的时候,Y等于一的时候怎么求导?也也能求到是吧,这个东西怎么求呢?好像有点复杂,这里边给大家介绍一个小技巧,大家看一下怎么样,我们是不是希望要把这样一个分段函数,把它合在一起,变成整个的一个表达式,直接是不是就可以求导了,然后接下来我们梯度下降是不是就可以做了?好,大家看一下我可以把它做这样的一个转换。
14:17
这个转换代表什么呢?很复杂,但是大家不要慌,我们看一下红框框起来的这两项分别是什么,是不是就是上面这个表达式啊,只不过这里有一个负号,我们是不是提到前面去了,哎,所以其实就是上面的两个表达式,然后我们其实就是把它俩加起来了,对不对?诶,区别在于前面是不是各自乘了一个系数啊,什么系数呢?前面这一部分乘的是Yi,然后后边这一部分乘的是一减Yi,首先这个Xi Yi表示什么来着?第二个点的XY那个值对不对啊,XY的值,所以大家想象一下,对于我们这个损失函数,我们要求和的时候,是不是还是得每个点代进去求啊。
15:11
大家想这是不是每个点的话,那是不是就跟这个点的Y值相关了呀。所以我们对某一个点的话,把这个Y是不是可以带到下面这里来,大家看一下效果啊,Y假如是零的话,Y假如取零的话,前面这一项是不是没了呀。然后后边这一项这里是零,是不是一这个系数也没了呀,最后是不是就是负的log,后边这一项是不是就是Y等于零的时候这个表达式啊,如果Y等于一的时候,它变成什么样呢?后边是不是全没了,那前面这就是一对不对,是不是就是负的log HC X啊,是不是就是我们这里这个表达式啊,所以大家看用了这么一个一个小技巧,就巧妙的把它结合在一起啊,当然它背后其实还是有很多那个原理性的概念的,就是如果大家想要往深层次去学的话,整个逻辑4D回归它的这个模型,就是还涉及到最大商模型的一个一个一个概念,这里我们就不展开去讲了,它根据最大商的模型的求解,能够得到数学上的这样的一个表达的一个证明,我们这里大家只要通过这样的理解,能够理解清楚,诶,刚好是不是就得到了我们想要的这个结果啊,诶,所以这就是我们的某一个点I。
16:32
这个点I的损失函数对不对?那接下来我们是不是应该对它求和啊?哎,这就是所有的点是不是加起来,然后除以M平均损失函数对不对啊,这就是我们的经验误差,所以这就是我们最后得到的一个损失函数,当然还不是最后得到的的,为什么呢?因为我们是不是想到。它本身有可能还不是凸函数,对不对,我们这里加了一个log项,那只是把里边的那个。
17:09
大家会想到我们里边这个C贸易的函数不是一个指数项吗?加了一个log项,是不是相当于哎,得到这个里边的这个Z了,对不对?大家想到这是一个相当于一个一次项对不对?一次项的话,你要想直接得到它的最小值是不是不太靠谱啊?那我们是不是还应该得到一个二次项才比较靠谱啊?那这里边大家如果直接再把这个平方,那到时候求导就很复杂了对不对?哎,我们这里边取一个巧,取一个什么样的巧呢?大家会想到我这里还有一个东西没考虑。为了防止过拟和,我们是不是当时说这里是经验风险,我们是不是还应该把它结构化,加一个正则项对不对?所以我们加一个正则画像,正则画像我们把它定义成一个系数的二次项,那大家会想到这个二次项的表达是不是有点像我们当时说的那个L2范数啊?
18:11
只不过L2范数是不是还要开根号,我们这里就灵活取了,为了想要得到一个凸函数,是不是这里保留二次项不要开根号了呀?啊,所以大家看到这里就是把每一个系数西塔J。求一个平方和啊,当然这里边其实还是除以这个所有的这个点,大家看到是把每一个点都算了一遍,对不对,这里系数里边是有一个2M分之拉姆达的啊,大家这个系数就你也可以加也可以不加,那拉姆达是不是就包含在这里边了呀?呃,就是只是对拉姆达的取值有影响,所以前面大家统一认为是一个正则化的系数就可以了。那后边这一部分就是所有的这个系数的平方和好,那么大家看现在我们是不是就得到了一个图函数啊,前面大家类似,是不是会想到指数项和对数项一消。
19:09
类似于大家可以近似,认为它是趋近于一个一次一次像了,对吧?啊,可以近似的,但不是完完全意义上的一次像,如果要跟后面比它的这个次方高低的话,那是不是应该是这个二次项会更高啊?那大家可能之前也讲过,就是高阶无穷小,低阶高阶无穷大,高阶无穷小这个概念对不对?那如果这两个相比,是不是它应该起主要作用啊?所以我们按它的这个项数来讲,是不是应该按后面这个二次项来看,所以整个这个函数如果是二次项起主导作用的话,是不是就变成了一个图函数。啊,大家把这一块就是理解一下,得到图函数之后我们做的,那是不是就可以去求导,然后用梯度下降法去做计算了啊,当然这个就大家会想到,这个就很复杂很复杂,所以我们只是把公式列在这里,我们的损失函数是这样,那迭代公式是不是就是对这里边的每一个西塔去求偏导数,得到我们这里的这个梯度啊,然后带到公式里边更新迭代,求出我们每一步的下降之后的西塔参数。
20:16
那一步一步就可以求得我们的最优参数了,这就是罗辑斯蒂回归去进行求解的一个过程。好,呃,那我们这一部分逻辑斯回归就讲到这里。
我来说两句