吴恩达深度学习——2.2 Logistic回归

ぐ巨炮叔叔 提交于 2019-11-30 01:13:37

logistic回归是一个学习算法,用在监督学习问题中,输出y标签是0或1时,这是一个二元分类问题。

已知输入的特征向量x可能是一张图,你希望能识别出这是不是猫图,你需要一个算法,可以给出一个预测值,我们说预测值y^\hat{y},就是你对y的预测,更正式地说,你希望y^\hat{y}是一个概率,当输入特征x满足条件时,y就是1(y^=P(y=1x))(\hat{y}=P(y=1|x))。所以换句话说,如果x是图片,正如上一节中看到的,你希望y^\hat{y}能告诉你这是一张猫图的概率。所以x,正如上一节中说过的,是一个nxn_x维向量。

已知logistic回归的参数是w,也是一个nxn_x维向量,而b就是一个实数,所以已知输入x和参数w和b,我们如何计算输出预测y^\hat{y}

其实可以这样算,但是不靠谱,就是y^=wTx+b\hat{y}=w^Tx+b,输入x的线性函数。事实上,如果你做线性回归,就是这么算的,,但这不是一个非常好的二元分类算法,因为你希望y^\hat{y}y=1y=1的概率,所以y^\hat{y}应该介于0和1之间。但实际上这很难实现,因为wTx+bw^Tx+b可能比1大得多,或者甚至是负值,这样的概率是没意义的,你希望概率介于0和1之间。所以在Logistic回归中,我们的输出变成y^=sigmoid(wTx+b)\hat{y}=sigmoid(w^Tx+b),这就是sigmoid函数的图像。
在这里插入图片描述横轴是z,那么sigmoid(z)就是这样的,从0到1的光滑函数,该函数与垂直轴相较于0.5处,这就是sigmoid(z)的图形,我们用z来表示wTx+bw^Tx+b,这就是sigmoid函数的公式,y^=sigmoid(z)\hat{y}=sigmoid(z),其中z是实数,σ=11+ez\sigma = \frac{1}{1+e^{-z}}

要注意一些事情,如果z非常大,那么eze^{-z}就很接近0,那么σ11+0\sigma \approx \frac{1}{1+某个很接近0的量},所以这接近1,事实上,如果看sigmoid这个图,当z很大时,sigmoid(z)就很接近1。相反,如果z很小,或者是非常大的负数,那么eze^{-z}就会变成很大的数字,所以sigmoid函数就会接近0。所以当你实现logistic函数时,你要做的是学习参数w和b。

在继续之前,我们再讲讲符号约定,,当我们对神经网络编程时,我们通常会把参数w和参数b分开,这里b对应一个拦截器,在其他一些课程中你们可能看过不同的表示。在一些符号约定中,你定义一个额外的特征向量,x0=1x_0=1,那么新的x向量就是一个nx+1n_x+1维向量,然后将y^=σ(θTx)\hat{y}=\sigma (\theta^Tx)。在这另一种符号约定中,你有一个向量参数θ\theta,其中θ0\theta_0扮演的是b的角色,这是一个实数,而θ1\theta_1θn\theta_n的作用和w一样。
在这里插入图片描述
事实上,当你实现你的神经网络时,将b和w看做独立的参数可能更好,所以在这门课中,我们不会用这种符号约定。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!