ロジスティック回帰(LR)(原則として導出式の、モデル比較、共通のインタビューポイント)の線形モデルノート2学習CHANGマシンアップ勾配降下アルゴリズム合計3つのタイプ:(詳細な導出原理を持つ)の勾配降下L0、L1を、 L2ノルム正則

参考資料(この記事の十分な理解のために不十分な場合は、包括的に理解LR前に、以下のブログの認知を読まなければなりません):

(1)。Https://zhuanlan.zhihu.com/p/74874291

(2)。ロジスティック回帰およびクロスエントロピ

(3)。https://www.cnblogs.com/pinard/p/6029432.html

(4)。Https://zhuanlan.zhihu.com/p/76563562

(5)。https://www.cnblogs.com/ModifyRong/p/7739955.html

 


 

まず、導入ロジスティック回帰

  ロジスティック回帰分析(ロジスティック回帰)は、一般化線形回帰です。線形回帰、回帰問題が解決され、予測値が実数の範囲、逆にロジスティック回帰であり、分類問題は、範囲[0,1]の予測値を解かれます。だから、ロジスティック回帰回帰と呼ばれる、実際に分類。さんが加算されたロジスティック回帰(LR)とします。

ロジスティック回帰データは、勾配降下を使用して、尤度関数法を最大にすることによって、ベルヌーイ分布を想定している従うバイナリデータの目的を達成するためのパラメータを解きます。

この文は、1つずつ導入5つのポイントを、含まれています。

  • ロジスティック回帰仮定
  • ロジスティック回帰機能喪失
  • ロジスティック回帰を解決する方法
  • ロジスティック回帰の目的
  • どのようにロジスティック回帰分類

 第二に、ロジスティック回帰仮定

任意のモデルはすべて、自分の仮定を持って、この仮定は対応機種です。最初の基本的な前提は、ベルヌーイ分布データオベイロジスティック回帰の仮定です。

ベルヌーイ分布は:;失敗した場合、確率変数は0で、確率変数1が成功した場合には、離散確率分布です。成功確率は、Q = 1-Pに失敗した、Pを表します。

[公式]

ロジスティック回帰では、それはデータがベルヌーイ分布に従って分布すると仮定されるので、その後、成功と失敗があり、対応するバイナリ分類問題は、その正のクラスと負のクラスでは、正の確率pクラスのサンプル、およびサンプルがあるはず負のクラス確率q = 1- P。具体的に私たちは、このフォームを記述します。

[公式]

[公式]

第2の仮定は、正のロジスティック回帰クラス確率、すなわちシグモイド関数によって計算されます

[公式]

すなわち:

[公式]

[公式]

一緒に書きます:

[公式]

ではなくラベルyのサンプルと、この式を説明し、理解し、それはあなたが確率を取得したいものだ、yはあなたが1欲しい正種類、Y = 0の確率は、それはあなたが望む意味するときという手段を=負の種類の確率を取得します。また、これは便利であるYリクエストパラメータ、で、私たちは下にこの点を説明します。

また、この値に、  [公式] ではないことに確率は、実際にポイント予測タグとなっており、より具体的プロセスは別々に決定確率ポジ型、即ち1、及びネガ型yの確率であるべき=、Y = 0の場合、我々は通常、唯一の確率は、クラスを求めているデフォルトを使用するように、2つが陽性と分類されている限り、0.5以下のクラスとして、1まで追加するのでこれは、比較的大きいですが、0.5は、人工で、必要に応じて、指定することができます0.6よりも大きいのでも正クラスを予測することができない、正のクラス確率は0.55である探し出し、クラスは陰性予測であるべきで、正のクラスです。

 私たちは、バイナリ分類回帰モデルことを理解して、私たちは関数モデルの損失が表示されます、私たちの目標は、することです取得するために、対応するモデル係数の機能の損失を最小限に抑える、θを

 第三に、ロジスティック回帰機能の喪失

 線形回帰が連続的であるので、線形回帰の損失関数を呼び出す、モデル誤差の二乗と定義損失関数を使用することが可能です。しかし、ロジスティック回帰、線形回帰経験の連続ではない関数定義の自然な損失は無関係になります。しかし、我々は我々の損失関数を導出する最尤法(MLE)を使用することができます。リトル人々はLRの損失関数となっているログの損失関数、それはまた呼ばれたクロスエントロピー損失関数(クロスエントロピー)。

