读本篇论文“Batch-normalized Maxout Network in Network”的原因在它的mnist错误率为0.24%,世界排名第4。并且代码是用matlab写的,本人还没装cafe……

 理论知识

本文是台湾新竹国立交通大学的Jia-Ren Chang 写的,其实要说这篇文章有多在的创新,还真没有,实际上它就是把三篇比较新的论文的东西组合起来,分别是这三篇:

1.Network in network :ICLR 2014

2.Maxout Networks :ICML 2013

3.Batch normalization: Accelerating deep network training by reducing internal covariate shift :ICML 2015

把这三篇文章中的NIN、Maxout、BN组合为一个MIN模块,从而由3个MIN模块+softmax连成一个新的网络结构,见如下:

所以,要看懂这篇论文只需要盾懂这三篇即可,所以我们非常有必要读这三篇最近几年非常经典的论文。

一些matlab函数

fullfile

fullfile函数作用是利用文件各部分信息创建并合成完整文件名。
用法:
fullfile('dir1', 'dir2', ..., 'filename')
f = fullfile('dir1', 'dir2', ..., 'filename')
具体例子:
输入:f = fullfile('C:','Applications','matlab','fun.m') 得到:f =C:\Applications\matlab\fun.m

fileparts

函数功能:在FreeMat、Matlab中,该函数用于将一个文件的完整路径中各部分提取出来。
语法格式:
[pathstr, name, ext, versn] = fileparts(filename)
其中filename是要解析的文件的完整路径,例如:E:\games\IGI\bin\IGI.exe。fileparts将这个文件名(包含完整路径信息)各部分分别提取到四个变量中。
其中pathstr是这个文件的路径名,name是文件名,ext是包含一个点号文件的扩展名(指定了文件的类型)。matlab帮助文档中指明,第四个参数将在未来版本中舍弃。
 
>> filename = 'E:\games\IGI\bin\IGI.exe';
>> [pathstr, name, ext, versn] = fileparts(filename)
pathstr =E:\games\IGI\bin
name =IGI
ext =.exe
versn = ''
 

mfilename

函数功能: 返回当前正在运行的函数所在文件的路径。
语法格式:
mfilename
p = mfilename('fullpath')
c = mfilename('class')
 

若在函数内部要获取自己的全路径,也可以使用mfilename函数:

比如运行startup.m函数时:

a = mfilename('fullpath');
% a = 'D:\Program Files\MATLAB\toolbox\local\startup'

注意mfilename返回的值不带文件类型后缀

isfield

函数功能: 判断输入是否是结构体数组的域(成员)。
调用格式:
tf = isfield(S, 'fieldname')
检查结构体S是否包含由fieldname指定的域, 如果包含, 返回逻辑1; 如果S不包含fieldname域或者S不是结构体类型的, 返回逻辑0。
程序示例
close all; clear; clc;
student = struct('name', 'John', 'age', 20, 'score', 90);
fprintf('Is ''name'' a field of student structure? %dn',isfield(student, 'name'));
fprintf('Is ''salary'' a field of student structure? %dn',isfield(student, 'salary'));
isfield(student, {'name', 'salary', 'score'})
输出结果:
Is 'name' a field of student structure? 1
Is 'salary' a field of student structure? 0
ans =     1     0     1
 
 
 
arrayfun函数用于对数组中每个元素进行相同的函数操作。
 
sprintf('%03d',i),是将数字转化为字符串,03的意思是要变成3位数,不足3位的前面补零。
 
 
 
4.从原代码中可看出结构:
conv1--BN--maxout layer1(maxoutconv1--BN--maxout)--maxoutlayer2(maxoutconv2--BN--maxout--pool1--dropout)--
conv2--BN--maxout layer1(maxoutconv3--BN--maxout)--maxoutlayer2(maxoutconv4--BN--maxout--pool2--dropout)--
conv3--BN--maxout layer1(maxoutconv5--BN--maxout)--maxoutlayer2(maxoutconv6--BN--maxout--pool3)-----softmax
 
 

