初识人工神经网络

我们经常会把大脑和计算机进行比较,大脑和计算机有很多相似之处。大脑包含了千亿级别的神经元(neurons ),神经元细胞互相连接协同工作从而使大脑具有不可思议的神奇能力。神经元包含细胞体和神经元突起两部分,细胞体由细胞核、细胞膜和细胞质构成,具有整合输入信息并传出信息的作用。而神经元突起又分为树突(dendrite)和轴突(axon)两种,树突具有接受刺激并将冲动传入细胞体的功能,轴突的主要是将神经冲动由胞体传至其他神经元或效应细胞。神经元是神经系统最基本的结构和功能单位,在整个大脑中神经元只有大概10%,其余部分都是神经胶质。

初识人工神经网络

我们都知道计算机的核心是处理器,处理器由大量的晶体管(transistor)构建而成。最新的微处理器包含了超过20亿个晶体管,即使是功能非常简单的微处理器也包含了至少500万个晶体管。这些晶体管共同协作使得计算机具有强大的数据处理能力。构建处理器的晶体管是一种固体半导体器件,具有检波、整流、放大、开关、稳压、信号调制等多种功能,作为一种可变电流开关,晶体管能够基于输入电压控制输出电流。由晶体管构成的处理器连接和控制各种各样的计算机外围输入输出设备,使得计算机具有强大交互能力,在我们生活中扮演着越来越重要的角色。

初识人工神经网络

虽然大脑是由大量互联的神经元细胞构成,计算机的中央处理器也是由大量的晶体管构建而成,但是大脑神经元和计算机晶体管在连接方式,以及大脑和计算机的运行方式是完全不同的。 大脑中神经元细胞以一种大量复杂并行的方式连接在一起,每个神经元可能和上万个其它神经元连接在一起;而计算机中晶体管以相对简单的方式串联在一起,每个晶体管可能只和两到三个其它晶体管连接起来形成逻辑门电路。这种连接结构上的差异导致了大脑和计算机在工作方式的巨大差异。计算机可以精确无误的存储海量的数据信息,并且可以根据计算机指令对数据进行任意处理,例如计算机可以轻松的存储整个图书馆的图书内容,并瞬间精确无误的找出任意内容。对于大脑而言这几乎是不可能的。相比于计算机,大脑可能需要花费数月甚至数年的时间来学习和理解一些复杂的东西,在此基础之上大脑可以以一种全新的方式对外界输入做出响应。例如大脑可以很容易就能准确的识别出图片中的物体,即使是图片中包含以前不曾见过的物体。 这类对于计算机而言非常复杂的问题,对大脑而言却非常的容易。这也就是神经网络的魅力所在。

人工神经网络(artificial neural networks) 是一种模仿生物神经网络行为特征,进行信息处理的算法数学模型。在人工神经网络模型中使用单元节点模拟神经元,通过调整神经网络内部大量节点(神经元)之间相互连接的权重来达到处理信息的目的。人工神经网络的神奇之处在于不需要显示的编程告诉计算机该如何处理信息,它可以像大脑一样从已知数据信息中进行自我学习,然后对全新的输入数据信息输出正确的响应。人工神经网络并非真正的大脑,它只是使用软件模拟人脑,用软件的方式使普通的晶体管像数亿互联的神经元细胞一样工作。

初识人工神经网络

一个典型的人工神经网络由一个输入层(input layer),多个隐藏层(hidden layer)和一个输出层(output layer)构成。神经网络的第一层称为输入层,被设计来从外部接收各种输入;神经网络的最后一层称为输出层,输出处理结果;位于输入和输出层之间有一到多个层称为隐藏层,神经网络的大部分由隐藏层构成。每一层由单元节点(或称为神经元,感知器)构成,并且单元节点与前后的层的单元节点互相连接。几乎所有的神经网络都是全连接的,即每层中的单元节点与它两边的层的各个单元节点都是连接的。神经网络对连接都赋予一个权重值,权重表明前一个单元的输出对下一个单元输出的影响力。

数据信息从神经网络的输入层进入神经网络,经过隐藏层单元节点的处理,最后由输出层输出处理结果。最最简单的人工神经网络是前馈神经网络,前馈神经网络是一个没有循环,单向传播,是最简单的人工神经网络。神经网络中的单元节点从它左边单元节点接收输入, 输入乘以各个连接上的权重然后求和,如果加权求和的值大于某个阀值,这个单元将触发输出到右侧与它相连单元节点。

神经网络需要经过训练和学习,从而使得神经网络能生成期望的输出。神经网络的学习可分为:监督学习,无监督学习和强化学习,神经网络的训练中最常用的是监督学习。在监督学习中每个训练实例都是由一个输入值和一个期望的输出值(也称为监督信号)组成。训练的输入值通过神经网络的后得到输出值,输出值和期望值之间的误差差从输出层开始反向逐层反馈回神经网络,这个反馈过程就是神经网络的反向传播过程。在反向传播过程中,神经网络根据误差来修正单元之间连接的权重,从而缩小输出与期望之间误差。整个训练的关键是给权重设置正确的值,从而在神经网络能够生成期望的输出。反向传播使神经网络具有自我学习的能力。

初识人工神经网络

经过训练好的神经网络能够处理全新输入数据,生成期望的输出值。例如,使用大量已经标记好的椅子和桌子的图片训练神经网络,然后当输入一张以前没有见过的椅子或桌子的图片时,神经网络会根据以往训练图片中得到的经验辨别图片中的是椅子还是桌子。在这个例子中,假设输入图片被抽象成包含五个布尔变量的向量:1)图片包含的物体是否有后背?2)是否有顶部?3)是否有柔软的垫子?4)是否可以长期舒适地坐在上面?5)能否堆放很多东西放在上面? 通过训练,神经网络学习的椅子的典型特征是有后背,没有顶部,有软垫,可以只长期舒适地坐在上面,不能放东西;而桌子的典型特征是没有后背,有顶部,没有软垫,不能长期舒适的坐在上面,可以堆放东西。当全新的图片输入神经网络时,它会检查输入数据是否具有对应的特征,并依据输入物体的特征做出判断。

神经网络被广泛的应用来解决各类问题,如模式识别,信息处理,决策制定等。在自动驾驶领域,输入层从各种传感器获取信号和数据,数据经过神经网络处理,由输出单元的输出并调整车辆的状态;在金融领域,银行也可以使用神经网络来做放贷风险控制,根据过往的信用记录,当前收入状况以及雇佣情况等来帮助决定是否向发放贷款等;日常生活中,像手写识别、语音识别等也可以通过简单的神经网络完美的解决。

相关推荐