2.2 这里有一份logistic回归教程,请查收

欢迎分享本文,转载请保留出处

点击关注,获取最新AI干货吐舌头

本节课,我们讲讲logistic回归。

这是一个学习算法,用在监督学习问题中。

输出y标签是0或1时,这是一个二元分类问题。

已知的输入特征向量x可能是一张图。你希望把识别出,这是不是猫图。你需要一个算法,可以给出一个预测值。我们说预测值y帽,就是你对y的预测。更正式的说,你希望y帽是一个概率。

当输入特征x满足条件时,y就是1。所以换句话说,如果x是图片你希望y帽能告诉你,这是一张猫图的概率,所以x是一个n_x维向量。

已知logistic回归的参数是w,也是一个n_x维向量。而b就是一个实数。

所以已知输入x和参数w和b,我们如何计算输出预测y帽?

你可以这么试试,但其实不靠谱,就是y^=w^Tx+b,输入x的线性函数。

事实上,如果你做线性回归,就是这么计算的。

但这不是一个非常好的二元分类算法。

因为你希望y^是y=1的概率,所以y^应该介于0和1之间。

但实际上这很难实现。因为w^Tx+b可能比1大很多,或者甚至是负值。这样的概率是没有意义的。

你希望概率介于0和1之间,所以在logistic回归中,我们输出变成,y^等于sigmoid函数作用到这个量上,这就是sigmoid函数的图像。横轴是z,那么sigmoid(z)就是从0到1的光滑函数。

如下图所示:

我们用z来表示w^Tx+b,sigmoid(z)其中z是实数。如果z非常大,那么e^-z就很接近0,那么sigmoid(z)就是大约等于1/(1+某个很接近0的量)。因为e^-z在z很大时就很接近0。

事实上,z很大时,sigmoid(z)就很接近1。

相反,如果z很小,或者是非常大的负数,那么sigmoid(z)就变成1/(1+e^-2),就会变成很大的数字。

当你看到z变成非常大的负值时。sigmoid(z)就很接近0。

所以,当你实现logistic回归时,你要做的是学习参数w和b,所以y^就变成了比较好的估计,对y=1概率的比较好的估计。

当我们对神经网络编程时,我们通常会把w和参数b分开。这里b对应一个拦截器。

在一些符号约定中,你定义一个额外的特征向量,叫x_0=0

在这另一种符号约定中,你有一个向量参数θ_0、θ_1还有θ_2,一直到θ_nx

所以,θ_0扮演的b的角色,是一个实数。而θ_1直到θ_nx的作用和w一样。

事实上,当你实现你的神经网络时,将b和w看做独立的参数可能更好

展开阅读全文

没有更多推荐了,返回首页