消除关于深度学习的神话-神经网络如何学习?

“深度学习。“基础”为您准备了有趣的材料的翻译。








深度学习为当今世界看到的人工智能的进步和繁荣做出了巨大贡献。人工智能现在正在执行的任务,例如文本和图像分类,实例分割,基于文本数据的回答问题,阅读理解等等,过去都是科幻小说,但现在变得越来越有用,并且越来越被模仿。人类通过使用深度神经网络。



神经网络如何管理这些复杂的任务?在填充这些网络的无穷无尽的数学运算层之下会发生什么?





一个简单的神经网络



让我们更深入地进行挖掘,并在概念上理解深度神经网络的基础。



首先,让我们讨论一下大多数(如果不是全部)神经网络用于从训练数据中学习的算法。训练数据无非是人类注释数据,即在图像分类的情况下标记的图像,或在情绪分析中标记的情绪。



它被称为错误反向传播算法。

以下是神经网络结构的简要概述:



神经网络以某种方式将输入数据转换为输出。输入数据可以是图像,文本片段等。输入数据将转换为数字表示形式:例如,在图像中,每个像素均根据其位置用数值进行编码,在文本中,每个单词都是数字的矢量,这是单词的矢量表示(在这种矢量中,每个数字都是单词特定特征的估计值)或一维向量(由n-1个零和一个1组成的n维向量,其中一个位置将指向所选单词)。



然后,此数字输入通过神经网络(使用称为错误的反向传播的技术)传递,该神经网络在幕后具有几个步骤:与网络中的权重相乘,增加偏移量并传递非线性激活函数。对加标签的训练数据中的每个输入执行此前向传播步骤,并使用称为损失函数或成本函数的函数来计算网络精度。网络的目标是使损失函数最小化,即使其准确性最大化。最初,网络开始使用参数的随机值(权重和偏差)工作,然后逐渐提高其准确性并最大程度地减少损失,并通过直接传播训练数据继续在每次迭代中改进这些参数。权重和偏差(大小以及正向或负向)的更新由反向传播算法确定。让我们看一下反向传播算法,了解它如何帮助神经网络“学习”并最大程度地减少训练数据的丢失。





深度神经网络中



正向传播误差反向传播的本质是弄清楚应该如何更改每个参数,以便更好地拟合训练数据(即,将损失最小化并将预测准确性最大化)。确定这些值的方法很简单:





在上图中,Y是损耗函数,X是网络中的某个参数(权重)。为了达到局部最小值,必须减小重量的初始值。但是网络如何理解要减轻重量才能做到这一点?网络将在起点依赖函数的斜率。



您如何获得坡度?如果您学习过数学,就会知道函数在某个点的斜率由其导数给出。瞧!现在我们可以计算斜率,从而计算重量的变化方向(正或负)。权重值会不断更新,最终得到最小值。



当权重与损失函数不直接相关时(如深度神经网络那样),就会出现困难。这是熟悉的链式规则出现的地方。





例如,在如上图所示,该结果ý不直接输入值取决于X,但X穿过˚F,然后通过ģ之前,得到的输出值ÿ。使用链式规则,可以写出G相对于X的导数,表明GF的依赖性,其中F取决于X... 该规则可应用于具有结果导数的任何长度的网络,因此,任何输出值相对于输入的斜率均作为输入值经过的所有阶跃的导数的乘积而获得。这是误差的反向传播的本质,其中输出值相对于每个参数的导数/斜率是通过在网络的反向传递过程中将导数相乘直到找到参数的直接导数而获得的,这就是为什么将该方法称为反向传播的原因。



就这样。要了解有关该课程的更多信息,我们邀请您通过以下链接注册开放日:






All Articles