第3章 前馈神经网络
本章内容
◎感知器模型
◎多层神经网络中常用的激活函数
◎损失函数和输出单元的选择
◎TensorFlow实现神经网络
从本章起,我们将正式开始介绍深度神经网络模型,以及学习如何使用TensorFlow实现深度学习算法。人工神经网络(简称神经网络)在一定程度上受到了生物学的启发,期望通过一定的拓扑结构来模拟生物的神经系统,是一种主要的连接主义模型(人工智能三大主义:符号主义、连接主义和行为主义)。
本章将从最简单的神经网络模型——感知器模型开始,首先了解感知器模型(单层神经网络)能够解决什么样的问题,以及它所存在的局限性。为了克服单层神经网络的局限性,我们必须拓展到多层神经网络。围绕多层神经网络,我们会进一步介绍常用的激活函数等。本章的内容是深度学习的基础,对于理解后续章节的内容非常重要。
深度学习的概念是从人工神经网络的研究中发展而来的,早期的感知器模型只能解决简单的线性分类问题,后来发现通过增加网络的层数可以解决类似于“异或问题”的线性不可分问题,这种多层的神经网络又被称为多层感知器。对于多层感知器,我们使用反向传播算法进行模型的训练,但是我们发现反向传播算法有着收敛速度慢、容易陷入局部最优等缺点,限于当时计算机的算力及数据量的不足,反向传播算法无法很好地训练多层感知器。另外,当时使用的激活函数也存在着梯度消失的问题,这使得人工神经网络的发展几乎陷入了停滞状态。
为了让多层神经网络能够训练,学者们探索了很多的改进方案,直到2006年杰弗里·辛顿等人基于深度置信网络(DBN)提出了无监督贪心逐层训练算法,才让这一问题的解决有了希望,深度学习的概念也是在这一年由杰弗里·辛顿等人提出的。
本章内容主要包括四个部分:第一部分介绍神经网络的基本结构,从基本的感知器模型到多层的神经网络结构;第二部分介绍神经网络中常用的激活函数;第三部分介绍损失函数和输出单元的选择;第四部分是使用TensorFlow搭建一个简单的多层神经网络,实现MNIST手写数字的识别。
本章知识结构图