神经网络算法原理_神经网络算法的应用_神经网络算法实例说明
扫描二维码
随时随地手机看文章
神经网络是一种模拟人脑结构的算法模型。其原理就在于将信息分布式存储和并行协同处理。虽然每个单元的功能非常简单,但大量单元构成的网络系统就能实现非常复杂的数据计算,并且还是一个高度复杂的非线性动力学习系统。
神经网络的结构更接近于人脑,具有大规模并行、分布式存储和处理、自组织、自适应和自学能力。神经网络的用途非常广泛,在系统辨识、模式识别、智能控制等领域都能一展身手。而现在最吸引IT巨头们关注的就是神经网络在智能控制领域中的自动学习功能,特别适合在需要代入一定条件,并且信息本身是不确定和模糊的情况下,进行相关问题的处理,例如语音识别。
神经网络算法原理由于神经网络算法的设计面太大,我们此处暂且只分析Microsoft神经网络算法的原理,在Microsoft神经网络算法中,我们可以简化成下面这个图片:
Microsoft神经网络使用的由最多三层神经元组成的“多层感知器”网络,分别为:输入层、可选隐含层和输出层。
输入层:输入神经元定义数据挖掘模型所有的输入属性值以及概率。
隐含层:隐藏神经元接受来自输入神经元的输入,并向输出神经元提供输出。隐藏层是向各种输入概率分配权重的位置。权重说明某一特定宿儒对于隐藏神经元的相关性或重要性。输入所分配的权重越大,则输入值也就越重要。而这个过程可以描述为学习的过程。权重可为负值,表示输入抑制而不是促进某一特定结果。 输出层:输出神经元代表数据挖掘模型的可预测属性值。
数据从输入经过中间隐含层到输出,整个过程是一个从前向后的传播数据和信息的过程,后面一层节点上的数据值从与它相连接的前面节点传来,之后把数据加权之后经过一定的函数运算得到新的值,继续传播到下一层节点。这个过程就是一个前向传播过程。
而当节点输出发生错误时,也就是和预期不同,神经网络就要自动“学习”,后一层节点对前一层节点一个“信任”程度(其实改变的就是连接件的权重),采取降低权重的方式来惩罚,如果节点输出粗粗哦,那就要查看这个错误的受那些输入节点的影响,降低导致出错的节点连接的权重,惩罚这些节点,同时提高那些做出正确建议节点的连接的权重。对那些受到惩罚的节点而说,也用同样的方法来惩罚它前面的节点,直到输入节点而止。这种称为:回馈。 而我们学习的过程就是重复上面的介绍的流程,通过前向传播得到输入值,用回馈法进行学习。当把训练集中的所有数据运行过一遍之后,则称为一个训练周期。训练后得到神经网络模型,包含了训练集中相应值和受预测值影响变化的规律。
在每个神经元中的隐含层中都有着复杂的函数,并且这些都非线性函数,并且类似生物学神经网络的基本传输特征,这些函数称之为:激活函数,即:输入值发生细微的变化有时候会产生较大的输出变化。
神经网络算法的应用在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人、复杂系统控制等等。
纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子,生命起源等科学技术领域的进程中历经了崎岖不平的道路。我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。
尽管神经网络现在已经被广泛用于语音识别领域,但是其用途肯定不限于此。下一步,神经网络最有可能进入图像软件领域。与分辨声音的过程类似,神经网络在分析图像时,每一层的图像探测器会首先寻找图像中的一些特征,例如图像的边缘。
当探测完成之后,另一层的软件就会将这些边缘结合起来,就会形成图像的边角等特征。然后如此反复下去,识别的图像特征就会越来越清晰、明确,到了最后一层就将所有图像特征结合起来,与数据库中的数据进行对比,就能得出图片里的物体究竟是什么的结论。
前面提到的谷歌狄恩研究小组就采用这种方法,开发出了一套软件,已经可以通过自学分辨出网络视频里的猫。或许未来这套软件将会推广到图片搜索领域,谷歌街景利用这一算法就能区分出不同事物的特征。 此外,神经网络在医学领域也有施展拳脚的空间,多伦多大学的一个研究团队,已经成功地用神经网络分析出药物分子在实际环境中可能的作用方式。