激活函数的作用是什么?
激活函数的作用是:引入非线性因素,提高了模型的表达能力。
如果没有激活函数,那么模型就只有线性变换,可想而知线性模型能表达的空间是有限的。而激活函数引入了非线性因素,比线性模型拥有更大的模型空间。
主要常用的激活函数有哪些?
常用的激活函数有:
- Softmax
- Sigmoid
- Tanh
- ReLU(以及基于ReLU的改进系列:Leaky ReLU、ELU、PReLU等)
如何选择激活函数
用于分类器时,二分类为Sigmoid,多分类为Softmax,这两类一般用于输出层;
对于长序列的问题,隐藏层中尽量避免使用Sigmoid和Tanh,会造成梯度消失的问题;
Relu在Gelu出现之前在大多数情况下比较通用,但也只能在隐层中使用;
现在2021年了,隐藏层中主要的选择肯定优先是Gelu、Swish了
ML模型超参数调节
网格搜索网格搜索通过查找搜索范围内的所有的点,来确定最优值。一般通过给出较大的搜索范围以及较小的步长,网格搜索是一定可以找到全局最大值或最小值的。但是,网格搜索一个比较大的问题是,它十分消耗计算资源,特别是需要调优的超参数比较多的时候
随机搜索:随机搜索并未尝试所有参数值,而是从指定的分布中采样固定数量的参数设置。它的理论依据是,如果随即样本点集足够大,那么也可以找到全局的最大或最小值,或它们的近似值
贝叶斯优化:考虑了上一次参数的信息,从而更好的调整当前的参数
相比sigmoid激活函数ReLU激活函数有什么优势?
(1) 防止梯度消失 ( sigmoid的导数只有在0附近的时候有比较好的激活性,在正负饱和区的梯度都接近于0)
(2) ReLU的输出具有稀疏性
(3) ReLU函数简单计算速度快