1、二分类
logistic回归是一个用于二分类(Binary Classification)的算法。二分类就是输出结果y只有0和1两个标签(也有-1和1的情况)。以一个图像识别为例,例如识别猫,1代表猫,0代表不是猫。用y表示输出的结果标签。
在二分类问题中,目标是训练一个分类器,它以图片的特征向量x为输入,预测输出的结果标签y是0还是1。
2、logisitic回归
接下来介绍如何使用逻辑回归来解决二分类问题。逻辑回归中,表示y为1的概率,取值范围是(0,1)之间。
逻辑回归的线性预测输出可以写成如上形式,已知的特征输入向量x可能是n_x维度,logistic回归的参数w也是n_x维的向量,而b就是一个实数。所以已知输入x和参数w和b,
值得注意的是,在很多其他机器学习资料中,可能把常数b当做w0处理,并引入x0=1。这样从维度来看,x和w都会增加一维。但是在本课程中,为了简化计算和便于理解,多使用上式的形式,将w和b分开比较好。
注意到上式的线性输出区间为整个实数范围,而逻辑回归要求输出范围在[0,1]之间,所以需要进行转换。引入Sigmiod函数(神经网络激活函数),让输出限定在[0,1]之间。
3、logistic回归损失函数
逻辑回归中,w和b都是未知参数,需要反复训练优化得的。为了训练logistic回归模型的参数w以及b,需要定义一个成本函数(cost function)。它是关于未知参数w和b的函数,我们的目标是在训练模型时,要找到合适的w和b,让成本函数J尽可能的小。
Loss(error) function:损失函数(误差函数),可以用来衡量算法的运行情况。这个的直观理解就是我们通过定义这个损失函数L来衡量你的预测输出值y帽和y的实际值有多接近。
- 可以定义损失函数为y帽和y的差的平方,或者它们差的平方的1/2,但是这样做的话,会发现之后讨论的优化问题,会变成非凸的,最后会得到很多个局部最优解,梯度下降法可能找不到全局最优解。
在logistic回归中,我们会定义一个不同的损失函数它有和误差平方相似的作用,这些会给我们一个凸的优化问题。一般而言,我们偏向研究凸函数问题。
- 对于这个损失函数,我们也想让它尽可能的小。
- 损失函数是在单个训练样本中定义的,它衡量了在单个训练样本上的表现。
下面定义一个成本函数,它衡量的是在全体训练样本上的表现。成本函数J是根据之前得到的两个参数w和b,J(w,b)=损失函数求和/m.,即所有m个训练样本的损失函数和的平均。
4、梯度下降法(Gradient Descent)
损失函数是衡量单一训练样例的效果,成本函数用来衡量在全部训练集上参数w和b的效果。下面我们讨论如何使用梯度下降法来训练或学习训练集上的参数w和b。
我们希望找到使成本函数J(w,b)尽可能小的w和b。
- 通过上式不断的更新迭代w。
由于J(w,b)是凸函数,梯度下降算法(Gradient Descent)是先随机选组一组参数w和b值,然后每次迭代的过程中分别沿着w和b的梯度(偏导数)的反方向前进一小步,不断修正w和b。每次迭代更新w和b后,都能让J(w,b)更接近全局最小值。
梯度下降算法每次迭代更新,w和b的修正表达式为:
- alpha是学习因子(learning rate),表示梯度下降的步进长度,其值越大,w和b每次更新的“步伐”更大一些;越小,更新“步伐”更小一些。在程序代码中,我们通常使用dw来表示。
一个神经网络的计算过程是通过正向传播(Forward Propagation)和反向传播(Back Propagation)过程来实现的,首先计算出神经网络的输出,紧接着进行一个反向传输操作,后者我们用来计算出对应的梯度或者函数。
标签:输出,逻辑,函数,梯度,回归,损失,神经网络,参数,量化 From: https://www.cnblogs.com/pgl6/p/18413352