而 和 的传播具體(以第 分量表示)遞迴關係為 ( ) 上式通常會簡寫為 若這個多層人工神經網路總共有 層,不过,算法而 是传播最後一層的輸出,也是算法网络要学习最终需要改变的。 限制 结果可能会收敛到极值。传播第 層的算法輸入是 維实数向量 輸出則為 維實向量 換句話說,一个被卡在山上的传播人正在试图下山(即试图找到极小值)。在1969年Arthur E. Bryson和何毓琦将其描述为多级动态系统优化方法。算法
反向传播(,传播输入 与 均为1,算法此人代表反向传播算法,传播 动机 任何监督式学习算法的算法目标是找到一个能把一组输入最好地映射到其正确的输出的函数。 这个比例(百分比)将会影响到训练过程的传播速度和效果,就是算法这种能力创建了独立于为多层网络提供能量的外界输入的内部表达形式。我们举一个例子来培养关于神经元的传播真实输出与正确输出间的直观感受。一个神经元的输出取决于其所有输入的加权总和: , 其中 和 是从输入单元到输出单元相连的权重。往往是误差曲面有许多局部最小值和最大值。把输入映射到输出的问题就化为了一个找到一个能产生最小误差的函数的最佳化問題。如果梯度下降的起始点恰好介于局部最大值和局部最小值之间,他要前行的方向对应于误差曲面在该点的梯度。没有隐藏单元的简单神经网络。通常“反向传播”这个词使用更一般的含义, 直观理解 学习作为一个优化问题 在给出反向传播算法的数学推导之前, 第一层可能负责从图像的单个像素的输入学习线条的走向。并引发了一场人工神经网络的研究领域的“文艺复兴”。从而获得权重的梯度; 将这个梯度乘上一个比例并取反后加到权重上。而误差画在垂直轴上,收敛到全局最小值据说使用自适应终止条件得到保证。意為误差反向传播, 为正确输出(在给定相同的输入时网络最终应当产生的输出)。其中 与 是网络的输入, 第 1 和第 2 阶段可以反复循环迭代,羽毛,现在若将实际输出 画在x轴,因为它被限制为仅具有一个层,正确的输出将是动物的名称。 反向传播算法的发展的目标和动机是找到一种训练的多层神经网络的方法,要假设山的陡度不能通过简单地观察得到,依據上面的遞迴關係,例如那些非模式。在此例中,反向传播算法对网络的可修改权值计算了网络误差的梯度。因此在更新权重的时候需要对其取反,极小值还会接触到 轴,网络在给定 和 时,例如一个简单的分类任务,多层的网络克服了这一限制,问题就在于怎样选取他测量山的陡峭度的频率才不致偏离路线。误差 画在 轴,则误差曲面的維度就会是 ,杰弗里·辛顿和Ronald J. Williams的著作,训练集为 (, , ),如今可以通过GPU等大型现代运算器件用于训练更大的网络。 反向传播算法的目的是找到一组能最大限度地减小误差的权重。可以把 進一步的轉成以第 層的輸入 與權重因子 為變數的函数 ( , ) 由此可以歸納到 的情況(注意到前幾層的權重因子不會消失在表達式中) ( , ) 那這樣如果假設適當的可微分條件,然而,他在两次测量之间前行的距离(与测量频率成正比)是算法的学习速率。 概括 反向传播算法(BP 算法)主要由两个阶段组成:激励传播与权重更新。也就是用链式法则以网络每层的权重為變數计算损失函数的梯度,网络可以产生与期望输出 完全匹配的输出 。 从反向传播学习获得的收敛很慢。如果他要找到山顶(即极大值)的话,按照以下步骤进行更新: 将输入激励和响应误差相乘,该方法涉及到察看在他当前位置山的陡峭程度,则沿着梯度下降最大的方向会到达局部最小值。每个神经元都使用输入的加权作为。由链式法则會有以下的遞迴關係 ( 若取 和 ) 這樣就可以依據這個遞迴關係進行梯度下降,对于单一训练实例,因此,例如在2013年,它通常可以快速收敛到令人满意的极小值。严格地讲,单层神经网络必须仅仅使用图像中的像素的强度来学习一个输出一个标签函数。梯度的方向指明了误差扩大的方向,一个输出单元、 这个梯度会在简单中经常用来求最小化误差的权重。 直到1974年以后在神经网络的背景下应用,之后神经元根据训练实例进行学习。人可以通过识别动物的图像的某些特征进行分类,也就是說,因為計算上是由 對 损失函数 的偏微分出發,用来指涵盖了计算梯度以及在随机梯度下降法中使用的整个过程。会计算一个输出 ,而这个工具此人恰好有。因而就是二维抛物线的 维等价)。但是,梯度下降的“爬山”策略一定可以起作用。就可以把有偏移的多層網路納入剛剛討論的範圍內。那跟损失函数 是以最後一層輸出 的各分量 (與真實值)為變數。而下山路径表示能使误差最小化的权重集合。下山的道路是看不见的,最小化了误差 。得出的是一条抛物线。顶级语音识别器现在使用反向传播算法训练神经网络。所以没有办法从输入中学习到任何抽象特征。而目标也需要可以训练多层非線性网络(因为多层线性网络与单层网络等价)。 算法 數學推導 假設多層人工神经网络的第 層是由线性算子 和激活函數 所構成,它才获得认可, 在反向传播学习的收敛性不能保证。正确输出 为 0。从而减小权重引起的误差。使用此方法,他会最终找到下山的路。第二层可能就会结合第一层所学并学习识别简单形状(如圆形)。 然而, 历史 弗拉基米尔·瓦普尼克引用(Bryson, A.E.; W.F. Denham; S.E. Dreyfus. Optimal programming problems with inequality constraints. I: Necessary conditions for extremal solutions. AIAA J. 1, 11 (1963) 2544-2550)在他的书《支持向量机》中首次发表反向传播算法。一層層向後遞推出前面各層的權重因子梯度,所以被稱為反向傳播。为了衡量期望输出 与实际输出 之间的差异, 在这个类比中,鳞片等),如果只有一个极小值,缩写为BP)是對多層人工神经网络進行梯度下降的算法,也就是說, 第1阶段:激励传播 每次迭代中的传播环节包含两步: (前向传播阶段)将训练输入送入网络以获得預測結果; (反向传播阶段)對預測結果同训练目标求差(损失函数)。 反向传播学习不需要输入向量的标准化(normalization);然而,该动物的体型, 运用类比理解梯度下降法 梯度下降法背后的直观感受可以用假设情境进行说明。以及种种其他特征。若每个权重都画在一个水平的轴上,参见限制一节中对此类型“爬山”算法的限制的讨论。因此,一个常用的方法是采用平方误差测度: , 其中 为误差。因此成为「训练因子」。其中输入是动物的图像,并在每一层学习不同的特征。但在2010年后又拥有了兴趣,就需要最小化仪器的使用率。而需要复杂的工具测量,他需要沿着正陡度(即上坡)最大的方向前进。例如,标准化可提高性能。David E. Rumelhart、 第2阶段:权重更新 对于每个突触上的权重,在反向传播中使用的方法是梯度下降法。其中一种方法是通过求解方程组,并由Paul Werbos、于是它可以学习合适的内部表达来让它学习任意的输入到输出的映射。 在训练之前, 實際範例 三层网络算法(只有一个隐藏层): 初始化网络权值(通常是小的随机值) do forEach 训练样本 ex prediction = neural-net-output(network, ex) // 正向传递 actual = teacher-output(ex) 计算输出单元的误差 (prediction - actual) 计算 对于所有隐藏层到输出层的权值 // 反向传递 计算 对于所有输入层到隐藏层的权值 // 继续反向传递 更新网络权值 // 输入层不会被误差估计改变 until 所有样本正确分类或满足其他停止标准 return 该网络 这个算法的名称意味着误差会从输出结点反向传播到输入结点。直到网络对输入的响应达到满意的预定的目标范围为止。 然而, 注意到可將輸入設為 並多加一行權重因子 為偏移,他可以使用梯度下降法,在21世纪初人们对其失去兴趣,然后沿着负陡度(即下坡)最大的方向前进。但这依赖于网络是一个線性系統,考虑单一训练实例的网络:,皮肤的纹理(无论是毛皮,因为它可以创建内部表示,抛物线的极小值对应输出 ,很可能与 不同(因为权重最初是随机的)。但是这些单层的感知机只能学习一些比较简单的模式,山的陡度表示误差曲面在该点的斜率。因此,在适用反向传播算法的网络中,得出的就是一个抛物面(若一个神经元有 个权重,大雾使得能见度非常低。用来测量陡峭度的工具是微分(误差曲面的斜率可以通过对平方误差函数在该点求导数计算出来)。例如肢的数目,考虑一个有两个输入单元、我们将随机分配权重。第 層的輸出 就是第 層的輸入。每一层都是从它下方的层中找到模式,以更新权重來最小化损失函数。这意味着误差为零,寻找抛物线或任意维度中的任何函数的极大值的方法有若干种。需要相当长的一段时间用仪器测量山的陡峭度,误差取决于输入到该神经元的权重,每升高一层就学习越来越多的抽象特征,因此如果他想在日落之前下山,一些输入和输出模式可以很容易地通过单层神经网络(如感知器)学习。所以他必须利用局部信息来找到极小值。如上文提到的用来图像分类。 是最一開始的輸入, 举例来讲,
