概述
简而言之,神经网络就是函数:输入数据,输出结果。
函数
我们以MNIST手写数字图像识别为例,来定义一下对应的函数形式:
- 任务类型:图像分类
- 输入:一张图像包含28 x 28=784个像素,每个像素用一个实数表示
- 输出:0-9
- 任务描述:从图像张识别出唯一的数字
-
函数定义
这是神经网络的一个入门级应用,输入是一张低分辨率(28 x 28)的黑白图片,对应的是一个拥有784个输入变量的函数。如果是一张百万像素的彩色图片,对应的输入变量就会达到300万个。
由此可见,用神经网络解决的都是一些复杂的问题,对应的也是复杂的函数。实现算法就是要构造对应的函数。
如此复杂的函数如何构造呢?我们可以从简单的函数开始,最简单且最成功的的例子就是数字电路。
数字电路
数字电路是计算机的基石,构建了我们庞大的数字世界。但是其核心却是由与、或、非逻辑门所构成。
什么是逻辑门?其实就是函数。而且都是最简单的函数。
逻辑门 | 表达式 | 函数形式 |
---|---|---|
与门 AND | ||
或门 OR | ||
非门 NOT |
- 变量类型: 都是布尔变量,只有2个值:,远比自然数()、实数()简单。
- 变量数:一元或二元函数,也是最简单的函数形式
- 函数表示:使用真值表进行描述。为什么不用图像呢?因为是离散函数,在图像上是一些孤立的点,不太好看。
非门NOT
与门AND、或门OR
与门图像
或门图像
组合逻辑门
将简单的逻辑门进行组合,可以获得更强大的函数。
构造新的二元函数:
-
异或:
-
同或:
构造多元函数:
-
3位与:
-
8位加法器:
- 它是一个包含16个布尔变量的16元函数
通过对简单函数的复合,可以构造复杂的函数。这一思想也适用于神经网络。
神经网络
神经网络也是函数。像数字电路一样,它也是由简单的函数复合而成。数字电路的基本单位是与、或、非门,而神经网络的基本单位则是神经元。
神经元
那什么是神经元呢?生物神经元是一个细胞,有输入的树突,有输出的轴突。而神经网络上的神经元是人工神经元,它也是一个函数,更准确地说,它是一类函数。
神经元的输入数量是可以变化的,也就是说它代表的是一个元函数,而不同神经元的是可以不同的。
神经网络
神经元之间相互组合,就构成了神经网络。如下图所示:
该神经网络包含三个神经元:
神经网络所代表的函数为:
问题
神经元所代表的函数到底是什么?
只知道是个元函数可不够,数字电路中的基本单元与、或、非门可都是列出了真值表,画出了图像的,而神经元呢?
参考软件
可交互图表版本,请参考: 神经网络与深度学习
网友评论