神经网络入门
眼下最热门的技术,绝对是人工智能。 人工智能的底层模型是 “神经网络” (neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。 什么是神经网络呢?网上似乎 缺乏 通俗的解释。 前两天,我读到 Michael Nielsen 的开源教材 《神经网络与深度学习》 (Neural Networks and Deep Learning),意外发现里面的解释非常好懂。下面,我就按照这本书,介绍什么是神经网络。 这里我要感谢 优达学城 的赞助,本文 结尾 有他们的 《前端开发(进阶)》 课程的消息,欢迎关注。 一、感知器 历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。 外部刺激通过神经末梢,转化为电信号,转导到神经细胞(又叫神经元)。 无数神经元构成神经中枢。 神经中枢综合各种信号,做出判断。 人体根据神经中枢的指令,对外部刺激做出反应。 既然思考的基础是神经元,如果能够"人造神经元"(artificial neuron),就能组成人工神经网络,模拟思考。上个世纪六十年代,提出了最早的"人造神经元"模型,叫做 “感知器” (perceptron),直到今天还在用。 上图的圆圈就代表一个感知器。它接受多个输入(x1,x2,x3…),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。 为了简化模型,我们约定每种输入只有两种可能:1 或 0。如果所有输入都是1,表示各种条件都成立,输出就是1;如果所有输入都是0,表示条件都不成立,输出就是0。 二、感知器的例子 下面来看一个例子。城里正在举办一年一度的游戏动漫展览,小明拿不定主意,周末要不要去参观。 他决定考虑三个因素。 天气:周末是否晴天? 同伴:能否找到人一起去? 价格:门票是否可承受? 这就构成一个感知器。上面三个因素就是外部输入,最后的决定就是感知器的输出。如果三个因素都是 Yes(使用 1 表示),输出就是1(去参观);如果都是 No(使用 0 表示),输出就是0(不去参观)。 三、权重和阈值 看到这里,你肯定会问:如果某些因素成立,另一些因素不成立,输出是什么?比如,周末是好天气,门票也不贵,但是小明找不到同伴,他还要不要去参观呢? 现实中,各种因素很少具有同等重要性:某些因素是决定性因素,另一些因素是次要因素。因此,可以给这些因素指定权重(weight),代表它们不同的重要性。 天气:权重为8 同伴:权重为4 价格:权重为4 上面的权重表示,天气是决定性因素,同伴和价格都是次要因素。 如果三个因素都为1,它们乘以权重的总和就是 8 + 4 + 4 = 16。如果天气和价格因素为1,同伴因素为0,总和就变为 8 + 0 + 4 = 12。 ...
