(一)逻辑回归及其代价函数 --- 吴恩达深度学习笔记

逻辑回归 — 适用于二分类问题

使用逻辑回归算法会得到的输出标签y,y在监督问题中全是0或者1,因此这是一种针对二分类问题的算法。

给定的输入特征向量x和一幅图像对应,我们希望识别这是否是一张猫的图片。因此我们想要一种算法能够输出一个预测值, 我们称之为y帽(yhat y ^ \widehat{y} y ),这代表对真是标签Y的估计。形式上讲yhat是当给定特定输入特征x时,预测标签y为1的概率。换种说法就是当x是一张图像时,你想要yhat告诉你这张图是猫的概率。

x是一个 x n x_n xn维的向量,约定逻辑回归的参数是w,w也是一个 x n x_n xn维的向量,另外,参数b是一个实数,因此给定了一个输入x,以及参数w和b,那么如何产生输出yhat呢?

尝试让 y ^ = w . T ∗ x + b \widehat{y} = w.T*x+b y =w.Tx+b,这是输入x的一个线性函数输出,事实上,如果使用线性回归,就是这样操作的,但是这对二分类并不是一个好的算法,因为你希望yhat能够输出y为1的概率。因此yhat的值应该在0和1之间。而这种算法很难实现这个要求。因为 w . T ∗ x + b w.T*x+b w.Tx+b可能会比1大很多或者是一个负数,这对于概率就失去了意义。

让逻辑回归中的输出yhat等于这个值应用sigmoid函数的结果。

G i v e    x , w a n t    y ^ = P ( y = 1 ∣ x )    , 其 中 ( 0 ≤ y ^ ≤ 1 ) Give\ \ x, want \ \ \widehat{y} = P(y =1 | x) \ \ ,其中 (0 ≤ \widehat{y} ≤1) Give  x,want  y =P(y=1x)  (0y 1)

在这里插入图片描述

sigmoid函数是这样的,如果水平轴的标签为z,那么函数sigmoid(z)是这样的,它从0平滑地升高到1,它会在0.5处和竖直轴交叉。
在这里插入图片描述

因此这就是sigmoid(z)函数,这里z表示 ( w . T ∗ x + b ) (w.T*x+b) w.Tx+b

当z是一个实数,sigmoid(z)就等于 1 1 + e − z \frac 1 {1+e^{-z}} 1+ez1

这里需要注意几件事情,如果z非常大时,e^(-z)就会接近0,所以sigmoid(z)就约等于 1 1 + 0 \frac 1 {1+0} 1+01,即等于1。就如上图显示,如果z非常大时,sigmoid(z)也就会越接近1。相反的,如果z非常小时,sigmoid(z)也就会越接近0。

因此当你实现逻辑回归时,你的目标是尽力学到参数w和b,因此yhat就能很好地估计y等于1的概率。

当进行神经网络编程时,我们通常会将参数w和参数b分开看待。这里的b对应一个偏置量。

一些其他的课程会这样做
在这里插入图片描述

事实上,实现神经网络时,将b和w当做互相独立的参数会更加简单。

接下来为了改变参数w和b,需要定义一个代价函数(逻辑回归代价函数)。

逻辑回归代价函数

为了优化逻辑回归模型的参数w和b,需要定义一个代价函数。
在这里插入图片描述

为了了解你的模型参数,这里有一组用于优化m参数的示例。,你会很自然想找出参数w和b,至少在获得训练集和输出值时,对于训练集的假定,我们只需提出y-hat(i)将接近从训练集中获得的实际y_i。为了更详细的描述上述方程式。
上标括号指的是数据
X、Y、Z以及其他字母与i-th训练示例相关联

损失函数(误差函数)可以用来检测算法运行情况,如在算法输出时定义损失,yhat和实标Y有可能是一个或者半个平方误差 L ( y ^ , y ) = 1 2 ( y ^ , y ) 2 L(\widehat{y},y) = \frac 1 2(\widehat{y},y)^2 L(y ,y)=21(y ,y)2,你可以如此操作,但是在一般逻辑回归里不进行此操作,因为当研究参数时,我们讨论的优化问题会变为非凸问题,所以优化问题会产生多个局部最优解,梯度算法也就无法找到全局最优解。

