这篇文章主要通过几个简单的例子来演示神经网络
0.目标
从一组输入的样本中找到规律,并生成一个程序(函数),接受新的输入,预测结果。
1.输入输出
众所周知,在计算机内部数据是以二进制按顺序存放在存储空间的,一组有序的数字 在数学中叫做向量,所以对于神经网络而言,可以认为输入都是一个向量,同理,输出也可以当作向量处理。
在编程语言里,通常用一维数组表示向量
绝大多数时候,我们所用的数据不止一组,同时向量组可以用矩阵表示,所以我们把输入输出都当作矩阵。
这里涉及一个输入模式输出对的集合(训练数据)。每个输入向量都有一个对应的期望输出向量、或者称作是目标向量。
2.一个简单的例子
考虑输入为 X=⎛⎝⎜⎜⎜001101011111⎞⎠⎟⎟⎟ ,输出为 Y=⎛⎝⎜⎜⎜0111⎞⎠⎟⎟⎟ 的一组数据。
我们先动用真正的人工智能(就是我们自己)找下规律:
- 显然,第三列对输出没有影响,然后一、二列和输出呈现出跟或门 类似的关系。
下面我们来让计算机自动的从输入输出中学习这种规律(所谓的机器学习)。
现在我们要将一个 4∗3 的矩阵映射到 4∗1 的矩阵中去,最简单直观的做法的用一个 3∗1 的矩阵 W 与
那么,现在的目标就是求这个 W (称作权值).
注:在这
W 的大小与输入的向量组的数量( X 的列数)无关,所以不管有多少组数据,对于这个模型而言W 还是 3∗1 的首先,我们用随机数初始化 W :
W=⎛⎝⎜RandomRealRandomRealRandomReal⎞⎠⎟=⎛⎝⎜0.6398750.09068380.14675⎞⎠⎟ 然后计算 Y^=XW=⎛⎝⎜⎜⎜0.146750.2374340.7866250.877309