神经网络中为什么要用到激活函数?为什么要用到不同的激活函数?

这篇博客介绍了神经网络中的推理过程,主要涉及前向传播,通过矩阵和向量运算计算各层的输入输出。作者使用TensorFlow库创建了一个包含多个Dense层的逻辑回归模型,并应用了Sigmoid激活函数。模型的训练采用了二元交叉熵损失函数,经过100个周期的训练来拟合数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在神经网络中进行推理和前向支撑:数学上利用矩阵、向量的乘法等运算来计算每一层的输入输出;程序上可以调用函数。

Tensorflow实现:

import tensorflow as tf
from tensorflow.keras import.Sequential
from tensorflow.keras.layers 

import Densemodel=Sequential([
Dense (units=25,activation=' sigmoid' )#第一步:指定模型
Dense (units=15,activation=' sigmoid' )#确定如何推理计算
Dense (units=1, activation=' sigmoid' )
)]
from tensorflow.keras.losses import
BinaryCrossentropy
model.compile(loss=BinaryCrossentropy())#使用特定函数对模型进行复合
model.fit(x,Y,epochs=100)#训练模型

细节:

1.确定逻辑回归模型的输入和输出

2.确定logistic loss,确定成本函数J

### BP神经网络中的激活函数 #### ReLU 函数 ReLU(Rectified Linear Unit)函数是当前深度学习中最受欢迎的激活函数之一,被广泛应用于各类神经网络模型中。该函数定义如下: 对于输入 \( x \),如果 \( x > 0 \),则输出为 \( x \);否则输出为 0。 ```python def relu(x): return max(0, x) ``` 这种特性使得 ReLU 能够有效缓解梯度消失问题,在深层网络中有较好的表现[^1]。 #### Sigmoid 函数 Sigmoid 函数是一种经典的非线性变换函数,常用于早期的神经网络设计。它具有平滑连续的特点,能够将任意实数值压缩至 (0, 1) 区间内,非常适合处理二分类问题或作为输出层的概率估计工具。 \[ f(x)=\frac{1}{1+\exp(-x)} \] ```python import math def sigmoid(x): return 1 / (1 + math.exp(-x)) ``` 由于其导数也是连续可微分的形式,这有助于反向传播过程中计算权重更新值。过需要注意的是,当输入绝对值较大时,Sigmoid 的饱和区域容易引发梯度弥散现象[^3]。 #### Tanh 函数 Tanh 是另一个常用的双曲正切形式的激活函数,可以视为经过中心化的 Sigmoid 版本。它的取值范围位于 (-1, 1),相比原始 Sigmoid 更有利于加速收敛速度并改善优化性能。 \[ f(x)=\tanh(x)=\frac{\sinh(x)}{\cosh(x)}=\frac{(e^{x}-e^{-x})/(2)}{(e^{x}+e^{-x})/2}=2*sigmoid(2*x)-1 \] ```python def tanh(x): return math.tanh(x) ``` 此函数同样存在类似的梯度消退风险,但在某些特定情况下仍能提供更好的效果。 综上所述,不同激活函数各有优劣,具体选择取决于实际应用场景的需求以及所构建模型的具体结构特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值