美文网首页
Pytorch机器学习——3 神经网络(二)

Pytorch机器学习——3 神经网络(二)

作者: 辘轳鹿鹿 | 来源:发表于2022-04-06 17:05 被阅读0次

    outline

    1. 神经元与神经网络
    2. 激活函数
    3. 前向算法
    4. 损失函数
    5. 反向传播算法
    6. 数据的准备
    7. PyTorch实例:单层神经网络实现

    3.2 激活函数

    在神经元中输入信息通过一个非线性函数f:y=f(z)产生输出,这个函数决定哪些信息保留以传递给后面的神经元,这个函数就是激活函数,又被称为非线性函数,对于给定的输入,激活函数执行固定的数学运算得到输出结果。
    激活函数要具有以下性质:

    • 非线性
    • 连续可微性
    • 值域有限
    • 单调性:激活函数是单调的时候,单层的神经网络才保证是凸函数。
    • 具有单调导数的光滑函数:奥卡姆剃刀原理(简单有效原理)
    • 函数值和输入近似相等:满足这个条件的激活函数,当权重初始化成很小的随机数时,神经网络的训练将会很高效,如果不满足这个条件则需要很小心地初始化神经网络权重。

    下面介绍几种常见的激活函数:

    3.2.1 Sigmoid

    sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为 (0,1) ,它可以将一个实数映射到 (0,1) 的区间,可以用来做 二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。
    Sigmoid函数由下列公式定义
    S(x)=\frac{1}{1+e^{-x}}
    其对x的导数可以用自身表示:
    S^{\prime}(x)=\frac{e^{-x}}{\left(1+e^{-x}\right)^{2}}=S(x)(1-S(x))
    Sigmoid函数的图形如s曲线,又称s函数

    image.png

    Sigmoid作为激活函数有以下优缺点:

    • 优点:平滑、易于求导。
    • 缺点:
      • 梯度消失: 从图形上可以看出,当输入变量特别大或者特别小的时候,函数曲线变化趋于平缓,也就是说函数的梯度变得越来越小,直到接近于0,这会导致经过神经元的信息会很少,无法完成深层网络的训练。
      • 激活函数计算量大:函数求导涉及除法,在神经网络训练,也就是反向传播求误差梯度的时候计算量大。
    import torch
    m=torch.nn.Sigmoid()
    _input = torch.autograd.Variable(torch.rand(2))
    print(_input)
    print(m(_input))
    

    有用就留个赞吧^_^

    相关文章

      网友评论

          本文标题:Pytorch机器学习——3 神经网络(二)

          本文链接:https://www.haomeiwen.com/subject/zkhksrtx.html