python 神经网络

1. 人工神经网络

人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计或近似。

2.神经元

在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。 抑制状态同理,它具有时空整合的功能,具有很强的可塑性,人工神经元是由McCulloch 和 Pitts 将上述情形转化为典型的M-P 神经元模型。当我们把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。神经元是神经网络中的基础单元,相互连接,组成神经网络。
请添加图片描述

3. MP神经元模型

MP 神经元模型模型是人工神经元模型的基础。
请添加图片描述
其中:

a1,a2,,,an​ 为各个输入的分量
w1,w2 ,,,wn为各个输入分量对应的权重参数
b为偏置
f 为激活函数,常见的激活函数有阶跃函数,线性函数,高斯函数,tanh,sigmoid,relu等
t 为神经元的输出

4.常见的激活函数

激活函数多种多样,比如可以分为线性型、阶跃型、符号性、斜坡型等,但是本文主要介绍以下几种常见的激活函数,也是最主要的几种:
请添加图片描述
激活函数很重要的一个作用就是增加模型的非线性分割能力:

1、sigmoid 只会输出正数,以及靠近0的输出变化率最大
2、tanh和sigmoid不同的是,tanh输出可以是负数
3、Relu是输入只能大于0,如果你输入含有负数,Relu就不适合,如果你的输入是图片格式,Relu就挺常用的,因为图片的像素值作为输入时取值为[0,255]。

激活函数的作用除了前面说的增加模型的非线性分割能力外,还有以下作用:

1、提高模型鲁棒性
2、缓解梯度消失问题
3、加速模型收敛等

 

1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络。他给它起了一个名字“感知器”(Perceptron),感知器是当时首个可以学习的人工神经网络。这个时期可以看作 ...