一、 深度学习基础
1.1 基本过程
1.1.1 数据预处理
将现实世界中的实物特征化,表示成一个多维向量。例如一张图片可以特征化成一个多维数组,形状为长、宽、通道数。
1.1.2 定义网络结构
深度学习训练好的模型主要包括两部分:网络结构+每层网络的具体参数。
定义网络的常用层:
-
Dense层(全连接层)
keras.layers.core.Dense(units, activation=None, use_bias=True, input_shape=(x,)) # 重要参数units:隐藏层节点数,activation:激活函数,use_bias:是否使用偏置
-
Activation 层(施加激活函数)
常用的激活函数有:
-
relu函数
f ( x ) = m a x ( 0 , x ) f(x) = max(0,x) f(x)=max(0,x)输入小于0为0,输入大于0为输入。
优点:由上图可以看出,Relu得到的SGD的收敛速度较快
缺点:训练的时候很容易‘die’了,对于小于0的值,这个神经元的梯度永远都会是0,在实际操作中,如果learning rate很大,很可能网络中较多的神经元都’dead’了,即使是较小的learning rate,这种情况也很有可能发生。 -
leakyrelu
y = m a x ( 0 , x ) + l e a k ∗ m i n ( 0 , x ) y = max(0, x) + leak*min(0,x) y=max(0,x)+leak∗min(0,x)(leak是一个很小的常数,这样保留了一些负轴的值,使得负轴的信息不会全部丢失)
-
tanh
f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=ex+e−x
-