跳转到主要内容

科普|人工智能--神经网络

editor Chen 提交于

AI的另一个研究领域,神经网络,灵感来自于人类神经系统的自然神经网络。

<font size="4" color="blue">什么是人工神经网络(ANNs)?</font>
第一台神经网络机器的发明人Robert Hecht Nielsen博士,定义了一个神经网络为−“一个由许多简单、高度互联的处理单元组成的计算系统,它们通过外部输入的动态响应来处理信息。”

<font size="4" color="blue">ANNs基本结构</font>
人工神经网络的概念是基于这样的信念:人脑工作进行正确的连接,可以模仿使用硅线作为生活 神经元树突。
人类的大脑是由1000亿个神经细胞组成,称为 神经元。 被 轴突连接到其他成百上千的细胞。外界环境的刺激或感官器官的输入被树突接受。这些输入产生电脉冲,通过神经网络迅速传播。然后,神经元可以发送消息到其他神经元处理的问题,或不向前发送神经元信息。

<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

人工神经网络由多个节点组成,它模仿人脑的生物神经元。神经元由链接相互连接,他们之间产生相互影响。节点可以接收输入数据并对数据进行简单操作。这些操作的结果传递给其他神经元。每个节点的输出称为 激活 或 节点值。
每一个环节都与 权 相关。人工神经网络能够学习的,这是通过改变权值来实现的。下面的插图显示了一个简单的ANN−

<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

<font size="4" color="blue">人工神经网络的类型</font>
有两个人工神经网络的拓扑结构 − 前馈和反馈。

<strong>前馈神经网络</strong>

信息流是单向的。一个单位向其他单位发送信息,使其不接收任何信息。没有反馈循环。它们用于模式生成/识别/分类。它们有固定的输入和输出。
<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

<strong>反馈神经网络</strong>

在这里,反馈回路是允许的。它们在内容寻址存储器中使用。
<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

<strong>人工神经网络的工作</strong>

在所示的拓扑图中,每个箭头表示两个神经元之间的连接,并指示信息流的通路。每个连接都有一个权值,一个控制两个神经元之间的信号的整数。

如果网络生成一个“好的或期望的”输出,就不需要调整权重。然而,如果网络产生一个“不希望”的输出或错误,那么系统改变的权重,以改善后续结果。

<strong>人工神经网络中的机器学习</strong>
人工神经网络是可学习的并且他们需要进行培训。有几种学习策略−

<strong>监督学习 </strong>−涉及教师,学者比人工神经网络本身更具有特定的知识水平。例如,老师提供一些例子数据,老师已经知道答案。
例如,模式识别。人工神经网络在识别时产生了猜测。然后老师给ANN提供答案。然后将网络与教师的“正确”答案进行比较,并根据错误进行调整。

<strong>无监督学习 </strong>−没有实例数据与已知的答案时,他被需要。例如,搜索隐藏模式。在这种情况下,聚类即除以一组元素的组根据一些未知的图案进行基于现有的数据集目前。

<strong>强化学习</strong> −该策略建立在观察。人工神经网络根据其对环境的观察做决定。如果观察是负面的,网络调整其权重,以便能够作出不同的要求下一次的决定。

<strong>反向传播算法</strong>

它是训练或学习算法。通过实例学习。如果您提交了算法的例子,你想让神经网络做,它改变网络的权重,以便它可以产生期望的输出为特定的输入完成培训。
反向传播网络是简单的模式识别和映射任务的理想选择。

<font size="4" color="blue">贝叶斯网络(BN)</font>

这些是用来表示一组随机变量之间的概率关系的图形结构。贝叶斯网络也被称为 信念网络 或 贝叶斯网。 BNS对不确定的领域提出问题。

在这些网络中,每个节点代表一个随机变量的具体命题。例如,在医学诊断领域,淋巴结癌代表了病人患癌症的主张。

连接节点的边缘代表这些随机变量之间的概率依赖关系。如果有两个节点,一个是影响另一个的,那么他们必须直接连接方向的效果。变量之间的关系的强度的量化代表每个节点相关联的概率。

在BN的弧上只有一个约束,你不能简单地按照有向弧返回节点。因此,网络被称为有向无环图(DAG)。

同时BNS具有能够处理多值变量的能力。BN变量是由两个维度组成−

介词的范围
概率分配给每个介词

考虑一个有限集X = { X1,X2,…,n}的离散随机变量,其中每个变量 Xi可能从一个有限集合中取值,通过 Val(Xi)表示。如果从变量Xi到变量Xj有一个直接链接,那么Xi变量将会是变量Xj的父类,来显示变量之间的直接依赖关系。
BN的结构结合先验知识和观测数据是最理想的。BN可以用来学习因果关系,了解各种问题域,并预测未来的事件,即使在数据丢失的情况下。

