激活函数

激活函数的意义主要是引入非线性函数,增加神经网络的非线性拟合能力

1.sigmoid

sigmoid函数的输出范围为(0,1),可以作为一个概率的输出值,且输出范围有限,数据传递过程中不易发散。但是饱和的时候,梯度太小。

f(x) = 11+exf(x) = (11+ex) = ((1+ex)1)=(1)(1+ex)2ex(1)=(1+ex)2ex=ex(1+ex)2=11+exex1+ex=f(x)(1f(x))f(x) \space = \space \frac{1}{1+e^{-x}} \\\\ f^{'}(x) \space = \space (\frac{1}{1+e^{-x}})^{'} \space = \space ((1+e^{-x})^{-1})^{'} =(-1)*(1+e^{-x})^{-2}*e^{-x}*(-1) \\\\ = (1+e^{-x})^{-2}*e^{-x} = \frac{e^{-x}}{(1+e^{-x})^2} = \frac{1}{1+e^{-x}} * \frac{e^{-x}}{1+e^{-x}} = f(x)*(1-f(x))

2.relu

解决了随着时间问题Sigmoid 等函数的饱和,梯度消失的问题。并且实现容易

f(x)={0x<=0xx>0=max(0,x)f(x)={0x<=01x>0f(x) = \begin{cases} 0 &x<=0\\\\ x &x>0 \end{cases} = max(0,x)\\\\ f^{'}(x) = \begin{cases} 0 &x<=0\\\\ 1 &x>0 \end{cases}

3.softmax

f(x)=exiiexif(x) = \frac{e^{x_i}}{\sum_i e^{x_i}}

相比于sigmoid的分类效果 ,softmax更适用于多分类问题。

one-hot编码

​ 所谓的one-hot编码是n位状态寄存器为n个状态进行编码的方式,就是一种类别的数字化表示,就是将不同的类别对应到不同的向量(0根1组成),然后的话每一种类别对应一种向量,简答理解的话每个向量只有一个为1,其他为0。

​ 比如我们有一段英文:how are you? 这句英文的编码的时候我们就要考虑到26个英文小写以及问号、空格。然后我们这句话一共12个字符,所以我们可以用一个12*28的向量来表示这句话。