目录


1、直男 线性回归
2、海王logistic,被掰弯的线性回归
3、海王征服的妹子
3.1 Word2Vector
3.2 XGBoost
3.3 深度学习中的sigmod


摘要

本文将要讲述的内容是多个机器学习方法推导的一些共通之处,虽涉及到算法的推导,但还是希望能尽量轻松愉快的讲解,并且能够帮助大家,将这几个算法的推导,更加系统化的理解。

本文主要将要讲到的几个机器学习的方法包括线性回归、logstic回归、XGBoost、Word2Vector以及深度学习等一系列方法的推导以及他们在推导中的共通之处。可能这里提到的内容,很多大神都有提到过,没有关系,可以再次温习一下。

1、直男 线性回归

以前学习的时候,就有大神跟我说过,机器学习,得线性着得天下,现在想来,机器学习就是线性到非线性的过程,线性学好了,从线性到非线性的演变自然就能通了。线性与非线性的概念,这里简单的介绍下:在二维空间,能够被一条直线分开的数据,叫线性可分,而这条直线就是线性函数,有意思的是,二维空间线性不可分的数据,在三维或更高维可能可以线性可分,从这一点说,线性与非线性貌似是维度的压制。

线性回归,说的就是,不管多少维,用来学习的就是一个线性函数,函数为:

F(X)=WTX+bF(X)= \mathbf{W^TX+b} F(X)=WTX+b

