• 吴恩达2022机器学习专项课程C2W2:实验SoftMax


    Softmax函数

    1.简述

    在 Softmax 回归和带有 Softmax 输出的神经网络中,模型生成 N 个输出并从中选择一个作为预测类别。模型通过线性函数生成一个向量 z,然后应用 Softmax 函数将其转化为概率分布。Softmax函数使所有输出值在 0 和 1 之间且总和为 1,从而可以解释为概率。较大的输入值z会对应较大的输出概率。
    在这里插入图片描述

    2.Numpy实现softmax函数

    先把输入向量的每个元素转换成指数e,这是第一步。然后每个指数都要除以指数之和。
    在这里插入图片描述
    代码实现的是这个过程,向量z包含一层的所有输出,每个输出,都经过softmax函数计算,得到激活向量。在这里插入图片描述
    可通过调整每个z值,来观察softmax函数的输出。结果表明,softmax函数的整体输出和为1,Softmax的输出是一组概率分布,每个值都在0到1之间,且总和为 1。一个z值的改变会影响所有的激活值a,而ReLU 或 Sigmoid 等其他激活函数不同,这些函数是单输入单输出的,一个输入只影响一个输出。
    在这里插入图片描述

    softmax成本函数

    softmax的损失函数,y是目标类别,a是softmax函数的输出,注意:损失函数衡量的是一个样本。
    在这里插入图片描述
    为了编写成本方程,我们需要一个“指示函数”,当第 i 个样本的真实标签为 j 时为 1,否则为 0。
    在这里插入图片描述
    成本函数计算过程,𝑚是训练样本的数量,𝑁是类别的数量,例如真实标签y有0,1,2,3,则N=4。然后开始计算每个训练样本的损失,N求和公式的内容为:例如第一个训练样本的真实标签y=1,则计算真实标签y=1对应的训练样本的softmax函数值,其它标签不参与计算。第二个训练样本的真实标签y=3,则计算真实标签y=5对应的训练样本的softmax函数值,其它标签不参与计算。这样我们能精准计算每个训练样本的损失,然后累计总和除以平均值,即为成本函数的值。

    在这里插入图片描述

    softmax应用于神经网络

    1.自定义数据集

    Tensorflow 中实现 softmax、cross-entropy loss 的两种方法,首先创建数据集,输入样本2个特征,真实标签y也就是分类一共4个0,1,2,3,2000个训练样本。
    在这里插入图片描述

    2.构建模型

    构建模型,模型最终输出一个概率向量。在这里插入图片描述
    编译模型的损失函数SparseCategoricalCrossentropy就是这个。
    在这里插入图片描述

    3.使用模型预测

    用训练好的模型预测,第一个输出是个二维数组,它表示预测结果前两行,也就是模型预测第一个和第二个训练样本的分类属于0,1,2,3的概率。第二个输出是预测结果中的最大概率和最小概率。

    在这里插入图片描述

    4.改良模型代码(softmax转换输出)

    输出层设置为线性激活,损失函数有一个额外的参数: from_logits = True 。表示损失函数应在损失计算中包含softmax 操作。这样可以实现计算优化,减小误差。
    在这里插入图片描述
    输出的内容是离散型数据,有负数正数,它不是概率,而是logits(z),后续还需要拿z进行softmax计算。
    在这里插入图片描述
    softmax处理,第一行 [2.08e-03, 3.14e-03, 9.61e-01, 3.34e-02] 表示第一个训练样本在各个分类上的概率。第二行 [9.92e-01, 7.37e-03, 1.74e-04, 1.94e-06] 表示第二个训练样本在各个分类上的概率。
    在这里插入图片描述

    这段代码打印前5个训练样本的分类概率向量。category 输出的是具有最高概率的分类索引。
    例如,如果第一个输出中索引2的元素最大,即该元素在概率向量中最大,表示该样本最有可能属于分类2。每个训练样本的概率之和都为1。在这里插入图片描述

  • 相关阅读:
    父组件使子组建滚动
    玩转 PI 系列-如何在 Rockchip Arm 开发板上安装 Docker Tailscale K3s Cilium?
    【IBIS 模型与仿真 - IBISWriter and Write_IBIS】
    一级造价工程师(安装)- 计量笔记 - 第六章第三节通信设备及线路工程
    30分钟带你精通git使用
    【物理应用】基于粒子群优化算法实现瞬变电磁法视电阻率反演附matlab代码
    三相和单相智能微型断路器功能有区别吗?
    timm模型无法联网下载采用本地读取
    Python快速刷题网站——牛客网 数据分析篇(六)
    几个数组相关常见算法题
  • 原文地址:https://blog.csdn.net/AIGC_xuexishe/article/details/139216166