神经网络如何使用反向传播进行学习?
神经网络是一系列算法,试图通过模仿人脑工作方式的过程来识别一组数据中的基本关系。在这种方法中,神经网络代表神经元系统,例如有机或人工神经元系统。
神经网络是根据认知系统中学习过程和大脑神经服务的(假设的)程序建模的分析方法,能够在执行所谓的从当前信息中学习的过程后,根据其他观察结果预测新的观察结果(关于特定变量)。
反向传播的步骤如下:
网络接收一个训练实例,并使用网络中的当前权重计算输出或输出结果。
反向传播通过计算计算结果与预期结果(实际结果)之间的差值来计算误差。
误差被反馈到网络中,权重被修改以最小化误差,因此称为反向传播,因为误差被反向传播到网络中。
反向传播算法通过将每个训练实例上产生的值与实际值进行比较来计算网络的总误差。它可以改变输出层的权重以减少误差,但不能消除误差。然而,算法尚未完成。
它可以将责任归咎于网络中之前的节点,并改变连接这些节点的权重,从而进一步减少总误差。分配责任的具体方法并不重要。需要说明的是,反向传播需要一个复杂的数值过程,需要对激活函数进行求导。
这种改变权重的方法被称为广义δ规则。使用广义δ规则有两个重要的参数。第一个是动量,它定义了每个单元内权重改变其“方向”的趋势。
也就是说,每个权重都记住它是否一直在变大或变小,动量试图保持它朝着相同的方向前进。具有较大动量的网络对需要反转权重的新的训练实例反应缓慢。如果动量低,则权重可以更自由地振荡。
学习率控制权重变化的速度。学习率的最佳方法是从大值开始,随着网络训练逐渐减小。最初,权重是随机的,因此高振荡有助于接近最佳权重。但是,随着网络越来越接近最佳解决方案,学习率必须减小,以便网络可以微调到全局最优权重。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP