研究算法的时候用到了神经网络,想了解一下,可是,搜了很多资料,发现很少有人能把神经网络搞清楚的。最后还是在国外的一片文章中
找到了比较详细的介绍,这篇文章让我搞清楚了什么是神经网络,的确是神文啊。做个读书笔记,加深理解吧。
人工神经网络是一种计算模型,是受人的大脑处理信息的方式启发发明的一种信息处理方式。按照形式划分,可以分为单一神经网络和反馈神经网络。
单一神经网络:
神经网络中基本的运算单元是叫神经元,通常称为节点。它接收信息通过其它节点,或者是计算机的外部输入,每个输入都有一个关联权重因子(w),这个因子和其它的输入有很大的相关性。节点使用一个函数来计算出所需的结果,如下图所示:
上图中把输入采纳数X1,X2作为输入,并把W1,W2作为他们的权重因子。除此之外,还有一个输入1权重因子b(偏压bias)的关联输入。后面我们会学到偏压(b)的作用。
输出Y是从神经网络中计算出来的,如上图所示。函数f是非线性的并被称为激活函数。激活函数的额作用就是在神经网络的输出中引入非线性,引入非线性的目的就是方便神经网络学习真实的世界(真实世界中很多东西都是非线性的)。大多数激活函数都是需要一个特性输入并执行固定的数学运算。这里有几个常用的函数估计需要你熟悉一下。
下面的图片是上面的函数的展示:
前馈神经网络:
前馈神经网络是第一个最简单的人工网络。它包括多种神经元排列层,相邻层的神经元有连接和边沿。所有连接的中间都有权重因子。一个前馈神经网络的例子如下所示:
一个前馈神经网络有三种节点组成:
1 输入节点:负责把外边的信息反馈给网络并一起组成输入层。所有的输入节点都不需要计算,它只负责把信息传给隐藏节点。
2 隐藏节点:隐藏节点和外边的世界没有直接联系,因此叫隐藏节点。他们在输入节点和输出节点之间负责信息运算和传输。隐藏节点的集群就是隐藏层。一个前馈网络只有一个输入层和输出层。单它可以有多个或零个隐藏层。
3 输入节点: 输出节点的集群就被称为输出层。该节点负责把网络的信息计算并传输给外边的世界。
在前馈网络中,所有的信息流只朝着一个方向流动,从输入节点输入,通过隐藏节点,到达输出节点。在这个网络中没有周期和循环。
参考文档:
1 https://ujjwalkarn.me/2016/08/09/quick-intro-neural-networks/
2 https://stackoverflow.com/questions/2480650/role-of-bias-in-neural-networks