读本篇论文“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. 。。。欢乐捕鱼App WeX5 连接打包代理服务失败,请检查代理服务地址是否正确。。。

    今天学习了WeX5,第一次使用,使用它打包一个Web App 欢乐捕鱼的时候,在最终打包生成Native App的时候突然报错了,说:"连接打包代理服务失败,请检查代理服务地址是否正确&qu ...

  2. JAVA内存管理之堆内存和栈内存

    我们常常做的是将Java内存区域简单的划分为两种:堆内存和栈内存.这种划分比较粗粒度,这种划分是着眼于我们最关注的.与对象内存分配密切相关的两类内存域.其中栈内存指的是虚拟机栈,堆内存指的是java堆 ...

  3. 4. 什么是AJAX

    术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步.Ajax提供与服务器 ...

  4. 夺命雷公狗-----React---14--移入移出事件

    <!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...

  5. c# 动态调用.net编写的webservices接口

    创建类WebServiceHelper: public class WebServiceHelper { #region 动态调用WebService动态调用地址 /// < summary&g ...

  6. eclipse构建maven+scala+spark工程 转载

    转载地址:http://jingpin.jikexueyuan.com/article/47043.html 本文先叙述如何配置eclipse中maven+scala的开发环境,之后,叙述如何实现sp ...

  7. Canny边缘检测

    1.Canny边缘检测基本原理      (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声:二必须尽量精确确定边缘的位置.      (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子.这 ...

  8. js 判断移动设备、pc端、android、iPhone、是否为微信、微博、qq空间

    varbrowser = {   versions: function () {      var u = navigator.userAgent, app = navigator.appVersio ...

  9. Lucky and Good Months by Gregorian Calendar - POJ3393模拟

    Lucky and Good Months by Gregorian Calendar Time Limit: 1000MS Memory Limit: 65536K Description Have ...

  10. 《在纹线方向上进行平滑滤波,在纹线的垂直方向上进行锐化滤波》 --Gabor增强的具体实践

    <在纹线方向上进行平滑滤波,在纹线的垂直方向上进行锐化滤波>                                          --Gabor增强的具体实践     一.问 ...