机器学习 神经网络(1)
如何识别手写数字呢,我们 28 * 28 矩阵表示作为输入,输出是一个 0 - 9 中的一个数字。今天就这个课题给大家介绍一下什么是神经网络。我们看一下识别 8 的过程, 8 是由两个圈 o组成的,所以我们需要先识别出 o 圈,那么我们怎么识别出圈 o的呢。我们可以看到图片按像素划分为小格子,每一个那么输入是矩阵,每一个像素
神经网络是我们大脑认识事物的结构,这里可以将神经网络拆分为神经和网络两个词。我们看一看什么样的神经网络结构可以识别出这些手写的数字。
神经指的是神经元,网络指的是由神经元组成的网络。我们可以把神经元理解为一个数字的容器,这个数字叫做 activation 。
理清一下思路,第一步弄清我们的系统的输入和输出,然后在设计我们的神经网络,最后找出层与层间关系,找出最优算法模型。
1我输入是一张手写的数字图 输出是一个数字,好那么最后一层就是10节点代表 0 到 9数字。输入一张图,怎么把图片转换为计算机能够识别的数据结构呢,我们 28 * 28 的矩阵,矩阵的每个值是像素的灰度值。然后我们把多维矩阵转换一维矩阵。一维矩阵作为输入第一层神经元。
2 开始设计神经网络之前,先想一想应该如何让机器识别出数字呢,以 9 为例,由于识别 9 这件事太自然了,所以很少认真思考人类是如何把 9 从其他数字区分开的,是因为他外形,就是由一个圈和一个竖组成的。
8 呢是由两个圈来组成的,以此类推
这样我们把每个数字拆分成圆圈,竖线或横线的一小部分,数字是由这些小部分组成的。
然后我们继续对圈和竖线进行分解,将他们也分解成更细的组成部分,一个一个的小线段以便我们来识别。
我们现在将图形分解为许多线端(部件)组成的。这里以 9 为例,我们通过一次判断 9 是否圆圈和竖线,以及他们出现位子来判断图中数值是否为 9。
那么我们又是如何识别出线段的呢,下次给大家分享。