赞
踩
例如在神经网络模型 x → f 1 ( x ) h 1 ( x ) → f 2 ( x ) h 2 ( x ) → f 3 ( x ) y x\xrightarrow{f_1(x)} h_1(x)\xrightarrow{f_2(x)}h_2(x)\xrightarrow{f_3(x)} y xf1(x) h1(x)f2(x) h2(x)f3(x) y中, x x x被称为输入, y y y被称为输出。 f 1 f_1 f1被称为第一层, f 2 f_2 f2被称为第二层, f 3 f_3 f3作为最后一层被称为输出层。这条链的全长被称为模型的深度。这些函数 f 1 f 2 f 3 f_1f_2f_3 f1f2f3被称为隐藏层。
在逻辑运算中,异或问题是一个很简单的运算,表示为 y = x 1 ⊕ x 2 y = x_1\oplus x_2 y=x1⊕x2
x 0 x_0 x0 | x 1 x_1 x1 | y y y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
映射在二维空间中的图像为
显然是没有办法使用线性函数进行分类的,即一条直线无法将其准确分类,同时无论做多少次线性变换也都无法将其分类这就要求我们使用非线性函数来描述这四个点的特征。
本节介绍一种较为简单的解决方式,整个网络模型为
f
(
x
;
W
,
c
,
ω
,
b
)
=
ω
⊤
max
{
0
,
W
⊤
x
+
c
}
+
b
f(x;W,c,\omega,b) = \omega^\top\max\{0, W^\top x + c\} + b
f(x;W,c,ω,b)=ω⊤max{0,W⊤x+c}+b
其中,
f
1
(
x
)
=
W
⊤
x
+
c
f_1(x) = W^\top x + c
f1(x)=W⊤x+c是第一层,
f
2
(
x
)
=
max
{
0
,
f
1
(
x
)
}
f_2(x)=\max\{0, f_1(x)\}
f2(x)=max{0,f1(x)}是第二层,
f
3
(
x
)
=
ω
⊤
f
2
(
x
)
+
b
f_3(x) = \omega^\top f_2(x)+b
f3(x)=ω⊤f2(x)+b是第三层。
令
W
=
[
1
1
1
1
]
W =
c
=
[
0
−
1
]
c =
ω
=
[
1
−
2
]
\omega =
则
y
=
f
3
(
f
2
(
f
1
(
x
)
)
)
y = f_3(f_2(f_1(x)))
y=f3(f2(f1(x)))的计算过程为
x = ( x 0 , x 1 ) x = (x_0,x_1) x=(x0,x1) | f 1 ( x ) f_1(x) f1(x) | f 2 ( f 1 ( x ) ) f_2(f_1(x)) f2(f1(x)) | f 3 ( f 2 ( f 1 ( x ) ) ) f_3(f_2(f_1(x))) f3(f2(f1(x))) |
---|---|---|---|
(0,0) | (0,-1) | (0,0) | 0 |
(0,1) | (1,0) | (1,0) | 1 |
(1,0) | (1,0) | (1,0) | 1 |
(1,1) | (2,1) | (2,1) | 0 |
本节我们直接制定了 W , ω , c , b W,\omega,c,b W,ω,c,b,但在实际问题中,由于样本数量特别大,没法使用这种方式猜解,因此需要使用梯度下降法等方式求得近似解,可惜的是梯度下降法没办法找到这么干净这么容易理解还是整数型的解。
大多数现代神经网络都是使用最大似然来训练,这种方式的代价函数表示为
J
(
θ
)
=
−
E
x
,
y
∼
p
d
a
t
a
log
p
m
o
d
e
l
(
y
∣
x
)
J(\theta) = -\mathbb{E}_{x,y\sim p_{data}}\log p_{model}(y|x)
J(θ)=−Ex,y∼pdatalogpmodel(y∣x)
代价函数的具体形式随着模型而改变。
有时候我们需要学习在给定x时y的某个条件统计量。
这时可以使用变分法,解优化问题:
f
∗
=
arg min
f
E
x
,
y
∼
p
d
a
t
a
(
y
∣
x
)
∣
∣
y
−
f
(
x
)
∣
∣
2
f^* = \argmin_f\mathbb E_{x,y\sim p_{data}(y|x)}||y-f(x)||^2
f∗=fargminEx,y∼pdata(y∣x)∣∣y−f(x)∣∣2
或
f
∗
=
arg min
f
E
x
,
y
∼
p
d
a
t
a
(
y
∣
x
)
∣
∣
y
−
f
(
x
)
∣
∣
1
f^* = \argmin_f\mathbb E_{x,y\sim p_{data}(y|x)}||y-f(x)||_1
f∗=fargminEx,y∼pdata(y∣x)∣∣y−f(x)∣∣1
等。
y
=
W
⊤
h
+
b
y = W^\top h + b
y=W⊤h+b
线性单元不会饱和,因此更易于采用基于梯度的优化方法,甚至可以采用其他多种算法。
y = σ ( ω ⊤ h + b ) y = \sigma(\omega^\top h + b) y=σ(ω⊤h+b)
y
=
e
z
i
∑
j
e
z
j
y = \frac{e^{z_i}}{\sum_j e^{z_j}}
y=∑jezjezi
归一化:让向量的和为1
当 z i < 0 z_i<0 zi<0时,使用一个非零的斜率 a i a_i ai
maxout单元(Goodfellow e t a l . et \space al. et al.,2013a)
在整流线性单元出现以前,大多数网络使用sigmoid函数和tanh函数来激活。
当必须使用到sigmoid函数做激活时,使用tanh的效果可能更好,且训练起来也更加容易。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。