三、极大似然估计求解
当似然函数为最大值时,得到的和 即可认为是模型的参数。求似然函数的最大值,如梯度上升,可以对似然函数稍作处理,使之变为梯度下降,然后使用梯度下降的思想来求解此问题,变换的表达式如下:
由于在原似然函数的前面乘了一个负值,由原来的梯度上升变为梯度下降,其好处在于快速收敛,便于训练数据的取得。
因为要使用当前的 和 值通过更新得到新的 和 值,所以需要知道 和 更新的方向,即当前 和 是加上一个数还是减去一个数离最终结果近,所以得到 后对其求导便可得到更新方向。对 参数来讲,求偏导过程如下:
设:
(2-6-1)
可以先求 。
设,则
(2-6-2)
将式(2-6-2)代入式(2-6-1),则可得
同理,对于 b 参数,其求偏导的过程为
则
二特征变量逻辑回归极大似然估计梯度下降举例演示:设有事物 具备两个特征向量 和 ,其逻辑回归方程为,为简化计算,预设 ,随机选取一组数据,根据 值以 0.5 为界分为 A、B 两类。然后选取 10 组数据作为样本进行梯度下降计算。计算过程的编程文件可以扫描以下二维码下载验算,也可作为简单梯度下降的计算工具使用。
【知识点引入】目标函数、损失函数、代价函数。
三种拟合示意如图 2-6-17 所示。
图 2-6-17 三种拟合图示意
上面三个图的函数为 , , 。给定 ,三个函数都会输出一个 ,这个输出的 与真实值 y 是有偏差的。为了表示拟合得好坏,需要用一个函数度量拟合的程度:,这个函数就称之为损失函数(loss function),或者称之为代价函(cost function)。
接下来还要引入一个概念,叫作风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的 遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是因为有历史数据,即训练集, 关于训练集的平均损失称作经验风险(empirical risk),
即,所以我们的目标就是最小化,称之为经验风险最小化。
但是如果仅仅求解经验风险最小化,还无法很好地解决现实中的数据运算问题。比如图2-6-17 所示的三个函数,很显然图 2-6-17(c)的数据拟合得最好,但是函数呈现最复杂,已经达到了四次方,因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。这就引出了另一个概念,不仅要让经验风险最小化,还要让结构风险最小化。这时我们定义一个函数 ,这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化
(regularization),常用的有 L1, L2 范数。
至此,最终的优化函数为:,即最优化经验风险和结构风险,而这个函数就被称为目标函数。结合上面图示例子来分析:中间的 结构风险最小(模型结构最简单),但是经验风险最大(对历史数据拟合得最差);最右面的 经验风险最小(对历史数据拟合得最好),但是结构风险最大(模型结构最复杂),而 达到了二者的良好平衡,最适合用来预测未知数据集。