极大似然估计:利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值(模型已定,参数未知)

如何理解这句话呢?

再联系到逻辑回归里,一步步来分解上面这句话,首先确定一下模型是否已定,模型就是用来预测的那个公式:

[公式]

参数就是里面的 [公式] ,那什么是样本结果信息,就是我们的x,y,是我们的样本,分别为特征和标签,我们的已知信息就是在特征取这些值的情况下,它应该属于y类(正或负)。

反推最具有可能(最大概率)导致这些样本结果出现的参数,举个例子,我们已经知道了一个样本点,是正类,那么我们把它丢入这个模型后,它预测的结果一定得是正类啊,正类才是正确的,才是我们所期望的,我们要尽可能的让它最大,这样才符合我们的真实标签。反过来一样的,如果你丢的是负类,那这个式子计算的就是负类的概率,同样我们要让它最大,所以此时不用区分正负类。

这样串下来,一切都说通了,概括一下:

一个样本,不分正负类,丢入模型,多的不说,就是一个字,让它大

一直只提了一个样本,但对于整个训练集,我们当然是期望所有样本的概率都达到最大,也就是我们的目标函数,本身是个联合概率,但是假设每个样本独立,那所有样本的概率就可以由以下公式推到:

设:

[公式]

似然函数:

[公式]

为了更方便求解,我们对等式两边同取对数,写成对数似然函数:

[公式]

在机器学习中我们有损失函数的概念,其衡量的是模型预测错误的程度。如果取整个数据集上的平均对数似然损失,我们可以得到:

[公式]

即在逻辑回归模型中,我们最大化似然函数和最小化损失函数实际上是等价的。所以说LR的loss function可以由MLE推导出来。

 四、逻辑回归损失函数的求解

解逻辑回归的方法有非常多,主要有梯度下降和牛顿法。优化的主要目标是找到一个方向,参数朝这个方向移动之后使得损失函数的值能够减小,这个方向往往由一阶偏导或者二阶偏导各种组合求得。逻辑回归的损失函数是:

[公式]

随机梯度下降:梯度下降是通过 J(w) 对 w 的一阶导数来找下降方向,初始化参数w之后,并且以迭代的方式来更新参数,更新方式为 :

[公式]

其中 k 为迭代次数。每次更新参数后,可以通过比较 [公式] 小于阈值或者到达最大迭代次数来停止迭代。

梯度下降又有随机梯度下降,批梯度下降,small batch 梯度下降三种方式:

  • 简单来说 批梯度下降会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。
  • 随机梯度下降是以高方差频繁更新,优点是使得sgd会跳到新的和潜在更好的局部最优解,缺点是使得收敛到局部最优解的过程更加的复杂。
  • 小批量梯度下降结合了sgd和batch gd的优点,每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果,一般在深度学习当中我们采用这种方法。

加分项,看你了不了解诸如Adam,动量法等优化方法(在这就不展开了,以后有时间的话专门写一篇关于优化方法的)。因为上述方法其实还有两个致命的问题:

  • 第一个是如何对模型选择合适的学习率。自始至终保持同样的学习率其实不太合适。因为一开始参数刚刚开始学习的时候,此时的参数和最优解隔的比较远,需要保持一个较大的学习率尽快逼近最优解。但是学习到后面的时候,参数和最优解已经隔的比较近了,你还保持最初的学习率,容易越过最优点,在最优点附近来回振荡,通俗一点说,就很容易学过头了,跑偏了。
  • 第二个是如何对参数选择合适的学习率。在实践中,对每个参数都保持的同样的学习率也是很不合理的。有些参数更新频繁,那么学习率可以适当小一点。有些参数更新缓慢,那么学习率就应该大一点。

