《Neural Networks and Deep Learning》学习笔记三-神经网络输出层神经元个数
来源:互联网 发布:怎么增加淘宝访客量 编辑:程序博客网 时间:2024/05/22 03:25
手写数字识别
本篇博客拿手写数字识别作为例子进行讲解。对于手写数字识别数据集中共有10个数字(0-9),绝大多数的神经网络都采用输出层为10个神经元。但不知道读者们是否想到用二进制表示,这样只需要4个神经元就可以表示16个类别。那么问题来了:针对手写数字识别的神经网络,为什么网上的所有神经网络代码的输出层都是10个,而不是4个。下图表示输出层为10个神经元的神经网络。下面我就针对该神经网络进行讲解,为什么输出层采用10个神经元,而不采用二进制表示方法。
输出神经元为10个的原因
为了理解为什么输出神经元个数为10,理解神经网络工作原理是很有帮助的。假设我们考虑输出层为10个神经元的情况,输出层的第一个神经元代表输入样例为0。它通过权衡来自隐藏的神经层的证据来做到这一点,那么隐藏层的神经元的功能是什么呢?实质上,假设隐藏层的第一个神经元就是为了验证输入的手写图像是否含有如下图像内容:
找到该图的原理就是:若输入神经元含有该图像上的像素,则提高该输入神经元和隐含层第一个神经元之间的权重,否则降低它们之间的权重。同理,假设第二个、第三个、第四个隐含层神经元判断输入图像是否有如下三个图像内容:
如果四个隐含层神经元都被激活,则判定输入图像为0。
未选用4个二进制神经元作为输出层的原因
当我们采用4个二进制神经元作为输出层时,第一个输出神经元可能决定数字最重要比特是什么?无法将上述简单数字组成部分图像跟该情况的输出联系到一起。所以没有理由将输出层设置为4个神经元。
我自己理解的原因:第一种情况(10个神经元):隐藏层和输出层之间的权重,每个权重只决定一个类别的手写数字;而第二种情况(4个神经元):隐藏层和输出层之间的权重,每个权重决定多个类别的手写数字。所以最后的第一种实验结果要优于第二种实验结果。
- 《Neural Networks and Deep Learning》学习笔记三-神经网络输出层神经元个数
- Neural Networks and Deep Learning学习笔记ch1 - 神经网络
- Neural Networks and Deep Learning 学习笔记(三)
- neural networks and deep learning 学习笔记
- Neural Networks and Deep Learning 学习笔记
- Neural Networks and Deep Learning 神经网络和深度学习book
- Neural Networks and Deep Learning 神经网络和深度学习
- Neural Networks and Deep Learning学习笔记ch3 - 改进神经网络的学习方法
- Neural Networks and Deep Learning学习笔记ch5 - 为什么深度神经网络很难训练?
- Neural Networks and Deep Learning学习笔记ch6 - 深度学习
- Neural Networks and Deep Learning学习笔记ch2 - 反向传播
- Neural Networks and Deep Learning 学习笔记(一)
- Neural Networks and Deep Learning 学习笔记(二)
- Neural Networks and Deep Learning 学习笔记(四)
- Neural Networks and Deep Learning 学习笔记(五)
- Neural Networks and Deep Learning 学习笔记(六)
- Neural Networks and Deep Learning 学习笔记(七)
- Neural Networks and Deep Learning 学习笔记(八)
- 数据库事务
- bzoj 3629: [JLOI2014]聪明的燕姿
- 解析京东大数据下高效图像特征提取方案
- static深入理解(深入浅出)
- Ubuntu16.04安装redis和php7.0的redis扩展
- 《Neural Networks and Deep Learning》学习笔记三-神经网络输出层神经元个数
- Tomcat源码走读-内存泄露检测
- c语言-扫雷
- 15周 Python入门(人生苦短,我用Python)
- Hexo+Github搭建blog
- Matlab 之 find()函数
- 创建登陆界面
- java之面向对象
- opencv+ Visual Studio 2013 环境搭建