神经网络学习入门示例
2023-06-19 21:33:01 1 举报
一个神经网络学习入门小示例
作者其他创作
大纲/内容
我们第二层的第一个神经元,只需要识别数码管的a段。他只需要关注2-5的像素,得到4个黑就表示这个亮起了,但是第一层的所有66个像素都会连接这个神经元,所以可以给66个神经元都添加个权重,只有2-5像素的为1,其他像素都为0。那么只要的到的结果是4就表示这个段被点亮了。
总结下,设上层输入的神经元有n个,表示为,对应的权重为,设置的阈值表示为b,那该神经元的输出就是: b ? s:0\"但是结合有的不显示和计算周围的,那么输出的结果会有0、3、4、5多种,这样激活值不统一相差可能会很大,不利于下游计算,所以需要把激活值归一化后再传给下游,归一化的工具就是激活函数。对应激活值的计算就变成:而我们经常听到的有多少多少参数,指的就是网络中的的个数。该神经网络中总共有个参数。上面因为场景限制,只需要识别七段数字,所以参数设置比较简单,但是如果扩大到28*28像素的手写数字识别呢,这么多参数怎么设置呢?
我们可以使用七段led数码管来显示数字,对七个段分别编号,通过控制不同的灯的亮灭来实现显示不同的数字。那么同理,我们只要知道数码管每个段的亮灭情况,就能推断出当前显示的是什么数字。那么如果无法直接得到每段的亮灭信息,要怎么识别显示的是什么数据呢?能否通过神经网络来实现呢?
把七段式数码管的数字转成图片,每段占四个像素,连接处一个像素。如下图总共使用66个像素点。在此归一化为黑、白两色,正常会灰度化为0-1范围内的一个值。
5
如果灯有坏的,或者拍的照片受光线影响效果不太好,如下有个像素没有亮。对应的右侧识别a段的神经元只能的到3,那么我们希望这个也认为该段是点亮了,那么我们设置个阈值,比如得到的像素大于2,就往下传递,不大于2就不传递。这个阈值就是该神经元的激活值。
66
e
6
后续可以看神经网络入门-手写数字识别。参考上面的逻辑,思考如何识别手写数字。手写数字通常使用28*28=784像素表示,通过两次处理网络。
转化为神经网络就是输入层66个神经元。我们目的是识别出0-9的十个数字,所以输出层是十个神经元,分别对应十个数字。那么怎么把66 => 10呢?
2
4
我们可以再添加一层神经元,用来处理66个输入,处理结果提供给输出层用作判断依据。中间添加的一层要有几个神经元,只添加一层够不够,这个就要靠经验了。当前我们只是识别七段的数字,有这一层限制加上上面我们反推的,只需要知道对应七段的显示情况就可以识别出数字,所以中间加一层七个的神经元,分别识别七个段就可以了。
逐步把下面的1-7置顶,可在下方依次显示对应内容
1
g
3
a
如果灯有坏的,或者拍的照片受光线影响效果不太好,如上有个像素没有亮。对应的右侧识别a段的神经元只能的到3,那么我们希望这个也认为该段是点亮了,如果在多两个坏掉的呢,a段神经元只能得到1,这样就应该认为这一段是亮的。随意我们需要设置个阈值,比如得到的像素大于2,就往下传递,不大于2就不传递。这个阈值就是该神经元的激活值。
c
总结下,设上层输入的神经元有n个,表示为,对应的权重为,设置的阈值表示为b,那该神经元的输出就是: b ? s:0\"但是结合有的不显示和计算周围的,那么输出的结果会有0、3、4、5多种,这样激活值不统一相差可能会很大,不利于下游计算,所以需要把激活值归一化后再传给下游,归一化的工具就是激活函数。对应激活值的计算就变成:而我们经常听到的有多少多少参数,指的就是网络中的的个数。该神经网络中总共有个参数。
d
b
f
7
收藏
收藏
0 条评论
下一页