CNN-Convolutional Neural Networks

首要任务,找一个能跑的CNN代码,之前跑matlabdeeplearning toolbox中的代码,好久都不出结果,速度真慢==b,在MNIST数据集上,迭代一次,BacthSize=50大概耗时32个小时。后来定位的问题可能是因为Matlab 2009版本过低导致的问题,后来替换了Matlab 2011b之后就快速计算出结果,大概耗时4分钟左右,109.95s,具体原因尚未定位。 先了解一下基础概念:UFLDL中的“卷积特征提取”和“池化” 1、CNN的整体网络结构 CNN一般采用卷积层与采样层交替设置,即一层卷积层接一层采样层,采样层后接一层卷积…这样卷积层提取出特征,再进行组合形成更抽象的特征,最后形成对图片对象的描述特征。 问题:1,卷积核 同 采样核 有可能是同一个 函数吗?如果一样的话,为什么不直接用采样核计算,而不进行卷积。另一种说法,如果卷积核的步长 大一点(>1),那么是不是就没必要有采样这个环节了。 2,CNN的Map在卷积的过程中减少呢?这个当然可以了 3,Pooling层和卷积层的Map数目是一致的吗?Pooling也可以只选择部分卷积层的Map? 4,Pooling压缩信息可以提高泛化能力,如果卷积也可以进行维数压缩吧?有的文章在Pooling后紧接着做一个Folding 5,用BP算法在训练,反向传播误差,如果是无监督任务呢,CNN可以无监督训练吗?好像不可以。 6,最后一步输出得到了一维向量,是通过全连接得到的,即最后一层的Map中的每个像素点都连接最后输出层的那一个点,得到多个1*1的map,其实可以考虑成最后一层只做了 一个卷积,直接卷积成1*1。 重点关注 参考[7]. 【参考】 1. CNN卷积神经网络代码理解,matlabdeeplearning toolbox中的代码http://blog.csdn.net/zouxy09/article/details/9993743 2. CNN(Convolutional Neural Networks)没有原理只有实现 3. 【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN) 4. Notes on Convolutional Neural … 继续阅读

AutoEncoder

【关于AutoEncoder】: AutoEncoder是多层神经网络,其中输入层和输出层表示相同的含义,具有相同的节点数。AutoEncode学习的是一个输入输出相同的“恒等函数”。不过输入和输出相同,使得这个网络的输出没有任何意义。AutoEncoder的意义在于学习的(通常是节点数更少的)中间coder层(最中间的那一层),这一层是输入向量的良好表示。这个过程起到了“降维”的作用。当AutoEncoder只有一个隐含层的时候,其原理相当于主成分分析(PCA),当AutoEncoder有多个隐含层的时候,每两层之间可以用RBM来pre-training,最后由BP来调整最终权值。网络权重更新公式很容易用求偏导数的方法推导出来,算法是梯度下降法。(RBM:层内无连接,层间全连接,二分图) Denoising AutoEncoder是AutoEncoder的一个变种,与AutoEncoder不同的是,Denoising AutoEncoder在输入的过程中加入了噪声信息,从而让AutoEncoder能够学习这种噪声。 Denoising AutoEncoder与RBM非常像: (1)参数一样:隐含层偏置、显示层偏置、网络权重 (2)作用一样:都是输入的另一种(压缩)表示 (3)过程类似:都有reconstruct,并且都是reconstruct与input的差别,越小越好 Denoising AutoEncoder与RBM的区别: 背后原理就不说了(RBM是能量函数),区别在于训练准则。RBM是隐含层“产生”显示层的概率(通常用log表示),Denoising AutoEncoder是输入分布与reconstruct分布的KL距离。所用的训练方法,前者是CD-k,后者是梯度下降。RBM固定只有两层;AutoEncoder,可以有多层,并且这些多层网络可以由标准的bp算法来更新网络权重和偏置,与标准神经网络不同的是,AutoEncoder的输入层和最终的输出层是“同一层”,不仅仅是节点数目、输出相同,而是完完全全的“同一层”,这也会影响到这一层相关的权值更新方式。总之,输入与输出是同一层,在此基础上,再由输入与输出的差别构造准则函数,再求各个参数的偏导数,再用bp方式更新各个权重。 【AutoEncoder工程代码】:相关Matlab工程代码主页:http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 论文:Science – 2006 Science_Reducing the Dimensionality of Data with Neural Networks (如下所有文件,放到同一个目录下) 1). 下载手写体数据MNIST: http://yann.lecun.com/exdb/mnist/, 并在Linux或Windows下进行解压;(60,000 个训练集 和, 10,000 个测试集,数字手写体0-9 10类) train-images-idx3-ubyte.gz: training set images … 继续阅读

