首页 > 代码库 > 神经网络

神经网络

面向全连接网络:Full Connected Forward Network

基础神经元(neural、cell、unit)


 

神经元是构成神经网络的基础单元

一个独立的神经元的组成 {n,wi,b,h}

输入:n维向量X

线性加权:z=w0*b + w1*x1 + w2*x2 + ...  +wn*xn  (b为偏置)

激活函数:a=h(z) ,要求非线性并且容易求导数

输出标量:a

激活函数

1、sigmoid函数(曾经是常用的激活函数,但是现在一般用在输出层,中间层很少使用)

h(z)=1/(1+e-z)

缺点:1、两头过于平坦,造成梯度消失问题

   2、输出值域不对称

 

2、tanh函数(曾经是常用的激活函数,中间层使用较少,比sigmoid函数效果好)

缺点:两头依旧过于平坦,容易造成梯度消失

优点:值域关于x=0对称,就是输有正有负,sigmoid输出全为正数,效果不好

 

3、Rectified Linear Unit(RELU)(是目前使用最广泛的激活函数,特别是卷积网络)

特点:1、不存在saturate(饱和)区域

   2、收敛速度比sigmoid/tanh函数快

   3、计算简单高效

   4、存在Dead Area,权重不更新,leaky RELU不存在dead area


从神经元到网络

把相同结构的单元组合在一起,构成神经网络的层:

输入层:输入向量

中间层:隐含层

输出层:输出向量,用于预测、分类、回归等

每一个隐含层都是向量输入,向量输出

同层的单元输入向量相同,来自前一层

同层的单元输出构成该层的输出向量

输出层不一定要有激活函数,可以soft用softmax分类等

 

神经网络