关于图像识别,依旧用简单的圈○叉Χ图像在计算机能处理的例子来说明神经网络如何自动提取图像特征:
我们可以看到图像圈和叉都可以由9个二进制数表达
9个二进制数和9个像素的位置对应,组成3 x 3的方阵,我们将这种方形的数据结构叫“矩阵”。进一步用X11 --- X33 表达和处理图像圈叉。我们要用神经网络来区分圈叉,实际上是要处理这样一个问题:设计一个神经网络并调整其参数,能对圈叉进行正确识别。
我们设计一个简单的单层神经网络。输入层有9个神经元,对应圈叉图像的9个像素,输出层有一个神经元,用于对图像进行识别。
我们知道识别不同的东西就是找不同点,差异越大越好识别。结合之前的神经网络学习,知道将圈和叉正确识别,重点在于让圈和叉的二进制矩阵的元素X 和权重w 相乘后的和有尽可能大的差异,也就是说圈的X 矩阵乘以对应的权重w 的和尽可能的小(或大),叉的X 矩阵乘以对应的权重w 的和尽可能的大(或小)。
X 矩阵乘以对应的权重w 的和公式即:
(X11 xw11)+ (X12 xw12 )+(X13 xw13)+(X21 x w21 )+(X22 xw22)+(X23 xw23)+(X31 xw31 )+(X32 xw32)+(X33 xw33)
在此引入矩阵点乘符号“*“这个概念,以上公式可以简写为:
X * w=(X11 xw11)+ (X12 xw12 )+(X13 xw13)+(X21 x w21 )+(X22 xw22)+(X23 xw23)+(X31 xw31 )+(X32 xw32)+(X33 xw33)
其中,X表示由X11--- X33组成的矩阵,w表示由w11--- w33组成的矩阵。矩阵点乘表示两个矩阵相同位置元素相乘后之和。
接下来就是权重w取值问题。为了使圈的矩阵点乘结果最小,叉的矩阵点乘结果最大。为简化问题权重w值只取0或1。通过观察一个比较好的权重设置为叉矩阵数值为1时相应权重设置为1,其它设置为0,这样保证叉矩阵点乘值最大。如图所示
圈:X * w=(0x1)+(1x0)+(0x1)+(1x0)+(0x1)+(1x0)+(0x1)+(1x0)+(0x1)=0
叉:X * w=(1x1)+(0x0)+(1x1)+(0x0)+(1x1)+(0x0)+(1x1)+(0x0)+(1x1)=5
此时阀值设置为≥5,单层神经网络设置如图