首页IT科技似然函数和对数似然函数(机器学习中的数学原理——对数似然函数)

似然函数和对数似然函数(机器学习中的数学原理——对数似然函数)

时间2025-06-16 06:15:56分类IT科技浏览4158
导读:这个专栏主要是用来分享一下我在 机器学习中的 学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎 私信或者评论区留言!这一篇就更新一下《 白话机器学习中的数学——对数似然函数》!...

这个专栏主要是用来分享一下我在 机器学习中的 学习笔记及一些感悟             ,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎 私信或者评论区留言!这一篇就更新一下《 白话机器学习中的数学——对数似然函数》!

目录

一            、什么是对数似然函数

二                   、算法分析

三      、总结 

一      、什么是对数似然函数

对数似然是Minitab 为了确定估计系数(β) 的最优值而最大化的表达式             。 由于对数似然是样本数量的函数                  ,因此它们的值不能单独作为拟合值的指数使用      ,但可以用来比较不同系数的拟合值                  。 由于您要最大化对数似然             ,因此值越大越好      。

二                   、算法分析

之前我们已经接触过似然函数的概念                  ,我们认为似然函数 L(θ) 中      ,使其值最大的参数θ能够最近似地说明训练数据             。和随机梯度下降法一样       ,我们接下来要做的就是对似然函数进行微分                  ,求出参数 θ                  。不过直接对似然函数进行微分有点困难            ,在此之前要把函数变形      。联合概率中的概率都是 1 以下的数       ,所以像联合概率这种概率乘法的值会越来越小       。如果值太小                   ,编程时会出现精度问题                  。并且与加法相比            ,乘法的计算量要大得多            。

想要解决这些问题,只要取似然函数的对数就好了       。像这样在等式两边加上 log 即可:

 log 是单调递增函数                   。log 函数的图形如下所示:

图形一直向右上方延伸            。单调递增函数是在 x1 < x2 时                   ,f(x1) < f(x2) 的函数 f(x)。log(x)的图形一直向右上方延伸                  ,而且在 x1 < x2时,log(x1) < log(x2)也成立                   。

我们现在考察的似然函数也是在 L(θ1) < L(θ2) 时             ,有logL(θ1) < logL(θ2) 成立                  。也就是说                  ,使 L(θ) 最大化等价于使logL(θ) 最大化。我们把对数似然函数变形看看:

 每一行的变形分别利用了下面这些特性      ,好好理解一下:

第 2 行是 log(ab) = log a + log b 第 3 行是 log ab = b log a 第 4 行是 P(y(i) = 0|x(i) ) = 1 − P(y(i) = 1|x(i) )

前两个是对数函数的特性             ,下面对第 4 行进行解释:现在我们考虑的只有 y = 1 和 y = 0 两种情况                  ,所以应有 P(y(i) = 0|x(i) ) + P(y(i) = 1|x(i) ) = 1

下面要做的就是就是进行偏分求未知量             。前面讲了很多      ,总结一下就是逻辑回归将这个对数似然函数用作 目标函数                  。

 接下来       ,对各个参数 θj 求微分就行了:

 和回归的时候是一样的                  ,我们把似然函数也换成这样的复合函数            , 然后依次求微分      。

这个是 u 对 v 微分       ,log(v) 的微分是 1/v             。对 log(1 − v) 微分时                   ,要像这样通过复合函数来求                  。还 要注意            ,这样做最后的表达式前面会有个负号      。

 所以,微分结果是这样的:

 接下来是 v 对 θj 的微分:

这个看上去有点麻烦                   ,不过其实我们已经知道了 sigmoid 函数的 微分是这样的                  ,所以用这个应该就可以计算了       。

现在 fθ(x)本身就是 sigmoid 函数,所以这个微分表达式可以直接使用                  。设 z = θTx             ,然后再一次使用复合函数的微分会比较好            。

v 对 z 微分的部分也就是 sigmoid函数的微分       。

 z 对 θj 的微分就简单了                   。

 接下来把结果相乘就好了:

 我们就代入各个结果                  ,然后通过展开            、约分      ,使表达式 变得更简洁            。

接下来要做的就是从这个表达式导出参数更新表达式。不过现在是以最大化为目标             ,所以必须按照与最小化时相反的方向移动参数哦                   。也就是说                  ,最小化时要按照与微分结果的符号相反的 方向移动      ,而最大化时要与微分结果的符号同向移动                  。

 为了与回归时的符号保持一致       ,也可以将表达式调整为下面这样。注意                  ,η 之前的符号和∑中的符号反转了             。这就是我们最终求得的结果表达式:

三      、总结 

通过上面的推导            ,我们学习了最大似然函数       ,这与我们之前接触的最小二乘法不同                   ,最小二乘法以误差作为评判标准            ,误差越小越好,而最大似然函数以概率作为评判标准                   ,概率越大越好                  。在计算概率时                  ,我们求了一次对数log计算,避免了连乘概率越来越小             ,受计算机计算进度影响也越来越大的问题      。求得表达式之后的求微分也和我们之前讲的相似                  ,只要采用连续偏导就可以了             。计算过程挺复杂      ,不过最后的结果还挺简单的:

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue做项目(Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(登录注册页面,验证码)) react to do(Reacthook超详细教程)