神经网络参数优化--基于CNN的验证

  当使用多层更深的隐藏层全连接网络时,参数量会变得非常巨大,达到数十亿量级;而采用CNN结构,则可以层间共享权重,极大减小待训练的参数量;同时可采用二维卷积,保留图像的空间结构信息;采用池化层,进一步减少参数计算。
  一般来说,提高泛化能力的方法主要有: 正则化、增加神经网络层数、改变激活函数与代价函数、使用好的权重初始化技术、人为扩展训练集、弃权技术。
  下面以MNIST为例,结合CNN、Pooling、Fc结构,通过不同的网络结构变化,给这些参数优化理论一个直观的验证结果。

CNN不同网络结构性能比较

阅读更多

为什么GoogleNet中的Inception Module使用1*1 convolutions?

  GoogleNet的创新之处,在于引入了Inception Module,其采用了并行结构,如下:
  GoogleNet Inception Module
  
  其中1*1 conv的作用:
  简单说,是特征降维,是feature pooling,filter space的transform。这种跨特征层的级联结构,可以有助于不同特征层间的空间信息交互。论文中语:”This cascaded cross channel parameteric pooling structure allows complex and learnable interactions of cross channel information”。
  这篇文章的解释:http://iamaaditya.github.io/2016/03/one-by-one-convolution/
  youtube上的1x1 Convolutions/inception相关视频,如下:
  
  

阅读更多

深度神经网络的梯度不稳定问题--梯度消失与梯度爆炸

  深度神经网络中的梯度不稳定性,前面层中的梯度或会消失,或会爆炸。

阅读更多

神经网络不同激活函数比较--读《Understanding the difficulty of training deep feedforward neural networks》

  various activation functions performance
  这篇论文比较了不同激活函数的中间各隐层输出值分布、梯度值分布、测试准确度等,从上图看出,至少在mnist和cifar10测试集下,看起来tanh和softsign都要好于sigmoid。

阅读更多

神经网络参数优化

1.学习缓慢问题

  激活函数采用sigmoid,代价函数采用二次项时,会存在学习缓慢即梯度下降较慢的问题。对此,可以使用交叉熵代价函数,或者使用ReLU、Softmax激活函数等,如下图。    
  

阅读更多

回归初心-读《Deep Big Simple Neural Nets Excel on Hand-written Digit Recognition》

  Mnist做为手写数字识别的基准数据集,one Hidden Layer Perceptron已可以取得较好性能(Error rate 2%-5%),更有诸多新型网络结构如CNN、RNN不断改善性能(Error rate 1%以下)。
  而这篇论文,则进一步回归初心,挖掘纯粹MLP的性能,通过可变学习速率,旋转、畸变数据以扩展训练集,更多隐藏层等,观察性能如下:
  MLP performance
  
  没有花拳绣腿,纯粹的MLP,同样可以得到错误率0.5%以下的性能,唯一的缺点就是计算量,方法上简单、粗暴、有效!

阅读更多

数据科学家路线图

网上搜到的,感谢原作者。
  

阅读更多

LeNet简介

  LeNet做为CNN的经典网络结构,如下。
  LeNet-5架构
  S2到C3的映射
  LeNet-5参数量

阅读更多

如何改进深度学习的性能?

摘自:How To Improve Deep Learning Performance

阅读更多

链家大数据使用到的机器学习算法

摘自: InfoQ对链家网大数据架构师蔡白银的访谈

阅读更多