逻辑回归模型(Logistic regression,LR),又称对数几率模型。由于逻辑回归模型简单,可解释强,易实现,广泛应用于机器学习、深度学习、推荐系统、广告预估、智能营销、金融风控、社会学、生物学、经济学等领域[1]。
相关知识
伯努利分布
伯努利分布(英语:Bernoulli distribution),又名两点分布或者0-1分布,是一个离散型概率分布,为纪念瑞士科学家雅各布·伯努利而命名[7]。
逻辑函数
逻辑回归中的逻辑,就是指逻辑函数。至于为什么叫做逻辑函数,其提出者韦吕勒并没有给出明确的解释,后人推断这个词的来源是希腊语λογῐστῐκός(logistikos),意为“算术”或“实用数学”,以与对数曲线(logarithmic)区分[4]。
逻辑回归的函数如下所示:
f
(
x
)
=
L
1
+
e
−
k
(
x
−
x
0
)
(1)
f(x) = \frac{L}{{1 + {e^{ - k(x - {x_0})}}}} \tag{1}
f(x)=1+e−k(x−x0)L(1)
其中
x
0
{x_0}
x0表示函数中点对应的变量值;
L
L
L表示曲线最大值;
k
k
k表示曲线的陡峭程度。当
L
=
1
,
k
=
1
,
x
0
=
0
L = 1,k = 1,{x_0} = 0
L=1,k=1,x0=0时,就得到标准的sigmoid函数:
S
(
x
)
=
1
1
+
e
−
x
(2)
S(x) = {1 \over {1 + {e^{ - x}}}} \tag{2}
S(x)=1+e−x1(2)
因为sigmoid函数的输入为整个实数,而输出为[0, 1]之间的实数并且容易求导,所以在表示概率的场合广泛使用。
回归分析
逻辑回归中的回归,是指回归分析。回归分析(英语:Regression Analysis)是一种统计学上分析数据的方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学模型以便观察特定变量来预测研究者感兴趣的变量[6]。
线性回归
在机器学习领域,线性回归模型记为:
y
=
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
+
b
=
[
w
1
w
2
⋯
w
n
]
[
x
1
x
2
⋮
x
n
]
+
b
(3)
y = {w_1}{x_1} + {w_2}{x_2} + \cdots + {w_n}{x_n} + b = [{w_1}\;{w_2} \cdots \;{w_n}]\left[ \begin{array}{l} {x_1}\\ {x_2}\\ \vdots \\ {x_n} \end{array} \right] + b \tag{3}
y=w1x1+w2x2+⋯+wnxn+b=[w1w2⋯wn]⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤+b(3)
可以简写为:
y
=
∑
i
=
1
n
w
i
x
i
+
b
=
w
T
x
+
b
(4)
y = \sum\limits_{i = 1}^n {{w_i}{x_i} + b} = {{\rm{w}}^T}{\rm{x}} + b\tag{4}
y=i=1∑nwixi+b=wTx+b(4)
其中
y
y
y表示预测函数;
w
{\rm{w}}
w是模型参数;
x
{\rm{x}}
x是输入特征;
b
b
b是偏置量;
n
n
n是特征维度。
为了计算和表达的便捷,常常取
b
=
w
0
b{\rm{ = }}{w_0}
b=w0,
x
0
=
1
{x_0} = 1
x0=1,则公式(3)可以重写为:
y
=
w
0
+
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
=
[
w
0
w
1
⋯
w
n
]
[
x
0
x
1
⋮
x
n
]
(5)
y = {w_0}+{w_1}{x_1} + {w_2}{x_2} + \cdots + {w_n}{x_n} = [{w_0}\;{w_1} \cdots \;{w_n}]\left[ \begin{array}{l} {x_0}\\ {x_1}\\ \vdots \\ {x_n} \end{array} \right] \tag{5}
y=w0+w1x1+w2x2+⋯+wnxn=[w0w1⋯wn]⎣⎢⎢⎢⎡x0x1⋮xn⎦⎥⎥⎥⎤(5)
则可以进一步简写为:
y
=
∑
i
=
0
n
w
i
x
i
=
w
T
x
(6)
y = \sum\limits_{i = 0}^n {{w_i}{x_i}} = {{\rm{w}}^T}{\rm{x}} \tag{6}
y=i=0∑nwixi=wTx(6)
算法说明
LR假设
逻辑回归需要满足两个假设条件:
- 数据服从伯努利分布。
- 样本的概率是sigmoid函数。
LR说明
逻辑回归本质上是分类学习。逻辑回归中的回归是指将输入参数映射为0-1到之间的实数,数据表示如下:
y
=
1
1
+
e
−
w
T
x
(7)
y = \frac{1}{{1 + {e^{ - {{\rm{w}}^T}{\rm{x}}}}}} \tag{7}
y=1+e−wTx1(7)
通过比较发现,公式(7)就是公式(2)与公式(6)的结合。
根据使用使用场景不同,
y
y
y的取值可能会有些微的变化。如在点击率(CTR,click through rate)预测中,倾向于
y
∈
{
0
,
1
}
y \in \{ 0,1\}
y∈{0,1};在正负样本分类中,倾向于
y
∈
{
−
1
,
1
}
y \in \{ -1,1\}
y∈{−1,1}。不过这两种差异并不会影响逻辑回归训练及预测的推导流程,所以本文参考机器学习课程[8]仅讨论
y
∈
{
0
,
1
}
y \in \{ 0,1\}
y∈{0,1}的情况。
假设
y
=
1
y = 1
y=1表示正样本,
y
=
0
y = 0
y=0表示负样本,则正样本的逻辑回归概率公式为:
P
(
y
=
1
∣
x
;
w
)
=
σ
(
x
)
=
1
1
+
e
−
W
T
x
=
e
W
T
x
1
+
e
W
T
x
(8)
P(y = 1|{\rm{x}};{\rm{w}}) = \sigma (x) = \frac{1}{{1 + {e^{ - {{\rm{W}}^T}{\rm{x}}}}}}{\rm{ = }}\frac{{{e^{{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{{\rm{W}}^T}{\rm{x}}}}}} \tag{8}
P(y=1∣x;w)=σ(x)=1+e−WTx1=1+eWTxeWTx(8)
负样本的概率公式为:
P
(
y
=
0
∣
x
;
w
)
=
1
−
σ
(
x
)
=
1
−
e
W
T
x
1
+
e
W
T
x
=
1
1
+
e
W
T
x
(9)
P(y = 0|{\rm{x}};{\rm{w}}) = 1{\rm{ - }}\sigma (x) = 1{\rm{ - }}\frac{{{e^{{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{{\rm{W}}^T}{\rm{x}}}}}}{\rm{ = }}\frac{1}{{1{\rm{ + }}{e^{{{\rm{W}}^T}{\rm{x}}}}}} \tag{9}
P(y=0∣x;w)=1−σ(x)=1−1+eWTxeWTx=1+eWTx1(9)
比较正负样本的概率公式,可以统一为:
P
(
y
∣
x
;
w
)
=
σ
(
x
)
y
(
1
−
σ
(
x
)
)
1
−
y
(10)
P(y|{\rm{x}};{\rm{w}}) = \sigma {({\rm{x}})^y}{(1 - \sigma ({\rm{x}}))^{1 - y}} \tag{10}
P(y∣x;w)=σ(x)y(1−σ(x))1−y(10)
因为正负样本的概率和1,所以能够通过正样本的概率来反应逻辑回归的预测结果,对此逻辑回归有如下假设:
- 如果 P ( y = 1 ∣ x ; w ) ≥ 0.5 P(y = 1|{\rm{x}};{\rm{w}}) \ge 0.5 P(y=1∣x;w)≥0.5,则属于正样本;
- 如果 P ( y = 1 ∣ x ; w ) < 0.5 P(y = 1|{\rm{x}};{\rm{w}}) < 0.5 P(y=1∣x;w)<0.5,则属于负样本。
对于上述假设,使用交叉熵作为损失函数,其数学表达为:
L
(
w
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
σ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
σ
(
x
(
i
)
)
)
]
(11)
L({\rm{w}}) = - \frac{1}{m}\sum\limits_{i = 1}^m {[{y^{(i)}}\log \sigma ({{\rm{x}}^{(i)}}) + (1 - {y^{(i)}})\log (1 - \sigma ({{\rm{x}}^{(i)}}))]} \tag{11}
L(w)=−m1i=1∑m[y(i)logσ(x(i))+(1−y(i))log(1−σ(x(i)))](11)
训练模型的过程就是不断降低损失函数值得过程,而降低这些损失函数值的方法多种多样,使用梯度下降法进行训练得到模型参数的迭代公式为:
∂
L
(
w
)
∂
w
j
=
−
∑
i
=
1
m
(
y
(
i
)
−
δ
(
x
(
i
)
)
)
x
j
(
i
)
(12)
\frac{{\partial L({\rm{w}})}}{{\partial {w_j}}} = - \sum\limits_{i = 1}^m {({y^{(i)}} - \delta ({{\rm{x}}^{(i)}}))x_j^{(i)}} \tag{12}
∂wj∂L(w)=−i=1∑m(y(i)−δ(x(i)))xj(i)(12)
关于梯度下降的公式推导可以参考附录梯度下降迭代公式推导。
总结
优缺点
逻辑回归的优缺点是:
- 模型简单,解释性好。
- 训练快,资源消耗小,易调整。
缺点是:
- 准确率不高。
- 不适合数据不平衡的问题,因为区分度不好。
- 不适合大规模数据集,因为容易过拟合。
softmax
逻辑回归的使用场所是二分类问题,而softmax则是逻辑回归的泛化,用于处理多分类问题[12]。
假设有
K
K
K个类别需要进行分类,则softmax规定某个类别的可能性为:
δ
(
z
)
i
=
e
z
i
∑
j
=
1
K
e
z
j
(13)
\delta {({\rm{z}})_i} = \frac{{{e^{{{\rm{z}}_i}}}}}{{\sum\limits_{j = 1}^K {{e^{{{\rm{z}}_j}}}} }} \tag{13}
δ(z)i=j=1∑Kezjezi(13)
其中
i
=
1
,
…
,
K
,
z
=
(
z
1
,
…
,
z
K
)
∈
R
K
i = 1, \ldots ,K,{\rm{z}} = ({z_1}, \ldots ,{z_K}) \in {R^K}
i=1,…,K,z=(z1,…,zK)∈RK。从公式(13)也可以看到softmax的两个关键点:1 soft就是指每个类别都会计算一个概率,而不是非0即1;2 max指模型最终指定的类别是概率最大的类别。
附录
梯度下降迭代公式推导 {#addition-1}
待优化的目标函数如下:
L
(
w
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
σ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
σ
(
x
(
i
)
)
)
]
L({\rm{w}}) = - {1 \over m}\sum\limits_{i = 1}^m {[{y^{(i)}}\log \sigma ({{\rm{x}}^{(i)}}) + (1 - {y^{(i)}})\log (1 - \sigma ({{\rm{x}}^{(i)}}))]}
L(w)=−m1i=1∑m[y(i)logσ(x(i))+(1−y(i))log(1−σ(x(i)))]
为了简化推导表示,先去掉求和项及上标:
l
(
w
)
=
y
log
δ
(
x
)
+
(
1
−
y
)
log
(
1
−
δ
(
x
)
)
l({\rm{w}}) = y\log \delta ({\rm{x}}) + (1 - y)\log (1 - \delta ({\rm{x}}))
l(w)=ylogδ(x)+(1−y)log(1−δ(x))
对上式进行求导:
l
(
w
)
′
=
(
y
log
δ
(
x
)
)
′
+
(
(
1
−
y
)
log
(
1
−
δ
(
x
)
)
)
′
l({\rm{w}})' = (y\log \delta ({\rm{x}}))' + ((1 - y)\log (1 - \delta ({\rm{x}})))'
l(w)′=(ylogδ(x))′+((1−y)log(1−δ(x)))′
l ( w ) ′ = y δ ( x ) ′ δ ( x ) + ( 1 − y ) ( 1 − δ ( x ) ) ′ 1 − δ ( x ) l({\rm{w}})' = y\frac{{\delta ({\rm{x}})'}}{{\delta ({\rm{x}})}} + (1 - y)\frac{{(1 - \delta ({\rm{x}}))'}}{{1 - \delta ({\rm{x}})}} l(w)′=yδ(x)δ(x)′+(1−y)1−δ(x)(1−δ(x))′
现在的关键就是$\delta ({\rm{x}}) $的求导:
δ
(
x
)
=
1
1
+
e
−
W
T
x
\delta ({\rm{x}}) = \frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}
δ(x)=1+e−WTx1
因为:
(
u
v
)
′
=
u
′
v
−
u
v
′
v
2
(\frac{u}{v})' = \frac{{u'v - uv'}}{{{v^2}}}
(vu)′=v2u′v−uv′
所以:
δ
(
x
)
′
=
(
1
1
+
e
−
W
T
x
)
′
=
1
′
×
e
−
W
T
x
−
1
×
(
e
−
W
T
x
)
′
(
1
+
e
−
W
T
x
)
2
=
0
−
e
−
W
T
x
(
−
W
T
x
)
′
(
1
+
e
−
W
T
x
)
2
=
e
−
W
T
x
(
W
T
x
)
′
(
1
+
e
−
W
T
x
)
2
\delta ({\rm{x}})' = (\frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}})' = \frac{{1' \times {e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}} - 1 \times ({e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})'}}{{{{(1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})}^2}}} = \frac{{0 - {e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}( - {{\rm{W}}^T}{\rm{x}})'}}{{{{(1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})}^2}}} = \frac{{{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}({{\rm{W}}^T}{\rm{x}})'}}{{{{(1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})}^2}}}
δ(x)′=(1+e−WTx1)′=(1+e−WTx)21′×e−WTx−1×(e−WTx)′=(1+e−WTx)20−e−WTx(−WTx)′=(1+e−WTx)2e−WTx(WTx)′
δ ( x ) ′ = 1 1 + e − W T x × e − W T x 1 + e − W T x × ( W T x ) ′ \delta ({\rm{x}})'{\rm{ = }}\frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} \times \frac{{{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} \times ({{\rm{W}}^T}{\rm{x}})' δ(x)′=1+e−WTx1×1+e−WTxe−WTx×(WTx)′
因为:
e
−
W
T
x
1
+
e
−
W
T
x
=
1
−
1
1
+
e
−
W
T
x
\frac{{{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} = 1 - \frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}
1+e−WTxe−WTx=1−1+e−WTx1
所以:
δ
(
x
)
′
=
1
1
+
e
−
W
T
x
×
(
1
−
1
1
+
e
−
W
T
x
)
×
(
W
T
x
)
′
\delta ({\rm{x}})'{\rm{ = }}\frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} \times (1 - \frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}) \times ({{\rm{W}}^T}{\rm{x}})'
δ(x)′=1+e−WTx1×(1−1+e−WTx1)×(WTx)′
δ ( x ) ′ = δ ( x ) ( 1 − δ ( x ) ) ( W T x ) ′ \delta ({\rm{x}})' = \delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' δ(x)′=δ(x)(1−δ(x))(WTx)′
同理:
(
1
−
δ
(
x
)
)
′
=
−
δ
(
x
)
(
1
−
δ
(
x
)
)
(
W
T
x
)
′
(1 - \delta ({\rm{x}}))' = - \delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'
(1−δ(x))′=−δ(x)(1−δ(x))(WTx)′
返回
l
(
w
)
′
l({\rm{w}})'
l(w)′的求解过程:
l
(
w
)
′
=
y
δ
(
x
)
′
δ
(
x
)
+
(
1
−
y
)
(
1
−
δ
(
x
)
)
′
1
−
δ
(
x
)
=
y
δ
(
x
)
(
1
−
δ
(
x
)
)
(
W
T
x
)
′
δ
(
x
)
+
(
1
−
y
)
−
δ
(
x
)
(
1
−
δ
(
x
)
)
(
W
T
x
)
′
1
−
δ
(
x
)
l({\rm{w}})' = y\frac{{\delta ({\rm{x}})'}}{{\delta ({\rm{x}})}} + (1 - y)\frac{{(1 - \delta ({\rm{x}}))'}}{{1 - \delta ({\rm{x}})}}{\rm{ = }}y\frac{{\delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'}}{{\delta ({\rm{x}})}}{\rm{ + }}(1 - y)\frac{{ - \delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'}}{{1 - \delta ({\rm{x}})}}
l(w)′=yδ(x)δ(x)′+(1−y)1−δ(x)(1−δ(x))′=yδ(x)δ(x)(1−δ(x))(WTx)′+(1−y)1−δ(x)−δ(x)(1−δ(x))(WTx)′
l ( w ) ′ = y ( 1 − δ ( x ) ) ( W T x ) ′ δ ( x ) δ ( x ) − ( 1 − y ) δ ( x ) ( W T x ) ′ ( 1 − δ ( x ) ) 1 − δ ( x ) l({\rm{w}})' = y(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'\frac{{\delta ({\rm{x}})}}{{\delta ({\rm{x}})}} - (1 - y)\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})'\frac{{(1 - \delta ({\rm{x}}))}}{{1 - \delta ({\rm{x}})}} l(w)′=y(1−δ(x))(WTx)′δ(x)δ(x)−(1−y)δ(x)(WTx)′1−δ(x)(1−δ(x))
l ( w ) ′ = y ( 1 − δ ( x ) ) ( W T x ) ′ − ( 1 − y ) δ ( x ) ( W T x ) ′ l({\rm{w}})' = y(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' - (1 - y)\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' l(w)′=y(1−δ(x))(WTx)′−(1−y)δ(x)(WTx)′
l ( w ) ′ = y ( W T x ) ′ − y δ ( x ) ( W T x ) ′ − δ ( x ) ( W T x ) ′ + y δ ( x ) ( W T x ) ′ l({\rm{w}})' = y({{\rm{W}}^T}{\rm{x}})' - y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' - \delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' + y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' l(w)′=y(WTx)′−yδ(x)(WTx)′−δ(x)(WTx)′+yδ(x)(WTx)′
l ( w ) ′ = y ( W T x ) ′ − δ ( x ) ( W T x ) ′ + y δ ( x ) ( W T x ) ′ − y δ ( x ) ( W T x ) ′ l({\rm{w}})' = y({{\rm{W}}^T}{\rm{x}})' - \delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' + y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' - y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' l(w)′=y(WTx)′−δ(x)(WTx)′+yδ(x)(WTx)′−yδ(x)(WTx)′
l ( w ) ′ = ( y − δ ( x ) ) ( W T x ) ′ l({\rm{w}})' = (y - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' l(w)′=(y−δ(x))(WTx)′
将
l
(
w
)
′
l({\rm{w}})'
l(w)′带入
L
(
w
)
′
L({\rm{w}})'
L(w)′:
L
(
w
)
′
=
−
∑
i
=
1
m
(
y
−
δ
(
x
)
)
(
W
T
x
)
′
L{({\rm{w}})^\prime } = - \sum\limits_{i = 1}^m {(y - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'}
L(w)′=−i=1∑m(y−δ(x))(WTx)′
因为:
z
=
W
T
x
=
w
0
+
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
z = {{\rm{W}}^T}{\rm{x}} = {w_0} + {w_1}{x_1} + {w_2}{x_2} + \cdots + {w_n}{x_n}
z=WTx=w0+w1x1+w2x2+⋯+wnxn
∂ z ∂ w j = x j \frac{{\partial z}}{{\partial {w_j}}} = {x_j} ∂wj∂z=xj
所以:
∂
L
(
w
)
∂
w
j
=
−
∑
i
=
1
m
(
y
−
δ
(
x
)
)
∂
z
∂
w
j
=
−
∑
i
=
1
m
(
y
−
δ
(
x
)
)
x
j
{{\partial L({\rm{w}})} \over {\partial {w_j}}} = - \sum\limits_{i = 1}^m {(y - \delta ({\rm{x}})){{\partial z} \over {\partial {w_j}}}} = - \sum\limits_{i = 1}^m {(y - \delta ({\rm{x}})){x_j}}
∂wj∂L(w)=−i=1∑m(y−δ(x))∂wj∂z=−i=1∑m(y−δ(x))xj
最后补全标识某个样本的上标:
∂
L
(
w
)
∂
w
j
=
−
∑
i
=
1
m
(
y
(
i
)
−
δ
(
x
(
i
)
)
)
x
j
(
i
)
{{\partial L({\rm{w}})} \over {\partial {w_j}}} = - \sum\limits_{i = 1}^m {({y^{(i)}} - \delta ({{\rm{x}}^{(i)}}))x_j^{(i)}}
∂wj∂L(w)=−i=1∑m(y(i)−δ(x(i)))xj(i)
Reference
[1] 知乎 LR逻辑回归模型的原理、公式推导、Python实现和应用
[2] 知乎 如何理解似然函数?
[3] wiki 似然函数
[4] wiki 逻辑函数
[5] wiki Pierre François Verhulst
[6] wiki 回归分析
[7] wiki 伯努利分布
[8] coursera 机器学习
[9] 未知网站 Gradient Descent: An Introduction to 1 of Machine Learning’s Most Popular Algorithms
[10] 未知网站 Logistic回归-代价函数求导过程 | 内含数学相关基础
[11] 知乎 交叉熵的推导
[12] wiki Softmax function