Machine Learning Chinese NLP :::: Logistic Regression Simplified Cost Function & Gradient Descent - Chad Salinas ::: Data Scientist
Life and times of Chad Salinas
Chad Salinas, golf caddy, data scientist, chad rPubs, recovering chess addict, daddy caddy
1229
post-template-default,single,single-post,postid-1229,single-format-standard,qode-listing-1.0.1,qode-social-login-1.0,qode-news-1.0,qode-quick-links-1.0,qode-restaurant-1.0,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-theme-ver-12.0.1,qode-theme-bridge,bridge,wpb-js-composer js-comp-ver-5.4.2,vc_responsive

Machine Learning Chinese NLP :::: Logistic Regression Simplified Cost Function & Gradient Descent

Logistic Regression Simplified Cost Function & Gradient Descent

在这段视频中我们将寻找一个更简洁的方法来表示代价函数 
来代替之前的做法 
然后我们将学会怎么去应用梯度下降法 
来找到逻辑回归的参数 
所以,在这个视频的结尾 
你将会知道如何去实现一个可应用的逻辑回归函数

这个是逻辑回归的代价函数 
完整的代价函数是通过 将m个训练样本的代价函数求和获得的 
每一个代价函数代表在不同的样本y上的预测误差 
这个函数是我们之前的单个训练样本的代价函数 
需要提醒一下 
在分类问题中,我们的训练集 
所有的标签y的取值只包括0和1两种可能 
这个是y的数学定义

由于y只能是0或者1 
在这段视频中我们将寻找一个更简洁的方法来表示代价函数 
值得一提的是,与其写出上述的代价函数(罚函数) 
以两种情况的形式,分别是y=1和y=0的情况 
不如我给你们展示一种如何将两行的公式 
压缩到一个公式 
这会有利于于简化罚函数的形式以及 
梯度下降的推导 
具体而言,我们能像下面这样表述罚函数 
我们说,H(x),y相关的罚函数 
我会把这个罚函数写成 
-y*logh(x)-(1-y)*log(1-h(x)) 
-y*logh(x)-(1-y)*log(1-h(x)) 
我将迅速像你展示这个表达式,这个公式 
是之前罚函数的等同表达式,或者说更加精简的表达式 
用以表述我们关于罚函数的定义。 
我们来看这是为什么。

我们知道只有两种可能的情况。 
Y必须为零或1。 
让我们假设 Y 等于1。

如果 y 等于 1,这就是说罚函数值等于, 
如果 y 等于 1,这就是说罚函数值等于, 
那么1减去 y 将等于 0,对吧? 
因此, 如果 y 等于 1, 则1减去 y 是1减去 1, 因此是0。 
所以第二项乘以0就消失了。 
所以我们这里只有第一项了,就是-y*logh(x) 
因为y=1,所以罚函数就等于 -log h(x) 
如果 y = 1, 这个等式正是我们之前罚函数表达式的第一种情况。 
另一个例子是 y = 0。 
如果是这样的话,那我们的罚函数就告诉我们 
如果 y 等于 0, 那么第一项就等于零。 
而1减去 y, 如果 y 等于零(1-y)将等于 1, 
因为1减去 y 变成1减去 0, 这是等于1。 
所以代价函数被简化成了这里的最后一项,对吧 
因为这里的第一项乘以0,所以它消失了 
所以,这个式子只剩下最后一项,即 -log(1-h(x)) 
你可以证明这一项确实符合我们给出的这个式子 
当 y 等于0的时候

