网站建设设计公司排名,工信部网站报备,php做电商网站开题报告,wordpress应用在虚拟主机上文章目录(1). Sigmoid函数的由来——伯努利分布的衍生物1.1 为什么会有 sigmoid 函数的出现#xff1f;1.2 sigmoid 函数推导过程1.3 sigmoid 函数求导(2). 逻辑回归#xff08;Logistic Regression#xff09;2.1 逻辑回归算法的最终本质——求决策边界2.2 逻辑回归算法中的…
文章目录(1). Sigmoid函数的由来——伯努利分布的衍生物1.1 为什么会有 sigmoid 函数的出现1.2 sigmoid 函数推导过程1.3 sigmoid 函数求导(2). 逻辑回归Logistic Regression2.1 逻辑回归算法的最终本质——求决策边界2.2 逻辑回归算法中的重要组成部分(1). Sigmoid函数的由来——伯努利分布的衍生物
1.1 为什么会有 sigmoid 函数的出现
考虑一个事件X其发生的概率为p不发生的概率为1-p如下表所示
X01发生概率1 - pp
通过上述事件我们能够得到当事件一定发生x1 和 一定不发生x0 的概率但很多时候事件不一定是一个非0即1的事件而是一个连续取值的事件。当x的取值在01之间时如x0.5时我们就无法判断该事件是判定为发生还是不发生了。为此我们期望找到连续变量 x 和发生概率 p 之间的对应关系使得每一个 xxx 取值都有一个对应的事件发生概率 ppp根据发生概率 ppp 来推测事件发生还是不发生。例如当 p0.8p0.8p0.8 时判断该事件发生p0.2p0.2p0.2 时判断该事件不发生。如何寻找这个对应关系呢sigmoid 函数的求解过程就是在寻找这个对应关系sigmoid 最终的求解形式就描述连续变量 xxx 和发生概率 ppp 关系 p11e−xp \frac{1}{1 e^{-x}} p1e−x1 1.2 sigmoid 函数推导过程
由上一节中的表可以得到f(x)f(x)f(x) 分布函数可以写成
f(x){1−p;x0p;x1f(x) \left\{ \begin{array}{rcl} 1-p; \qquad x0 \\ p; \qquad x1 \end{array} \right. f(x){1−p;x0p;x1
进一步的我们可这个分段函数写成一个函数
f(x)px∗(1−p)1−xf(x) p^x*(1-p)^{1-x} f(x)px∗(1−p)1−x
接着我们在这个式子上进行推导
f(x)elnpx(1−p)1−xelnpxln(1−p)1−xex⋅lnp(1−x)⋅ln(1−p)ex[lnp−ln(1−p)]ln(1−p)ex⋅lnp1−pln(1−p)\begin{aligned} f(x) e^{lnp^x (1-p)^{1-x}} \\ e^{lnp^x ln(1-p)^{1-x}} \\ e^{x·lnp (1-x)·ln(1-p)} \\ e^{x [ lnp - ln(1-p)] ln(1-p)} \\ e^{x·ln\frac{p}{1-p} ln(1-p)} \end{aligned} f(x)elnpx(1−p)1−xelnpxln(1−p)1−xex⋅lnp(1−x)⋅ln(1−p)ex[lnp−ln(1−p)]ln(1−p)ex⋅ln1−ppln(1−p)
我们找出跟 xxx 变量相关的系数 lnp1−pln\frac{p}{1-p}ln1−pp令其等于 η\etaη反解 η\etaη: ηlnp1−peηp1−pp11e−η\begin{aligned} \eta ln\frac{p}{1-p} \\ e^\eta \frac{p}{1-p} \\ p \frac{1}{1e^{-\eta}} \end{aligned} ηeηpln1−pp1−pp1e−η1
最后计算出的形式就是sigmoid函数的函数形式将 η\etaη 换成 xxx 后就得到了连续变量 xxx 和事件发生概率 ppp 之间的函数关系至于为什么可以把 η\etaη 换成 xxx 这里我想了很久也没想通如果有大佬希望可以指点下。
1.3 sigmoid 函数求导
在逻辑回归中构造函数选用的就是sigmoid函数。我们都知道在机器学习中会不断通过求解梯度来进行函数的参数更新那么sigmoid作为目标函数不可避免的就会涉及到sigmoid的求导sigmoid函数求导结果如下
f′(x)(11e−x)′e−x(1e−x)211e−x⋅(1−11e−x)f(x)⋅(1−f(x))\begin{aligned} f(x) (\frac{1}{1e^{-x}}) \\ \frac{e^{-x}}{(1e^{-x})^2} \\ \frac{1}{1e^{-x}}·(1 - \frac{1}{1e^{-x}}) \\ f(x)·(1-f(x)) \end{aligned} f′(x)(1e−x1)′(1e−x)2e−x1e−x1⋅(1−1e−x1)f(x)⋅(1−f(x))
(2). 逻辑回归Logistic Regression
2.1 逻辑回归算法的最终本质——求决策边界
逻辑回归中使用 sigmoid 函数 11e−w⋅x\frac{1}{1 e^{-w·x}}1e−w⋅x1 来预测事件发生的概率如下图所示当纵坐标取值大于0.5时则判断事件发生y1当纵坐标小于0.5时则判断事件不发生y0。 我们仔细观察整个式子 yyy 的取0还是取1完全取决于 w⋅xw·xw⋅x 的取值是0还是0于是我们就可以通过判断一个样本点是在直线 zw⋅xzw·xzw⋅x 的上半边还是下半边来判断 yyy 的取值了。这样一来我们求解的最根本的问题就是求解一条直线 zw⋅xz w·xzw⋅x使得在直线一边的数据点全为正样本另一边的数据点全为负样本。因此逻辑回归算法算法的本质其实是去求解一个“边界”这个边界不仅能够保证数据分类的正确性还能保证所有分类后的数据的 cost 值最小如下图所示这和SVM的最小间隔距离非常相似 决策边界由函数w⋅X0w·X 0w⋅X0 来确定其中参数 www是我们需要学习的参数因此核心问题就成了求解边界 zw⋅Xw0w1⋅X1w2⋅X2...z w·X w_0 w_1·X_1 w_2·X_2 ... zw⋅Xw0w1⋅X1w2⋅X2...
2.2 逻辑回归算法中的重要组成部分
对于任何一个算法来说通常都需要考虑的3个部分
构建基本函数就是用来预测最终yyy值的函数构建目标函数目标函数损失函数 正则项构建优化方法也叫优化器optimizer 逻辑回归中的基本构造函数 在逻辑回归算法中选用的基本函数就是sigmoid函数 hθ(x)11e−xh_{\theta}(x) \frac{1}{1 e^{-x}}hθ(x)1e−x1该函数用于预测输入 xxx 后标签 yyy 的概率注意这里的 xxx 并非是数据集的原始数据输入而是乘以了参数 θ\thetaθ 之后的值即 xX⋅θx X · \thetaxX⋅θ因此逻辑回归的基本函数为 hθ(X)11e−θXh_{\theta}(X) \frac{1}{1e^{-\theta X}} hθ(X)1e−θX1 逻辑回归中的损失函数 逻辑回归的损失函数为
loss(yi,yi′)−∑i1my(i)loghθ(x(i))(1−y(i))log(1−hθ(x(i))loss(y_i, y_i) -\sum_{i1}^my^{(i)}logh_{\theta}(x^{(i)}) (1 - y^{(i)})log(1-h_{\theta}(x^{(i)}) loss(yi,yi′)−i1∑my(i)loghθ(x(i))(1−y(i))log(1−hθ(x(i)) 其中hθ(X)11e−θXh_{\theta}(X) \frac{1}{1e^{-\theta X}}hθ(X)1e−θX1这个式子可以从两个思路推导出来最大似然估计、交叉熵损失函数下面分别从这两个方面进行推导。
通过极大似然估计来解释损失函数
首先我们需要知道极大似然估计是什么举个例子假设取球事件为y取到白球时y1概率为p取到黑球时y0概率为1-p。由于是独立事件三次拿球两黑一白的概率可以表示为P(y0∣p)P(y0∣p)P(y1∣p)(1−p)(1−p)pp3−2p2pP(y 0 | p)P(y 0 | p)P(y 1 | p) (1 - p)(1 - p)p p^3 - 2p^2 pP(y0∣p)P(y0∣p)P(y1∣p)(1−p)(1−p)pp3−2p2p。白球的极大似然估计就是求使得这个概率表达式最大的p值,对上式求导求此一元二次方程的根得p1/3或p1可知原式在[0, 1/3]区间单调递增在[1/3, 1]区间单调递减。因此在白球概率范围[0.20.8]内当p1/3时表达式取得最大值取得白球的概率的极大似然估计为1/3例子引自这里。通过这个例子可以看到最大似然估计其实是在给定了若干个事实后去了三次球两黑一白对事件发生的最大可能概率取到白球的概率进行估计。
那么在逻辑回归中假定每一个数据样本相互独立则取了 mmm 个样本后得到的似然函数为根据每一个数据样本标签计算出的概率值相乘 L(θ)∏i1mpiyi(1−pi)1−yil(θ)∑i1mln[piyi(1−pi)1−yi]L(\theta) \prod_{i1}^m p_i^{y_i} (1-p_i)^{1-y_i}\\ l(\theta) \sum_{i1}^mln[p_i^{y_i}(1-p_i)^{1-y_i}] L(θ)i1∏mpiyi(1−pi)1−yil(θ)i1∑mln[piyi(1−pi)1−yi] 式子 L(θ)L(\theta)L(θ) 就等于上面白球例子中的(1−p)(1−p)p(1 - p)(1 - p)p(1−p)(1−p)pl(θ)l(\theta)l(θ)是对原式求对数把累成变为累加这个式子也叫对数似然估计。我们现在假设 ppp 服从 11e−θX\frac{1}{1e^{-\theta X}}1e−θX1分布其实真正的 ppp 并不是等于这个式子的因为 θ\thetaθ 参数是不准确的是需要学习的这样一来我们就有了损失函数 loss(yi,yi′)−l(θ)−∑i1mln[(11e−θx)yi(11eθx)1−yi]−∑i1my(i)loghθ(x(i))(1−y(i))log(1−hθ(x(i))\begin{aligned} loss(y_i, y_i) -l(\theta) \\ -\sum_{i1}^mln[(\frac{1}{1e^{-\theta x}})^{y_i} (\frac{1}{1e^{\theta x}})^{1-y_i} ]\\ -\sum_{i1}^my^{(i)}logh_{\theta}(x^{(i)}) (1 - y^{(i)})log(1-h_{\theta}(x^{(i)}) \end{aligned} loss(yi,yi′)−l(θ)−i1∑mln[(1e−θx1)yi(1eθx1)1−yi]−i1∑my(i)loghθ(x(i))(1−y(i))log(1−hθ(x(i))
怎么理解这个式子呢这样想我们按照服从 11e−θX\frac{1}{1e^{-\theta X}}1e−θX1的分布概率 p′pp′ 来进行估测的结果并不是真实标签 yiy_iyi而是有偏估计 yi′y_iyi′因为我们的参数 θ\thetaθ 是有偏的。而原本的极大似然估计的本质是在使用真实的分布概率 ppp 去做预测时是可以得到正确的预测标签 yiy_iyi 的。因此使用有偏概率 p′pp′ 去做估计得到结果就是有偏预测结果 y′yy′ 和真实标签数据 yyy 之间的偏差值也就是损失函数的结果。
通过交叉熵来解释损失函数
损失函数的定义是如果我们预测类型接近真实类型则损失函数值非常小如果预测类型偏离真是类型很多则损失函数非常大。我们再列出最终的loss函数来看看 loss(yi,yi′)−∑i1my(i)loghθ(x(i))(1−y(i))log(1−hθ(x(i))loss(y_i, y_i) -\sum_{i1}^my^{(i)}logh_{\theta}(x^{(i)}) (1 - y^{(i)})log(1-h_{\theta}(x^{(i)}) loss(yi,yi′)−i1∑my(i)loghθ(x(i))(1−y(i))log(1−hθ(x(i))
可以发现其实这个函数可以拆成两个部分图片引自这里 分别代表当样本的真实标签 y1y1y1 时对应的损失函数为−log(hθ(x))-log(h_{\theta}(x))−log(hθ(x))当样本的真实标签 y0y0y0 时对应的损失函数为 −log(1−hθ(x))-log(1-h_{\theta}(x))−log(1−hθ(x))。如下图所示图片引自这里 这个图非常直观的表示了损失函数与预测准确度的关系例如当y 1时如果 hθ(x)h_{\theta}(x)hθ(x) 的预测值越接近 1则得到的损失函数值越小若预测结果越接近 0则得到的损失函数值越大。而从上面可以看出不管是 y1y1y1 还是 y0y0y0 的情况均使用 −log-log−log 来进行损失函数的定义为什么呢这就涉及到香农熵的问题了香农信息量用来度量不确定性的大小一个事件的香农信息量等于0表示该事件的发生不会给我们提供任何新的信息例如确定性的事件发生的概率是1发生了也不会引起任何惊讶当不可能事件发生时香农信息量为无穷大这表示给我们提供了无穷多的新信息并且使我们无限的惊讶而 −log-log−log 函数恰恰能很好的表达在 xxx 取值接近 1 时函数值接近于 0反之 xxx 取值接近 0 时函数值接近于无穷大。 逻辑回归中的优化方法 使用 SGD 随机梯度下降的方法来优化参数 θ\thetaθ:
θj:θjα⋅loss(yi,yi′)\theta_j: \theta_j \alpha·loss(y_i, y_i) θj:θjα⋅loss(yi,yi′)