独家 | 一文读懂人工神经网络

简介:

当听到“神经”这个词的时候,首先出现在我脑海中的是大脑中的神经元,这是我们决策过程的一部分。

这也是人类与机器人(或正常的计算机程序)主要的不同特征之一。人类可以看到事物,分析事物,并且从中学习,以期下次做得更好。

另一方面,常规程序也遵循着同样的指示,而不是自行发展。我们可以对其进行编程让它们完成某些指定任务,根据指令得到理想的结果。

但是如果我们制定程序对其进行学习,我们可以做很多事情。然后它们会随着时间的推移自行发展,这就是“机器学习”。人工神经网络(ANN)是一种用于机器学习的计算模型,它的工作方式和生物的神经元类似。

当信息到达神经元,它们(神经元)通过调整网络去感知和获取这些信息得出一个理想的结果。通过神经元传输尽量多的数据会有助于得到更精准的结果。这就是神经网络中的“训练”。

在使用神经网络之前,我们需要训练和调试,以得到理想的决策结果。为此,我们使用测试数据,包括输入进网络和相对应的预期的输出。通过适当的训练,对网络进行教学,之后就可以用它对未知的数据做出决策。

从根本上来讲,人工神经网络被用于那些输入和输出之间存在复杂关系的非线性统计数据模型。训练的主要目的是发现那些数据中的复杂关系和模式。 

“人工神经网络(英文:artificial neural network,缩写ANNs),简称神经网络(英文:neuralnetwork,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,通常是通过一个基于数学统计学类型的学习方法(LearningMethod)得以优化。——维基百科”

在需要基于计算机的预测中,神经网络非常常见。通常情况下,他们能够做出精准的预测。一部分应用于股市趋势的预测、手写识别、语音识别、土地滑坡预测等。另外像Facebook这样的社交媒体和Google这样的搜索引擎也使用神经网络来丰富用户体验。

神经网络存在许多种类:

  • 前馈神经网络
  • 循环神经网络
  • 常规反馈神经网络
  • 径向性神经网络

“前馈”网络是最早也是最简单的一种。在这种神经网络类型中,数据从输入层到隐藏层最后到输出层,没有循环或其他环形传输路线。

331f7c00c9427b0cab723379a1d9f3108bf8ebe7

NeuralNetworkwith multiple layers (https://blog.ttro.com/wp-content/uploads/2017/01/TB010-Deep-Neural-Network.jpg)

另一方面,循环神经网络中,数据前向也后向地传输着。在预测次序的时候,循环神经网络的输出也被用作输入。

我在YouTube上找到的一个简单例子来帮助理解这个概念(https://www.youtube.com/watch?v=ZzWaow1Rvho)。有红色和蓝色两种花,它们的宽度和长度的样本数据已经给出。要求使用这些已知的数据预测未知的花朵的颜色。

95e10b3c7f43b5ab087ba4ce17c1ea4e205c488c

这里使用前馈神经网络来预测正确的花朵(颜色)。我们将使用Python和Numpy库来实现。你可以通过安装“Miniconda”(https://conda.io/miniconda.html)来建立此模型。

这个简易的神经网络有花瓣的长度和宽度两个输入,输出是0或1,表示红色或蓝色。

6112bf7d95bd3682c51ce1cfa1b93963f97a0424

Oursimple neural network 

这个网络的最终输出是0或1,我们使用一个特别的函数,在这里叫做“Sigmoid”,它将任何值转换到0和1的范围内。根据它接近0或1的程度进行预测。

“Sigmoid函数是一个拥有“S”形曲线(sigmoid曲线)的数学函数。通常情况下sigmoid函数指的是逻辑函数的特例。”

7f11503d2a7c27400be318d33387f9fe2573f41d

Sigmoidfunction (https://qph.ec.quoracdn.net/main-qimg-05edc1873d0103e36064862a45566dba)

 

我们尝试通过 w1 * 长度 + w2 * 宽度 +b 对给定数据建模,其中w1,w2是两个权重,b是一个偏差。这样的方法可以用来找出数据中的任何非线性关系。

最初,我们在训练过程中随机分配给w1,w2和b一些数字,改变这些值,这样指定的模型就代表了指定的测试数据。通过使用期望值和预测值计算成本值,同时尝试使用基本的微积分理论来降低成本值实现。在训练的最后,我们将会得到一个精确的模型,同时我们将在未来使用这个模型来预测未知的数据。

在这个例子中,我们将成本方程用链式规则分别对w1,w2和b进行分解,并找到了使成本最小化的常数。这个模型很简单,所以我们手动对它进行分析。然而,有些库可以自动分析这些任务。最后,它们被用作找出神秘花朵的类型。

下图显示了训练完成后成本是如何被降低的。它在逐步减少的同时做出了更准确的预测。

52128fc6aa9ad7cf00a91eb75203f3e67a68cb72

Costvariation while learning 

正如上诉提及的那样,这个例子来自一个很棒的YouTube视频系列,想要了解更多信息,建议各位去这里一探究竟!(https://www.youtube.com/watch?v=ZzWaow1Rvho)


原文发布时间为:2018-02-1

本文作者:Sidath Asiri

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
7月前
|
机器学习/深度学习 数据处理
用人工神经网络对混凝土的强度进行建模
用人工神经网络对混凝土的强度进行建模
WK
|
3月前
|
机器学习/深度学习 自然语言处理 算法
PSO算法和人工神经网络有什么不同
PSO算法(粒子群优化)与人工神经网络(ANN)在原理、应用及优化方式上差异显著。PSO模拟鸟群行为,通过粒子协作在解空间中搜索最优解;而ANN模仿大脑神经元结构,通过训练学习输入输出映射,适用于模式识别、图像处理等领域。PSO主要用于优化问题,实时性高,结果直观;ANN则在处理复杂非线性关系方面更强大,但结构复杂,训练耗时长,结果解释性较差。实际应用中需根据需求选择合适技术。
WK
35 0
|
5月前
|
机器学习/深度学习 数据采集 算法
Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战
Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战
|
5月前
|
机器学习/深度学习 算法 数据可视化
Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战
Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战
|
7月前
|
机器学习/深度学习 传感器 芯片
LabVIEW利用人工神经网络辅助进行结冰检测
LabVIEW利用人工神经网络辅助进行结冰检测
48 0
|
7月前
|
机器学习/深度学习 算法 计算机视觉
人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例
人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例
|
7月前
|
机器学习/深度学习 编解码 算法
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
|
7月前
|
机器学习/深度学习 算法 数据挖掘
SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型
SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型
|
7月前
|
机器学习/深度学习 存储 计算机视觉
sas神经网络:构建人工神经网络模型来识别垃圾邮件
sas神经网络:构建人工神经网络模型来识别垃圾邮件
|
7月前
|
机器学习/深度学习 人工智能 算法
人工神经网络是什么
人工神经网络是什么
108 0

热门文章

最新文章