数据娃嚼AI


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

推荐系统系列-行为序列建模

发表于 2019-06-25 | 分类于 推荐系统 , 行为序列 |

行为序列建模

目前主要的模型:

  • DIN的做法
    • 直觉:用户的兴趣的多样性;局部激活,影响当前点击的是部分历史序列
    • Attention:在候选的adv和历时的商品序列上, attention计算的时候将[querys(候选广告), keys(历史行为序列), querys-keys, queryskeys]的*四元组上进行DNN操作。序列mask值得借鉴
    • Mini-batch Aware Regularization
    • 如何处理多值字段?
    • 行为序列建模直接进行的mean pooling,留给了DIEN
  • DIEN的做法
    • 直觉:捕获用户的潜在兴趣 latent interest 和用户兴趣的改变与多样
    • 借鉴点:设计兴趣的抽取层(使用下一个item来监督上一个学习的aux,使用的是正负样本)+设计兴趣的进化层(捕获兴趣的改变或者多样性)两层用来捕捉用户的兴趣
    • DIEN使用amazon的数据如何转化为CTR任务的?
    • 可视化进化过程?
    • DIEN的辅助loss和net的过程?
    • AUGRU的实现
  • DISN的做法
    • 直觉:用户的不同session的关注点不一样,兴趣点转移
    • 做法:
      • session切分层
      • 兴趣抽取层:transformer?位置的处理?Bias Encoding多了一个部分
      • 兴趣组合层: blstm?
      • 兴趣激活层:attention?bilinear的实现式子
  • BST

    • 直觉:用户的行为序列的依赖关系可以通过transformer进行捕捉
    • 借鉴点:位置的编码,模型参数为什么这么小?
  • SR-GNN AAAI 2019 Paper: [Session-based Recommendation with Graph Neural Networks](

FiBiNET

发表于 2019-06-19 | 分类于 推荐系统 , CTR预估 |

Background

  • 推荐和广告的核心技术是CTR预估技术;
  • CTR预估的核心在于如何构建有效的特征组合,FFM是构建特征组合的当前高效方法, FFM的参数量️巨大,值得去改进;
  • Attention机制在NLP、CV、推荐等许多领域取得成功,具有选择出有效信息,抑制无效信息,而特征组合也面临有效的和无效的特征组合;

  • SENET在图像识别领域取得ILSVRC 2017的冠军,同样具备类似的Attention作用;

Contribution

  • 如何在CTR领域,利用更少的参数使用,达到FFM的效果?
  • 如何使用SENET技术,进一步提高效果 ?
  • DeepCTR结构下,如何获得进一步的提升 ?

FiBiNET-Model

FiBiNET Architecture

image-20190523141754590

Core components: SENET

image-20190523141846195

Core components: Bilinear-Interaction Layer

image-20190523141956530

image-20190523142025589

Experiments

1.Over Performance

  • shallow model

    image-20190523142222815

  • Deep model

    image-20190523142321753

2.Bilinear-Interaction(Different Field Types)

image-20190523142405249

3.Bilinear-Interaction(Different Combinations)

image-20190523142520725

4.Ablation Study

image-20190523142646196

FAT-DeepFFM

发表于 2019-06-18 | 分类于 推荐系统 |

Background

  • 推荐和广告的核心技术是CTR预估技术;
  • CTR预估的核心在于如何构建有效的特征组合,FFM是构建特征组合的当前高效方法;
  • Attention机制在NLP、CV、推荐等许多领域取得成功,具有选择出有效信息,抑制无效信息,而特征组合也面临有效的和无效的特征组合;
  • SENET在图像识别领域取得ILSVRC 2017的冠军,同样具备类似的Attention作用;

Problem

如何在CTR领域,利用FFM+Attention的共同联合构建较强的DeepCTR预估模型

Model

模型的整体结构

image-20190523115537069

核心部件CENet

image-20190523115931135

Experiments

image-20190523115701211

论文解读-多轮会话ESIM

发表于 2019-05-20 | 分类于 NLP |

论文:Sequential Attention-based Network for Noetic End-to-End Response Selection,AAAI19

来源:阿里巴巴达摩院

Code:https://github.com/alibaba/esim-response-selection

ESIM,全称Enhanced Sequential Inference Model,一种增强序列推断模型

整体模型结构:

image-20190722073809600

输入编码:

1.context信息拼接一个长句子,句子之间使用和进行分割。

2.使用预训练的embedding进行初始化,而这里需要注意的是输入部分使用了多个embedding进行拼接比如glove/fasttext.

3.使用LSTM对输入和context分别进行编码

局部匹配-Local Matching

思想来源:下一个句子的某个单词或者词组的语义和context有匹配的地方,从而建立起它们的关系

做法:直接针对输入和context计算它们的匹配矩阵(内积),然后分别对输入和context进行加权处理得到对偶矩阵,进一步,局部匹配的输出是当前向量和对偶向量的四元组进行拼接而成的;

具体计算逻辑:

a.计算两两的内积即匹配矩阵

image-20190722081045851

b.利用匹配矩阵计算它的attention后的向量,即对偶向量

image-20190722081226714

c.局部匹配输出四元组形式

image-20190722081407703

d.使用一层全联接层进行压缩

匹配组合 Matching Composition

做法:使用BiLSTM读取局部匹配向量,学习重要的局部匹配组合,相对整体的关系

输出层

针对context和input的BiLSTM的2输出进行max/mean操作,然后拼接它们,再送入一个MLP进行得分预测

Note

值得注意的是context比较长的处理,比如ubuntu数据,可以先使用sentence encode的方式初选择200个句子,然后再使用ESIM模型进行匹配。具体而言,Sentence-encoding可以通过Siamese的网络结构学习到,主要结构是上图1的a部分。

随笔记-深度强化学习:理论与应用学术研讨会

发表于 2018-08-05 | 分类于 深度强化学习 |

会议时间:2018.08.04

Robust and Efficient Reinforcement Learning

报告人:秦涛

基础回顾

  • MDP 五元组(s_t,a_t,p_t,r,discout_factor)
    S/A不可数
    举例说明:立竿子/atairi/的五元组?state/action/reawrd

  • model P(s_t|s,a), r_t(s,a)
    不同于SL部分

  • policy

    • 确定 a=pi(s). bad in POMDP/对抗场景
    • 随机 pi(a|s)=P[a|s]. if on-policy, get exploration.
  • Value

    • V(s),Bellman 等式
    • Qpi(s,a)=E(r(t+1)+gama*r_t+2+…+|s,a)
  • learning
    state/reward在开放环境未知,sampling

  • planning

  • 系统已知,线性方程组,求不动点, 收敛条件小于eps

  • 最优控制,Bellman最优方程,作用到s,a的Q,推导出pi.

  • RL 分类

    • MDP-(bellman or bellman opt,关心模型)
      • value
      • policy based
      • AC/DDPG/PPO
    • Block-box optimization(不关心模型)

      • 进化算法
    • Q-learning

Alt text

  • Policy Gradient

  • 融合AC,actor is policy, critic is value

算法稳定性

问题
  • 不同种子
  • 不同任务的表现 TRPO/DDPG,not like resnet
思想驱动
  • 比如集成的思想,bagging?
  • 怎么挑选算法? random or UCB(看历史的算法)
  • Policy update:gradient更新和累加, norm

样本有效性

  • 什么是有效?需要大量?百万和千万
  • toward evolution stratagy

    • sample
    • evaluation
    • perform
      鲁棒、效率低,依赖sample?
  • importance sampling, reuse historical data,数值稳定性。

    • Value function
    • Advantage function:新旧的差异
    • 一些问题及解决
    • 求期望:鸡生蛋,蛋生鸡。
    • Approximation,求期望分解,旧的期望分解
    • 新的使用新的参数,相对差一个bound的确定, lower bound
    • trust region evolution, 太近做近似,太远不能这样做。

强化学习理论概述

报告人:郭宪

  • RL,来自于行为心理学,解决一种智能决策问题,来自于深度思考
  • DL,解决感知的问题,比如图像类别,深度表示的问题

神经导航、RNN与强化学习

报告人:许铁

  • RL vs SL
    老虎来了,SL就是老虎,RL决定跑还是战斗
  • 强化学习分类
    • DP:value/q function
    • Policy:
  • 星际争霸- 局部信息解决不了?alpha-go
    • PG
    • 引入记忆的方法?局部的都记到
    • RNN引入记忆,多了cell,就是lstm
  • Meta RL:学习如何学习

基于生成对抗网络和隐层属性交换的人脸属性迁移

报告人:洪佳鹏

Paper:DNA-GAN: Learning Disentangled Representations from Multi-Attribute Images

  • 图像(人脸属性)-图像(人脸的ID)
  • 对抗的设计在于判别器的设计
    • 判断是否落在某个域,比如CycleGan,不必要样本的标签,但要域标签。比如知道一个人的带眼镜,不必要需要不带眼镜的情况。但是需要其它域的带眼镜
    • UNIT
    • DTN
    • StarGAN,CycleGan的拓展,针对多个域,ACGAN图像域的信息预测出来
    • Pix2Pix,需要
    • 判别器在隐层特征面对抗,FadeNet
  • DNA-GAN , ICLR 2018
    • 多属性
    • 多模态
    • 高分辨率
  • ELEGANT

生成式对抗网络与人脸属性编辑

报告人:张刚

  • 生成式对抗网络与人脸属性编辑
  • GAN做数据增强/增广
  • GAN基础的平衡点
  • AcGAN:用一个label去控制图片
  • IcGAN进行编辑
  • CycleGAN/ResGAN/StarGAN

空间注意力机制- 分割/分类中

深度学习的自动驾驶的礼让系统

技术回顾

  • A3C
  • DDPG: AC的机制,学习的policy好,采用的reply buffer的形式
  • TRPO:采用importance sample
  • PPO:分别n各actor,同时进行work,试图每一步小。
  • HER:事后诸葛亮,
  • DPG 对连续状态与连续动作空间进行探索

无人驾驶

感知–决策–控制

  • google waymo、阿波龙、
  • 福特、博世、大众、宝马

mobile-eye RSS模型

一些方法

  • wayve团队,learn to drive a day, paper, 2018.07,单目
  • 本田研究院,TTC, time to collision
  • DDPG+TRPO+A3C
  • 韩国汉阳大学

强化学习在机器翻译中的实践与探索

报告人:吴郦军

  • NMT的问题

    • train vs inference
    • word level train vs sentence-level evalution
  • 解决方法:

    blue as reward, for sampling

  • Reward function learning

  • D is reward, smoth,dynamic.

  • GAN is RL

强化学习在展示广告实时竞价中的应用

报告人:靳骏奇

核心关键词:CPC;广告主的bid;防止它们出现囚徒困境问题;优化目标,纳什均衡

CEM基于PG方法的一种,选择众多参数的最好几组,off-policy, 并行,Derivate Free,样本利用率低.

卷积家族梳理

发表于 2018-06-21 |

整理时间:2018.06.21

常规卷积

卷积核的维度由四个参数决定:输入特征图的通道数、滤波器的高度、滤波器的宽度和输出特征图的通道数。

卷积的计算可以参见 cs231n

分组卷积(Group Conv)

实质就是AlexNet针对把feature maps分给多个GPU分别进行处理,最后把多个GPU的结果进行融合。分组卷积是分在不同GPU上的话,每个GPU的计算量就降低到 1/groups.

备注:

特征的通道被平均分到不同组里面,最后再通过两个全连接层来融合特征,这样一来,就只能在最后时刻才融合不同组之间的特征,对模型的泛化性是相当不利的.

GroupConv的改进:

可学习的组卷积(Learned Group Convolutions)

来源于Condensenet

问题来源:顺序分组和随机分组几种方法,发现顺序分组带来较大的精度损失。作者推测可能是因为密集连接的每一层接收的是前面所有输出特征的串联,串联的特征图存在内在的顺序,按照所谓的排序顺序进行分组破坏了这种内在顺序。若采用随机分组,效果好一点但是还是难以避免精度损失的问题。

CondenseNET具体做法:主要分为浓缩阶段、优化阶段、测试阶段。

  • 浓缩阶段分为两步(或多步),第一步为常规的卷积训练。在训练过程中加入了稀疏正则化,即loss函数中采用group Lasso进行正则,第二步为剪枝,剪枝基于通道进行,确定了分组数后,每组输出通道内对应的输入通道相同,稀疏度也相同。每组内由原来的全通道连接模式剪去相同数量的连接数,剪去的数量是按照一定比例的。
  • 优化阶段,在此基础上进一步进行剪枝,最终达到预设的比例。
ShuffleNet

问题来源:特征的通道被平均分到不同组里面,最后再通过两个全连接层来融合特征,这样一来,就只能在最后时刻才融合不同组之间的特征,对模型的泛化性是相当不利的。

解决方法:方法为了解决这个问题,ShuffleNet在每一次层叠这种Group conv层前,都进行一次channel shuffle,shuffle过的通道被分配到不同组当中。进行完一次group conv之后,再一次channel shuffle,然后分到下一层组卷积当中,以此循环。

深度可分离卷积(Depthwise Separable Convolution)

问题来源:针对卷积核在卷积时,对应图像区域中的所有通道均被同时考虑,问题在于,为什么一定要同时考虑图像区域和通道?我们为什么不能把通道和空间区域分开考虑?

核心:Deepwise本质就是先针对每一个channel做conv,有多少个channel就使用多少个filter,得到新的feature maps后,再对新的channel 的feature maps进行标准的1*1跨channel的conv操作。

举例:input_channel=3,output_channel=256,如果直接3*3的conv,那么参数量为3*3*3*256=6912
使用DW,分两步参数量为 3*3*3*3 + 3*1*1*256?还是3*3*3 + 3*1*1*256,应该是后者

一些问题:

  • Depthwise Separable Convolution == depthwise convolutions + pointwise convolutions ???
  • depthwise separable convolution在框架中称为separable convolution,主要不要和 spatially separable convolution混淆。
  • Depthwise +Pointwise vs Separable convolution
  • depthwise convolutions就是指的对输入channel进行的单次conv
  • pointwise convolutions指的就是1*1 conv
  • Xception和inception的两个区别?一个顺序的问题,Inception先是1*1,然后再conv,Xception相反,另外一个就是Xception在deepwise的时候使用的不是relu而是linear
  • depth multiplier of 1 (no depth expansion)

空洞卷积(Dilated Conv)

核心:固定的卷积核看到更大的感受野.

问题来源:解决语义分割中像素的问题pixel-wise的像素问题,pooling容易不可逆的丢失信息,即内部数据结构丢失;空间层级化信息丢失。

阐释:Dilation卷积,通常译作空洞卷积或者卷积核膨胀操作,它是解决pixel-wise输出模型的一种常用的卷积方式。一种普遍的认识是,pooling下采样操作导致的信息丢失是不可逆的,通常的分类识别模型,只需要预测每一类的概率,所以我们不需要考虑pooling会导致损失图像细节信息的问题,但是做像素级的预测时(譬如语义分割),就要考虑到这个问题了。FCN

相关应用:

  • IDCNN用于NER

  • ByteNet: using dilation cnn扩大receptive field

    • Neural Machine Translation in Linear Time
      核心点:Masked One-dimensional Convolutions +Residual Blocks+ Dynamic Unfolding+Dilation

交错的分组卷积(Interleaved Group Convolution,IGC)

来源:interleaved Group Convolutions for Deep Neural Networks

问题来源:神经网络基本卷积单元中的冗余问题+组卷积不存在关联的问题

主要方法:由于每组卷积之间不存在交互,不同组的输出通道与输入通道并不相关。为了让输入通道与每一个输入通道实现关联,交错组卷积过程巧妙地引入了第二次组卷积,即第二次组卷积过程中,每组的输入通道均来自于第一次组卷积过程不同的组,达到交错互补的目的。

备注:消除卷积核冗余的角度看,一个组卷积等价于具有稀疏核的普通卷积,而交错组卷积,即两次组卷积则等价于两个稀疏核相乘的普通卷积。这两个稀疏矩阵相乘可以得到两两相关的稠密矩阵,是一个线性的过程。
在网络模型大小及计算复杂度相同的条件下,相较于普通卷积,使用 IGC 模块的网络更宽,性能更优。

可变形卷积(Deformable convolution)

核心:卷积核的形状可以非矩形,添加了offset

Super-separable convolutions

来源:slicenet

稀疏卷积Sparse convolutional

来源:Sparsity Invariant CNNs

Invertible 1×1 Convolutions

来源:open ai的脸生成 Glow

CoordConv

来源:An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution

效果:比传统卷积快150倍

图卷积(GraphConv)

  • Learning Convolutional Neural Networks for Graphs

  • Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

  • GCN系列

基于遗传生命的自动网络结构生成

发表于 2017-04-07 | 分类于 AutoML |

完成时间:2016.10-2017.01

整体概述

用基因个体的方式去描述网络结构,对应关系如下:
卷积神经网络模型(cnn)对应于生物个体,网络层(卷积层)对应于染色体,层的属性(卷积核的大小)对应于基因。

核心思想:通过种群的个体之间进行一些遗传操作获得不同的个体,个体代代相传,优胜劣汰的机制选出最佳个体,获得性能较好的模型结构。

1
2
input :网络结构参数(种群的大小,局部种群的大小,进化的次数,操作的类型,基因的类型)
output:最好的性能结构的top-k个及性能得分

基础原理详细介绍

CNN通用组成分析

对比目前人工设计的卷积神经网络,诸如LexNet网络,ImageNet,VGG16,VGG19,All-CNNs,NIN,ResNet,GoogleNet,FractalNet,DenseNet等结构,我们发现这些卷积神经网络的结构都是由一些基础的结构单元所组成。归纳一下卷积神经网络的主要结构由以下部分组成:

  1. 卷积层
    卷积层含有的属性包括卷积层抽取特征的nb_filter个数,卷积核的大小(长和高的大小),初始化init方式,卷积移动stride步数,border_mode模式(same或者valid)。
  2. 激活函数层
    激活函数层包含的属性取值为tanh,sigmoid,relu,relu的各种变体
  3. pool层
    pool层的大小取值为pool的length长度,移动的步数stride,padding数目,还有就是pool类型比如maxp,average等。
  4. 全连接层
    主要的变化点是隐层单元的个数以及激活函数的类型
  5. 分类层
    同全连接一样只不过是隐层单元个数为类标签的个数
  6. Dropout层
    正则化系数,主要指的是丢弃权值的比例
  7. BatchNormatization层
    主要是每批训练的每个样本减去它的均值除以它的方差,再乘以一个alpha和beta系数,主要变化点为alpha和beta系数。
  8. Skip Connection.
    主要指的是结构上的跳跃,从何凯明的文章以及后续许多带shortcuts结构可以知道是可以缓解梯度消失或梯度膨胀的问题,在低层与高层之间建立“捷径”。

完全利用以上结构进行组成的卷积神经网络结构的参数空间是巨大的,是一个NP问题。
假设一个d层神经网络,层的类型个数为s,每层含有k个属性,每个属性的取值为t个,那么其搜索空间的范围为:$(skt)^d$ , 这个数字比较的大,比如针对10层的神经网络,5种类型层,每层含有3个属性,每个属性取值5个,那么结构的个数为$75^{10}=10^{17.8}$ 。这个空间的搜索范围就比较大了。

为了进一步减少空间的搜索范围和搜索时间,需要做了一下简单的处理:

1. 卷积层中由于属性较多,stride固定设置为1, border_mode模式设置为same即经过卷积不改变大小,卷积层的权值初始化方式为随机取值。
2. 激活函数的使用过程中只是在卷积层使用,默认和卷积层绑定,理论上如果加入BN操作需要剥离开,约定激活函数在全连接层使用relu,分类层使用softmax层激活函数。
3. 使用的Dropout用于全连接层,设定固定值0.5
4. Poolng层设置为2,strides的大小等于pooling的大小,另外使用的是maxpling.
5. 不考虑Skip-Connnection和BatchNormatization操作,简化搜索的空间
6. 全连接层默认固定为512个隐层神经单元。
7. 分类层上加一个正则化约束因子L2,防止过拟合
8. 训练时迭代次数设置100次,如果10次性能不提高,终止训练。

综上,模型探索中可以变化点主要来自于卷积层的filter个数的大小和maxpling的结合情况。这里filter个数设置为16,32,48,96,128,196,256,512,还有就是加入pooling操作。

针对10层模型,不考虑pooling,上面8种filter的搜索空间的个数为:8^10 ,相对而言训练的模型的个数还是比较多的。在实际实施过程中,我们采取的是将这8种filter划分成多组5个filter分别进行训练,减少参数搜索的空间,最后再将不同组的进化结果进行汇总。

基础操作
  • 基础操作定义

    1. 自身复制.
        主要是借鉴类似于vgg或者ResNet等结构,为了产生复杂的结构都是像conv+conv+maxp等类似block的结构不断的重复复制所产生。
    2. 交叉组合。
        以个体序列S1=a1_a2_a3_a4和个体序列S2=b1_b2_b3_b4为例,它们进行交叉组合的种类是比较多的,
        这里采用的策略是:随机在个体序列S1和S2之间选择交叉点p1,p2.假设p1=a2,p2=b3,那么它们产生的交叉个体为:
          a1_a2_b3_b4,
          a1_a2_b1_b2,
          b1_b2_a1_a2,
          b1_b2_a3_a4
          这四个交叉组合个体。
    3. 变异操作。
       假设个体的序列为a1_a2_a3_a4,那么随机产生一个随机点,比如说a2,这里有两种情况:
           如果a2是一个maxp,那么变异操作保持不变,
           如果是conv,filter个数是f1,那么随机在之前的filter集合中S去掉f1,即S-f1中任意的一个元素.
    
  • 进化的性能评价指标:

    性能的评价指标是单个个体(模型)的训练获得的性能得分值,用于筛选模型好坏的度量。

    考虑到模型训练具有一定的随机性使用比率进行度量,即两个模型的得分为s1,s2,如果s1>s2 && abs(s1-s2)/s2>r, 则认为s1的性能比s2好。

基本步骤

进化的整个过程主要分为两步:

  • step1. 初始步。

    根据设置的初始种群大小L,随机均匀的散落初始个体(有单个的基因组成比如conv(12),maxp)到L×L的初始种群中,针对这L×L个个体分别进行训练,得到一个性能得分,填充整个L×L个空间。

  • step2. 进化步。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1. 随机选择一个个体S1,以S1为中心点选择一个半径为d的局部种群,随机在d*d-1个局部种群中选择一个个体S2.这里假设S1的模型序列为a1_a2_a3_a4,S2的序列为b1_b2_b3_b4
    2. 自身复制。
    以中心点S1进行自身复制操作产生一个新的个体S3,进行训练获得其性能得分假设为s_3.
    3. 进行交叉组合。
    如上面提到的操作部分进行随机的交叉组合产生4个个体,分别获得其性能得分假设为c1,c2,c3,c4.
    4. 选择较好的组合或者自身复制个体,记最好的性能得分为max_c,即max_c=max{s3,c1,c2,c3,c4}。
    这时可能出现如下三种情况:
    a. 如果max_c比s1的性能要差,那么直接跳到step2,进行下一次进化操作
    b. 如果max_c比s1的性能要好,但比s2的性能要差,这时max_c的结构替换掉s1的结构,那么需要进行第5步变异步
    c. 如果max_c比s1的性能要好,也比s2的性能要好,这时max_c的结构替换掉s1的结构,同时也替换掉s2的结构,那么需要进行第5步变异步操作。
    5. 变异步操作。
    去除s1和s2的局部种群中除去s1,s2外随机选择出两个最差的个体l1,l2,如变异操作描述那样,针对max_c的结构进行实施变异操作。

CNN网络结构生成在图片分类中应用

相关参数和模型的设置
  1. 数据集

    CIFAR10数据集,50000训练和10000测试,10个类别。

  2. 单次训练的参数统一设置。

    - 训练算法的选择:
      带动量的随机梯度下降算法,使用nesterov进行初始化,初始学习率设置为0.1,动量因子0.9,衰减因子设置为1e-6。
    - 误差函数
      误差函数选择交叉熵,度量指标为准确率       
    - 结构参数:
      训练次数设置100次,10次性能不提高终止训练。
      固定模型的全连接层的隐层单元为512个,dropout=0.5,分类层标签数为10。
    
  3. 进化过程参数设置

    - 基础算子的选择:
      卷积层的filter选择了16,32,64,96,128,196,224,256,512.
      pooling层,默认设为2,stride设置也为2
    - 进化次数设置150次
    
  4. 数据处理说明

    - 数据增强:
      进行旋转操作,水平和竖直方向进行平移操作
    - 数据处理:
      未加入零均值规范化处理
    
  5. 进化过程说明

    - 在实际运行过程中由于将不同种类型的filter和maxp加在一起去探索网络结构和网络结构的参数,这样的参数空间比较大,采取的策略是将filter划分成多份,进行多次进化,节省总的参数搜索空间,再将最终结果汇总。
    - 模型开始的时候不适合将maxp开始,统一处理第一层以卷积层开始。
    - CIFAR10数据集上有增强和非增强的操作,考虑到进行增强操作比较耗时,我们进行实验时在非增强的数据集上进行实验。
    
相关训练结果展示
  1. 非增强的结果展示。

    实际过程中训练了大约957个实例,选择5个较好的模型如下:

    model-0-'0.8138'
    model-1-'0.8067'
    model-2-'0.8064'
    model-3-'0.8046'
    model-29-'0.7944'
    

备注:模型标号对应的结构参见模型附录B部分
这里实验结果中是非增强的实验效果,数据处理这块,未加入零均值规范化处理和数据增强。
模型按照filter拆分了多组结果比如filter个数为{16,32,64,96,128},{32,64,96,128,192},{32,64,128,256,512}等多组.

CIFAR10进行非增强的参数调优

选择训练的模型(model-29-‘0.7944’)进行一定程度的性能调优,调优过程如下

  1. 数据规范化处理

    原始模型能达到0.8324

  2. 零均值规范化处理和学习率动态改变(两次调整,10次性能不提高学习率就缩小为原来的0.1)

    性能能提高到0.8524.

  3. 其它操作。
    比如加入BN,梯度剪切,全连接层调节,dropout调节等,性能影响不太.

由于硬件资源的原因,为了能得到增强操作的结果,我们直接进行在非增强的模型结构进行增强操作,而在非增强结构中进行直接的增强训练发现,非增强:0.7944,增强最好结果是0.9196,非增强:0.8138,增强最好结果是0.9169,增强和非增强的效果并非保持一致的,另外考虑非增强和增强操作可能会导致结构上的差别,我们选择非增强的最好的30个模型进行增强操作重新训练,训练结果如下部分。

CIFAR10进行增强操作选择最优结果
  • 实验结果

    直接进行数据增强和学习率的调整,选择top-5个模型的机构编号及性能如下:

注:模型标号对应的结构参见模型附录B部分

  • 结果对比

    对比一下MIT的利用强化学习生成网络结构的实验结果为:

    但从数据上看,我们的实验效果最好的误差率为7.62,其结果要比要比highway,maxout,FitNet等人工设计的结构要好,比VGG和All-CNNs略差。

  • 实验分析

    • 从上面结果看,其生成的结构和人工涉及的结构差异比较大,存在conv_conv_conv_maxp,conv_conv_maxp,conv_conv_conv_conv_maxp等结构,其具体的filter个数结构都不一样,人工很难去设计这样的结构。

    • 从生成结构的层数看,VGG结构最少是16层,我们的结构是10个卷积层外加一个全连接和分类层,共12层,层数要比其少。

    • 从参数规模上看,生成top-30个模型生成的模型基本上在1.2M-13M的规模,top-5个参数的规模约5M。

相关实验经验总结

相关问题及处理策略
  1. CNN网络大小不够用的情况,进行了reshape操作

  2. 节省时间,采用缓存模型的策略,避免了多余的训练

  3. 性能比较的地方使用了比率
  4. 种群结束的条件使用了次数和最好和最差的的绝对值。
相关尝试和经验

关键因素

  1. 数据增强影响比较大
  2. 对图片进行零均值规范化处理影响比较大。
  3. 学习率动态的改变影响较大。

非关键因素

  1. 全连接层可以变为GlobalAvgPooling,性能提高不大
  2. 学习策略的改变比如adam或者rmsprop的提升并不大
  3. 加入BN和Skip-Connnection在深层的时候有一点提升,浅层的时候影响不大
  4. 在训练的CONV权重上加入规范化处理.W_constraint = maxnorm(2)
  5. 全连接层大小修改以及梯度剪切的处理性能也变化不大。

模型附录

  • A. 非增强的30个模型结构。

    model-0,model structure:('init-0', '0.8138', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-1,model structure:('init-1', '0.8067', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-2,model structure:('init-2', '0.8064', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-3,model structure:('init-3', '0.8046', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-4,model structure:('init-4', '0.8017', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 48)]), ('maxp', [('pool_size', 2)])])
    model-5,model structure:('init-5', '0.8016', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-6,model structure:('init-6', '0.8015', [('conv', [('nb_filter', 64)]), ('conv', [('nb_filter', 512)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    model-7,model structure:('init-7', '0.8015', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)])])
    model-8,model structure:('init-8', '0.8008', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    model-9,model structure:('init-9', '0.8007', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-10,model structure:('init-10', '0.8002', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-11,model structure:('init-11', '0.7997', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-12,model structure:('init-12', '0.7996', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    model-13,model structure:('init-13', '0.7995', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    model-14,model structure:('init-14', '0.7995', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-15,model structure:('init-15', '0.7992', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-16,model structure:('init-16', '0.7989', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 64)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-17,model structure:('init-17', '0.7981', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    model-18,model structure:('init-18', '0.7979', [('conv', [('nb_filter', 256)]), ('conv', [('nb_filter', 512)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    model-19,model structure:('init-19', '0.7975', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('maxp', [('pool_size', 2)])])
    model-20,model structure:('init-20', '0.7969', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-21,model structure:('init-21', '0.7967', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)])])
    model-22,model structure:('init-22', '0.7964', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-23,model structure:('init-23', '0.7964', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    model-24,model structure:('init-24', '0.7956', [('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    model-25,model structure:('init-25', '0.7955', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    model-26,model structure:('init-26', '0.7947', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    model-27,model structure:('init-27', '0.7945', [('conv', [('nb_filter', 64)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 64)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    model-28,model structure:('init-28', '0.7945', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)])])
    model-29,model structure:('init-29', '0.7944', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)]), ('conv', [('nb_filter', 256)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)])])
    
  • B. 加入增强的30个模型结构。

    ('init-0', '0.910200', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-1', '0.917000', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-2', '0.923800', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-3', '0.911200', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-4', '0.910800', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 48)]), ('maxp', [('pool_size', 2)])])
    ('init-5', '0.919200', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-6', '0.904100', [('conv', [('nb_filter', 64)]), ('conv', [('nb_filter', 512)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    ('init-7', '0.905800', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)])])
    ('init-8', '0.909400', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    ('init-9', '0.904400', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-10', '0.909500', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-11', '0.921100', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-12', '0.914900', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    ('init-13', '0.911000', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    ('init-14', '0.915900', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-15', '0.909600', [('conv', [('nb_filter', 32)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-16', '0.908000', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 64)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-18', '0.902600', [('conv', [('nb_filter', 256)]), ('conv', [('nb_filter', 512)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    ('init-19', '0.908300', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('maxp', [('pool_size', 2)])])
    ('init-20', '0.908200', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-21', '0.921500', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)])])
    ('init-22', '0.906100', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-23', '0.905000', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)])])
    ('init-24', '0.919700', [('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    ('init-25', '0.904800', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    ('init-26', '0.913500', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)])])
    ('init-27', '0.912900', [('conv', [('nb_filter', 64)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 64)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 512)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)])])
    ('init-28', '0.909800', [('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)]), ('conv', [('nb_filter', 192)]), ('maxp', [('pool_size', 2)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 128)])])
    ('init-29', '0.916300', [('conv', [('nb_filter', 16)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)]), ('conv', [('nb_filter', 256)]), ('conv', [('nb_filter', 256)]), ('maxp', [('pool_size', 2)]), ('conv', [('nb_filter', 256)])])
    

参考文献

  • Large-Scale Evolution of Image Classifiers/https://arxiv.org/pdf/1703.01041v1.pdf
  • DESIGNING NEURAL NETWORK A RCHITECTURES USING REINFORCEMENT LEARNING 1611.02167v2.pdf
  • NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING ICLR 2017

心理学书籍

发表于 2017-03-12 | 分类于 book |

心理学书籍收藏

相关书籍:

《与“众”不同的心理学》,《助推-我们如何作出最佳选择》,《无从选择-为何多既是少》

《让创意更有粘性》,《社会性动物》,《找寻逝去的自我》

《引爆点》,《决断2秒间》,《异类:不一样的成功启示录》

《决策与判断》,《别做正常的傻瓜》,《怪诞行为学》,

《错不在我》,《本能》,《影响力》,

《摇摆》,《进化心理学》,《学会提问》

对联一句

发表于 2017-03-09 | 分类于 life |

人心思治干群斗志旺,

岁月逢春江山气象新

读诗

发表于 2017-03-08 | 分类于 life |

贫女

【作者】秦韬玉 【朝代】唐代

蓬门未识绮罗香,拟托良媒益自伤。

谁爱风流高格调,共怜时世俭梳妆。

敢将十指夸偏巧,不把双眉斗画长。

苦恨年年压金线,为他人作嫁衣裳。

12
数据娃嚼AI

数据娃嚼AI

天下之至柔,驰骋天下之至坚

20 日志
19 分类
25 标签
GitHub Weibo
© 2017 - 2019 数据娃嚼AI
Hexo
theme - NexT.Mist