<strong>建立贝叶斯网络</strong>

一个知识工程师可以建立一个贝叶斯网络。当建立贝叶斯网络时有很多工程师需要采用的步骤

<strong>实例问题 </strong>− 肺癌。一个病人已经患有呼吸困难。他去看医生,怀疑他得了肺癌。医生知道,除了肺癌,还有其他各种可能的疾病,如肺结核和支气管炎。

<strong>收集问题的相关信息</strong>
患者是否吸烟呢?如果是,那么癌症和支气管炎的几率很高。
病人是否暴露于空气污染?如果是的话,什么样的空气污染?
发现有趣的变量

<strong>知识工程师试图回答的问题−</strong>
哪一个节点来表示?
他们可以接收哪些值?可以到达哪种状态

现在让我们考虑只有离散值的节点。变量必须每次精确地取一个值。

<strong>常见的离散节点类型 −</strong>
<strong>布尔节点 −</strong>他们代表的命题采用二进制值真(T)和假(F)来表示。
<strong>序值 −</strong>节点Pollution 可能代表从{low, medium, high}描述病人接触污染的程度。
<strong>积分值 −</strong>名称为Age 的节点代表从1到120的可能值患者的年龄。即使在这个早期阶段,建模的选择正在作出。

对于肺癌的例子−可能的节点和值
<center><img width="600" src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

<strong>在节点之间创建弧</strong>

网络的拓扑结构应捕捉变量之间的定性关系。
例如,是什么原因导致病人得了肺癌?-污染与吸烟。然后添加节点 污染 和节点 吸烟者 节点 肺癌弧。
同样,如果患者有肺癌,那么X光结果将是阳性的。然后添加节点从肺癌弧到节点 X的射线。

<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

<strong>指定的拓扑结构</strong>

通常,BNS使弧点从上到下。节点X的父节点的集合由 Parents(X)给出。
肺癌的 节点有两父类(reasons 或者是causes):Pollution 以及Smoker,而节点 Smoker是节点 X射线的根基 。

<strong>条件化的可能性</strong>

现在量化连接节点之间的关系:这是通过指定每个节点的条件概率分布。只有离散变量被认为是在这里,这需要一个 条件概率表的形式(CPT)。

首先,对于每个节点,我们需要看看所有可能的组合,这些父节点的值。每一个这样的组合称为母类的 实例化 集。对于父节点值的每一个不同的实例化,我们需要指定子类将采取的概率。

例如,肺癌的 节点的父母 污染 和 吸烟。 他们采取的可能值= {(H,T),(H,F),(L,T),(L,F)}。CPT为每一种情况指定癌症的概率分别为< 0.05,0.02,0.03,0.001 >。

每个节点将有相关的条件概率如下−

<center><img src="http://imgtec.eetrend.com/sites/imgtec.eetrend.com/files/201705/blog/97…; alt="科普|人工智能--神经网络"></center>

<font size="4" color="blue">神经网络的应用</font>

他们可以执行对人来说简单,但是对机器来说很难的任务

<strong>航空航天</strong> −驾驶飞机,飞机故障检测。
<strong>汽车</strong> −汽车导航系统。
<strong>军事 </strong>−武器定位和方向、目标跟踪、目标识别、面部识别、信号/图像识别。
<strong>电子 </strong>−编码序列预测,IC芯片的布局,芯片失效分析、机器视觉、语音合成。
<strong>金融 </strong>−房地产估价、抵押贷款顾问,筛选,公司债券评级,投资组合交易程序、企业财务分析、货币价值预测,文档阅读器,信用的应用评估。
<strong>工业 </strong>−生产过程控制、产品设计与分析、质量检验系统、焊接质量分析,论文的质量预测,化工产品设计分析、化工过程系统的动态建模,机器维修分析、工程招投标、规划与管理。
<strong>医疗 </strong>−癌细胞分析,假体设计的心电图和脑电图分析,移植时间优化。
<strong>语音 </strong>−语音识别、语音识别、文本语音转换。
<strong>电信</strong> −图像和数据压缩、自动信息服务,实时的口语翻译。
<strong>交通 </strong>−货车制动系统诊断、车辆调度、路由系统。
<strong>面部识别软件 </strong>−模式识别、光学字符识别等。
<strong>时间序列预测 </strong>−人工神经网络用于股票和自然灾害进行预测。
<strong>信号处理 </strong>−可以训练神经网络来处理音频信号和滤波器适当的助听器。
<strong>控制 </strong>−ANN通常用来制作物理车辆转向的决定。
<strong>异常检测 </strong>−作为ANNs在模式识别专家,他们也可以被训练来生成输出时发生不寻常的事,不适合的模式。