logistic回归

logistic 回归:用于二元分类的算法,举例:当你输入一张照片时,需要判断当前的照片是否为猫,希望的输出为如果是猫,输出为1,否则输出为0,这就是一个简单的二元分类。首先我们必须明确在电脑照片如何存储的,一张彩色的照片通常被存储为红、绿、蓝三个颜色通道,如果该照片是64*64 的像素的,则在计算机中存储3个64*64的矩阵,分别表示亮度,此时得到我们的输入特征向量x的维数为64*64*3=12288,在二元分类中,我们希望训练一个分类器,它以图片的特征向量X作为输入,然后得到一个数据Y,如果有猫的话,输出为1,否则输出为0.

神经网络中通用的一些表示方法,(x,y)中x表示n=12288的n行1列的矩阵,y表示训练模型的输出结果,值为0或者1,(x,y)表示一个样本,一共有m个样本。

logistic回归_第1张图片

传统的线性回归算法通常可以表示为y=wx+b,然而它不符合上述将图片作为输入时,得到一个y值输出,y的值只能为0或者1。此时sigmoid 函数的作用就显而易见了,引用中一位作者多sigmoid函数的介绍,http://www.jianshu.com/p/fcbc6983cc9a,sigmoid 函数满足在(0.0.5)的中心对称,该函数的值域为(0,1)的光滑函数,用于估计某种事件的可能性。当自变量非常大的时候,sigmoid函数的值趋近于1,如果自变量是一个很小的值,此时sigmoid函数的值无限趋近于0,通常的时候,我们将w和b的值就行预测,使得预测值无限接近于正确值。在完成编程的过程中,我们分别对w和b进行预测,b对应拦截器。在明确上述概念的时候,预测值y^=wx+b

为了训练logistic回归模型的参数W和b,我们需要定义两个函数:损失函数和成本函数

损失函数为:


  --适用于单个训练集

成本函数为:                                                              

--基于参数的总成本,我们的目的是为找到合适的w和b 使得成本函数达到最小

成本函数是一个与w和b 有关的二维凸函数

logistic回归_第2张图片
J函数,凸函数,有极值

梯度下降法:我们要做的是先初始化w和b,然后沿着下降最陡的方向下一步,当走了一步之后,可能会停住,重复执行w=w-α    b=b-α,迭代是的w和b 出现在上面极值点处,使得成本函数达到最低。

在计算参数w和b 的过程中需要用到导数,这里的导数很简单就不赘述,下面PPT中的数值α表示学习率


logistic回归_第3张图片
logistic回归中的梯度下降
logistic回归_第4张图片
实现参数迭代的代码

两个循环组成,外层循环遍历数据集,内层循环将算法中的参数循环展示

考虑到现有的数据集越来越大,现在的神经网络往往选择采用向量化的方法完成原本的循环操作

你可能感兴趣的:(logistic回归)