神经网络中的激活函数

简介: 神经网络中的激活函数

问题描述

激活函数是深度学习,也是人工神经网络中一个十分重要的学习内容,对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有非常重要的作用。那么,激活函数的作用应该如何来理解呢?

首先,当我们不用激活函数时,网络中各层只会根据权重w和偏差b进行线性变换,就算有多层网络,也只是相当于多个线性方程的组合,依然只是相当于一个线性回归模型,解决复杂问题的能力有限。如果希望神经网络能够处理复杂任务,但线性变换无法执行这样的任务,使用激活函数就能对输入进行非线性变换,使其能够学习和执行更复杂的任务。下面,就一起来了解常用的激活函数吧。

解决方案

常用激活函数:

1Sigmoid函数

sigmoid函数可以将输入的整个实数范围内的任意值映射到[0,1]范围内,当输入值较大时,会返回一个接近于1的值,当输入值较小时,则返回一个接近于0的值。在tensorflow中,用tf.sigmoid(x)直接调用这个函数使用。

Sigmoid函数的数学公式和函数图像如下:

优点:输出在映射区间(0,1)内单调连续,非常适合用作输出层,并且比较容易求导。

缺点:其解析式中含有幂运算,计算机求解时相对比较耗时,对于规模比较大的深度网络,会较大地增加训练时间。

2Softmax函数

softmax函数实际上是在sigmoid函数上做一个推广,它可以将所有输出映射成概率的形式,即值在[0,1]范围且概率总和为1tensorflow中可以用tf.nn.softmax()来调用。

Softmax函数的数学公式如下:

举例说明一下,假如输入变量为[1.5,4.4,2.0],经过softmax函数激活后,输出为[0.04802413, 0.87279755, 0.0791784 ],分别对应属于123类的概率。代码实现则为:

tf.nn.softmax(tf.constant([[1.5,4.4,2.0]]))

3Tanh函数

tanh函数相似于sigmoid函数,但它能将值映射到[-1,1]的范围。于sigmoid函数相比,它的输出均值是0,使得其收敛速度要比sigmoid快,减少迭代次数,但幂运算的问题依然存在。

Tanh函数数学公式和函数图像如下:

4Relu函数

relu函数,是目前被使用最为频繁得激活函数,relu函数在x < 0时,输出始终为0。由于x > 0时,relu函数的导数为1,即保持输出为x,所以relu函数能够在x > 0时保持梯度不断衰减,从而缓解梯度消失的问题,还能加快收敛速度。

relu函数数学公式和函数图像如下:

前向传播的实例,就需要借助这个函数,小编发布过这个实例的详解,其中包括代码演示,感兴趣的话可以去看看《TensorFlow前向传播实例》这篇文章。

结语

简单来说,激活函数的作用就是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。在神经网络中,隐藏层之间的输出大多需要通过激活函数来映射,在构建模型时,需要根据实际数据情况选择激活函数。TensorFlow中的激活函数不止这4种,本文只是介绍最常用的4个,当然,其他激活函数大多是这几个激活函数的扩展变换形式。


目录
相关文章
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
1月前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
120 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
1月前
|
机器学习/深度学习 数据可视化 算法
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
|
3月前
|
机器学习/深度学习 算法
神经网络中激活函数的重要性
【8月更文挑战第23天】
27 0
|
3月前
|
监控
【网络编程】poll函数
【网络编程】poll函数
28 0
|
3月前
|
监控
【网络编程】select函数
【网络编程】select函数
63 0
|
3月前
|
机器学习/深度学习 Shell 计算机视觉
一文搞懂 卷积神经网络 卷积算子应用举例 池化 激活函数
这篇文章通过案例详细解释了卷积神经网络中的卷积算子应用、池化操作和激活函数,包括如何使用卷积算子进行边缘检测和图像模糊,以及ReLU激活函数如何解决梯度消失问题。
|
4月前
|
机器学习/深度学习
神经网络可能不再需要激活函数?Layer Normalization也具有非线性表达!
【7月更文挑战第14天】研究表明,层归一化(LayerNorm)可能具备非线性表达能力,挑战了神经网络对激活函数的依赖。在LN-Net结构中,仅使用线性层与LayerNorm就能实现复杂分类,其VC维度下界证明了非线性表达。尽管如此,是否能完全替代激活函数及如何有效利用这一特性仍需更多研究。[arXiv:2406.01255]
58 5
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于负相关误差函数的4集成BP神经网络matlab建模与仿真
**算法预览:** 图像显示无水印的2022a版MATLAB运行结果 **软件版本:** MATLAB 2022a **核心代码片段:** 省略展示 **理论概述:** NCL集成BP网络利用负相关提升泛化,结合多个弱模型减少错误关联。通过λ参数控制模型间负相关程度,λ&gt;0增强集成效果,提高预测准确性和系统稳健性。
|
4月前
|
存储 Java Unix
(八)Java网络编程之IO模型篇-内核Select、Poll、Epoll多路复用函数源码深度历险!
select/poll、epoll这些词汇相信诸位都不陌生,因为在Redis/Nginx/Netty等一些高性能技术栈的底层原理中,大家应该都见过它们的身影,接下来重点讲解这块内容。

热门文章

最新文章