深度学习入门笔记(6)—— Logistic Regression

深度学习入门笔记(6)—— Logistic Regression_第1张图片
对比第三节中的 Adaline 和 Logistic Regression,可以发现它们只有两点不同:1、激活函数,Adaline 中的激活函数是恒等函数(线性),而 Logistic Regression 中的激活函数是 Sigmoid 函数(非线性);2、损失函数,Adaline 中的损失函数是均方误差,而 Logistic Regression 中的损失函数则是交叉熵。

深度学习入门笔记(6)—— Logistic Regression_第2张图片
Sigmoid 函数如图所示,其值域为 0 到 1,输入为 0 时取值为 0.5

深度学习入门笔记(6)—— Logistic Regression_第3张图片
h 即 hypothesis,就是我们的模型,由于 h(x) 也是 Sigmoid 激活函数的输出,取值为 0 到 1,所以可以将其视为概率,还是给定输入 x 的条件下输出 y = 1 的后验概率。在二分类的情况下,显然 y = 0 的后验概率就是 1 - h(x)。我们希望的,就是当实际标签 y = 1 时,其后验概率 h(x) 越接近 1 越好;当实际标签 y = 0 时,其后验概率 1 - h(x) 也是越接近 1 越好。即最大化后验概率。

深度学习入门笔记(6)—— Logistic Regression_第4张图片
y 在不同取值下的后验概率,实际上可以写成一条式子,如图所示,a 就是 h(x)。

深度学习入门笔记(6)—— Logistic Regression_第5张图片
我们希望的不止是某个训练样本,而是整个训练集上样本的后验概率(乘积)最大化,想求得当模型参数取什么值时,能达到这个目标,这也称为最大似然估计。

深度学习入门笔记(6)—— Logistic Regression_第6张图片
用一个符号 L(w) 来表示当参数为 w 时,整个训练集上的后验概率乘积,这称为似然损失。

深度学习入门笔记(6)—— Logistic Regression_第7张图片
方便起见,对似然损失取对数,使其变为对数似然损失,就可以将乘法转化为加法。

深度学习入门笔记(6)—— Logistic Regression_第8张图片
由于习惯上是进行梯度下降来最小化某个函数,所以得将最大化对数似然损失,加个负号,变成最小化负对数似然损失。

深度学习入门笔记(6)—— Logistic Regression_第9张图片
简单小结一下,Logistic Regression 和 Adaline 只有激活函数和损失函数不相同,而最大化似然损失 = 最大化对数似然损失 = 最小化负对数似然损失。

深度学习入门笔记(6)—— Logistic Regression_第10张图片
Sigmoid 函数及其导数的公式与图像

深度学习入门笔记(6)—— Logistic Regression_第11张图片
负对数似然损失的图像,可以看到,当实际标签为 y = 1 时,预测值 h (即激活函数的输出)越大(接近 1),损失就越小(接近 0)。

深度学习入门笔记(6)—— Logistic Regression_第12张图片
求取损失关于参数的偏导数(即梯度),使用链式法则,分别求损失(负对数似然损失)关于激活值的导数、激活函数(Sigmoid 函数)关于加权和输入的导数、以及加权和关于参数的导数。

深度学习入门笔记(6)—— Logistic Regression_第13张图片
非常巧妙地,Sigmoid 函数的导数是可以抵消负对数似然函数导数的分母部分的,最后的偏导数(梯度)就十分简单了。

深度学习入门笔记(6)—— Logistic Regression_第14张图片
(b) 部分用的就是上面求梯度的结果,(c) 部分还是用负梯度乘上学习率进行参数的更新。

深度学习入门笔记(6)—— Logistic Regression_第15张图片
到目前为止介绍的都是训练部分,用的是激活函数的输出 + 实际标签来求取梯度,然后更新参数,并没有进行激活函数的输出到预测标签的转换。

深度学习入门笔记(6)—— Logistic Regression_第16张图片
深度学习入门笔记(6)—— Logistic Regression_第17张图片

转换的方法其实也很简单,就是阈值函数。既可以将激活函数的输出是否大于 0.5 作为阈值,也可以将加权和(激活函数的输入)是否大于 0 作为阈值,这是因为 Sigmoid 函数输入 0 时正好取值为 0.5

深度学习入门笔记(6)—— Logistic Regression_第18张图片

最后是对两个术语的解释,首先是 “Logits”,在深度学习中,logits 就是输出层的输入;在统计学和 logistic regression 中, logits 是 log-odds 的简写,也就是对数几率 log ⁡ p 1 − p \log {p \over {1 - p}} log1pp(几率就是概率 p 和 1- p 的比),然后用线性回归 w T x {w^T}x wTx 去拟合它,得到 log ⁡ p 1 − p = w T x = z \log {p \over {1 - p}} = {w^T}x = z log1pp=wTx=z,最后可以得到 p = 1 1 + e − z p = {1 \over {1 + {e^{ - z}}}} p=1+ez1,即为 logistic sigmoid 函数。

深度学习入门笔记(6)—— Logistic Regression_第19张图片
其次就是交叉熵,负对数似然函数来自统计学,二元交叉熵来自信息论,它们实际上是一样的,多分类中的多元交叉熵公式也是类似。

实现代码在这里。

你可能感兴趣的:(深度学习入门笔记,深度学习,机器学习,逻辑回归,人工智能,python)