logistic回归是一个学习算法,用在监督学习问题中,输出y标签是0或1时,这是一个二元分类问题。
已知输入的特征向量x可能是一张图,你希望能识别出这是不是猫图,你需要一个算法,可以给出一个预测值,我们说预测值,就是你对y的预测,更正式地说,你希望是一个概率,当输入特征x满足条件时,y就是1。所以换句话说,如果x是图片,正如上一节中看到的,你希望能告诉你这是一张猫图的概率。所以x,正如上一节中说过的,是一个维向量。
已知logistic回归的参数是w,也是一个维向量,而b就是一个实数,所以已知输入x和参数w和b,我们如何计算输出预测?
其实可以这样算,但是不靠谱,就是,输入x的线性函数。事实上,如果你做线性回归,就是这么算的,,但这不是一个非常好的二元分类算法,因为你希望是的概率,所以应该介于0和1之间。但实际上这很难实现,因为可能比1大得多,或者甚至是负值,这样的概率是没意义的,你希望概率介于0和1之间。所以在Logistic回归中,我们的输出变成,这就是sigmoid函数的图像。
横轴是z,那么sigmoid(z)就是这样的,从0到1的光滑函数,该函数与垂直轴相较于0.5处,这就是sigmoid(z)的图形,我们用z来表示,这就是sigmoid函数的公式,,其中z是实数,。
要注意一些事情,如果z非常大,那么就很接近0,那么,所以这接近1,事实上,如果看sigmoid这个图,当z很大时,sigmoid(z)就很接近1。相反,如果z很小,或者是非常大的负数,那么就会变成很大的数字,所以sigmoid函数就会接近0。所以当你实现logistic函数时,你要做的是学习参数w和b。
在继续之前,我们再讲讲符号约定,,当我们对神经网络编程时,我们通常会把参数w和参数b分开,这里b对应一个拦截器,在其他一些课程中你们可能看过不同的表示。在一些符号约定中,你定义一个额外的特征向量,,那么新的x向量就是一个维向量,然后将。在这另一种符号约定中,你有一个向量参数,其中扮演的是b的角色,这是一个实数,而到的作用和w一样。
事实上,当你实现你的神经网络时,将b和w看做独立的参数可能更好,所以在这门课中,我们不会用这种符号约定。