有关梯度下降原理以及优化算法详情见我的博客:

3种类型的梯度下降算法总结

李宏毅机器学习笔记2:Gradient Descent(附带详细的原理推导过程)


 

任何模型都会面临过拟合问题,所以我们也要对逻辑回归模型进行正则化考虑。常见的有L1正则化和L2正则化。

L1 正则化

LASSO 回归,相当于为模型添加了这样一个先验知识:w 服从零均值拉普拉斯分布。 首先看看拉普拉斯分布长什么样子:

[公式]

由于引入了先验知识,所以似然函数这样写:

[公式]

取 log 再取负,得到目标函数:

[公式]

等价于原始损失函数的后面加上了 L1 正则,因此 L1 正则的本质其实是为模型增加了“模型参数服从零均值拉普拉斯分布”这一先验知识。

L2 正则化

Ridge 回归,相当于为模型添加了这样一个先验知识:w 服从零均值正态分布。

首先看看正态分布长什么样子:

[公式]

由于引入了先验知识,所以似然函数这样写:

[公式]

取 ln 再取负,得到目标函数:

[公式]

等价于原始的损失函数后面加上了 L2 正则,因此 L2 正则的本质其实是为模型增加了“模型参数服从零均值正态分布”这一先验知识。

其余有关正则化的内容详见:L0、L1、L2范数正则化

五、逻辑回归的目的

 该函数的目的便是将数据二分类,提高准确率。

六、逻辑回归如何分类

这个在上面的时候提到了,要设定一个阈值,判断正类概率是否大于该阈值,一般阈值是0.5,所以只用判断正类概率是否大于0.5即可。

七、为什么LR不使用平方误差(MSE)当作损失函数?

1.  平方误差损失函数加上sigmoid的函数将会是一个非凸的函数,不易求解,会得到局部解,用对数似然函数得到高阶连续可导凸函数,可以得到最优解。

2.  其次,是因为对数损失函数更新起来很快,因为只和x,y有关,和sigmoid本身的梯度无关。如果你使用平方损失函数,你会发现梯度更新的速度和sigmod函数本身的梯度是很相关的。sigmod函数在它在定义域内的梯度都不大于0.25。这样训练会非常的慢。

八、逻辑回归的优缺点

优点:

  • 形式简单,模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。
  • 模型效果不错。在工程上是可以接受的(作为baseline),如果特征工程做的好,效果不会太差,并且特征工程可以大家并行开发,大大加快开发的速度。
  • 训练速度较快。分类的时候,计算量仅仅只和特征的数目相关。并且逻辑回归的分布式优化sgd发展比较成熟,训练的速度可以通过堆机器进一步提高,这样我们可以在短时间内迭代好几个版本的模型。
  • 资源占用小,尤其是内存。因为只需要存储各个维度的特征值。
  • 方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cut off,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。

缺点:

  • 准确率并不是很高。因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布。
  • 很难处理数据不平衡的问题。举个例子:如果我们对于一个正负样本非常不平衡的问题比如正负样本比 10000:1.我们把所有样本都预测为正也能使损失函数的值比较小。但是作为一个分类器,它对正负样本的区分能力不会很好。
  • 处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题 。
  • 逻辑回归本身无法筛选特征。有时候,我们会用gbdt来筛选特征,然后再上逻辑回归。

 


 

西瓜书中提到了如何解决LR缺点中的蓝色字体所示的缺点:

 

 

 

九、与其他模型的对比

与SVM

相同点

1. 都是线性分类器。本质上都是求一个最佳分类超平面。都是监督学习算法。
2. 都是判别模型。通过决策函数,判别输入特征之间的差别来进行分类。

  • 常见的判别模型有:KNN、SVM、LR。
  • 常见的生成模型有:朴素贝叶斯,隐马尔可夫模型。

不同点

(1). 本质上是损失函数不同
LR的损失函数是交叉熵:

SVM的目标函数:

  • 逻辑回归基于概率理论,假设样本为正样本的概率可以用sigmoid函数(S型函数)来表示,然后通过极大似然估计的方法估计出参数的值。
  • 支持向量机基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。

