• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

简单理解深度学习神经网络

框架 rin, seun 1年前 (2020-07-01) 375次浏览 0个评论

机器学习,尤其是深度学习,是改变世界的两种技术。

经过长达30年的漫长的“ AI冬季”之后,计算能力和数据集终于赶上了20世纪下半叶提出的人工智能算法。

这意味着深度学习模型最终被用于做出解决现实问题的有效预测。

对于数据科学家和软件工程师而言,全面了解深度学习模型的工作原理比以往任何时候都更为重要。本文将以简单的英语解释深度学习神经网络的历史和基本概念。

深度学习的历史

深度学习Geoffrey Hinton在1980年代概念化。他被广泛认为是深度学习领域的创始人。自2013年3月收购其公司DNNresearch Inc.以来,Hinton一直在Google工作。

Hinton在深度学习领域的主要贡献是将机器学习技术与人脑进行了比较。

更具体地说,他创建了“神经网络”的概念,这是一种深度学习算法,其结构类似于大脑中神经元的组织。Hinton之所以采用这种方法,是因为人脑可以说是当今已知的最强大的计算引擎。

Hinton创建的结构称为人工神经网络(或简称为人工神经网络)。这是它们如何工作的简要说明:

  • 人工神经网络由节点层组成
  • 每个节点的设计行为都类似于大脑中的神经元
  • 神经网络的第一层称为该input层,然后是hidden各层,最后是该output
  • 神经网络中的每个节点都执行某种计算,然后传递给神经网络中更深的其他节点

这是简化的可视化效果,以演示其工作原理:简单理解深度学习神经网络

神经网络代表了深度学习领域的巨大进步。

但是,机器学习(尤其是深度学习)花了数十年才崭露头角。

在下一节中,我们将探讨原因。

为什么深度学习不能立即发挥作用

如果深度学习最初是几十年前构想的,为什么今天才刚刚开始兴起?

这是因为任何成熟的深度学习模型都需要大量两种资源:

  • 数据
  • 计算能力

在深度学习的概念诞生之时,研究人员无法获得足够的数据或计算能力来构建和训练有意义的深度学习模型。随着时间的流逝,这种情况发生了变化,这导致了深度学习的发展。

了解深度学习中的神经元

神经元是任何深度学习模型的关键组成部分。

实际上,有人可能会说,如果对神经元的工作原理有深刻的了解,就无法完全理解深度学习。

本节将向您介绍深度学习中神经元的概念。我们将讨论深度学习神经元的起源,它们是如何受到人脑生物学的启发,以及为什么神经元在当今的深度学习模型中如此重要。

什么是生物学中的神经元?

深度学习中的神经元受到人脑中神经元的启发。这是大脑神经元的解剖图:简单理解深度学习神经网络

如您所见,神经元具有相当有趣的结构。神经元组在人脑内部协同工作,以执行我们日常生活中所需的功能。

杰弗里·欣顿(Geoffrey Hinton)在神经网络的开创性研究中提出的问题是,我们是否可以构建与大脑神经元行为类似的计算机算法。希望是通过模仿大脑的结构,我们可以捕获大脑的某些功能。

为此,研究人员研究了神经元在大脑中的行为方式。一个重要的发现是,神经元本身是无用的。相反,您需要神经元网络来生成任何有意义的功能。

这是因为神经元通过接收和发送信号来起作​​用。更具体地说,神经元dendrites接收信号并通过这些信号传递这些信号axon

dendrites一个神经元被连接到axon另一个神经元的。这些连接称为synapses,这是一个已推广到深度学习领域的概念。

什么是深度学习中的神经元?

深度学习模型中的神经元是数据和计算流经的节点。

神经元的工作方式如下:

  • 它们接收一个或多个输入信号。这些输入信号可以来自原始数据集,也可以来自位于神经网络上一层的神经元。
  • 他们执行一些计算。
  • 它们通过信号向神经网络中较深的神经元发送一些输出信号synapse

这是深度学习神经网络中神经元功能的示意图:简单理解深度学习神经网络

让我们逐步浏览该图。

如您所见,深度学习模型中的神经元能够使突触连接到上一层中的多个神经元。每个突触都有一个关联的weight,这会影响整个神经网络中先前神经元的重要性。

权重是深度学习领域中非常重要的主题,因为调整模型的权重是训练深度学习模型的主要方法。稍后,当我们从头开始构建第一个神经网络时,您将在实践中看到这一点。

一旦神经元从模型的上一层中的神经元接收到输入,它将每个信号相乘并乘以相应的权重,然后将它们传递给激活函数,如下所示:简单理解深度学习神经网络

