卷积神经网络CNN
1.神经网络
多对一神经网络
多输入单输出的神经网络即浅层圣经网络
全链接神经网络
2.卷积网络
如图所示,单通道情况下:对应位置卷积元素(Input Volume)与卷积和(Filter W0)相乘相加再加入一个偏移量(设置为1)得到一个outout Volume的一个元素。
eg:
根据卷积的性质,当原始图像的大小为MN,经过33的矩阵卷积后转化成大小为(M-2)*(N-2)。
3.激活函数
在计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。这与神经网络中的线性感知机的行为类似。然而,只有非线性激活函数才允许这种网络仅使用少量节点来计算非平凡问题。 在人工神经网络中,这个功能也被称为传递函数。
sigmoid激活函数:
sigmoid
(
x
)
=
σ
=
1
1
+
e
−
x
\text { sigmoid }(x)=\sigma=\frac{1}{1+e^{-x}}
sigmoid (x)=σ=1+e−x1缺点:两头过于平坦,且输出值域不对称。
tanh激活函数:
tanh
x
=
sinh
x
cosh
x
=
e
x
−
e
x
e
x
+
e
x
\tanh x=\frac{\sinh x}{\cosh x}=\frac{e^{x}-e^{x}}{e^{x}+e^{x}}
tanhx=coshxsinhx=ex+exex−ex缺点:两头依旧过于平坦,但改进了
ReLU激活函数
ReLU
(
x
)
=
ln
x
\text {ReLU}(x)=\ln x
ReLU(x)=lnx优点:收敛速度比sigmoid/tanh快;计算高效简单;Dead Area中权重不更新。
4.正则化手段
正则项与防止过拟合
L2-norm:
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
(
h
δ
⃗
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
n
θ
j
2
J(\vec{\theta})=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\vec{\delta}}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}
J(θ)=21i=1∑m(hδ(x(i))−y(i))2+λj=1∑nθj2L1-norm:
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
(
h
θ
⃗
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
n
∣
θ
j
∣
J(\vec{\theta})=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\vec{\theta}}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n}\left|\theta_{j}\right|
J(θ)=21i=1∑m(hθ(x(i))−y(i))2+λj=1∑n∣θj∣
Elastic Net:
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
(
h
i
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
(
ρ
⋅
∑
j
=
1
n
∣
θ
j
∣
+
(
1
−
ρ
)
⋅
∑
j
=
1
n
θ
j
2
)
J(\vec{\theta})=\frac{1}{2} \sum_{i=1}^{m}\left(h_{i}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda\left(\rho \cdot \sum_{j=1}^{n}\left|\theta_{j}\right|+(1-\rho) \cdot \sum_{j=1}^{n} \theta_{j}^{2}\right)
J(θ)=21i=1∑m(hi(x(i))−y(i))2+λ(ρ⋅j=1∑n∣θj∣+(1−ρ)⋅j=1∑nθj2)
正则化手段:在原损失函数中增加L1/L2norm项
L
=
1
N
∑
i
L
i
+
λ
∑
j
w
j
2
L=\frac{1}{N} \sum_{i} L_{i}+\lambda \sum_{j} w_{j}^{2}
L=N1i∑Li+λj∑wj2
Dropout
随机扔掉(drop)一定比例的神经元
- 在训练数据上防止了单元之间共同起作用
- 隐层的单元不再依赖于其他单元
- 迫使每一个单元学习到有效的特征
可提高计算的高效性。
pooling
- 降低输出规模,增加可解释性
- 光滑数据(降低数据起伏程度,越光滑越适合卷积),避免丢失过多信息
- Max pooling/Min/Mean