一、AI教程学习笔记 | 神经网络基础知识(二)

目录

 

1、浅层神经网络

2、如何计算浅层神经网络的前向传播

3、如何计算浅层神经网络的反向传播

4、为什么需要**函数

5、常见的**函数

(1)sigmoid函数

(2)tanh函数

(3)ReLU函数

(4)leaky relu

6、**函数的偏导数

7、随机初始化参数


1、浅层神经网络

两层神经网络

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

2、如何计算浅层神经网络的前向传播

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

3、如何计算浅层神经网络的反向传播

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

4、为什么需要**函数

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

**函数是一个非线性函数

一、AI教程学习笔记 | 神经网络基础知识(二)

5、常见的**函数

sigmoid、tanh、relu、leaky relu

(1)sigmoid函数

一、AI教程学习笔记 | 神经网络基础知识(二)

函数曲线图如下:

一、AI教程学习笔记 | 神经网络基础知识(二)

函数导数曲线图如下:

一、AI教程学习笔记 | 神经网络基础知识(二)

优点:

  1. 输出为0到1之间的连续实值,此输出范围和概率范围一致,因此可以用概率的方式解释输出。-

  2. 将线性函数转变为非线性函数

缺点:

  1. 容易出现gradient vanishing

  2. 函数输出并不是zero-centered

  3. 幂运算相对来讲比较耗时

(2)tanh函数

tanh函数表达式:
 

一、AI教程学习笔记 | 神经网络基础知识(二)

函数曲线图为:

一、AI教程学习笔记 | 神经网络基础知识(二)


sigmoid和tanh函数之间的关系式:

一、AI教程学习笔记 | 神经网络基础知识(二)

  1. sigmoid函数和tanh函数导数区别

  2. 考虑相同的输入区间[0,1]

  3. sigmoid函数导数输出范围为[0.20,0.25]

  4. tanh函数导数曲线图为

  5. 其输出范围为[0.42,1]

优点:

  1. 对比sigmoid和tanh两者导数输出可知,tanh函数的导数比sigmoid函数导数值更大,即梯度变化更快,也就是在训练过程中收敛速度更快。

  2. 输出范围为-1到1之间,这样可以使得输出均值为0,这个性质可以提高BP训练的效率,具体原因参考文献 http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf

  3. 将线性函数转变为非线性函数

缺点:

  1.     gradient vanishing

  2.     幂运算相对来讲比较耗时

(3)ReLU函数

ReLU函数表达式为:
 

一、AI教程学习笔记 | 神经网络基础知识(二)

其函数曲线图为:

一、AI教程学习笔记 | 神经网络基础知识(二)

由函数图像可知其导数为分段函数

  1. x <= 0时,导数为0

  2. x > 0时,导数为1

优点:

  1. 解决了gradient vanishing问题 (在正区间)

  2. 计算速度非常快,只需要判断输入是否大于0

  3. 收敛速度远快于sigmoid和tanh

缺点:

  1. 不是zero-centered

  2. 某些神经元可能永远不会被**

(4)leaky relu

为了解决 relu 中没有斜率的问题,

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

6、**函数的偏导数

一、AI教程学习笔记 | 神经网络基础知识(二)

7、随机初始化参数

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)

一、AI教程学习笔记 | 神经网络基础知识(二)