激活函数
激活函数的意义主要是引入非线性函数,增加神经网络的非线性拟合能力
1.sigmoid
sigmoid函数的输出范围为(0,1),可以作为一个概率的输出值,且输出范围有限,数据传递过程中不易发散。但是饱和的时候,梯度太小。
f(x) = 1+e−x1f′(x) = (1+e−x1)′ = ((1+e−x)−1)′=(−1)∗(1+e−x)−2∗e−x∗(−1)=(1+e−x)−2∗e−x=(1+e−x)2e−x=1+e−x1∗1+e−xe−x=f(x)∗(1−f(x))
2.relu
解决了随着时间问题Sigmoid 等函数的饱和,梯度消失的问题。并且实现容易
f(x)=⎩⎪⎪⎨⎪⎪⎧0xx<=0x>0=max(0,x)f′(x)=⎩⎪⎪⎨⎪⎪⎧01x<=0x>0
3.softmax
f(x)=∑iexiexi
相比于sigmoid的分类效果 ,softmax更适用于多分类问题。
one-hot编码
所谓的one-hot编码是n位状态寄存器为n个状态进行编码的方式,就是一种类别的数字化表示,就是将不同的类别对应到不同的向量(0根1组成),然后的话每一种类别对应一种向量,简答理解的话每个向量只有一个为1,其他为0。
比如我们有一段英文:how are you? 这句英文的编码的时候我们就要考虑到26个英文小写以及问号、空格。然后我们这句话一共12个字符,所以我们可以用一个12*28的向量来表示这句话。