函数L被成为损失函数,需要进行设定,才能在实标为y时,对输出值yhat进行检测,平方误差整体是个合理的选择,除了无法让梯度下降算法良好运行,所以在逻辑回归中,我们回设定一个不同的损失函数充当平方误差,这样能产生一个凸象最优问题,将使之后的优化问题变得容易。所以,实际使用的逻辑回归损失函数为

L ( y ^ , y ) = − ( y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) ) L(\widehat{y},y) = -(ylog\widehat{y} + (1-y)log(1-\widehat{y})) L(y ,y)=(ylogy +(1y)log(1y ))

为什么使用这个损失函数有意义,如果使用平方误差,平方误差需要尽可能小,在此逻辑回归损失函数里,我们也要让这个数值尽可能小。
举个例子:
1、我们假定y=1, L ( y ^ , y ) = − l o g y ^ L(\widehat{y},y) = -log\widehat{y} L(y ,y)=logy ,要使得L特别小,那么就要使得 l o g y ^ log\widehat{y} logy 数值必须特别大,但是 y ^ \widehat{y} y 时sigmoid函数,它无法大于1,也是是说如果y=1, y ^ \widehat{y} y 值要尽可能打,但却打不过1,所以 y ^ \widehat{y} y 要无限接近1。
2、我们假定y=0,即损失函数 L ( y ^ , y ) = − l o g ( 1 − y ^ ) L(\widehat{y},y) = -log(1-\widehat{y}) L(y ,y)=log(1y ),所以在学习过程中,需要将损失函数值变小,意味着 l o g ( 1 − y ^ ) log(1-\widehat{y}) log(1y )的值要大,即要使得 y ^ \widehat{y} y 尽可能的小。即如果y=0,损失函数将会作用于参数使得yhat无限趋近于0.

目前有很多函数具有拉菲拉效应,也就是如果y=1,yhat的值要变大;如果y=0,yhat的值要变小。

接下来设定代价函数,来检测优化组的整体运行情况,所以运用参数w和b的代价函数J是取m(训练集)的平均值、损失函数的总和运用于训练集,你的逻辑回归算法预计的输出值,用于一组特定的w和b参数。
所以我们要做的是损失函数适用于像这样单一的训练集。
代价函数:
C o s t   F u n c t i o n :   J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ , y ) = − 1 m ( ∑ i = 1 m ( y ( i ) l o g y ^ ( i ) + ( 1 − y ( i ) ) l o g ( 1 − y ^ ( i ) ) ) ) Cost \ Function: \ J(w,b) = \frac 1 m\displaystyle\sum_{i=1}^mL(\widehat{y},y) = -\frac 1 m(\displaystyle\sum_{i=1}^m(y^{(i)}log\widehat{y}^{(i)} + (1-y^{(i)})log(1-\widehat{y}^{(i)}) )) Cost Function: J(w,b)=m1i=1mL(y ,y)=m1(i=1m(y(i)logy (i)+(1y(i))log(1y (i))))

L ( y ^ , y ) = − ( y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) ) L(\widehat{y},y) = -(ylog\widehat{y} + (1-y)log(1-\widehat{y})) L(y ,y)=(ylogy +(1y)log(1y )),此损失函数,只适用于单个的训练样本。

Cost Function基于参数的总损失,所以在训练逻辑回归模型时,我们要找到合适的参数w和b,让代价函数J尽可能地小。
逻辑回归可以被看作是一个非常小的神经网络。

Tips:符号定义

x:表示一个 n x n_x nx维数据,为输入数据,维度为( n x n_x nx,1)

y:表示输出的结果,取值为(0,1)

( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)):表示第i组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据。

X = [ ( x ( 1 ) , x ( 2 ) , . . . , x ( m ) ) ] X=[(x^{(1)},x^{(2)},...,x^{(m)})] X=[(x(1),x(2),...,x(m))]:表示所有训练数据集的输入值,放在一个 n x n_x nxx m的矩阵中,其中m表示样本数目。

Y = [ ( y ( 1 ) , y ( 2 ) , . . . , y ( m ) ) ] Y=[(y^{(1)},y^{(2)},...,y^{(m)})] Y=[(y(1),y(2),...,y(m))]:表示所有训练数据集的输出值,维度为 1 x m。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值