# 神经网络

想必大家已经了解过一些深度学习的知识,深度学习是基于神经网络的高级算法,那么神经网络是什么呢?

神经网络的定义

猜一猜,下图中的动物是什么?

image.png

尽管图中的动物胖得出奇,你也一眼就能猜到它是一只长颈鹿。人类的大脑拥有强大的辨识能力,它是一个由大约 800 亿个神经元组成的复杂网络。即使某物体并非我们熟知的模样,我们也能够轻松地识别。

大脑神经元彼此协同工作,它们把输入信号(比如长颈鹿的图片)转换成相应的输出标签(比如“长颈鹿”)。神经网络技术的诞生正是受到人脑神经网络的启发。

神经网络是自动图像识别的基础,近年来,神经网络技术大热,主要有以下 3 个原因:

  • 数据存储和共享技术取得进步。
    这为训练神经网络提供海量数据,有助于改善网络的性能。
  • 计算能力越来越强大。
    GPU(graphics processing unit,图形处理器)的运行速度最快能达到CPU(central processing unit,中央处理器)的 150 倍。之前,GPU 主要用来在游戏中显示高品质图像。后来,人们发现它能为在大数据集上训练神经网络提供强大的支持。
  • 算法结构的改进。
    虽然目前神经网络在性能上还很难与人脑媲美,但是已经有一些能大幅改善其性能的技术。本文会介绍其中一些技术。

图像识别是神经网络技术的有力例证,它被应用于许多领域,包括视觉监控、汽车自主导航,还出现在智能手机中,来识别手写文字。下面来看看如何训练能识别手写数字的神经网络。

神经网络的构成

为了识别手写数字,神经网络使用多层神经元来处理输入图像,以便进行预测。下图为双层神经网络示意图。


image.png

输入不同,但是输出相同,其中红色表示被激活的神经元。
在上图双层神经网络中,虽然输入是“6”的两幅不同形态的图像,但输出是一样的,并且该神经网络使用不同的神经元激活路径。尽管每一个神经元组合产生的预测是唯一的,但是每一个预测结果都可以由多个神经元组合实现。
神经网络通常由如下几部分组成:

  • 输入层,该层接收输入图像的每个像素。
  • 隐藏层,在像素进入神经网络之后,它们经过层层转换,不断提高和那些标签已知的图像的整体相似度。标签已知是指神经网络以前见过这些图像。虽然转换得越多,预测准确度就会越高,但是处理时间会明显增加。一般来说,几个隐藏层就足够了。
  • 输出层,该层产生最终预测结果。
  • 损失层,虽然上图并未显示损失层,但是在神经网络的训练过程中,损失层是存在的。该层通常位于最后,并提供有关输入是否识别正确的反馈;如果不正确,则给出误差量。

在训练神经网络的过程中,损失层至关重要。若预测正确,来自于损失层的反馈会强化产生该预测结果的激活路径;若预测错误,则错误会沿着路径逆向返回,这条路径上的神经元的激活条件就会被重新调整,以减少错误。这个过程称为反向传播。

通过不断重复这个训练过程,神经网络会学习输入信号和正确输出标签之间的联系,并且把这些联系作为激活规则编入每个神经元。因此,为了提高神经网络的预测准确度,需要调整管理激活规则的部件。

你可能感兴趣的:(# 神经网络)