本系列为慕课网《深度学习之神经网络(CNN/RNN/GAN)算法原理+实战》视频笔记,希望自己能通过分享笔记的形式更好的掌握该部分内容。
往期回顾:
神经网络(一)—— 机器学习、深度学习简介
神经网络(二)—— 神经元、Logistic回归模型
多分类的Logistic回归模型
多个神经元就可以得到多个输出!由此,我们可以得到多分类的Logistic回归模型。
- W W W从向量扩展为矩阵
- 输出
W
∗
x
W*x
W∗x则变成向量
上图为两个神经元组成的三分类模型,每个神经元有不同的权重 W W W。
Example:
X
=
[
3
,
1
,
2
]
X=[3,1,2]
X=[3,1,2],
W
=
[
[
0.4
,
0.6
,
0.5
]
,
[
0.3
,
0.2
,
0.1
]
]
W=[[0.4,0.6,0.5],[0.3,0.2,0.1]]
W=[[0.4,0.6,0.5],[0.3,0.2,0.1]],
then,
Y
=
[
y
0
,
y
1
]
=
[
W
[
0
]
∗
x
,
W
[
1
]
∗
x
]
=
[
2.8
,
1.3
]
Y=[y_0,y_1]=[W[0]*x,W[1]*x]=[2.8,1.3]
Y=[y0,y1]=[W[0]∗x,W[1]∗x]=[2.8,1.3]
多输出神经元 → \rightarrow →softmax → \rightarrow →多分类Logistic回归模型
前一节(神经元、Logistic回归模型)我们已经学过了二分类Logistic回归模型通过sigmoid函数给出分类概率。但我们还可以换一个角度,把它看成将
1
1
1和
e
−
w
T
x
e^{-w^Tx}
e−wTx做归一化。
对于
K
K
K个分类的分类问题,如下图所示,
W
W
W为一个
K
−
1
K-1
K−1行的矩阵,将
K
−
1
K-1
K−1个值和
1
1
1一起做归一化,给出
K
K
K个类别的分类概率。
具体地分类概率:
P
(
Y
=
k
∣
x
)
=
h
w
(
x
)
=
e
−
w
k
T
x
1
+
Σ
1
k
−
1
e
−
w
k
T
x
,
k
=
1
,
2
,
.
.
.
,
K
−
1
P(Y=k|x)=h_w(x)=\frac{e^{-w^T_kx}}{1+\Sigma_1^{k-1} e^{-w^T_kx}}, \ k=1,2,...,K-1
P(Y=k∣x)=hw(x)=1+Σ1k−1e−wkTxe−wkTx, k=1,2,...,K−1
P
(
Y
=
k
∣
x
)
=
1
−
h
w
(
x
)
=
1
1
+
Σ
1
k
−
1
e
−
w
k
T
x
,
k
=
K
P(Y=k|x)=1-h_w(x)=\frac{1}{1+\Sigma_1^{k-1} e^{-w^T_kx}}, \ k=K
P(Y=k∣x)=1−hw(x)=1+Σ1k−1e−wkTx1, k=K
Example:
Y
=
[
y
0
,
y
1
]
=
[
2.8
,
1.3
]
Y=[y_0,y_1]=[2.8,1.3]
Y=[y0,y1]=[2.8,1.3]
e
−
Y
=
[
e
−
2.8
,
e
−
1.3
]
=
[
0.06
,
0.27
]
e^{-Y}=[e^{-2.8},e^{-1.3}]=[0.06,0.27]
e−Y=[e−2.8,e−1.3]=[0.06,0.27]
S
u
m
=
1
+
0.06
+
0.27
=
1.33
Sum=1+0.06+0.27=1.33
Sum=1+0.06+0.27=1.33
P
(
Y
=
0
∣
x
)
=
0.06
/
1.33
=
0.045
P(Y=0|x)=0.06/1.33=0.045
P(Y=0∣x)=0.06/1.33=0.045
P
(
Y
=
1
∣
x
)
=
0.27
/
1.33
=
0.203
P(Y=1|x)=0.27/1.33=0.203
P(Y=1∣x)=0.27/1.33=0.203
P
(
Y
=
2
∣
x
)
=
1.00
/
1.33
=
0.752
P(Y=2|x)=1.00/1.33=0.752
P(Y=2∣x)=1.00/1.33=0.752
从Logistic回归模型的介绍,我们可以看出其实我们也可以把Logistic回归模型看成神经网络,多分类的Logistic回归模型已经有多个神经元了。
目标函数(损失函数)
- 衡量对数据的拟合程度。
Example:
(
x
1
,
y
1
)
=
(
[
10
,
3
,
9
,
20
,
.
.
.
,
4
]
,
1
)
(x_1,y_1)=([10,3,9,20,...,4],1)
(x1,y1)=([10,3,9,20,...,4],1)
y
1
′
=
M
o
d
e
l
(
x
1
)
=
0.8
y_1'=Model(x_1)=0.8
y1′=Model(x1)=0.8
L
o
s
s
=
∣
y
1
−
y
1
′
∣
=
0.2
Loss=|y_1-y_1'|=0.2
Loss=∣y1−y1′∣=0.2
One More Example:
(
x
1
,
y
1
)
=
(
[
10
,
3
,
9
,
20
,
.
.
.
,
4
]
,
3
)
(x_1,y_1)=([10,3,9,20,...,4],3)
(x1,y1)=([10,3,9,20,...,4],3)
y
1
′
=
M
o
d
e
l
(
x
1
)
=
[
0.1
,
0.2
,
0.25
,
0.4
,
0.05
]
y_1'=Model(x_1)=[0.1,0.2,0.25,0.4,0.05]
y1′=Model(x1)=[0.1,0.2,0.25,0.4,0.05]
L
o
s
s
=
∣
y
1
−
y
1
′
∣
=
a
b
s
(
[
0
,
0
,
0
,
1
,
0
]
−
y
1
′
)
=
[
0.1
,
0.2
,
0.25
,
0.6
,
0.05
]
=
1.2
Loss=|y_1-y_1'|=abs([0,0,0,1,0]-y_1')=[0.1,0.2,0.25,0.6,0.05]=1.2
Loss=∣y1−y1′∣=abs([0,0,0,1,0]−y1′)=[0.1,0.2,0.25,0.6,0.05]=1.2
常用目标函数
- 平方差函数
1 n Σ 1 2 ( y − M o d e l ( x ) ) 2 \frac{1}{n}\Sigma\frac{1}{2}(y-Model(x))^2 n1Σ21(y−Model(x))2 - 交叉熵函数
1 n Σ y l n ( M o d e l ( x ) ) \frac{1}{n}\Sigma yln(Model(x)) n1Σyln(Model(x))
神经网络训练
- 调整参数使模型在训练集上的损失函数最小