机器学习之逻辑回归算法
前言
最近在学习深度学习,一下是对学习内容的一些记录,本文主要讲述逻辑回归中涉及得数学公式推导以及算法的理解。
什么是逻辑回归?
前面我们了解了线性回归,线性回归算法就是找出自变量与因变量之间的线性关系,讨论的是因变量是连续的,那如果因变量是离散的应该怎么解决呢?
在机器学习中,可以找到一个合适的预测函数,用来预测输入数据的判断结果,使其输出在[0,1]之间,然后选择一个基准,比如0.5,如果算出来的预测值大于0.5就认为其预测值为1(类别A),反之则其预测值为0(类别B),这样我们就可以得到一个分类模型,如果结果的类别只有两种,那么就是一个二分类模型了。
简单来说逻辑回归预测的是一个事件发生的概率,得到的输出应是一个概率值,在0到1之间,解决的是一个二分类问题。
逻辑回归求解
Sigmoid 函数
公式:
其中的z相当于线性回归中得到的分值(
θ
θ
θ跟
x
x
x的组合 )。
Sigmoid函数图像:
解释:将任意的输入映射到了[0,1]区间,我们在线性回归中可以得到一个预测值,再将该值映射到Sigmoid函数中,这样就完成了由值到概率的转换,也就是分类任务。
预测函数:
其中:
假设我们现在做一个二分类的任务,我们就可以得到:
其中y代表我们的二分类任务。
然后整合:
然后我们可以得到似然函数:(似然函数的作用以及对数函数的作用可以见线性回归相关章节)
以及对应的对数似然函数:
然后应用梯度上升求最大值,现在我们是要转化为利用梯度下降求最小值,所以我们可以得到如下公式:
解释:要求最大值,我们就转化求它的负的最小值,1/m是为了考虑我们所有的样本。
然后对其求导:
然后我们就可以进行参数更新:
解释:1/m后面这一坨,是代表更新的方向,α是更新的力度。
多分类softmax函数:
总结
逻辑回归真的真的很好用。