卷积神经网络CNN
2015-11-17 16:27
375 查看
卷积神经网络CNN
2014年09月05日近来在了解深度学习。深度神经网络的一大特点就是含有多隐含层。卷积神经网络(CNN)算是深度神经网的前身了,在手写数字识别上在90年代初就已经达到了商用的程度。本文中将简要介绍CNN,由于相应的博文资料已经很多,也写的很好,本篇最有价值的是参考资料部分。
前向神经网络数字识别
假设我们的图片是28*28像素的,使用最简单的神经网络进行识别,如图1
图1
输入层是像素值(一般使用黑白二进制),输出层是10个数字,隐含层的层数和节点书可以调整,图1只是示意。
这样的神经网络模型是可行的,但效果不会非常好,其存在以下问题:
1. 一般要得到较好的训练效果,隐层数目不能太少,当图片大的时候,需要的权值会非常多!
2. 对平移、尺度变化敏感(比如数字偏左上角,右下角时即识别失败)
3. 图片在相邻区域是相关的,而这种网络只是一股脑把所有像素扔进去,没有考虑图片相关性。
卷积神经网络(CNN)
CNN通过local receptive fields(感受野),shared weights(共享权值),sub-sampling(下采样)概念来解决上述三个问题【2】。
LeNet-5是一个数字手写系统,其结构图如下,是一个多层结构
图2
这个图在各种资料里出现的非常多,在此偷个懒,不详细解释了。对此图最详细的说明请见【2】。
有一点要特别容易理解出错:权值共享不是5*5小块内的权值一样。5*5小块有25个不同权值,其作为一个滤波器,像抹窗户一样遍历整个图片。
推荐读物
【1】/article/1919457.html (我的小伙伴的博文,非常适合作为入门级读物,他的一系列博客都很好)
【2】Gradient-Based Learning Applied to Document Recognition (极好的文!尤其是p5-p9,一定要细看,反复琢磨。把LeNet-5的来龙去脉讲得清清楚楚)
【3】http://yann.lecun.com/exdb/lenet/index.html (Yann LeCunn实现的CNN演示,以动画的形式演示了位移、加噪、旋转、压缩等识别,最有价值的是把隐层用图像显示出来了,很生动形象)
【4】/article/1982124.html (一位网友的博客,基本上是对【2】的通俗讲解)
【5】/article/4670373.html (一位网友的仿真实验,有助于理解,他的一系列博客都很注重实验)
http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi (一位外国网友自己实现的CNN,重构LeCunn的实验)
【6】Receptive fields, binocular interaction and functional architecture in the cat's visual cortex (1963年的文章,猫的局部感受野的生理学基础,从生理学上支持CNN是有效的,很长,我只略扫了一眼)
联系方式:qiuqiangkong@gmail.com
相关文章推荐
- 导入javaweb项目后,java代码httprequest、@Override报错
- 编译httpd 和 php
- centos时间不同步网络问题
- linux c 下的 tcp的recv函数和udp的recvfrom函数 参数对比
- 网络请求和缓存
- 在RDO自动安装的OpenStack Liberty单机中搭建能够内外网互访的网络(三)-配置规则和创建密钥对
- HTTPRequest 网络请求之get请求和post请求
- 主机字节序+网络字节序
- Tomcat中配置https访问
- org.apache.http.Header这个类找不到的情况
- TCP/IP详解之:ARP协议 和 RARP协议
- 在RDO自动安装的OpenStack Liberty单机中搭建能够内外网互访的网络(二)-安装系统和OpenStack
- HTTP 长连接和短连接
- Sublime Text 官方网站 http://www.sublimetext.com
- HttpURLConnection读取http信息
- web前端开发必知的HTTP通信过程
- 开启两个tomat—mvn 用法—HttpURLConnection用法
- 【鸟哥的linux私房菜-学习笔记】计算机网络相关知识简要回顾
- 计算机网络面试题总结
- 学习okhttp wiki--HTTPS