激活函数计算神经元的输出值。然后,该输出值通过另一个突触传递到神经网络的下一层。

这是深度学习神经元的广泛概述。不用担心会花很多钱-在本教程的其余部分中,我们将学习有关神经元的更多信息。到目前为止,对您在深度学习模型中的结构有一个高层次的了解就足够了。

深度学习激活功能

激活功能是深度学习中要理解的核心概念。

它们使神经网络中的神经元通过突触相互通信。

在本节中,您将学习了解激活功能在深度学习中的重要性和功能。

深度学习中的激活功能是什么?

在最后一节中,我们了解到神经元从神经网络的上一层接收输入信号。这些信号的加权总和被输入到神经元的激活函数中,然后激活函数的输出被传递到网络的下一层。

我们将在本教程中讨论四种主要的激活函数类型:

  • 阈值功能
  • 乙状结肠功能
  • 整流器功能或ReLU
  • 双曲正切函数

让我们逐一研究这些激活功能。

阈值函数

阈值函数根据天气计算不同的输出信号,其输入是否高于或低于某个阈值。请记住,激活函数的输入值是来自神经网络中前一层的输入值的加权和。

从数学上讲,这是深度学习阈值函数的正式定义:简单理解深度学习神经网络

如上图所示,阈值函数有时也称为unit step function

阈值函数类似于计算机编程中的布尔变量。它们的计算值是1(类似于True)或0(等于False)。

乙状结肠功能

由于在逻辑回归中使用了S型函数,因此它在数据科学界是众所周知的,这是用于解决分类问题的核心机器学习技术之一。

sigmoid函数可以接受任何值,但始终会计算0和之间的值1

这是S型函数的数学定义:简单理解深度学习神经网络

S形函数比阈值函数的好处之一是其曲线平滑。这意味着可以计算曲线上任何一点的导数。

整流器功能

整流器函数的平滑度特性与上一节中的S形函数不同。但是,它在深度学习领域仍然很受欢迎。

整流器功能定义如下:

  • 如果输入值小于0,则函数输出0
  • 如果不是,则函数输出其输入值

这是用数学方法解释的概念:简单理解深度学习神经网络

整流器功能通常简称为Rectified Linear Unit激活功能ReLUs

双曲正切函数

双曲正切函数是本教程中包含的唯一基于三角恒等式的激活函数。

它的数学定义如下:简单理解深度学习神经网络

双曲正切函数在外观上类似于S型函数,但其​​输出值都向下移动。

神经网络实际上如何工作?

到目前为止,在本教程中,我们已经讨论了构建神经网络的两个构建块:

  • 神经元
  • 激活功能

但是,您可能对神经网络的实际工作方式仍然有些困惑

本教程将把我们已经讨论过的部分放在一起,以便您了解神经网络在实际中是如何工作的。

我们将在本教程中使用的示例

本教程将逐步介绍一个真实的示例,以便您可以了解神经网络如何进行预测。

更具体地说,我们将处理房地产估价。

你可能已经知道,有一的因素影响,房价,包括经济,利率,其卧室/浴室的数目,它的位置。

该数据集的高维度使其成为构建和训练神经网络的有趣候选对象。

关于这一部分的一个警告是我们将用来进行预测的神经网络已经过训练。在本教程的下一部分中,我们将探讨训练新神经网络的过程。

数据集中的参数

让我们开始讨论数据集中的参数。更具体地说,让我们假设数据集包含以下参数:

  • 平方英尺
  • 卧室
  • 到市中心的距离
  • 入室年龄

这四个参数将构成人工神经网络的输入层。请注意,实际上,您可能会使用许多其他参数来训练神经网络来预测房价。为了使示例相当简单,我们将此数字限制为4。

神经网络的最基本形式

在其最基本的形式中,神经网络只有两层-输入层和输出层。输出层是实际进行预测的神经网络的组成部分。

例如,如果您想使用简单的加权和(也称为线性回归)模型进行预测,则您的神经网络将采用以下形式:简单理解深度学习神经网络

尽管此图有点抽象,但要点是大多数神经网络都可以这种方式可视化:

  • 输入层
  • 可能有些隐藏层
  • 输出层

正是神经元的隐藏层使神经网络在计算预测方面如此强大。

对于隐藏层中的每个神经元,它使用神经网络最后一层中的一些(或全部)神经元执行计算。然后,将这些值用于神经网络的下一层。

神经网络隐藏层中神经元的目的

您可能想知道–隐藏层中的每个神经元到底是什么意思?换句话说,机器学习从业者应该如何解释这些价值观?

一般而言,神经网络中间层的神经元被激活(表示其激活函数返回1)以获得满足某些子属性的输入值。

对于我们的房价预测模型,一个例子可能是距市中心不远的五居室房屋。

在大多数其他情况下,描述将导致隐藏层中的神经元激活的特征并不容易。

神经元如何确定其输入值

在本教程的前面,我写过“对于隐藏层中的每个神经元,它使用神经网络最后一层中的一些(或全部)神经元执行计算。”

这说明了一个重点-神经网络中的每个神经元都不需要使用上一层中的每个神经元。

神经元确定从神经网络的上一层使用哪些输入值的过程称为训练模型。我们将在本课程的下一部分中学习有关训练神经网络的更多信息。

可视化神经网络的预测过程

可视化中性网络时,通常只要前一个神经元的权重在0当前神经元的加权总和公式中高于该权重,就可以绘制从前一层到当前层的线。

下图将有助于可视化此图像:简单理解深度学习神经网络

如您所见,并非每个神经元-神经元对都有突触。x4例如,仅喂食隐藏层中五个神经元中的三个。这说明了在构建神经网络时的一个重要点-并非上一层中的每个神经元都必须在神经网络的下一层中使用。

如何训练神经网络

到目前为止,您已经了解了有关神经网络的以下知识:

  • 他们是由神经元组成的
  • 每个神经元都使用一个激活函数,该函数应用于来自神经网络前一层的输出的加权和
  • 关于神经网络如何进行预测的广泛的无代码概述

我们尚未涵盖神经网络工程过程中非常重要的部分:如何训练神经网络。

现在,您将学习如何训练神经网络。我们将讨论用于训练解决实际问题的现代神经网络的数据集,算法和广泛原理。

硬编码与软编码

开发计算机应用程序的主要方法有两种。在深入探讨如何训练神经网络之前,重要的是要确保您了解计算机程序hard-codingsoft-coding计算机程序之间的区别。

硬编码意味着您明确指定输入变量和所需的输出变量。换句话说,硬编码没有空间让计算机解释您要解决的问题。

软编码则完全相反。它为程序留出了空间,以了解数据集中发生了什么。软编码使计算机可以开发自己的问题解决方法。

这里有一个具体的例子很有帮助。这是两个有关如何使用软编码和硬编码技术识别数据集中的猫的实例。

  • 硬编码:您使用特定的参数来预测动物是否是猫。更具体地说,您可能会说,如果动物的体重和长度在一定范围内
  • 软编码:您提供一个数据集,其中包含标有它们的物种类型和特征的动物。然后,您可以构建一个计算机程序,根据数据集中的特征预测动物是否是猫。

您可能会想到,训练神经网络属于软编码类别。在学习本课程时,请记住这一点。

使用成本函数训练神经网络

使用来训练神经网络cost function,后者是用于测量网络预测中包含的误差的方程式。

深度学习成本函数(其中有很多,这只是一个示例)的公式如下:简单理解深度学习神经网络

注意:此成本函数称为mean squared error,这就是为什么等号左侧有MSE的原因。

尽管此方程式中包含很多公式数学,但最好总结如下:

Take the difference between the predicted output value of an observation and the actual output value of that observation. Square that difference and divide it by 2.

重申一下,请注意,这只是可以在机器学习中使用的成本函数的一个示例(尽管公认它是最受欢迎的选择)。单独使用哪个成本函数是一个复杂而有趣的话题,这超出了本教程的范围。

如上所述,人工神经网络的目标是最小化成本函数的值。当算法的预测值尽可能接近实际值时,成本函数将降至最低。换句话说,神经网络的目标是最大程度地减少其预测中的误差!

修改神经网络

创建初始神经网络并估算其成本函数后,会对神经网络进行更改,以查看它们是否降低了成本函数的值。

更具体地说,被修改的神经网络的实际组成部分是每个神经元在其突触处的权重,这些权重传递到网络的下一层。

称为修改权重以将神经网络移动到具有较小误差的权重的机制gradient descent。现在,您已经足够了解神经网络的训练过程如下:

  • 分配每个神经元输入值的初始权重
  • 使用这些初始值计算预测
  • 将预测输入到成本函数中以测量神经网络的误差
  • 梯度下降算法更改每个神经元输入值的权重
  • 继续此过程,直到权重停止变化(或直到每次迭代的权重变化量降至指定阈值以下)为止。

这似乎很抽象-没关系!这些概念通常只有在您开始训练您的第一个机器学习模型时才被完全理解

最后的想法

在本教程中,您学习了神经网络如何执行计算以做出有用的预测。

喜欢 (0)

您必须 登录 才能发表评论!