热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

训练softmax分类器实例_assignment1softmax分类器

理论知识softmax函数如下:一个样本在C个类别的评分为z,可以看出z为一个向量。softmax函数对进行压缩,输出一个向量࿰

理论知识

softmax函数如下:

a3959f90988fb369d1a2aa5772c60fda.png

一个样本在C个类别的评分为z,可以看出z为一个向量。softmax函数对

进行压缩,输出一个向量,其中每个元素值在0到1之间,且所有元素之和为1。

交叉熵定义如下:

7ab82f9ce637a4f945cf7b3c5c577d01.png

为真实的分布,
为估计分布。

将softmax函数与交叉熵相结合,就可以得到如下式子:

0f6487016e8bb19c20e73e7d48bab691.png

另一种等价的形式为:

5bcc080cba96afe8325b11c1310d23b1.png

信息理论的角度来理解:

相对熵也被称为KL散度,它用于衡量同一个随机变量X的两个分布p(X)和q(X)之间的差异,p(X)表示样本的真实分布,q(X)表示预测的分布,DL散度的公式如下:

相对熵的特点是只有只有p(x)=q(x)时,其值才为0,若p(x)和q(x)略有差异,其值就会大于0。

整理之后可以得到:

称为熵,而
则是交叉熵。

由于真实概率分布是固定的(虽然我们现在不知道,但我们有训练集),但是它的概率质量都分布在正确的类别上(

,即在
的位置有一个单独的1),所以H(p(x))为常数,那么就可以等价地把交叉熵损失函数看做对两个分布之间的相对熵做最小化操作,那么相对熵达到最小值的时候,也意味着交叉熵达到了最小值。对
的优化就等效于求交叉熵的最小值。
则是softmax函数。

概率论解释:

8e9dfedc60e4ef9487dfb7ec2a6aafd9.png

可以解释为是给定图像数据

,以
为参数,分配给正确分类标签
的归一化概率。在没有使用softmax之前的评分值则解释为没有归一化的
对数概率

现在我们想做的是找到使正确类别的概率最大的W,这正好是极大似然估计(MLE)的作用,即:

对其取负对数:

让似然函数的负对数最小就等价于似然函数最大,这和交叉熵的公式完全一样!

算法实现部分重点的就是求梯度和向量化了,这部分之后再统一写吧,之后的内容和SVM没什么差别,softmax分类器也是个模板匹配。



推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 支持向量机(SVM)算法综述
    支持向量机(Support Vector Machine, SVM)是由Cortes和Vapnik于1995年首次提出的一种机器学习算法。SVM在处理小样本、非线性及高维模式识别问题上表现出显著的优势,并广泛应用于函数拟合等其他机器学习任务中。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 支持向量机(SVM)在机器学习中的应用与学习心得
    支持向量机(SVM)是一种高效的二分类模型,其核心目标是通过寻找最优超平面来区分不同类别的数据点。在实际应用中,SVM能够有效地处理高维数据,并通过核技巧扩展到非线性分类问题。当新的数据点输入时,SVM会根据其相对于超平面的位置来判定其所属类别。训练过程中,SVM通过最大化间隔来确定最优超平面,从而提高模型的泛化能力。本文总结了SVM在机器学习中的应用及其学习心得,探讨了其在实际问题中的优势和局限性。 ... [详细]
  •     目标检测是计算机视觉一个非常重要的子任务。目标检测需要发现并准确定位自然图片中的物体。在2012年之前,目标检测主要基于手工设计的特征以及传统分类器。2012年以后,出现了 ... [详细]
  • 深度学习: 目标函数
    Introduction目标函数是深度学习之心,是模型训练的发动机。目标函数(objectfunction)损失函数(lossfunction)代价函数(costfunction) ... [详细]
  • 分隔超平面:将数据集分割开来的直线叫做分隔超平面。超平面:如果数据集是N维的,那么就需要N-1维的某对象来对数据进行分割。该对象叫做超平面,也就是分类的决策边界。间隔:一个点 ... [详细]
  • NLP篇【01】tfidf与bm25介绍与对比
    上一篇:自然语言处理【NLP】遇上电商——专栏导读下一篇:NLP篇【02】白话Word2vec原理以及层softmax、负采样的实现一、tfidf介 ... [详细]
  • 这是我在复习时整理的笔记,过一遍就稳了,建议还是把PPT过一遍,老师考的都是基础题,大部分都在PPT上,特别是 ... [详细]
author-avatar
Yx宵夜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有