所以这个新的代价函数的定义是更为简洁的形式 
包括了 y=1 和 y=0 这两种情况 
并且用了一种只有一行,更加方便的形式 
因此,我们可以将我们逻辑回归的代价函数写成这样 
因此,我们可以将我们逻辑回归的代价函数写成这样 
它是 m 分之一乘以这些代价函数的和 
将之前我们得到的代价函数定义替换进式子里 最终我们得到了这个式子 
将之前我们得到的代价函数定义替换进式子里⏎最终我们得到了这个式子 
我们把负号提取到式子外面 
关于为什么我们要选择这个特殊的函数作为代价函数 
尽管看起来我们可以选择其他的代价函数 
在这节课上我没有时间来深入了解这一点 
使用最大似然估计法 从统计数据中可以得出这个代价函数 
使用最大似然估计法⏎从统计数据中可以得出这个代价函数 
这是统计学中的一种思想 
即如何有效地为不同模型找到参数数据 
这个代价函数有一个十分优秀的属性——凸性 
所以这个代价函数 
是几乎每个人在逻辑回归模型中都会使用的 
如果你不懂的话 我是指如果你不明白什么是最大似然估计的话 
我是指如果你不明白什么是最大似然估计的话,不用担心 
但这只是一个更深层次的理由 
在选择这个特殊的代价函数的理由 我有时间的话会在这个课上讲解 
给出这个代价函数,是为了拟合参数 
我们接下来要做的事情是 尝试找到使 J 函数最小化的参数 θ 
所以,如果我们要尝试最小化函数 J 它会给我们一个 θ 的数据集 
最后,如果给我们一个新的包含特征 x 集合的例子 
我们能够得到拟合给出训练集的 θ 并输出像这样的预测函数 
在这里提醒一下,我输出的预测函数可以这样理解 
即 y 等于1的可能性 
在给出输入 x 并且参数为 θ 的情况下 
你可以把这个看作我的假设函数 预测 y 等于1的概率 
你可以把这个看作我的假设函数 预测 y 等于1的概率 
所以接下来要做的就是 如何计算使函数 J 最小化的参数 θ 
所以接下来要做的就是 如何计算使函数 J 最小化的参数 θ 
即我们能够得到拟合我们训练集的参数 
我们最小化代价函数的方法是梯度下降法 
这是我们的代价函数 如果我们想要把它最小化为 θ 的函数 
梯度下降法是我们常用的方法 
我们反复更新参数 θ 
令 θ 等于 θ 减去 学习速率 α 乘这一项的导数 
如果你懂微积分,你可以比较轻松地计算这一项的导数 
并且如果你可以化简它你会得到和我一样的答案 
但即使你不会微积分也不必担心

如果你真的计算了 
那你会得到写在这里的这个方程 
这是从 i 从1到m项 预测误差和 xi 的第j项乘积之和 
所以,如果你将这个偏导数项插回这里 
之后我们可以把我们的梯度下降法写成以下这样

我做的就是 把前一页幻灯片的导数项插在这里 
所以.我们需要弄清楚 
所以,如果你有n个特征 你会有一个向量参数 θ 
这个向量参数 θ 包括 θ1,θ2…θn 
在你更新时,需要同步更新全部 θ 值 
在你更新时,需要同步更新全部 θ 值 
现在,如果你采取这个更新规则 
并将其与我们做的线性回归进行比较 
你有可能惊奇地发现 
这个方程就是我们我们在线性回归时用的 
事实上,如果你看了之前的视频 
如果你看了线性回归的梯度下降更新规则 
会发现它和我在蓝框里写的式子一摸一样 
所以,线性回归和逻辑回归 是不同的算法吗? 
当然不同,观察逻辑回归的式子 
预测函数 hθ 的定义改变了 
关于线性回归 我们有 hθ 等于 θ 的转置乘 X 
在逻辑回归中,hθ 的定义改变了 
现在 hθ 等于 1加上e的-θ 转置乘X次幂分之一 
所以,即使这个更新规则表面上看起来一样 
但是因为 hθ 的定义改变了 
所以这个和线性回归的梯度下降法确实不同 
在前面的视频中 我们曾经讲过关于线性规划的梯度下降法 
我们曾讲过怎样观测梯度下降 
以便确定它是收敛的 
对于逻辑回归,我通常使用相同的函数 
来观测梯度下降以便确定它正确得收敛 
当然我们希望 
你可以想出如何将这项技术 应用到逻辑回归中

当使用梯度下降法实现逻辑回归时 
我们有所有这些不同的参数值 
从 θ1 到 θn 这些 我们需要使用这个表达式进行更新的参数值 
我们可以采用一个for循环 
for循环 i 从0到 n,或者 i 从1到 n+1 
因此依次更新这些参数值中的每一个 
当然比采用for循环更理想的方法是 
我们可以采用向量化实现方法 
所以一次向量化实现方法 可以更新全部的n+1个参数 
所以一次向量化实现方法 可以更新全部的n+1个参数 
检查你自己的理解程度 你可以查看你是否能够指出 
如何用这个算法做向量化实现

所以,你现在知道 如何实现逻辑回归的梯度下降法 
最后,这还有一个我们之前讨论过的概念 
在线性回归中的特征值缩放 
我们看到在线性回归中 特征值缩放是如何帮助梯度下降法更快收敛 
要使其最小化 我们需要用一个算法 
特征值缩放同样适用于 逻辑回归中的梯度下降法 
逻辑回归的实际学习算法 
当我们有特征值范围差异巨大时 
应用特征值缩放同样可以使 逻辑回归的梯度下降法更快收敛

就是如此,你现在知道了如何实现逻辑回归 
这是一个十分强大 
并且可能是世界上应用最广泛的分类算法 
而你现在知道如何让它为你自己工作 
 

Any programming problem can be solved by adding a level of indirection.

– David J. Wheeler

No Comments

Sorry, the comment form is closed at this time.