真正的入门资料,就是简单到我都能看懂,才叫入门,最好要公式有公式,要推导有推导,还能数形结合,绘声绘色。

单个神经元:

神经网络是多个“神经元”(感知机)的带权级联,神经网络算法可以提供非线性的复杂模型,它有两个参数:权值矩阵{Wl}和偏置向量{bl},不同于感知机的单一向量形式,{Wl}是复数个矩阵,{bl}是复数个向量(什么叫复数个。。?),其中的元素分别属于单个层,而每个层的组成单元,就是神经元。

神经元:

神经网络是由多个“神经元”(感知机)组成的,每个神经元图示如下:

一个神经网络通常包含 神经网络中一个神经元_一个神经网络通常包含

这其实就是一个单层感知机,其输入是由

一个神经网络通常包含 神经网络中一个神经元_一个神经网络通常包含_02

和+1组成的向量,其输出为

一个神经网络通常包含 神经网络中一个神经元_一个神经网络通常包含_03

,其中f是一个激活函数,模拟的是生物神经元在接受一定的刺激之后产生兴奋信号,否则刺激不够的话,神经元保持抑制状态这种现象。这种由一个阈值决定两个极端的函数有点像示性函数,然而这里采用的是Sigmoid函数,其优点是连续可导。

Sigmoid函数

常用的Sigmoid有两种——

单极性Sigmoid函数

一个神经网络通常包含 神经网络中一个神经元_神经网络_04

或者写成

一个神经网络通常包含 神经网络中一个神经元_感知机_05

其图像如下

一个神经网络通常包含 神经网络中一个神经元_神经网络_06

双极性Sigmoid函数

一个神经网络通常包含 神经网络中一个神经元_神经网络_07

或者写成

一个神经网络通常包含 神经网络中一个神经元_一个神经网络通常包含_08

把第一个式子分子分母同时除以ez,令x=-2z就得到第二个式子了,换汤不换药。

其图像如下

一个神经网络通常包含 神经网络中一个神经元_一个神经网络通常包含_09

两种极性的Sigmoid函数,用Python实现起来都比较简单,求导也是很简单的  学过微积分的人都知道。此处略。

神经网络模型:

DNN 和前向传播算法的帖子 很详细

神经网络就是多个神经元的级联,上一级神经元的输出是下一级神经元的输入,而且信号在两级的两个神经元之间传播的时候需要乘上这两个神经元对应的权值。例如,下图就是一个简单的神经网络:

一个神经网络通常包含 神经网络中一个神经元_一个神经网络通常包含_10

其中,一共有一个输入层,一个隐藏层和一个输出层。输入层有3个输入节点,标注为+1的那个节点是偏置节点,偏置节点不接受输入,输出总是+1。

定义上标为层的标号,下标为节点的标号,则本神经网络模型的参数是:

一个神经网络通常包含 神经网络中一个神经元_神经网络_11

,其中

一个神经网络通常包含 神经网络中一个神经元_神经网络_12

是第l层的第j个节点与第l+1层第i个节点之间的连接参数(或称权值);

一个神经网络通常包含 神经网络中一个神经元_感知机_13

表示第l层第i个偏置节点。这些符号在接下来的前向传播将要用到。

前向传播: