神经网络架构大盘点--读Fjodor Van Veen的《neural-network-zoo》
各种神经网络架构层出不穷,比如DCIGN, BiLSTM, DCGAN等,Fjodor Van Veen总结了近几年来流行的神经网络各架构,易于直观理解。
原文地址为:http://www.asimovinstitute.org/neural-network-zoo/
总结如下:
各种神经网络架构层出不穷,比如DCIGN, BiLSTM, DCGAN等,Fjodor Van Veen总结了近几年来流行的神经网络各架构,易于直观理解。
原文地址为:http://www.asimovinstitute.org/neural-network-zoo/
总结如下:
成交量是市场行情变化的一个重要指标,量在价先,价格的变化必然首先通过成交量的变化体现出来。根据价格与成交量的数据变化趋势,从而选择合适的存量房交易时机,从而尽可能减小市场风险。
因建委网站每天会公布存量房交易量,那么我们就可以做个小爬虫,每天自动抓取其数据,从而可以观察其变化趋势,例如日线、周线、月线等。
设计思路如下:
1、数据库中建立三个表,分别存储每日、每周、每月的存量房成交量数据;
2、后台每天自动运行爬虫程序,抓取数据存入数据库;
3、前端从数据库读取数据,绘制图形曲线,便于可视化观察趋势。
完整代码见我的github,图形结果如下:



对于北京市场而言,可以看出:
1、日成交量在800以上,属于上涨趋势;1200以上,属于快速上涨趋势;400以下,属于下跌趋势;400-800之间,平稳趋势。
2、周成交量在4000以上,属于上涨趋势;6000以上,属于快速上涨趋势;2000以下,属于下跌趋势;2000-4000之间,平稳趋势。
3、月成交量在15000以上,属于上涨趋势;20000以上,属于快速上涨趋势;10000以下,属于下跌趋势;10000-15000之间,平稳趋势。
CNN的经典结构始于1998年的LeNet,成于2012年历史性的AlexNet,从此大盛于图像相关领域,主要包括:
1、LeNet,1998年
2、AlexNet,2012年
3、ZF-net,2013年
4、GoogleNet,2014年
5、VGG,2014年
6、ResNet,2015年
当使用多层更深的隐藏层全连接网络时,参数量会变得非常巨大,达到数十亿量级;而采用CNN结构,则可以层间共享权重,极大减小待训练的参数量;同时可采用二维卷积,保留图像的空间结构信息;采用池化层,进一步减少参数计算。
一般来说,提高泛化能力的方法主要有: 正则化、增加神经网络层数、改变激活函数与代价函数、使用好的权重初始化技术、人为扩展训练集、弃权技术。
下面以MNIST为例,结合CNN、Pooling、Fc结构,通过不同的网络结构变化,给这些参数优化理论一个直观的验证结果。

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相关视频,如下:

这篇论文比较了不同激活函数的中间各隐层输出值分布、梯度值分布、测试准确度等,从上图看出,至少在mnist和cifar10测试集下,看起来tanh和softsign都要好于sigmoid。
Mnist做为手写数字识别的基准数据集,one Hidden Layer Perceptron已可以取得较好性能(Error rate 2%-5%),更有诸多新型网络结构如CNN、RNN不断改善性能(Error rate 1%以下)。
而这篇论文,则进一步回归初心,挖掘纯粹MLP的性能,通过可变学习速率,旋转、畸变数据以扩展训练集,更多隐藏层等,观察性能如下:

没有花拳绣腿,纯粹的MLP,同样可以得到错误率0.5%以下的性能,唯一的缺点就是计算量,方法上简单、粗暴、有效!