通俗的解释下这个应用场景,比如说,有这样一批数据,对于每一个数据,有mmm个对房价的影响因素,写成一个向量xix_ixi,然后经过调查,知道xix_ixi 情况下,房价就是 yiy_iyi 元。如果搜集很nnn组数据数据,也就是 i=1,2,3,...,ni=1, 2, 3, ..., ni=1,2,3,...,n,得到D={(x1,y1),(x2,y2),...,(xn,yn)}D=\{(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\}D={(x1,y1),(x2,y2),...,(xn,yn)},写成向量的形式 D={(X,Y)}D =\{(X, Y)\}D={(X,Y)},其中X=(x1,x2,...,xn)X=(x_1, x_2, ..., x_n)X=(x1,x2,...,xn)Y=(y1,y2,y3,...,yn)Y=(y_1,y_2,y_3, ..., y_n)Y=(y1,y2,y3,...,yn),接下来简单的说明求解过程。

根据最小错误准则,算法预测的数据与实际的数据之间的差距,应该约小越好,在进经典的线性回归中,使用的 loss function 是均方误差:

L(W)=12(F(X)−Y)2L(W) = \frac{1}{2}(F(X)-Y)^2 L(W)=21(F(X)Y)2

很明显,L(W)L(W)L(W) 为凸函数,可以求导试试:

∂L(W)∂W=XTXW−XTY\frac{\partial L(W)}{\partial W} = \mathbf{X^TXW-X^TY} WL(W)=XTXWXTY

如果 XTXX^TXXTX 的逆存在,就可以直接求得最优解:

W=(XTX)−1XTY\mathbf{W} = \mathbf{(X^TX)^{-1}X^TY} W=(XTX)1XTY

对于XTXX^TXXTX不可逆的情况,可以使用梯度下降或加一个λI\lambda IλI向量来求解,其中0<λ<10< \lambda < 10<λ<1III为单位矩阵。如果有小伙伴对于线性回归感兴趣,或者觉得以上讲解过于简单,没有弄清楚,可以参照我的另外一篇博文机器学习:线性回归(Linear Regression)

2、海王logistic,被掰弯的线性回归

线性回归的推导过程,其实跟logistic回归的推导过程并不一样,这也是在线性回归的时候,粗略带过,直男的待遇,不是特别重视。但是,logistic回归就是基于它来的,每一个海王都有青涩的曾经,一定是受了挫折,预测和分类都不达标,只能改变自己,线性崛起,被迫掰弯自己,华丽转身成logistic回归。

这里用logistic来解决分类问题,模型训练成功后,输出给定样本特征及模型超参数的情况下,属于某类别的概率。经典案例,二分类问题,如果事件AAA发生的概率为PAP_APA,那么事件AAA不发生的概率就是1−PA1-P_A1PA,判断的时候,可以用比
PA1−PA\frac{P_A}{1-P_A} 1PAPA
这个公式是有名字的哦,它叫事件发生的几率(大概就是我们通俗的说,这个事情发生的机率挺大的“几率”),几率>1>1>1,认为事件会发生,反之,认为事件不发生。对几率取对数,得到lnPA1−PAln\frac{P_A}{1-P_A}ln1PAPA就是对数几率了,假设我们用线性模型来回归对数几率的值为
f(x)=wx+b=lnPA1−PAf(x) =wx+b=ln \frac{P_A}{1-P_A} f(x)=wx+b=ln1PAPA
求解可得
F(x)=PA=ef(x)1+ef(x)=11+e−f(x)=11+e−(wx+b)F(x)=P_A=\frac{e^{f(x)}}{1+e^{f(x)}}=\frac{1}{1+e^{-f(x)}}=\frac{1}{1+e^{-(wx+b)}} F(x)=PA=1+ef(x)ef(x)=1+ef(x)1=1+e(wx+b)1

看到这个公式,我们是不是很熟悉,对的,这就是logistic(概率分布函数),也就是它把线性函数给掰弯了,上个图展示下:

图1. logistic分布的概率密度函数和分布函数

现在,需要求的是一个时间发生的概率,要学的参数还是线性函数中的w,bw,bw,b,那是不是还是按照之前的最小错误率准则构造最小均方误差的loss function呢?回答这个问题之前,先把问题定义清楚。假设有一堆事情,其表示为(xi,yi)(x_i, y_i)(xi,yi),其中i=1,2,3,...,ni=1, 2, 3, ..., ni=1,2,3,...,nxix_ixi是一组判断事件发生与否的已知因素,比如判断一个程序员是否有女朋友的时候,可以总结这个小伙跟女生交流是否脸红(小伙,都红过吧),是否常洗澡换衣…, 假设已知因素很多,有mmm个,然后yiy_iyi就表示该小伙有没有女友的事实了,yi=1y_i=1yi=1表示有,yi=0y_i=0yi=0就是没有。然后,经过某些有心人士的搜集,就有了一批数据D=(X,Y)D=(X,Y)D=(X,Y),也就是说 上述的i=1,2,...,ni=1,2, ..., ni=1,2,...,n,也就是X=(x1,x2,...,xn),Y=(y1,y2,...,yn)X=(x_1, x_2, ..., x_n), Y=(y_1, y_2, ..., y_n)X=(x1,x2,...,xn),Y=(y1,y2,...,yn)
数据有了,如果用均方误差函数,这loss function为:
L(W)=12∑i=1n(F(xi)−yi)2=12∑i=1n(11+e−(wixi+b)−yi)2\begin{aligned} L(W) &= \frac{1}{2}\sum_{i=1}^{n}(F(x_i)-y_i)^2 \\ &= \frac{1}{2}\sum_{i=1}^{n}(\frac{1}{1+e^{-(w_ix_i+b)}}-y_i)^2 \end{aligned} L(W)=21i=1n(F(xi)yi)2=21i=1n(1+e(wixi+b)1yi)2

什么都不说了,无脑求导呗

∂L(w)∂w=∑i=1n(F(xi)−yi)(1−F(xi))F(xi)(−xi)\frac{\partial L(w)}{\partial w} = \sum_{i=1}^{n}{(F(x_i)-y_i)(1-F(x_i))F(x_i)(-x_i)} wL(w)=i=1n(F(xi)yi)(1F(xi))F(xi)(xi)

假设某个事件发生 F(xi)F(x_i)F(xi) = 1,该事件发生,则 1−F(xi)=01-F(x_i)=01F(xi)=0,最后求得∂L(w)∂w=0\frac{\partial L(w)}{\partial w} = 0wL(w)=0,符合实际,离目标很近的时候,梯度为000F(xi)=0F(x_i) = 0F(xi)=0,这个时候离目标很远,同样求得∂L(w)∂w=0\frac{\partial L(w)}{\partial w} = 0wL(w)=0,无法有优化了。

换个方向,既然是概率,那假设每个事件发生的概率互相不影响(独立),每个事件都用的同一个分布函数(同分布),对于样本iii,取其对应标签成立情况下的概率为:
pi=F(xi)yi(1−F(xi))(1−yi)p_i = F(x_i)^{y_i}(1-F(x_i))^{(1-y_i)} pi=F(xi)yi(1F(xi))(1yi)

如果样本yi=1y_i=1yi=1,说明事件发生,pi=F(xi)p_i=F(x_i)pi=F(xi);如果yi=0y_i=0yi=0,取的是pi=1−F(xi)p_i=1-F(x_i)pi=1F(xi)
所有样本,不管是没发生还是发生,每个样本都正确的概率(极大似然)为:
L(w)=∏i=1npiL(w)=\prod_{i=1}^{n}{p_i} L(w)=i=1npi

最大化这个函数,以达到所有的样本都按照其特定的事实去发生(正样本)与不发生(负样本),就可以得到训练的模型了。

对数似然为:

l(w)=logL(w)=log∏i=1npi=∑i=1n⟮yilogF(xi)+(1−yi)log(1−F(xi))⟯\begin{aligned} l(w) &= logL(w) \\ &= log\prod_{i=1}^{n}{p_i} \\ &= \sum_{i=1}^{n}{\lgroup y_ilogF(x_i)+(1-y_i)log(1-F(x_i))\rgroup} \end{aligned} l(w)=logL(w)=logi=1npi=i=1nyilogF(xi)+(1yi)log(1F(xi))

梯度的推导过程如下:

∂l(w)∂wj=∑i=1n(yiF(xi)−1−yi1−F(xi))∂F(xi)∂wj=∑i=1nyi−yiF(xi)−F(xi)+yiF(xi)F(xi)(1−F(xi))F(xi)(1−F(xi))(−xj)=∑i=1n(F(xi)−yi)xj\begin{aligned} \frac{\partial l(w)}{\partial w_j} &= \sum_{i=1}^{n}{(\frac{y_i}{F(x_i)}-\frac{1-y_i}{1-F(x_i)})\frac{\partial F(x_i)}{\partial w_j}} \\ &=\sum_{i=1}^{n}{\frac{y_i-y_iF(x_i)-F(x_i)+y_iF(x_i)}{F(x_i)(1-F(x_i))}} F(x_i)(1-F(x_i))(-x_j) \\ &= \sum_{i=1}^{n}{(F(x_i)-y_i)x_j} \end{aligned} wjl(w)=i=1n(F(xi)yi1F(xi)1yi)wjF(xi)=i=1nF(xi)(1F(xi))yiyiF(xi)F(xi)+yiF(xi)F(xi)(1F(xi))(xj)=i=1n(F(xi)yi)xj

logistic梯度有了,算法就可以根据训练数据求解了。至此logistic回归,的讲解就告一段落了,需要深度回味的少年可以看看这篇博文,机器学习:Logisitic回归。

3、海王征服的妹子们

讲完海王logistic自己的故事,现在可以说说海王的妹子们了,为什么说下面几个是海王的妹子呢,卖个关子,且往下看。

3.1 Word2vec

此处主要的是想说与logistic函数相关的部分,但是为了让不同的人都知道word2vector大概干了什么事情,所以额外的介绍一点基本知识,然后快速进入到说明为什么说Word2vector是海王的妹子。

3.1.1 Word2vec简单介绍

话说,最开始想做的事情并不是embedding(word2vector),想做的事情,类似于大家小学的时候,语文课常做的题,完形填空,也就是给定一个句子中的几个词,填写你认为最有可能的词。就是这样的一件事件,用算法怎么做呢?
做法很多,各种机器学习方法都可以,但是这里说到的是经典的三层神经网络模型,如下图所示:

图中x1,x2,...,xVx_1, x_2, ..., x_Vx1,x2,...,xV是词经过one-hot形式向量,有VVV个数输入神经元,实际上就能处理VVV个词的情况。中间层有NNN维,这里N<VN<VN<V,最后一层就是softmax层,维度也是VVV,输出的是填入每个词的概率,期望是完形填空正确答案的词概率最大。训练好后,机器就会做完形填空了,是不是很厉害,最厉害的是得到的WV×NW_{V\times N}WV×N,因为之前的词向量是one-hot形式,一个词的向量与该矩阵相乘,就是把这个矩阵的某一行给拿出来,然后这个向量也就是后来我们使用的embedding后的词向量。

3.1.2 基于Hierarchical Softmax的word2vec

是不是觉得这么做就已经不错了呀,是的,不过能问题也很明显呀,现在知道VVV是词典的维度,那如果VVV超级大呢,参数暴增,计算量大,还不好优化,这里借助了霍夫曼编码构造的霍夫曼树,构造Hierarchical Softmax


从图中可以看到,输出层叶子节点数还是VVV,也就是词典的维度,但是从n(w2,1)→w2n(w_2, 1) \rightarrow w_2n(w2,1)w2的路径,不再需要计算所有的softmax,需要处理的是,在每个节点岔路口,决定是往左还是往右。如果往左是yi=1y_i=1yi=1,往右是yi=0y_i=0yi=0;基于logistic的二分类问题(这里规定1是负类,0是正类,有点绕,但是先不管)。

参照logistic回归来,可以知道,正类概率:
P(+)=11+e−θxP(+) = \frac{1}{1+e^{-\theta x}} P(+)=1+eθx1
一次到叶子节点,需要走多步,并且每次都走对,才能到达目的地,则对于n(w2)n(w_2)n(w2)来说,它走到w2w_2w2的需要走三步,概率是分别每一步概率的乘积,表示如下:
L(w2)=P(−∣n(w2,1))×P(−∣n(w2,2))×P(+∣n(w2,3))L(w_2) = P(-|n(w_2, 1))\times P(-|n(w_2, 2))\times P(+|n(w_2, 3)) L(w2)=P(n(w2,1))×P(n(w2,2))×P(+n(w2,3))
转换一下
l(w2)=∏i=13P(+)(1−yi)×P(−)yil(w_2)=\prod_{i=1}^{3}{P(+)^{(1-y_i)}\times P(-)^{y_i}} l(w2)=i=13P(+)(1yi)×P()yi

上面这个公式跟logistic的损失函数就很像了,继续往下对于所有的训练样本,都正确的概率为:
L(w)=∏i=1nl(wi)L(w)=\prod_{i=1}^{n}{l(w_i)} L(w)=i=1nl(wi)
这个就是最后要优化的目标函数,接下来定义一些符号,方便后续推导。输入的词为www,其从输入层词向量求和平均后的霍夫曼树根节点词向量为xwx_wxw, 从根节点到www所在的叶子节点,包含的节点总数为lwl_wlw, www在霍夫曼树中从根节点开始,经过的第iii个节点表示为piwp_i^wpiw,对应的霍夫曼编码为diw∈{0,1}d_i^w \in \{0, 1\}diw{0,1},其中i=2,3,...,lwi=2, 3, ..., l_wi=2,3,...,lw。而该节点对应的模型参数表示为θiw\theta_i^wθiw, 其中i=1,2,3,...,lw−1i=1, 2, 3, ..., l_w-1i=1,2,3,...,lw1,没有i=lwi=l_wi=lw是因为模型参数仅仅针对于霍夫曼树的内部节点。

定义www经过的霍夫曼树某一个节点jjj的逻辑回归概率为P(djw∣xw,θj−1w)P(d^w_j|x_w, \theta^w_{j-1})P(djwxw,θj1w),其表达式为,并且

P(djw∣xw,θj−1w)={σ(θj−1xw)djw=0,1−σ(θj−1xw)djw=1.P(d^w_j|x_w, \theta^w_{j-1})=\begin{cases} \sigma(\theta_{j-1}x_w) &d_j^w=0,\\ 1-\sigma(\theta_{j-1}x_w)& d_j^w=1. \end{cases} P(djwxw,θj1w)={σ(θj1xw)1σ(θj1xw)djw=0,djw=1.

L(w)L(w)L(w)展开后求导:
logL(w)=log⟮∏i=1nl(wi)⟯=log⟮∏i=1n∏j=2lwσ(θj−1xw)(1−djw)×(1−σ(θj−1xw))djw⟯=∑i=1n∑j=2lwl(w,j)\begin{aligned} logL(w) &= log\lgroup \prod_{i=1}^{n}{l(w_i)} \rgroup\\ &= log\lgroup\prod_{i=1}^{n}{\prod_{j=2}^{l_w}{\sigma(\theta_{j-1}x_w)^{(1-d_j^w)}\times (1-\sigma(\theta_{j-1}x_w))^{d_j^w}}}\rgroup \\ &=\sum_{i=1}^{n}{\sum_{j=2}^{l_w}{l(w,j)}} \end{aligned} logL(w)=logi=1nl(wi)=logi=1nj=2lwσ(θj1xw)(1djw)×(1σ(θj1xw))djw=i=1nj=2lwl(w,j)
其中l(w,j)=σ(θj−1xw)(1−djw)+(1−σ(θj−1xw))djwl(w,j) = \sigma(\theta_{j-1}x_w)^{(1-d_j^w)} + (1-\sigma(\theta_{j-1}x_w))^{d_j^w}l(w,j)=σ(θj1xw)(1djw)+(1σ(θj1xw))djw,对l(w,j)l(w,j)l(w,j)求导有
∂l(w,j)∂θj−1=⟮1−djwσ(θj−1xw)−djw1−σ(θj−1xw)⟯∂σ(θj−1xw)∂θj−1=1−djw−σ(θj−1xw)+djwσ(θj−1xw)−djwσ(θj−1xw)σ(θj−1xw)(1−σ(θj−1xw))σ(θj−1xw)(1−σ(θj−1xw))xw=⟮1−djw−σ(θj−1xw)⟯xw\begin{aligned} \frac{\partial l(w,j)}{\partial \theta_{j-1}}&=\lgroup\frac{1-d_j^w}{\sigma(\theta_{j-1}x_w)} -\frac{d_j^w}{1-\sigma(\theta_{j-1}x_w)}\rgroup\frac{\partial \sigma(\theta_{j-1}x_w)}{\partial\theta_{j-1}} \\ &=\frac{1-d_j^w-\sigma(\theta_{j-1}x_w)+d_j^w \sigma(\theta_{j-1}x_w)-d_j^w \sigma(\theta_{j-1}x_w)}{\sigma(\theta_{j-1}x_w)(1-\sigma(\theta_{j-1}x_w))}\sigma(\theta_{j-1}x_w)(1-\sigma(\theta_{j-1}x_w))x_w \\ &=\lgroup1-d_j^w-\sigma(\theta_{j-1}x_w)\rgroup x_w \end{aligned} θj1l(w,j)=σ(θj1xw)1djw1σ(θj1xw)djwθj1σ(θj1xw)=σ(θj1xw)(1σ(θj1xw))1djwσ(θj1xw)+djwσ(θj1xw)djwσ(θj1xw)σ(θj1xw)(1σ(θj1xw))xw=1djwσ(θj1xw)xw
对于一个训练样本则有梯度为:∑j=2lw⟮1−djw−σ(θj−1xw)⟯xw\sum_{j=2}^{l_w}{\lgroup1-d_j^w-\sigma(\theta_{j-1}x_w)\rgroup x_w}j=2lw1djwσ(θj1xw)xw

同样的方法,可以得到xwx_wxw的更新为:∂l(wi)∂xw=∑j=2lw⟮1−djw−σ(θj−1xw)⟯θj−1\frac{\partial l(w_i)}{\partial x_w}=\sum_{j=2}^{l_w}{\lgroup1-d_j^w-\sigma(\theta_{j-1}x_w)\rgroup \theta_{j-1}}xwl(wi)=j=2lw1djwσ(θj1xw)θj1

后续的跟新过程这里就不详细介绍了,有兴趣的同学可以详细研究下这个博文word2vec原理

从推导的过程中,不难看出,从基本原理和推导过程,具有很高的一致性,logistic全面浸入word2vec,他们两个搞对象实锤。

3.2 Xgboost中的logistic和深度学习中的Sigmoid

如果说logistic跟word2vec是情侣的话,logistic跟XGboost以及logistic跟深度学习也就是一个曾经暧昧过。

3.2.1 XGboost中的logistic

Xgboost大家可能已经很熟悉了,基本原理的话就是多个弱模型的级联,后一模型学习的是前一模型的残差。对于Xgboost框架,其loss function可以是均方误差函数,也可以是极大似然函数。本文关注的是其跟logistic的关联性,这里将要介绍是采用极大似然函数,目标函数是logistic的情况。

Xgboost的推导过程,这里不详细介绍,感兴趣的同学可以看下这篇博文机器学习:XGBoost,这里直接把结论拿出来使用,最终目标函数的形式为:
L~(t)(q)=−12∑j=1T(∑i∈Ijgi)2∑i∈Ijhi+λ+γT\tilde{L}^{(t)}(q)=-\frac{1}{2}\sum_{j=1}^{T}{\frac{(\sum_{i \in I_j}^{}{g_i})^2}{\sum_{i\in I_j }^{}{h_i+\lambda}}}+\gamma T L~(t)(q)=21j=1TiIjhi+λ(iIjgi)2+γT
其中,TTT为叶子节点的个数,IjI_jIj为叶子节点jjj中的样本集合,gig_igi为目标函数的一阶导,hih_ihi为目标函数的二阶导,λ\lambdaλγ\gammaγ分别用来平滑叶子节点权重弄和控制惩罚模型复杂度的。

上面函数是用来评价一个既定树结构的好坏的,如果想要找到最优的树结构,则需要穷举数据结构并求每个数的得分,为了减少计算,一般都采用贪心算法进行后续求解。这里可以跟logistic挂钩的地方就是一阶导gig_igi和二阶导hih_ihi可以是通过logistic函数来求得,并且使用logistic的时候,其使用的极大似然函数是凸函数,可以二阶泰勒来进行推导。所以,logistic估计只是曾经暗恋过XGboost而已。

3.2.2 深度学习中的Sigmoid

深度学习中,主要是激活函数,特别是分类时,最后通常会接一个softmax层。此处的单个sigmoid函数与logistic函数的形状是一致的,如果深度学习最后输出的softmax只有一个神经元,那么loss function定义为:
L(w)=∏i=1nF(xi)(yi)(1−F(xi))(1−yi)L(w)=\prod_{i=1}^{n}{F(x_i)^{(y_i)}(1-F(x_i))^{(1-y_i)}} L(w)=i=1nF(xi)(yi)(1F(xi))(1yi)
其中i=1,2,3,...,ni=1, 2, 3, ..., ni=1,2,3,...,n是样本数量,根上式求导,梯度下降,后续的梯度传递采用链式求导法则,求解只有一个输出神经元的神经网络是完全没有问题的。

问题是输出神经元的数目一般来说是有多个,对于多分类问题,在处理的时候,标签转换为yi=(y1i,y2i,...,yci)y_i=(y^i_1,y^i_2, ..., y_c^i)yi=(y1i,y2i,...,yci)向量, 其中
yij={1j=k,0j≠k.y_i^j=\begin{cases} 1 &j=k,\\ 0& j \neq k. \end{cases} yij={10j=k,j=k.
其中kkk是样本的类别。

对于多个神经元输出的概率向量 y^i=(y^1i,y^2i,...,y^Ci)\hat{y}_i=(\hat{y}^i_1,\hat{y}^i_2, ..., \hat{y}_C^i)y^i=(y^1i,y^2i,...,y^Ci), 取其发生的概率为:
pj=yjTy^j=∑i=1Cyijy^ijp_j=y_j^T\hat{y}_j=\sum_{i=1}^{C}{y^j_i\hat{y}_i^j} pj=yjTy^j=i=1Cyijy^ij
其中CCC为类别数,对于所有样本都按照其观测的情况一起发生的概率为:
P=L(w)=∏i=1npi=∏i=1nyiTy^iP =L(w)= \prod_{i=1}^{n}{p_i}=\prod_{i=1}^{n}{y_i^T\hat{y}_i} P=L(w)=i=1npi=i=1nyiTy^i
上述同样是极大似然的思想,对其去对数有:
l(w)=−logL(w)=−∑j=1n∑i=1Cyijlog(y^ij)l(w) = -logL(w) = -\sum_{j=1}^{n}{\sum_{i=1}^{C}{}y_i^jlog(\hat{y}_i^j)} l(w)=logL(w)=j=1ni=1Cyijlog(y^ij)
对其求导,求梯度,按照链式求导法则反向传递,可求解深度学习网络。

简单的给出求导结果, 设l=−∑i=1Cyilog(y^i)l=-\sum_{i=1}^{C}{}y_ilog(\hat{y}_i)l=i=1Cyilog(y^i)

∂l∂zj=∂l∂y^i∂y^i∂zj\frac{\partial l}{\partial z_j} =\frac{ \partial l}{\partial \hat{y}_i}\frac{\partial \hat{y}_i}{\partial z_j} zjl=y^ilzjy^i

∂l∂y^i=−∑i=1Cyiy^i\frac{ \partial l}{\partial \hat{y}_i}=-\sum_{i=1}^{C}{\frac{y_i}{\hat{y}_i}} y^il=i=1Cy^iyi

∂y^i∂zj={y^j(1−y^j)j=i,−y^iy^jj≠i.\frac{ \partial \hat{y}_i}{\partial z_j}=\begin{cases} \hat{y}_j(1-\hat{y}_j) &j=i,\\ -\hat{y}_i\hat{y}_j& j \neq i. \end{cases} zjy^i={y^j(1y^j)y^iy^jj=i,j=i.

∂l∂zj=−yiy^iy^i(1−y^i)+∑i≠jyiy^iy^iy^j=y^i−yi\frac{\partial l}{\partial z_j} =-\frac{y_i}{\hat{y}_i}\hat{y}_i(1-\hat{y}_i)+\sum_{i \neq j}{\frac{y_i}{\hat{y}_i}\hat{y}_i\hat{y}_j}=\hat{y}_i-y_i zjl=y^iyiy^i(1y^i)+i=jy^iyiy^iy^j=y^iyi

深度学习中间的激活函数,目前来说有很多的可选项,包括Relu、tanh等;这些暂且不谈,按照本文上述过程来看,logistic跟深度学习渊源还是颇深的,至少曾经相互喜欢过。

4、总结

本文从传统机器学习线性模型出发,讲述了线性模型掰弯后变为logistic模型。在此基础上,通俗的说明了线性模型的求解过程、详细的描述了logistic回归的求解过程。从logistic函数及极大似然的角度,总结了具有雷同思想的改进版word2vec之Hierarchical Softmax、XGBoost中使用logistic目标函数,深度学习中使用sigmoid的情况,并对其相似之处做了详细的介绍;
本文所讲的内容并没有特别新颖之处,只是对已有算法做了一个简单的归纳总结,期望对学习或者已经了解这些算法的同学,在理解上面提供一些角度和切入点,对这些算法有更好的了解。
最后个人觉得,从拟人的角度上说,线性函数是狠心的掰弯自己,有了后续的成功,但是我们小伙伴们,可以对自己狠一点,但是不提倡掰弯哦!

被掰弯的线性函数,海王一样的logstic相关推荐

  1. 果壳中的宇宙 1:把时空掰弯的男人

    ​即使把我关在果壳之中,仍然自以为无限空间之王. 周末闲来无事,又把霍金<果壳中的宇宙>读了两遍,是的,你没看错,读了两遍.好书,蹂躏两遍都不够.读书和看电影差不多,宁愿重复看好的电影,也 ...

  2. 上映 10 天,票房就突破 10 亿的《海王》真的有那么好看?

    出品:CSDN(ID:CSDNnews) 写在前面 本文将主要通过Python加上一些数据分析,来证明<海王>好看. <海王>一部电影带你重温<驯龙高手><变 ...

  3. 腾讯服务器“上天”、大疆云台会飞、淘宝被掰弯了……这是昨天各大科技公司的最新产品...

    郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 4月1日,历来是各家科技公司发布最新黑科技的日子. 今年依然有不少公司选择在这个特殊的日子放出他们最重磅的技术突破和产品创新,一个个突破技 ...

  4. kafka实战最佳经验,阿里又现海王!某程序员同时约两个女生十一出游

    "瓜王"阿里名不虚传,隔一段时间就会出来一个瓜,蒋凡事件还余音绕梁,又有人爆出阿里内网惊现海王! 网友们搬来小板凳,面前摆好瓜子花生大西瓜,一脸期待地等着吃瓜,到底什么情况? 有知 ...

  5. Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy

    1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论 零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面 ...

  6. 海王什么意思,海王是什么意思梗,网络流行词海王介绍

    最近发现一个新的网络词海王,这里的海王可不是电影说的海王,是最近网友新发明的网络新词,我们一起来看一下吧. 网络词海王渣男 海王其实就是和多人有暧昧关系,经常以广撒网多捕鱼的形式来撩妹的渣男,大面积撒 ...

  7. 怎么让热图显示基因名_教你画一个掰弯的热图(Heatmap),展示更多的基因表达量...

    难道,这不像孔雀开屏吗? 写在前面 组学数据已经泛滥,但是信息的挖掘仍任重道远.顺手的工具,可以节省使用者尽可能多的时间,或者将看起来很复杂,很难以完成的事情,变得非常简单. 图形的掰弯,这个是我很久 ...

  8. 2021双非计算机保研推免经验分享——海王养成系列(一)

    作为一名不起眼的本科双非的计算机专业本科生,有幸在卷如梵高星空的保研大军中抓住机遇,成功上岸~~客观的讲,在计算机专业保研大军里,我的个人背景不算特别出众,跟那些清北中科院的巨佬真没法比,七分努力三分 ...

  9. 爬取了 36141 条评论数据,解读 9.5 分的《海王》是否值得一看

    这是第一个python项目,之前看到了<爬取了 48048 条评论数据,解读 9.3 分的<毒液>是否值得一看?>这篇文章,一直想自己动手做一个,刚刚好前两天看了<海王& ...

最新文章

  1. excel中最常用的30个函数_最常用日期函数汇总excel函数大全收藏篇
  2. linux磁盘空间不足,但是使用df却发现磁盘空间至少有一半的空间没有使用
  3. jQuery中Map的使用
  4. SparkContext: Error initializing SparkContext解决方法
  5. 项目Beta冲刺(团队1/7)
  6. 【Linux】linux和Mac下命令vmstat
  7. 用js数组实现最原始的图片轮播实现
  8. 开源免费制造业erp erp5的优点分析
  9. 计算机趣味知识竞赛策划,大学生趣味知识竞赛活动的策划书
  10. 卡方检验检验水准矫正_医学统计学 第七章 卡方检验
  11. 遗传算法求解函数最大值的python实现
  12. e470c拆机图解全拆 thinkpad_e470c拆机图解全拆 thinkpad_THINKPAD e470硬盘拆解教程是?...
  13. 中国移动:4G流量不清零,可分享
  14. Centos 7.4 防火墙关闭命令
  15. html模态框常见问题,模态框无法弹出的问题
  16. 【文献阅读】医学图像分割中的loss函数选择-Loss odyssey in medical image segmentation loss
  17. 海康威视视频对接--rtsp测试地址--vlc测试地址
  18. 单片机原理与应用实验——串口(C语言),使用串口发送或接收数据,定时器1作为波特率发生器
  19. abp vnext没有生成动态代理js代码
  20. C语言----- 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数

热门文章

  1. 《越狱》中的项目管理——两个版本的对比
  2. 【学术】各类基金资助项目英文翻译(中英文对照)
  3. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版javascript
  4. 箭头函数(Arrow Function)
  5. kafka报错:The Cluster ID doesn‘t match stored clusterId Some in meta.properties
  6. java吃货联盟app讲解_java吃货联盟订餐系统
  7. windows系统服务器怎么锁屏,电脑怎么锁屏?锁屏快捷键是什么?
  8. 阿里云搭建 samba服务器
  9. windows下安装VMware Workstation14.0Pro(VMware系列一)
  10. android的热修复,Android热修复之