<深度学习基础> 激活函数

为什么需要激活函数?激活函数的作用?

  1. 激活函数可以引入非线性因素,可以学习到复杂的任务或函数。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从数据中学习复杂函数映射的能力很小。
  2. 激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更
    好的被分类;

为什么激活函数需要非线性函数?

  1. 假若网络中全部是线性部件,那么线性的组合还是线性,与单独一个线性分类器无异。这样就做不到用非线性来逼近任意函数;
  2. 使用非线性激活函数 f ( x ) f(x) f(x),以便使网络更加强大,增加它的能力,使它可以学习复杂
    的事物,复杂的表单数据,以及表示输入输出之间非线性的复杂的任意函数映射。使用非线性
    激活函数,能够从输入输出之间生成非线性映射;

激活函数的选择

  1. 如果输出是0、1 值(二分类问题),则输出层选择sigmoid 函数,然后其它的所有单元都选择Relu 函数。
  2. 如果在隐藏层上不确定使用哪个激活函数,那么通常会使用Relu 激活函数。有时,也会使用tanh 激活函数,但Relu 的一个优点是:当是负值的时候,导数等于0。
  3. sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。
  4. tanh 激活函数:tanh 是非常优秀的,几乎适合所有场合。
  5. ReLu 激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用ReLu 或者Leaky ReLu,再去尝试其他的激活函数。

ReLu 激活函数的优点

  1. 计算更快&学习更快: ReLu 激活函数的导数都会远大于0,在程序实现就是一个if-else 语句,而sigmoid 函数需要进行浮点四则运算,在实践中,使用ReLu 激活函数神经网络通常会比使用sigmoid 或者tanh 激活函数学习的更快。
  2. 防止梯度弥散: sigmoid 和tanh 函数的导数在正负饱和区的梯度都会接近于0,这会造成梯度弥散,而Relu 和Leaky ReLu 函数大于0 部分都为常数,不会产生梯度弥散现象。
  3. 稀疏激活性: 从信号方面来看,即神经元同时只对输入信号的少部分选择性响应,大量信号被刻意的屏蔽了,这样可以提高学习的精度,更好更快地提取稀疏特征。当 x < 0 x<0 x<0 时,梯度为0,ReLU硬饱和,而当 x > 0 x>0 x>0 时,则不存在饱和问题。ReLU 能够在 x > 0 x>0 x>0 时保持梯度不衰减,从而缓解梯度消失问题。

常见的激活函数

1、Sigmod函数

f ( x ) = 1 1 + e − x f(x)= \frac {1}{1+e^{-x}} f(x)=1+e−x1

2、Relu函数

f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)

3、tanh函数

f ( x ) = e x − e − x e x + e − x f(x)=\frac {e^{x}-e^{-x}}{e^{x}+e^{-x}} f(x)=ex+e−xex−e−x

4、Leak Relu函数

f ( x ) = { α x , x < 0 x , x > 0 f(x)=\left\{ \begin{aligned} \alpha x, x<0\\ x,x>0 \\ \end{aligned} \right. f(x)={αx,x<0x,x>0

图为 α = 0.5 \alpha=0.5 α=0.5

5、softmax函数

softmax多用于多分类神经网络的输出
σ ( z ) j = e z j ∑ k = 1 K e z k \sigma(z){j}=\frac {e^{z{j}}}{\sum {k=1}^{K} e^{z{k}}} σ(z)j=∑k=1Kezkezj

相关推荐
AI完全体3 分钟前
【AI知识点】偏差-方差权衡(Bias-Variance Tradeoff)
人工智能·深度学习·神经网络·机器学习·过拟合·模型复杂度·偏差-方差
卷心菜小温38 分钟前
【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
python·深度学习·语言模型·nlp·bug
陈苏同学1 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
FL16238631292 小时前
[深度学习][python]yolov11+bytetrack+pyqt5实现目标追踪
深度学习·qt·yolo
羊小猪~~2 小时前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm
龙的爹23332 小时前
论文 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust
人工智能·gpt·深度学习·语言模型·自然语言处理·prompt
工业机器视觉设计和实现2 小时前
cnn突破四(生成卷积核与固定核对比)
人工智能·深度学习·cnn
醒了就刷牙2 小时前
58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版
pytorch·rnn·深度学习
985小水博一枚呀2 小时前
【对于Python爬虫的理解】数据挖掘、信息聚合、价格监控、新闻爬取等,附代码。
爬虫·python·深度学习·数据挖掘
想要打 Acm 的小周同学呀3 小时前
实现mnist手写数字识别
深度学习·tensorflow·实现mnist手写数字识别