想必大家已经了解过一些深度学习的知识,深度学习是基于神经网络的高级算法,那么神经网络是什么呢?
神经网络的定义
猜一猜,下图中的动物是什么?
image.png尽管图中的动物胖得出奇,你也一眼就能猜到它是一只长颈鹿。人类的大脑拥有强大的辨识能力,它是一个由大约 800 亿个神经元组成的复杂网络。即使某物体并非我们熟知的模样,我们也能够轻松地识别。
大脑神经元彼此协同工作,它们把输入信号(比如长颈鹿的图片)转换成相应的输出标签(比如“长颈鹿”)。神经网络技术的诞生正是受到人脑神经网络的启发。
神经网络是自动图像识别的基础,近年来,神经网络技术大热,主要有以下 3 个原因:
- 数据存储和共享技术取得进步。
这为训练神经网络提供海量数据,有助于改善网络的性能。 - 计算能力越来越强大。
GPU(graphics processing unit,图形处理器)的运行速度最快能达到CPU(central processing unit,中央处理器)的 150 倍。之前,GPU 主要用来在游戏中显示高品质图像。后来,人们发现它能为在大数据集上训练神经网络提供强大的支持。 - 算法结构的改进。
虽然目前神经网络在性能上还很难与人脑媲美,但是已经有一些能大幅改善其性能的技术。本文会介绍其中一些技术。
图像识别是神经网络技术的有力例证,它被应用于许多领域,包括视觉监控、汽车自主导航,还出现在智能手机中,来识别手写文字。下面来看看如何训练能识别手写数字的神经网络。
神经网络的构成
为了识别手写数字,神经网络使用多层神经元来处理输入图像,以便进行预测。下图为双层神经网络示意图。
image.png
输入不同,但是输出相同,其中红色表示被激活的神经元。
在上图双层神经网络中,虽然输入是“6”的两幅不同形态的图像,但输出是一样的,并且该神经网络使用不同的神经元激活路径。尽管每一个神经元组合产生的预测是唯一的,但是每一个预测结果都可以由多个神经元组合实现。
神经网络通常由如下几部分组成:
- 输入层,该层接收输入图像的每个像素。
- 隐藏层,在像素进入神经网络之后,它们经过层层转换,不断提高和那些标签已知的图像的整体相似度。标签已知是指神经网络以前见过这些图像。虽然转换得越多,预测准确度就会越高,但是处理时间会明显增加。一般来说,几个隐藏层就足够了。
- 输出层,该层产生最终预测结果。
- 损失层,虽然上图并未显示损失层,但是在神经网络的训练过程中,损失层是存在的。该层通常位于最后,并提供有关输入是否识别正确的反馈;如果不正确,则给出误差量。
在训练神经网络的过程中,损失层至关重要。若预测正确,来自于损失层的反馈会强化产生该预测结果的激活路径;若预测错误,则错误会沿着路径逆向返回,这条路径上的神经元的激活条件就会被重新调整,以减少错误。这个过程称为反向传播。
通过不断重复这个训练过程,神经网络会学习输入信号和正确输出标签之间的联系,并且把这些联系作为激活规则编入每个神经元。因此,为了提高神经网络的预测准确度,需要调整管理激活规则的部件。
网友评论