赞
踩
目录
3 逻辑回归数的代价函数 (Logistic Regression Cost Function )
6 逻辑回归的梯度下降法 (Logistic Regression Gradient Descent)
逻辑回归算法适用于二分类问题。对于二元分类问题来讲,给定一个输入特征向量 X ,它可能对应一张图片,你想识别这张图片识别看它是否是一只猫或者不是一只猫的图片,你想要一个算法能够输出预测,你能称之为
我们得到的是一个关于输入 x 的线性函数,实际上这是你在做线性回归时所用到的,但是这对于二元分类问题来讲不是一个非常好的算法,因为你想让
上图就是sigmod函数,不难理解:当z趋于正无穷大时,函数值趋于1,当z趋于负无穷时,函数值趋于0,当z等于0时,函数值等于0.5。函数值的范围为0~1之间。
为了让模型通过学习调整参数,你需要给予一个 m 样本的训练集,这会让你在训练集上找到参数 w 和参数 b ,来得到你的输出。损失函数又叫做误差函数,用来衡量算法的运行情况,来衡量预测输出值和实际值有多接近。一般我们用预测值和实际值的平方差或者它们平方差的一半,但是通常在逻辑回归中我们不这么做,因为当我们在学习逻辑回归参数的时候,会发现我们的优化目标不是凸优化,只能找到多个局部最优值,梯度下降法很可能找不到全局最优值,虽然平方差是一个不错的损失函数,但是我们在逻辑回归模型中会定义另外一个损失函数。我们在逻辑回归中用到的损失函数是:
为什么要用这个函数作为逻辑损失函数?当我们使用平方误差作为损失函数的时候,你会想要让这个误差尽可能地小,对于这个逻辑回归损失函数,我们也想让它尽可能地小,为了更好地理解这个损失函数怎么起作用,我们举两个例子:
损失函数是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何,为了衡量算法在全部训练样本上的表现如何,我们需要定义一个算法的代价函数,算法的代价函数是对 m 个样本的损失函数求和然后除以 m :
根据我们对逻辑回归算法的推导及对单个样本的损失函数的推导和针对算法所选用参数的总代价函数的推导,结果表明逻辑回归可以看做是一个非常小的神经网络。
梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小。
其中w和b是网络中需要改变的参数,α是学习率,??和??是代价函数对w和b梯度。在你训练集上,通过最小化代价函数(成本函数) J(w,b)来训练参数 w 和 b 。
a 初始化w和b
b 朝最陡的下坡方向走一步,不断地迭代
c 直到走到全局最优解或者接近全局最优解的地方
当初始化右边一个点时,dw>0,因为
一个神经网络的计算,都是按照前向或反向传播过程组织的。首先我们计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作。后者我们用来计算出对应的梯度或导数。计算图解释了为什么我们用这种方式组织这些计算过程。我们先看一个不正式的计算图。
计算各个梯度:
我们将使用计算图对梯度下降算法进行计算,接下来让我们开始学习逻辑回归的梯度下降算法。假设样本只有两个特征
回想一下逻辑回归的公式定义如下:
损失函数:
代价函数:
假设现在只考虑单个样本的情况,单个样本的代价函数定义如下:其中 a 是逻辑回归的输出, y 是样本的标签值。现在让我们画出表示这个计算的计算图。梯度下降法, w 和 b 的修正量可以表达如下:
m 个样本梯度下降法现在你知道带有求和的全局代价函数,实际上是 1 到 m 项各个损失的平均。 所以它表明全局代价函数对
我们利用前五个公式完成了前向和后向传播,也实现了对所有训练样本进行预测和求导,再利用后两个公式,梯度下降更新参数。但多次迭代进行梯度下降,需要 for 循环放在最外层。
用逻辑回归识别一张猫的图片
github代码:https://github.com/xiaooudong/Logistic-Regression-as-a-Neurral-Network
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。