我是靠谱客的博主 舒适裙子,最近开发中收集的这篇文章主要介绍多层神经网络BP算法 原理及推导,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  首先什么是人工神经网络?简单来说就是将单个感知器作为一个神经网络节点,然后用此类节点组成一个层次网络结构,我们称此网络即为人工神经网络(本人自己的理解)。当网络的层次大于等于3层(输入层+隐藏层(大于等于1)+输出层)时,我们称之为多层人工神经网络。

1、神经单元的选择

  那么我们应该使用什么样的感知器来作为神经网络节点呢?在上一篇文章我们介绍过感知器算法,但是直接使用的话会存在以下问题:

  1)感知器训练法则中的输出

  由于sign函数时非连续函数,这使得它不可微,因而不能使用上面的梯度下降算法来最小化损失函数。

  2)增量法则中的输出为;

  每个输出都是输入的线性组合,这样当多个线性单元连接在一起后最终也只能得到输入的线性组合,这和只有一个感知器单元节点没有很大不同。 

  为了解决上面存在的问题,一方面,我们不能直接使用线性组合的方式直接输出,需要在输出的时候添加一个处理函数;另一方面,添加的处理函数一定要是可微的,这样我们才能使用梯度下降算法。

  满足上面条件的函数非常的多,但是最经典的莫过于sigmoid函数,又称Logistic函数,此函数能够将内的任意数压缩到(0,1)之间,因此这个函数又称为挤压函数。为了将此函数的输入更加规范化,我们在输入的线性组合中添加一个阀值,使得输入的线性组合以0为分界点。

  sigmoid函数:

  其函数曲线如图1.1所示。

图1.1 sigmoid函数曲线[2]

  此函数有个重要特性就是他的导数:

 

  有了此特性在计算它的梯度下降时就简便了很多。

  另外还有双曲函数tan

最后

以上就是舒适裙子为你收集整理的多层神经网络BP算法 原理及推导的全部内容,希望文章能够帮你解决多层神经网络BP算法 原理及推导所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部