1. 首页 > 人物杂谈

人工全连接神经网络结构(浅层神经网络与深层神经网络)

  人工全连接神经网络结构(浅层神经网络与深层神经网络)、本站经过数据分析整理出人工全连接神经网络结构(浅层神经网络与深层神经网络)相关信息,仅供参考!

  深度学习,神经网络已经熟悉了人工智能无处不在。那么,(人工)神经网络的原理是什么?它的运行机制是怎样的,涉及到哪些先进的“理念”?其实很简单。本文将深入浅出地向您介绍神经网络,让您轻松理解!(如果你很在意结果,可以先看完最后的总结,再回头一步步看)。

  人类的神经网络用在哪里?很简单,我们日常使用的语音助手,比如苹果的Siri,阿里的天猫精灵,百度的小度,小米的萧艾同学,谷歌的语音助手,特斯拉的autopilot等等,看起来很复杂,都使用了深度学习的核心技术,但实际上它们只是一个人工神经网络。

  人工神经网络(ANN),最重要的是能够像人类一样自我学习。如果我们不能学习进化,那么这样的“人工智能”就无法发展。这就是人工神经网络发明背后的深意。

  然而,归根结底,人工神经网络只是人类制造出来的神经网络。就像人脑一样,神经网络是由一个个神经元组成的。这是感知器。

  感知器要了解神经网络,首先要了解单个神经元,这是神经网络中最小的单元。

  人类的单个神经元从其他神经元或突触获取输入,在脑核中进行处理,然后发送给其他神经元。

  同样,人工神经网络具有类似于感知器神经元的结构,也是人工神经网络中最小的单元。它从输入层或其他感知机获取输入向量,在激活函数中进行处理,并发送给其他神经元,也可以是最终输入。

  比如你一手拿着冷的物体,一手拿着热的物体,看着一个让你落泪的情感场景。你会先对哪个做出反应?你会把手放在冷的物体上还是把手从热的物体上移开,还是会为一个动情的场景而哭泣?很明显,你会把手从滚烫的物体上拿开。你如何得到这些模拟?所有这些输入都被发送到神经网络,它会立即发送一个输出,将你的手移动到热的物体上,因为你已经用以前的经验训练自己不要触摸热的物体。热的突触会更厚(这是重量),说明它更重视热。

  类似地,感知器的输入也具有与每个输入相关联的权重。这里的微妙之处在于,它会自动学习哪些权重应该更重要,类似于人类的自我学习。在发送给激活函数之前,每个输入都乘以其权重,相加,然后传递给激活函数。

  关于感知器和逻辑回归的比较:(如果对算法不感兴趣,Challey建议跳过)

  简单的逻辑回归可以表示为

  其中X是输入向量X=[x1,x2,x3,xn]

  逻辑回归的高层次概述是,它试图找到一个超平面或直线来分隔两个不同类型的类,W来自超平面,W=[w1,w2,w3,wn]

   b是常数。Sigmoid函数以加权和作为输入,并给出0到1范围内的输出。

  如果你觉得,感知器很像逻辑回归。

  如果激活函数是sigmoid,则逻辑回归由感知器表示。

  就这么简单。

  但是我们的大脑中有不止一个神经元。我们有许多神经元连接在一起。这是多层感知器(MLP)。

  多层感知器(MLP)类似地,人工神经网络也有一个相互连接的神经元网络,也称为多层感知器(MLP)。

  我们使用MLP的原因可以从数学和生物学的角度来解释:

  数学:当我们有一个像下面这样复杂的数学方程时,我们可以用一个感知器做正弦,另一个做乘法等等。

  生物学:当我们试图模仿生物神经网络时,我们正在使用神经网络。

   MLP由一个输入向量大小的输入层组成,可以有许多隐藏层,每一层都可以被认为是一个感知器。我们知道每个传感器都会产生一个输出,这个输出可以作为其他传感器的输入。

  最后,它有一个输出层,产生一个称为预测输出的输出。

  如果所有隐藏层都有所有可能的连接,则称它们为全连接层。当一个ANN(人工神经网络)包含一个深度隐藏层时,它被称为深度神经网络(DNN),而DNN的研究就是我们经常听到的深度学习。

   “如何自学”的生物学解释;

  我们怎么知道碰到热的物体会痛?在我们的童年,我们被告知不要触摸热的物体。我们一般不听。当我们实际触摸并感到疼痛时,我们知道我们不应该触摸热的物体。所以我们通过实际操作来锻炼自己。

  同样,ann(人工神经网络)自己预测输出并与我们称为误差的实际输出进行比较,并尝试它应该做什么来减少误差。我们应该给MLP一些输入来训练,因为它不知道它是否正确预测了输出,我们应该给它相应的输出。然后,它通过尽可能准确地预测输出来训练自己。

  那么,机器是如何训练自己的呢?

  示例:

   Challey发现,多年前,Google发明了一个著名的在线验证:必须用鼠标一张一张地指出给出的众多图片中哪些是汽车,才能通过验证进入下一步。下次,我可能会问你:哪些是飞机,哪些是船,等等。

  这是典型的神经网络学习。但是,当时大多数人并不知道,这是谷歌免费使用我们的神经网络进行纠错学习。

  现在让我们来探索:如何训练MLP(多层感知器)。

  训练MLP训练MLP是寻找能提供最佳输出的重量的过程。在此之前,我们先来看看下面的符号。

   MLP的象征

  当我们向人工神经网络提供输入时,它将处理所有层并提供预测的输出。这叫做前向传输。

  对于输入,我们有MLP生成的输出和我们作为输入数据提供的实际输出。然后,它找出预测输出和实际输出之间的差异。这可以视为一个错误。

  然后,它找到激活函数的每个输出的误差贡献。它对所有输出都这样做,直到它从输出层到达输入层。这一步称为反向传播。

  以下是权重更新算法(不感兴趣可以跳过Challey)

  对于所有权重,使用以下公式更新旧权重

  更新重量公式

  其中Eta是算法的学习速率。

  求导数,也就是最后一项叫做梯度。

  它重复整个过程,直到找到最佳权重的新旧权重之间没有太大差异。

  因此,为了找到贡献的误差,我们需要对激活函数进行微分。它将特别使用偏导数。因为权重多,所以要分几次。如果容易激活功能的分化,那么就会加快进程。

  在这里,Challey给你一个差评_:

  微分的中心思想是无限除法。在数学上表示为:从函数B=f(A)中,得到A和B两组数。在A中,当dx接近自身时,函数在dx处的极限称为函数在dx处的微分。是微分函数变化的线性主要部分。

  激活功能(Activation function)有三种主流的激活功能:

   Sigmoid函数:当我们传递加权输入的和时,它会生成一个从0到1的输出。

   Tanh函数:当我们传递输入的加权和时,它将生成范围从-1到1的输出。

   Relu函数:如果输入的加权和小于零,则ReLu的输出为0,否则输出为输入的加权和。

  如果你观察到这一点,三个函数都是可微的,除了Relu函数在零点不可微,但是它的变化会克服这一点,这些都很容易微分,因为微分可以用它自己的形式表示。

  但这里有一个在90年代末已经面临多年的问题:如果我们有一个深度神经网络,那么就会有很多层。如果有许多层,那么将涉及许多导数的乘法。

  假设我们有20层。如果我们使用sigmoid或tanh作为激活函数,它的值小于1。为了计算梯度,我们需要找到每一层的导数,然后将它们相乘。多次乘以一个较小的值会得到一个非常小的值。因此,它不能用更大的值更新权重。需要非常长的时间才能收敛,这就是所谓的消失梯度下降。

   Relu函数将克服这个问题,因为它将有零或z,我们将把它作为输入传递给函数。有时候可能会遇到一个叫死激活的问题,因为它会导致输出为零,但是对Relu稍加修改就可以解决这个问题。

  过度拟合又如何解决?我们再举一个例子(例子):

  一个班有两个学生。我们进行了一次抽样测试。一个同学小明在某处找到了答案,然后他就记住了。另一个同学小李也找到了解决的办法,但是他的学习风格是,如果有稍微修改的问题,他就能解决。在期末考试中,第一个同学小明只有在同样的问题出现时才表现得更好,但第二个同学小李可以解决任何一种问题。

  过度拟合,像第一个同学小明,太依赖输入。

  我们建立的神经网络是我们提供测试数据。当我们在其中添加层时,它会记住每个输入的输出。当我们提供相同的测试数据时,它会完美预测。但是,当我们给出稍加修改的数据时,并不能像我们看到的数据所预测的那样完美。这叫过拟合。

  最好的算法是,它将以相同的精度预测可预测的数据和不可预测的数据。对于可预见和不可预见的数据,有一些技术可以达到同样的准确性。

  如何解决拟合?

  一个简单而有效的策略是辍学。对于每个输入,我们随机选择p%隐层激活函数,将输入输入到层中,训练时使其不激活。在运行时,我们不使用所有的权重,而是将它们都设置为活动的,并将权重修改为(1-p)*w,因为我们随机删除每个权重p次。

  当我们查看更新权重的公式时,

  我们借助偏导数更新旧的权重。然而,在过程的开始,我们没有任何先前的权重,因为这是第一次。当我们在basic编程中把任何一个变量初始化为0的时候,让我们用0来初始化每个权重。

  但是,将每个权重初始化为0,意味着模型中的每个权重都学习了相同的东西,这是无效的。即使每层有数百个神经元,它的行为也像每层只有一个神经元。因此,我们需要一种新的策略来初始化权重。

  如何初始化权重?一个简单的策略是使用具有良好方差的高斯分布来初始化权重。

   Xavier/Glorot初始化:

   Xavier/Glorot初始化

  适用于Sigmoid激活功能的初始化:

  非常适合Relu激活函数初始化。

  注意:有一些完全漏掉的概念,比如优化器,如何通过更少的迭代获得权重来让我们的算法更快。

  感兴趣的可以搜索一下现在比较流行的张量流神经网络库。

  看上面的例子,结合算法(程的最爱)就可以知道:其实人工神经网络的原理很简单,需要突触(感知器)和多个,需要不断地自我学习这个多层感知器(外触)来获取正确的知识。如何自学?然后我们需要使用几个激活功能,也就是说我们的自我激励。在这个自我学习的过程中,很容易出现机械僵化的学习方法,也就是过度拟合。如何解决过拟合?那就需要我们举一反三,举一反三。这就是学习方法!

  好吧,通过写这篇文章,Challey自己理解并学习了什么是人工神经网络,相信你也会!

  如果你不会(只要你看了,我相信你会的,除非……),你可以把它当成一个成年人的大脑。事实上,科学家通过模拟人类神经网络的工作模式,发明了人工神经网络。

  我们可以在人工智能的帮助下解决很多现实世界的问题。有许多类型的算法可以解决不同类型的问题,例如用于文本数据和时间序列数据的循环神经网络和用于图像数据的卷积神经网络。现在很多算法都是基于这些算法。

  这一切的基础是人工神经网络。

   https://medium . com/@ gsomasekhar 005/nuts-and-bolts of-artificial-neural-networks-3c 211d 21 C1 de

  索玛塞克哈尔

  更多关于人工全连接神经网络结构(浅层神经网络与深层神经网络)的请关注本站。

本文由发布,不代表新营销立场,转载联系作者并注明出处:https://www.newmarketingcn.com/gywm/247554.html

留言与评论(共有 0 条评论)
   
验证码: