神经网络的关键问题
网络结构
具体问题具体分析
例如:数字图像处理中得Convolutional NNet(卷积神经网络)是把相邻的像素相关联,距离远的则无关联。
高模型复杂度
Regularization(正则化)
- Dropout
- Denoising(目的使NN面对含有一点noise的输入也能输出正确结果)
难以得到最优解
- 谨慎的初始化可以避免陷入局部最优解。例如:Pre-Training
计算复杂度大
GPU计算
最关键的点:Regularization和Initialization。
Autoencoder
把权重(weights)看做特征转换。那么一个好的权重(good-weights)就意味着能提取输入向量的关键特征。那么样的话,我们甚至可以通过关键特征重新拼凑出最初的输入向量。而我们正是需要这样的 good-weights !
考虑只有一层隐层的神经网络,且输入和输出层都是 $d$ 维,隐层是 $ \tilde{d} $。如下图
$w_{ij}^{(1)}$: encoding weights. $w_{ij}^{(1)}$:decoding weights. 目标函数 $ g(\mathbf{x}) \approx \mathbf{x}$
我们称这样的神经网络是 Information-Preserving Neural Network
性质:
- 一般来说有 $ tilde{d} < d
- 限制 $ w_{ij}^{(1)} = w_{ji}^{(2)}$ ,作为一种 Regularization(正则化)方式。
- …
Pre-Trainning
前面说过,权重初始化影响着最终解陷入局部最优解,可以通过 Pre-Trainning 减少这种影响。
思想
结合 Autoencoder 的思想:好的权重意味着提取关键特征,并可以进行复原。
方法
对于一个多层的神经网络,我们由低到高依次对每层进行 autoencoder 的训练。如图:
Regularization in Deep Learning
随着神经元的增多,神经网络的模型复杂度也随之增加。因此在模型中加入 Regularization(正则化)是必不可少的。
- 限制模型复杂度
- 削弱权重值
- 提前停止
- Denosing
- …
Denosing
问题:一般的学习问题中,nosing对训练的正确性影响很大。
思想:学习得到一个新的分类器,用于“辨别”是否包含杂讯的数据(并转化)。
方法:对正常的数据 $\mathbf{x}$,人工加上noise产生 $\mathbf{\tilde{x}}$ 。学习数据 $ (\mathbf{\tilde{X}}, Y=\mathbf{X}) $ 。这样就可以得到一个新的分类器,这个分类器可以用于将包含杂讯的$\mathbf{\tilde{x}}$ 转化为“正确的”$\mathbf{x}$。