社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

彻底搞懂深度学习-激活函数和损失函数(动图讲解)

架构师带你玩转AI • 1 周前 • 27 次点击  

在深度学习中,激活函数为神经网络注入非线性能力以更好拟合复杂数据,损失函数衡量预测误差并指引优化方向,二者分别作用于前向传播和反向传播,协同推动模型训练。

激活函数是神经网络中的非线性函数,用于在神经元之间引入非线性关系,使模型能够学习和表示复杂的数据模式,常见的激活函数有 Sigmoid、Tanh、ReLU 和 Leaky ReLU。
损失函数则是评估模型预测值与真实值之间的差异,通过最小化损失函数来优化模型参数,常见的损失函数有均方误差MSE、交叉熵损失Cross-Entropy Loss。
图片
一、激活函数(Activation Function)
激活函数是神经网络中的非线性函数,用于在神经元之间引入非线性关系,从而使模型能够学习和表示复杂的数据模式。
如果神经网络没有像Relu这样的激活函数(也叫非线性激活函数),神经网络每层就只包含两个线性运算(仿射变换),即点积与加法:output = dot(input, W) + b。这样多个线性层堆叠后,其整体运算仍然是线性的。为了引入非线性因素,即激活函数。
图片
Sigmoid和Tanh是早期激活函数,但易梯度消失。ReLU及其改进版(如Leaky ReLU等)解决了此问题,常用于隐藏层。Softmax则专用于多分类输出层,转输出为概率分布。
图片
(1)Sigmoid激活函数
将输入值压缩到(0, 1)之间,常用于二分类问题的输出层。但存在梯度消失问题,且输出不以零为中心。
图片
(2)Tanh激活函数
将输入值压缩到(-1, 1)之间,输出均值为0,更适合隐藏层。但同样存在梯度消失问题。
(3)ReLU激活函数
当输入大于0时,输出等于输入;当输入小于0时,输出为0。具有计算简单、梯度消失问题较轻的优点,是隐藏层常用的激活函数。但存在神经元死亡问题。
(4)Leaky ReLU激活函数
解决了ReLU在输入小于0时梯度为0的问题,允许小的梯度流过。
(5)Softmax激活函数
将输入向量中的每个元素映射到(0, 1)区间内,并且所有输出元素的和为1。用于多分类问题的输出层,将神经网络的输出转换为概率分布。
、损失函数(Loss Function)
在深度学习中,损失函数则是评估模型预测值与真实值之间的差异,通过最小化损失函数来优化模型参数。
模型通过损失值评估预测性能,并据此指导优化方向。为了优化模型参数,神经网络采用梯度下降等优化算法,通过不断减少损失值,逐步调整模型参数。
在选择损失函数时,需考虑任务类型、数据分布以及特定需求,常见的损失函数类型包括均方误差和交叉熵损失等。
(1)均方误差(MSE Loss)
用于回归问题,计算预测值与真实值之间差的平方的平均值。
(2)交叉熵损失(Cross Entropy Loss)
用于分类问题,衡量模型预测概率分布与真实概率分布之间的差异。包括二分类交叉熵损失和多类别交叉熵损失。
Binary Cross-Entropy Loss

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183109
 
27 次点击