四、神经网络的应用
(一)分 类
神经网络最重要的用途是分类,如以下应用场景:
(1)垃圾邮件识别:有一封电子邮件,把出现在里面的所有词汇提取出来,通过神经网络识别是否是垃圾邮件。
(2)疾病判断:病人首先进行多种医学检测,并将检测结果送入神经网络,从输入结果来判断病人是否得病,得的是什么病。
(3)图像分类:比如有一批街景的图片,通过神经网络模型,计算机可以分辨出哪些是树,哪些是人,哪些是交通灯。
这种能将事物的特征向量作为输入端,并自动判别事物类别的机器,称之为分类器。神经网络对事物的分类,主要是通过神经元和多层神经网络来完成的。单个神经元也称之为感知器,即通过接收信息(输入数据)→处理信息(激活函数)→发出信息(输出数据)进行信息转换。
对简单数据集的分类,如前面提到的平面上下(或左右)两类数据,用一条直线就可以进行分类,用两个神经元和一层神经网络即可轻松解决问题。但在现实场景中,要解决的问题远比平面两类数据复杂得多,如图 2-7-12所表示的 A、B 两类,就无法用一根直线将两个类别区分开来。
图 2-7-12 三种分类形态
![]() | ![]() | ![]() |
解决复杂问题的方法就是多层神经网络。神经网络是由多层构建的,每一层及每一个神经元都有其作用,多层的多个神经元联合起来就能够解决复杂问题。
从数学层面来理解, ,其中是输入向量, 是输出向量,是偏移向量, 是权重矩阵, 是激活函数,每一层都仅仅是把输入 经过简单操作得到 。通过对输入空间(输入向量的集合)的操作,完成输入空间→输出空间的变换。总的来说,每个神经元能够执行的空间转换包括五种操作:① 升维/降维;② 放大/缩小;③ 旋转;④ 平移;⑤“弯曲”。这五种操①②③的操作由 实现,④的操作由 实现,⑤的操作由 实现。通过下图可以查看螺旋线的空间变形,也可从图 2-7-13 所示的红蓝两线在不同空间的分割对比体会神经元的作用。

![]() |
![]() | ![]() |
因此,在低维度空间无法解决的问题,可以通过各种操作手段使之进入高维度空间,即增加隐含层数和神经元个数,经过如此复杂的空间变换后,许多复杂问题就可以找到解决办法。以下是两个非常好的可视化神经网络空间变换互动模型,通过随意变换参数,可以快速了解人工神经网络的工作原理及各层各神经元的工作状态并参与迭代过程。
(1)ConvnetJs demo:二分类神经网络训练模型,可以增删隐藏层及神经元个数,呈现各神经元的空间扭曲及变形状态。
(2)Google Tensorflow-Playground:二分类神经网络训练模型,可以简单并直观地增删隐藏层及神经元个数,并且可选择激活函数及正则化类型。
需要说明的是,人工神经网络在训练数据时需要对数据做前期处理,或称数据清洗,主要是输入数据的归一化处理及分类结果的 One-hot 编码等,在此不再赘述。
(二)回 归
回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。人工神经网络模型算法也可以进行回归分析,其分析原理及计算过程与分类分析大体相同,区别是需要对损失函数和神经网络最后一层输出激活函数修改,主要注意以下两点:
(1)损失函数最常用均方误差:
(2)最后一层往往不采用激活函数,直接用得到最后结果,因为激活函数会将线性加权的结果映射到固定范围。
所有资源下载
。
