CivArchive
    ← All articles
    Published May 4, 2024by arcgua

    深度学习笔记 5 感知器到神经网络

    42 views0 reactions0 comments on CivitAI0 collected
    tool guide

    输入层 中间层 (隐藏层)输出层

    神经网络就结构而言和感知器没有太大的区别

    激活函数

    激活函数个人理解:这个神经网络会被激活以及激活之后信号传输的形式。

    1. 引入非线性:激活函数使神经网络能够学习非线性函数。如果没有激活函数,多层神经网络就只是一系列线性变换的叠加,无法学习和表示复杂的非线性关系。

    2. 控制神经元的激活状态:激活函数根据输入的加权和来决定神经元是否激活以及激活的程度。这种激活状态影响着神经网络中信号的传播。

    3. 非线性映射:激活函数将输入映射到不同的输出空间,从而使得神经网络能够处理各种复杂的输入数据,并在输出端产生适当的响应。


      阶跃函数和 Sigmoid 函数都是常见的激活函数,它们在神经网络中起着不同的作用。下面我来简要介绍一下这两个函数:

      阶跃函数(Step Function)

      阶跃函数是最简单的激活函数之一,其数学表达式如下:

      step(𝑥)={0if 𝑥<01if 𝑥≥0step(x)={01​if x<0if x≥0​

      阶跃函数的输出是一个阶梯状的函数,当输入大于等于0时,输出为1;当输入小于0时,输出为0。阶跃函数具有不连续性,因为在输入值从负数变为正数时,输出会突然从0变为1,这种性质使得它在神经网络中的应用受到限制。

      Sigmoid 函数

      Sigmoid 函数是另一种常见的激活函数,其数学表达式如下:

      𝜎(𝑥)=11+𝑒−𝑥σ(x)=1+ex1​

      Sigmoid 函数将输入值映射到一个范围在 0 到 1 之间的连续输出。它具有平滑的 S 形曲线,且在任何输入值处都有定义。Sigmoid 函数的输出在输入为负无穷时趋近于0,在输入为正无穷时趋近于1,而在输入为0时输出为0.5。Sigmoid 函数的连续性和可微性使得它在神经网络中的应用更为广泛。

    ReLU(Rectified Linear Unit)函数是一种常用的非线性激活函数,在深度学习中得到了广泛的应用。它的数学表达式如下:

    ReLU(𝑥)=max⁡(0,𝑥)ReLU(x)=max(0,x)

    简单来说,ReLU 函数的作用是将输入 𝑥x 转换为输出 𝑦y,如果输入 𝑥x 大于等于0,则输出与输入相同;如果输入 𝑥x 小于0,则输出为0。

    ReLU 函数的优点包括:

    1. 非线性特性:ReLU 函数引入了非线性特性,使神经网络能够学习和表示复杂的非线性关系。

    2. 稀疏激活性:ReLU 函数在输入为负时输出为0,这意味着它可以引入稀疏性,即在网络的某些神经元上引入不活跃的特性,从而提高模型的泛化能力。

    3. 计算高效:ReLU 函数的计算简单高效,不涉及复杂的数学运算,使得神经网络的训练速度更快。

    softmax函数

    1. 输入向量:Softmax 函数接收一个包含 𝐾K 个元素的实数向量 𝑧=(𝑧1,𝑧2,...,𝑧𝐾)z=(z1​,z2​,...,zK​),这个向量通常是神经网络的输出层在进行分类任务时的原始输出。

    2. 指数转换:对输入向量中的每个元素 𝑧𝑖zi 进行指数转换,得到一个新的向量 𝑒=(𝑒𝑧1,𝑒𝑧2,...,𝑒𝑧𝐾)e=(ez1​,ez2​,...,ezK​),其中 𝑒e 是自然对数的底。

    归一化:对指数转换后的向量进行归一化,即计算每个元素的指数值与所有元素指数值之和的比例,得到一个新的向量 𝑝=(𝑝1,𝑝2,...,𝑝𝐾)p=(p1​,p2​,...,pK​),其中

    𝑝𝑖=𝑒𝑧𝑖∑𝑗=1𝐾𝑒𝑧𝑗pi​=∑j=1Kezjezi

    个人理解:softmax,将权重转为一定指数形式,然后和求比重一样,把全部数字相加,然后指数权重除以总的数字,你就得到一个比较小的数字,每个数字相加最终结果就是一,这样才能将他们视作为概率。