Hi,大家好,我是半亩花海。接着上次的似然函数继续更新《白话机器学习的数学》这本书的学习笔记,在此分享对数似然函数这一分类算法原理。本章的分类算法原理基于《基于图像大小进行分类》项目,欢迎大家交流学习!
目录
一、对数似然函数概述
对数似然(Log-Likelihood)是统计学中一种常用的方法,用于估计模型参数。在概率统计中,似然函数表示给定观测数据,关于模型参数的概率分布。对数似然则是似然函数取对数后的结果。
假设有一组观测数据 ,它们来自一个概率分布,且这个概率分布有一些未知的参数
需要估计。似然函数
表示在给定参数
下观测数据出现的概率。对数似然函数则是似然函数的对数形式
。
二、案例分析
1. 前期回顾
在上一节《机器学习 | 分类算法原理——似然函数-CSDN博客》当中我们知道似然函数的具体求法,即使目标函数 最大化。有人可能会想直接对似然函数进行微分,求出参数
就行。不过直接对似然函数进行微分有点困难,在此之前要把函数变形。
变形的原因如下:
- 首先它是联合概率。概率都是 1 以下的数,所以像联合概率这种概率乘法的值会越来越小,编程时会出现精度问题。
- 与乘法相比,加法的计算量要小得多。如果我们取似然函数的对数,如下所示在等式两边加上
即可。
是单调递增函数,图像如下。
图形一直向右上方延伸。单调递增函数是在 时,
的函数
,
也成立。所以我们现在考察的似然函数也是在
时,有
成立。也就是说,使
最大化等价于使
最大化。
接下来,将对数似然函数变形,如下所示。
每一行的变形分别利用了下面这些特性。
- 第 2 行是
- 第 3 行是
- 第 4 行是
- 第 5 行是表达式
由上述特性可以看出,前两个是对数函数的特性。对于第 4 行,首先,现在我们考虑的只有 和
两种情况,所以应有
,即所有情况的概率之和都是 1。
2. 对数似然函数的微分
总结上述内容就是:逻辑回归将这个下面这个对数似然函数用作目标函数。
其中, 的表达式为:
。
接下来,我们需要对各个参数 求微分,类似于复合函数的偏微分求法,最终需要导出参数更新表达式。
这个表达式有点复杂,我们可以仿照回归的求法,把似然函数也换成下面这样的复合函数的形式, 然后依次求微分。
则 表达式可以写成下述样式,接下来我们只需要计算
和
即可。
(1)首先从第1项 开始计算。
(2)接下来是最重要的 对
的微分。
这个看上去有点麻烦,不过其实我们已经知道了 sigmoid 函数的微分如下,所以用这个应该就可以计算。
现在 本身就是 sigmoid 函数,所以这个微分表达式可以直接使用。 是呀。设
,然后再一次使用复合函数的微分会比较好。
1) 对
微分
的部分也就是 sigmoid 函数的微分,如下。
2) 对
的微分
相对简单,如下。
然后, 与
结果相乘、展开、约分,得到
。
最后,将 与
相乘,得到
。
3. 参数更新表达式
计算过程比较复杂,不过最后的结果还挺简单的。 接下来要做的就是从这个表达式导出参数更新表达式。不过现在是以最大化为目标,所以必须按照与最小化时相反的方向移动参数(ps:也就是说,最小化时要按照与微分结果的符号相反的方向移动,而最大化时要与微分结果的符号同向移动)。
为了与回归时的符号保持一致,也可以将表达式调整为下面这样(ps: 之前的符号和
中的符号反转了)。