(2). 两个模型对数据和参数的敏感程度不同

  • SVM考虑分类边界线附近的样本(决定分类超平面的样本)。在支持向量外添加或减少任何样本点对分类决策面没有任何影响;
  • LR受所有数据点的影响。直接依赖数据分布,每个样本点都会影响决策面的结果。如果训练数据不同类别严重不平衡,则一般需要先对数据做平衡处理,让不同类别的样本尽量平衡。
  • LR 是参数模型,SVM 是非参数模型,参数模型的前提是假设数据服从某一分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。

(3). SVM 基于距离分类,LR 基于概率分类。

  • SVM依赖数据表达的距离测度,所以需要对数据先做 normalization;LR不受其影响。

(4). 在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。

  • SVM算法里,只有少数几个代表支持向量的样本参与分类决策计算,也就是只有少数几个样本需要参与核函数的计算。
  • LR算法里,每个样本点都必须参与分类决策的计算过程,也就是说,假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。尤其是数据量很大时,我们无法承受。所以,在具体应用时,LR很少运用核函数机制。

(5). 在小规模数据集上,Linear SVM要略好于LR,但差别也不是特别大,而且Linear SVM的计算复杂度受数据量限制,对海量数据LR使用更加广泛。

(6). SVM的损失函数就自带正则,而 LR 必须另外在损失函数之外添加正则项。

红框内就是L2正则。

与朴素贝叶斯

相同点

朴素贝叶斯和逻辑回归都属于分类模型,当朴素贝叶斯的条件概率 [公式] 服从高斯分布时,它计算出来的 P(Y=1|X) 形式跟逻辑回归是一样的。

不同点

  • 逻辑回归是判别式模型 p(y|x),朴素贝叶斯是生成式模型 p(x,y):判别式模型估计的是条件概率分布,给定观测变量 x 和目标变量 y 的条件模型,由数据直接学习决策函数 y=f(x) 或者条件概率分布 P(y|x) 作为预测的模型。判别方法关心的是对于给定的输入 x,应该预测什么样的输出 y;而生成式模型估计的是联合概率分布,基本思想是首先建立样本的联合概率概率密度模型 P(x,y),然后再得到后验概率 P(y|x),再利用它进行分类,生成式更关心的是对于给定输入 x 和输出 y 的生成关系;
  • 朴素贝叶斯的前提是条件独立,每个特征权重独立,所以如果数据不符合这个情况,朴素贝叶斯的分类表现就没逻辑会好了。

十、多分类问题

参考西瓜书!!!

现实中我们经常遇到不只两个类别的分类问题,即多分类问题,在这种情形下,我们常常运用“拆分”的策略,通过多个二分类学习器来解决多分类问题,即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。最为经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM),核心思想与示意图如下所示。

  • OvO:给定数据集D,假定其中有N个真实类别,将这N个类别进行两两配对(一个正类/一个反类),从而产生N(N-1)/2个二分类学习器,在测试阶段,将新样本放入所有的二分类学习器中测试,得出N(N-1)个结果,最终通过投票产生最终的分类结果。

  • OVM:データDのセット、N個のクラスが存在する場合に真と仮定すると、テスト段階で、それによってN個の2値分類器学習を生成する、すべての新しい抗クラスとして残りのクラスの、ポジ型とし、各クラス、与えることNの結果、唯一正予測ベースの学習、標準基づいて、対応する最終的な分類結果場合。

  • MVM:Nクラス、正のクラスとして、いくつかのクラスを取って、それぞれ、抗クラス(コードによって与えられたECOC、符号化)などのいくつかのクラスが存在する場合の分割は、M回実行した場合、真と仮定データDのセット、 Mバイナリ分類器は、学習者が生成し、テストフェーズ(デコード)新しいコードフォーム得Mの結果、最終的な分類結果カテゴリとして最小ユークリッド距離のハミング距離を算出することにより、最終的な選択/。

19.png

20.png

おすすめ

転載: www.cnblogs.com/XDU-Lakers/p/11853034.html