技术栈

主页 > AI >

深度学习实践方法论

1、使用卷积网络时,开始几层用的卷积核不要太大,基本采用3*3、2*2、5*5就行了, 后面跟着的卷积层一般num_output都会比之前大,基本是64、128、256、512这样的设计;

2、ReLU是个好东西,能解决梯度消失的问题;

3、Dropout可以很好的缓解过拟合问题,同时还可以增加一点性能;

4、Data Augmentation(AlexNet中提出来的)一定要做,基本上就是水平翻转、随机裁剪、平移变换、颜色、光照变换这些操作,是个可以很大程度上扩充训练数据集的方式,同时还可以缓解过拟合问题;

5、加快训练速度的一个方法是用Inception,就是GoogLeNet提出的那种在连接之前先用一个1*1的卷积去做一下,这样会使得需要训练的参数个数大幅减少,可以起到降维的作用,但性能不会降低,有时还可以提升性能;

6、ResNet的那种跳接(shortcut)设计是个好设计,也就是所谓的concatenate,把几个层的feature map直接堆到一起,能一定程度上解决模型程度很深的时候测试误差反倒没有浅模型好的问题;

7、Batch Normalization是一定要做的,一般跟在ReLU后面,用来缓解ReLU改变数据分布的缺点,同时可以大大加快训练速度,惊人的加快,一般可以达到十倍提速,而且最大的好处是可以使得初始学习率、权重衰减系数等等这些参数的设置不需要再来精调,因为用了BN,基本都会很快收敛,最最重要的是使得LRN(Local Response Nomalization,局部响应归一化层)废了,彻底废了,因为BN本身就是个归一化层,没必要再用LRN了;

8、GRU要比LSTM好用,首先是训练快,要评估的参数比LSTM少,但又不会降低性能;

9、BNN(Binarized Neural Networks)可以尝试下用到机器人等嵌入式平台上,因为BNN是把权重和激活值全部二值化了,所以计算只剩位操作,训练速度和测试速度可以非常快,降低了应用门槛,而且性能只会稍稍降低;

10、DNI(Decoupled Neural Interfaces)用到类RNN变体模型上,可以大大提高训练速度,并行进行参数更新,替代BP算法,但在类CNN变体模型上不建议使用,个人感觉DNI并不是很好,有点瞎搞的意味;

11、优化算法采用Adam,这是目前最好的优化算法,参数采用默认参数就行了,基本不需要调参;

12、Deep Compression(ICLR2016 best paper)可以用在嵌入式平台上,可将模型存储空间压缩30多倍,并且还能提升3-4倍的计算速度,而能源消耗只为原先的1/3-1/7,最重要的是不会降低性能;

13、SqueezeNet可以用在嵌入式平台上,可将模型压缩50多倍,感觉他有借鉴GoogLeNet的Inception的思想,就是用1*1卷积的那招,如果再加上Deep Compression技术,那么压缩比可以达到461倍,不过Deep Compression解压的时候会稍微有点代价,最主要的是性能没有下降;

14、VAE、GAN、DCGAN、PixelCNN、PixelRNN这些当中个人推荐使用DCGAN,感觉对抗神经网络可以对特征提取有所帮助,把生成图像改为生成一些高维特征作为设计目标,然后提取出来再进行二次网络设计来进行目标检测、分类、分割等任务;

15、softmax做最后一层输出时误差函数一般采用交叉熵误差函数,这个比MSE要说的通点,尤其是输入标记编码为one-hot的那种任务;

16、Sequence to sequence的那些模型用来做机器翻译、自然语言的理解和对话不错;

17、MemNN(Memory networks)或者DNC(differentiable neural computer)可能会是NLP领域下一个最好的模型,MemNN的M模块是一个好的设计,DNC的dynamic external memory就更进一层了,对于语义理解或者计算机设计有所帮助;

18、注意力机制(neural attention mechanism)或者叫做Attention Model,可以尝试在深度学习的相关领域以不同的方式来使用下,应该都会有所帮助,这部分论文最近一大堆,井喷;

19、DDPG(Deep Deterministic Policy Gradient)用来做控制问题,属于深度强化学习领域,未来发展方向可做机器人控制,无人驾驶决策等,还有一个模拟环境——OpenAI Gym很好用,可用来做测试;

20、fastText在文本分类上很好用,又快又准;

21、Mask R-CNN在联合图像分类、目标检测、实例分割领域目前是最好的方法;

22、SiameseFC是目前跟踪领域最好的算法,最主要是速度快,主要思想还是在于相似度比较,个人感觉可以尝试下GRU结合注意力机制,或者DCGAN来做下看看;

23、CRF(conditional random field)最近在CV和NLP方面都用的比较多,很多新方法都会结合条件随机场,可以试一下;

24、SPP(Spatial Pyramid Pooling)这是另一个在CV方面用的比较多的技巧;

25、Perceptual Losses(感知损失)最近看到好多CV方面的论文开始用了,有大幅增加的趋势。

责任编辑:admin  二维码分享:
本文标签: 可以卷积模型Deep训练性能
点击我更换图片

评论列表