[土堆]深度学习快速入门教程笔记——非线性激活——010

1.非线性激活的作用


引入非线性关系: 如果在神经网络中只使用线性操作(如线性加权和),整个网络就会变成一个大的线性函数,多个线性层的组合依然是一个线性变换。非线性激活函数(例如sigmoid、tanh、ReLU等)引入了非线性关系,允许网络学习和表示非线性的模式,这对于解决复杂任务非常关键。

常见非线性激活函数:

1. Sigmoid 函数(Logistic 函数):

        sigma(x) = \frac{1}{1 + e^{-x}}

  - 作用: 将输入映射到范围(0, 1)之间。在二元分类问题中常用作输出层的激活函数。但它在深层网络中容易引起梯度消失问题,因此在隐藏层中的使用相对较少。

2. Tanh 函数(双曲正切函数):

        tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}
   - 作用: 将输入映射到范围(-1, 1)之间,相比于sigmoid函数,tanh函数的输出范围更广,可以将数据“居中”,有时用于隐藏层的激活函数,可以缓解梯度消失问题。

3. ReLU 函数(修正线性单元):

        {ReLU}(x) = \max(0, x)
   - 作用: 对于正数输入,输出与输入相同;对于负数输入,输出为零。ReLU函数能够加速网络的收敛,但也可能导致神经元“死亡”(输出恒为零),因此在一些变种中,如Leaky ReLU和Parametric ReLU,对负数输入有小的斜率,以避免这个问题。

4. Leaky ReLU 函数:

        {Leaky ReLU}(x) = \max(\alpha x, x)
   其中,alpha 是一个小的正数,通常取0.01。Leaky ReLU在负数输入时引入一个小的斜率,以防止神经元“死亡”。

5. Softmax 函数:

        {Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{N} e^{x_j}}
   - 作用: 通常用于多类别分类问题的输出层。Softmax函数将网络的原始输出转化为概率分布,使得每个类别的预测概率在(0, 1)范围内,并且所有类别的概率之和为1。


 2. Tensorboard显示


import torch
import torchvision
from torch import nn 
from torch.nn import ReLU
from torch.nn import Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

dataset = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor(),download=True)       
dataloader = DataLoader(dataset, batch_size=64)

class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        self.relu1 = ReLU()
        self.sigmoid1 = Sigmoid()
        
    def forward(self, input):
        output = self.sigmoid1(input)
        return output

tudui = Tudui()
writer = SummaryWriter("logs")
step = 0

for data in dataloader:
    imgs, targets = data
    writer.add_images("input", imgs, step)
    output = tudui(imgs)
    writer.add_images("output", output, step)
    step = step + 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值