word2vec使用说明

Google的word2vec官网:https://code.google.com/p/word2vec/ 下载下来的Demo源码文件共有如下几个: word2vec – Revision 41: /trunk … LICENSE //Apache LICENSE README.txt //工具使用说明 compute-accuracy.c demo-analogy.sh  // demo-classes.sh  //词聚类的示例脚本 demo-phrase-accuracy.sh demo-phrases.sh  // demo-train-big-model-v1.sh demo-word-accuracy.sh demo-word.sh distance.c makefile questions-phrases.txt questions-words.txt word-analogy.c word2phrase.c word2vec.c 【快速入门】:1. 从http://word2vec.googlecode.com/svn/trunk/ 下载所有相关代码(所有的文件如上); 2. 运行make编译word2vec工具:Makefile的编译代码在makefile.txt文件中,先改名makefile.txt 为Makefile,然后在当前目录下执行make进行编译,生成可执行文件(编译过程中报出很出Warning,暂且不管); 3. 运行示例脚本:./demo-word.sh 和 … 继续阅读

[z]Deeplearning原文作者Hinton代码注解

跑Hinton最初代码时看到这篇注释文章,很少细心,待研究。。。 原文地址:>http://www.cnblogs.com/BeDPS/p/3182725.html Matlab示例代码为两部分,分别对应不同的论文:    1. Reducing the Dimensionality of data with neural networks       ministdeepauto.m   backprop.m   rbmhidlinear.m    2. A fast learing algorithm for deep belief net      mnistclassify.m   backpropclassfy.m       其余部分代码通用。    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    mnistclassify.m    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    clear all    close all    maxepoch=50;    %迭代次数    numhid=500; numpen=500; numpen2=2000;     fprintf(1,’Converting Raw files into Matlab format \n’);    converter;      fprintf(1,’Pretraining a deep autoencoder. \n’);    fprintf(1,’The Science paper used 50 epochs. This uses %3i \n’, maxepoch);    makebatches;%分批数据     [numcases numdims numbatches]=size(batchdata); %获取batchdata数据大小    … 继续阅读

百度深度学习进展介绍–余凯@CASIA

【主讲人】:余凯(Deep Learning):–百度深度学习研究院(IDL) 介绍百度DL进展,今年报告李彦宏(Robin)在国际数据挖掘会议ACM KDD上发表演讲,相信技术的力量,提出技术难题: 1:自然图片OCR,2:语音识别和理解,3:图像搜索(不是传统的以文搜图,基于图像内容的图像搜索) 业界趋势:移动互联网带入识图时代。图像:美图秀秀等产品;语音:siri,微软DL,google,科大迅飞,baidu语音识别 Gartner Emerging Tech Hype Cycle 2012 –技术热门曲线 2006 SCIENCE–> Reducing the dimensionality of Data with Neural Networks –Hinton. 分层Pre-Training. 最早从图像开始做,09年开始从语音开始做。 DL 被评为MIT2013十大技术之首,2012.6 Google-Brain 项目,2012.11 微软智能同声传译 Google Building 42, 把所有的AI Researcher 放到同一座大楼中 2013年1月19日,Robin宣布成立百度IDL研究院 2013年9月,Facebook宣布成立AI Lab,图像搜索,语义搜索。Deep … 继续阅读

[zz]深度学习(Deep Learning)综述

本文是从deeplearning网站上翻译的另一篇综述,主要简述了一些论文、算法以及工具箱。 深度学习是ML研究中的一个新的领域,它被引入到ML中使ML更接近于其原始的目标:AI。查看a brief introduction to Machine Learning for AI 和 an introduction to Deep Learning algorithms. 深度学习是关于学习多个表示和抽象层次,这些层次帮助解释数据,例如图像,声音和文本。对于更多的关于深度学习算法的知识,查看: The monograph or review paper Learning Deep Architectures for AI(Foundations & Trends in Machine Learning, 2009). The ICML 2009 Workshop on Learning Feature … 继续阅读