关于javascript:机器学习进阶-深入思考逻辑回归

38次阅读

共计 1955 个字符,预计需要花费 5 分钟才能阅读完成。

问题背景

假如有这样的一个需要:判断某一朵花是不是鸢尾花。咱们晓得不同种类的花,其长得是不一样,所以咱们能够通过花的若干外观特色(花萼长度、花萼宽度、花瓣长度、花瓣宽度等)来示意这一朵花。
基于这个思路,咱们采集 N 朵花并对其标注,失去以下的数据集。

思考最简略的一种情景,Y(是否为鸢尾花),与特色 X 线性相关,W 定义为相关系数,即模型 F 能够用上面公式表述:

化简写成向量化模式:,也就是线性回归,

当初问题来了,是和否是两种状态,在计算机科学上咱们罕用 1 / 0 开关量来表述,然而从示意式的值域上看数学公式: 能取任意值,这是没方法间接成表述 0 / 1 开关量。那如何解决这个问题呢?通过一个转换函数(又称为激活函数),将线性回归转换逻辑回归。

建模思路

并不是任意函数都能够作激活函数应用的,激活函数具备以下几种良好的性质:
<font color=’red’> 非线性 </font>,线性函数的复合线性函数仍是线性函数,故线性激活函数不能带来非线性的变换,应用这样激活函数不能加强模型的表达能力,如此一来就没方法拟合简单的实现问题了,所以激活函数必须非线性的。
<font color=’red’> 间断可微 </font>,如果函数不可微分,就没方法通过梯度降落法来迭代优化,以失去近似的最优解了。如果激活函数不可微,可能须要其余各简单的数学工具来求解,一是未必会有解,二是计算成本太高,难以实现和落地。
<font color=’red’> 枯燥性 </font>,线性函数自身是枯燥,这个自身是肯定的物理意义的,所以通过激活函数转换后也放弃这个性质,不能扭转其枯燥性。满足

间接转换

通过一个分段函数,把 f(x)间接映射成 0 或 1,如公式所示:

然而,这个分段函数不间断不可微不枯燥,还带一个额定的参数 k,所以这种分段函数并不适单干激活函数应用。

间接映射

不间接映射成 0 或 1,而是将 f(x)的值域压缩到 (0,1) 之间,如公式所示:

这就是 sigmoid 函数了,下图为 sigmoid 函数的图像。

显然是这个函数是具备下面提到的激活函数的三种低劣性质。同时将输入压缩到 (0,1) 区间上,有一个很直观感触是,咱们能够把这个输入值了解为一种概率,在这个问题上指的是鸢尾花的概率,当这个概率值大于 0.5,阐明鸢尾花概率大即 1,反之则不是鸢尾花即 0,这就能实现分类的判断了。

实现逻辑

那既然当初有了 sigmoid 激活函数,咱们该如何利用它训练模型呢?<font color=’red’> 模型之所以能训练是依赖于两个神器: 损失函数和梯度降落,前者能量化咱们模型预测与实在后果的误差、确定优化的指标函数,后者能晓得如何去缩小误差、具体地优化指标函数 </font>。

损失函数

sigmoid 激活函数输入值能够看作是概率,具体地咱们能够把这个概率,看成是预测后果为是的概率。

咱们须要预测的分类后果要么为是要么为否,只有两种状况,显然样本 X 是遵从伯努利 (0-1) 散布。假设样本 X,当分类标签真值 y 为 1 时,咱们就看 y_pred 也是 sigmoid 的输入值(模型预测为是的概率),0 是 1 的互斥事件,当分类标签真值为 0 时,咱们就看 1 -y_pred(模型预测为否的概率),所以条件概率 P(Y|X)能够量化出模型预测的精确水平了。

合并化简,整合成对立模式

P(Y|X)就是模型预测后果,显然 P(Y|X)的值越靠近于 1,阐明模型预测后果越准。一个数据集有 N 个样本,每个样本之间独立的,所以在模型在整个数据上好坏,能够这样定义:

显然,要使得模型的成果最佳,则得找到一个最佳参数 使得 能取到最大值,这个就是最优化办法外面的极大使然预计 (MLE) 了,咱们找到损失函数了。

接下来,咱们得看看如何转换这个损失函数:<font color=’red’> 加负号(最大值问题转化最小值问题,梯度降落能找最小值),取对数(不改枯燥性,把简单的连乘变成简略的连加)</font>

梯度降落

确定了指标函数之后,接下来就能够利用梯度降落,用迭代更新参数 W,使其一直迫近指标函数的极值点。

梯度推导:

联立式②③可见

由此可见,t+ 1 时刻模型预测误差总会比在 t 时刻更小,通过这样迭代,模型就能一直学习和调整,始终到偏导数为 0 的 (部分) 最优极值点,这时候参数便无奈再持续调整了,模型也就进行再训练了。

结语

逻辑回归 (Logistic Regression) 是机器学习下面一个最简略、最根底的模型框架和根本范式,不夸大地说它是机器学习奠基石之一,后续的机器学习模型,很多都是立足于这个根底的模型框架上,提出各种模式拓展与改良。
粗浅地了解逻辑回归模型,梳理逻辑回归模型背地建模思路、因果原因、实现逻辑,能让咱们对机器学习的方法论有一个更全面更清晰的认知。


欢送关注凹凸实验室博客:aotu.io

或者关注凹凸实验室公众号(AOTULabs),不定时推送文章。

正文完
 0