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

沦落天堂 2018-02-04

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

作者:Sidath Asiri

翻译:Nicola

校对:卢苗苗

原文标题:MeetArticial Neural Networks

本文约1500字,建议阅读5分钟

本文通过使用浅显易懂的语言和介绍youtube上的实验方式带读者认识人工神经网络。

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

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

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

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

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

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

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

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

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

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

神经网络存在许多种类:

  • 前馈神经网络

  • 循环神经网络

  • 常规反馈神经网络

  • 径向性神经网络

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

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

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)。有红色和蓝色两种花,它们的宽度和长度的样本数据已经给出。要求使用这些已知的数据预测未知的花朵的颜色。

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

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

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

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

Oursimple neural network

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

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

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

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

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

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

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

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

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

Costvariation while learning

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

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

Nicola,北美东部大四在读,喜欢政治和数据的商科生。空余时候通过翻译学术文档扩充知识,假期会去不同的地方旅游,平时研究香氛研究护肤。同时也在联系数据库分析等,希望能认识更多未来的数据科学家们。

相关推荐