在这篇文章当中,我们就来简单探讨一下神经网络当中的非线性单元
通常用的非线性单元有两类Sigmoid非线性单元,RuLU非线性单元
1.为什么要使用非线性单元?
这个问题其实涉及到一个非常基本的问题:神经网络为什么可以用来做分类?
Sigmoid函数是这样一个函数
S(t)=11+e−t
函数图像是这样的
这个函数可以把
[−∞,+∞]
范围当中的值映射到[0,1]
有兴趣的同学可以看一下这段代码,自己尝试着画一下sigmoid的函数
import numpy as np
import math
import matplotlib.pyplot as plt
from scipy.misc import imread, imresize
def sigmoid(x):
return [ (1.0 / ( 1.0 + math.exp( i * -1 ) )) for i in x ]
def main():
x = np.arange(0,1, 0.01)
w = 10
b = -5
z = w * x + b
print z
y = sigmoid( z )
plt.plot(x,y)
plt.show()