深度学习识别手写数字原理
如何识别像素28 * 28手写数字3如果分成28 * 28 的网格具体如下:28 * 28 = 784, 可以由784个像素点代表3.大脑识别不用考虑这些像素点, 很容易识别, 这里不研究大脑如何识别, 而是电脑如何识别。大脑很容易区分3 和 6, 另外即使是3, 也有无数种写法, 这是难不倒大脑的。而计算机如何处理?如何是黑白图片, 可以根据灰度值作如下标记:黑色用0.0表示, 白色用1.0表示
·
- 如何识别像素28 * 28手写数字3

- 如果分成28 * 28 的网格具体如下:

- 28 * 28 = 784, 可以由784个像素点代表3.大脑识别不用考虑这些像素点, 很容易识别, 这里不研究大脑如何识别, 而是电脑如何识别。
大脑很容易区分3 和 6, 另外即使是3, 也有无数种写法, 这是难不倒大脑的。而计算机如何处理?
- 如何是黑白图片, 可以根据灰度值作如下标记:黑色用0.0表示, 白色用1.0表示, 但无法识别是3.

- 通过编写程序, 机器学习都无法解决这一问题, 这就需要提到神经网络, 根据大脑对图像的识别原理,解决:

- 通过对每一个神经元赋值, 再乘以权重w, 再加上bias值, 再把计算结果传到激活函数中sigmoid, 用于激活下一层的神经元, 具体是如何实现的:

首先需要接受, 按照深度神经网络和深度学习可以达到识别数字, 甚至图片这一事实, 甚至识别效果比人类很好。那么工作的原理是什么, 如何分层, 每一层需要有神经元, 需要如何过滤, 选用什么激活函数等需要逐步分析。 - 神经元

每一个像素代表一个神经元, 一张28 * 28 的图片有784 个神经元, 神经元中的数字用灰度值表示, 白色代表1, 黑色代表0, 至于哪儿值, 比如0.5激活还是0.6不需要关心, 但可以根据激活函数设定。 - 输入和输出:


首先输入和输出是确定的, 给定图片大小, 像素是确定的, 输出是0-9, 也是确定的, hidden layer需要有多少个神经元需要自己根据情况设定。只要最终输出值= 目标值即可。 - 假设, 当我们识别数字时, 其实也是根据一笔一划识别的

如果让每个神经元负责识别数字的一部分, 最终到达识别所有数字, 那么就需要分层。 - 激活函数:

为了实现0, 1的输出需要选择激活函数, 一个理想的函数可以是sigmoid函数, 当然也可以是ReLU, tanh(x)等, 总之激活函数需要满足输出为0 或1. - 激活函数作用:
](https://i-blog.csdnimg.cn/blog_migrate/09bd518fdffacd9566e45bf197b5c341.png#pic_center)
通过input layer的权重和灰度值相乘, 再累加, 传入道第二层的神经元中, 通过激活函数计算输出结果, 判断是否激活, 如果激活, 证明该数字中的某一部分存在, 如果数字中的所有部分都能激活, 那么就可识别这个数字, 一般神经网络第一层识别数字的边角, 深层识别具体的图案。
11. 具体学习视频: https://www.youtube.com/watch?v=aircAruvnKk
更多推荐


所有评论(0)