吴恩达深度学习课程笔记-神经网络编程基础-逻辑回归

吴恩达深度学习课程笔记-神经网络编程基础-逻辑回归

吴恩达深度学习课程笔记

第二周:神经网络编程基础(Basics of Neural Network programming)

2.2 逻辑回归(Logistic Regression)

对于二元分类问题来讲,给定一个输入特征向量 X,它可能对应一张图片,你想识别这张图片看它是否是一只猫。你想要一个算法能够输出预测,称之为 \hat{y},也就是你对实际值 y 的估计。更正式的来说,你想让 \hat{y} 表示 y 等于 1 的一种可能性,前提条件是给定了输入特征 X。换句话来说,如果 X 是图片的特征向量,你想让 \hat{y} 来告诉你这是一张猫的图片的几率有多大。X 是一个 n_{x} 维的向量(相当于有 n_{x} 个特征的特征向量),我们用 w 来表示逻辑回归的参数,这也是一个 n_{x} 维向量(因为 w 实际上是特征权重,维度与特征向量相同 ),参数里面还有 b,这是一个实数,表示偏差。

所以给出输入 x 以及参数 wb 之后,如何输出预测值 \hat{y} 呢?一种方式是令 \hat{y} = w^{T}x + b。这时候我们得到的是一个关于输入 x 的线性函数,实际上这是你在做线性回归时所用到的,但是对于二元分类问题这不是一个好的算法。因为 \hat{y} 表示实际值 y 等于 1 的几率,\hat{y} 应该在 0 到 1 之间,而 w^{T}x + b 可能比 1 要大得多,也可能是一个负值,对于在 0 和 1 之间的概率来说它是没有意义的。因此在逻辑回归中,我们采用如下算法:\hat{y} = \sigma(w^{T}x + b),这样就将线性函数转换为非线性函数了。

下图是 sigmoid 函数的图像,如果将水平轴作为 z 轴,那么关于 zsigmoid 函数是是平滑地从 0 走向 1,曲线与纵轴相交的截距是 0.5。

enter image description here

sigmoid 函数是这样定义的:

    \[\sigma(z)=\frac {1}{1+e^{-z}}\]

    \[z = w^{T}x + b\]

z 是一个实数,如果 z 非常大,则 \sigma(z) 会非常接近 1;相反的,如果 z 非常小,或者说是一个绝对值很大的负数,那么 \sigma(z) 会非常接近 0。因此当你实现逻辑回归时,你的工作就是去让机器学习参数 w 以及 b,这样才使得 \hat{y} 成为对 y = 1 这一情况的概率的一个很好的估计。

上一篇:吴恩达深度学习课程笔记-神经网络编程基础-二分类

下一篇:吴恩达深度学习课程笔记-神经网络编程基础-逻辑回归损失函数

发表评论

电子邮件地址不会被公开。 必填项已用*标注