Deep Learning 24:读论文“Batch-normalized Maxout Network in Network”——mnist错误率为0.24%的更多相关文章

  1. Deep Learning中的Large Batch Training相关理论与实践

    背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在分布式训练时,提高计算通信占比是提高计算加速比的有效手段,当网络通信优化到一 ...

  2. 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))

    需求说明:深度学习FPGA实现知识储备 来自:http://blog.csdn.net/stdcoutzyx/article/details/41596663 说明:图文并茂,言简意赅. 自今年七月份 ...

  3. Deep Learning 27:Batch normalization理解——读论文“Batch normalization: Accelerating deep network training by reducing internal covariate shift ”——ICML 2015

    这篇经典论文,甚至可以说是2015年最牛的一篇论文,早就有很多人解读,不需要自己着摸,但是看了论文原文Batch normalization: Accelerating deep network tr ...

  4. Neural Networks and Deep Learning(week2)Logistic Regression with a Neural Network mindset(实现一个图像识别算法)

    Logistic Regression with a Neural Network mindset You will learn to: Build the general architecture ...

  5. Deep Learning 学习笔记(6):神经网络( Neural Network )

    神经元: 在神经网络的模型中,神经元可以表示如下 神经元的左边是其输入,包括变量x1.x2.x3与常数项1, 右边是神经元的输出 神经元的输出函数被称为激活函数(activation function ...

  6. 论文解读(DCN)《Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering》

    论文信息 论文标题:Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering论文作者:Bo Yang, Xi ...

  7. Deep Learning in NLP (一)词向量和语言模型

    原文转载:http://licstar.net/archives/328 Deep Learning 算法已经在图像和音频领域取得了惊人的成果,但是在 NLP 领域中尚未见到如此激动人心的结果.关于这 ...

  8. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

  9. Word2Vec之Deep Learning in NLP (一)词向量和语言模型

    转自licstar,真心觉得不错,可惜自己有些东西没有看懂 这篇博客是我看了半年的论文后,自己对 Deep Learning 在 NLP 领域中应用的理解和总结,在此分享.其中必然有局限性,欢迎各种交 ...

随机推荐

  1. (三) UART 串口通讯

    UART  : university asynchronous receiver and transmitter UART  // 通用异步接收器和发送器 为什么要有串口:因为许多嵌入式设备没有显示屏 ...

  2. 数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True

    数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True alter table Sys_User add AgreeAddingFriend bit alt ...

  3. Mysql数据库的使用总结之ERROR 1146 (42S02)

    在使用mysql数据库过程中,遇到了错误ERROR 1146 (42S02):Table doesn't exist,经过了两天,终于解决了这个问题.引起该错误的原因不同,对应的解决方法也不同.这里只 ...

  4. LA 4329 Ping pong 树状数组

    对于我这样一名脑残ACMer选手,这道题看了好久好久大概4天,终于知道怎样把它和“树状数组”联系到一块了. 树状数组是什么意思呢?用十个字归纳它:心里有数组,手中有前缀. 为什么要用树状数组?假设你要 ...

  5. linux 中压缩记得压缩用c,解压用x

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  6. Used Query

    ---  查询 look back 6 days logic period_key. select s.store_id, i.upc, sf.period_key from JNJ_CASINO_H ...

  7. 4.Git的安装

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Window ...

  8. MVC配置ckeditor+ckfinder

    ckeditor当前使用版本:4.5.8 ckfinder当前使用版本:2.6.0 1.Ckeditor配置简单,直接使用Nuget下载就可 2.下载ckfinder https://cksource ...

  9. 谈谈我印象中的JVM不足之处

    研究JVM也有一段时间了,其间也发现了它的很多不足之处,在此一一道来,由于本人对JVM的理解有限,如有错误的地方,还请大家指正:本文不介绍名词性术语和概念性知识,如有不了解的地方可Search Goo ...

  10. 鸟哥的linux私房菜学习记录之软件安装RPM,SRPM,YUM