目录
1.概述
2.激活函数
(1)基本概念
(2)sigmoid函数(常用)
代码(sigmoid)
(3)阶跃函数
代码(阶跃函数)
(4)ReLU函数(目前常用)
代码(ReLU函数)
1.概述
在感知机中,权重w是由人工输入的,而神经网络可以自动地从数据中学习到合适的权重参数。可以理解为,神经网络从数据中抓取数据的特征而得到权重,最后由权重来识别陌生数据。
神经网络结构图如下:
上图为3层神经网络,是最为简单的神经网络结构,其中中间层,有时我们也称作“隐藏层”。与感知机类似,在神经网络中我们输入数据样本作为输入信号,再通过隐藏层获取数据的特征计算得到权重,最后在输出层得到需要的输出结果。
2.激活函数
(1)基本概念
首先我们先来看一下感知机的公式:
将感知机的公式简化为
其中h(x):
由此可以得到
a=b+w1x1+w2x2
y=h(a)
其中h(a)就是激活函数。其结构如下:
(2)sigmoid函数(常用)
公式:
其中exp(-x)表示e的-x平方。(这个公式不用记,只是一种计算方法)
代码(sigmoid):
def sigmoid(x):
return 1 / (1 + np.exp(-x))
(3)阶跃函数
阶跃函数和sigmoid函数都是非线性函数,但是与sigmoid不一样的是,sigmoid函数是一条平滑的曲线,而阶跃函数则是急剧下降或上升的曲线。
其函数曲线比较如下:
代码(阶跃函数)
def step_function(x):
y = x > 0
return y.astype(np.int)
(4)ReLU函数(目前常用)
目前使用较多的是ReLU函数,其公式如下:
代码(ReLU函数):
def relu(x):
return np.maximum(0, x)