精华内容
下载资源
问答
  • Softmax回归 softmax 回归是 logistic 回归一般化,适用于K分类问题,即多分类问题。...例如,输入一张图片,softmax 可以判断这张图片属于哪一种类别动物,不能判断这张图片属于哪几种类别动物。soft...

     

    Softmax回归

    softmax 回归是 logistic 回归的一般化,适用于K分类的问题,即多分类问题。针对于每个类别都有一个参数向量 θ (即每个类别都一套对应该类别的 \Theta _{1},\Theta _{2}...\Theta _{n}),第k类的参数为向量 \Theta _{k},组成的二维矩阵为 \Theta _{k}*n;

    softmax 只适用于样本单分类。例如,输入一张图片,softmax 可以判断这张图片中属于哪一种类别的动物,不能判断这张图片中属于哪几种类别的动物。softmax 的损失函数决定了每个样本只有一种类别的概率很大,分到其他类别的概率会很小。

    softmax 函数的本质就是将一个K维的任意实数向量压缩(映射)成另一 个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。即将样本特征值映射到(0,1)之间,可以看成概率来理解。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。 

     

    Softmax算法原理(预测过程)

    softmax 回归概率函数为:

    其中,小写 k 表示各个类别,大写 K 表示总类别数。\Theta _{x}^{T}x 表示第 k 个类别对应的线性回归拟合函数。分子可以看成是某样本在某个类别上的拟合程度的指数,分母可以看成是某样本各个类别上的拟合程度的指数之和。Softmax 将多分类的输出数值转化为相对概率,更容易理解和比较,最后的输出是每个分类被取到的概率。

    下面举个通俗的例子,假设有5个类别:猫,狗,鸡,鸭,鼠。我们要判断一张图片(图片上只有一种动物)应该分类为哪个类别,样本的特征分别是:头,尾巴,前脚,后脚,身体。如下图所示,以该图片作为一个样本:

       

    于是,我们想知道当输入这个样本时,输出为猫的概率,上述 softmax 回归概率函数可以形象的表示为:

    然后我们把上面的Softmax物理意义图拆分一下, 变成如下图

    没错 ,预测结果与输入特征之间存在明显相关性。并且,Softmax 具有更好的解释性,包含属于猫的这一类的特征越多,输出为猫的概率就越大。(插播一句,这里所谓的概率,是相对概率,而不是绝对概率,假设上图P输出的概率为0.75,物理含义是,当输入为X时,预测为猫的概率是预测不是猫的概率的3倍)上面的情况是假设不同特征是相互独立的。

    然而,这可能在许多情况下不成立,因为特征之间可能存在协同作用或冗余,这种协同或者作用会直接影响输出概率,比如猫前脚和猫后脚。为了解决这种情况,我们可以:

    1)去除有协同作用或冗余的特征,如x3 =X1⋅x2x3=x1⋅x2(但是如果我们不知道哪些特征值是相关的,我们可能会引入更多无用的特征!

    2)当两个特征经常一起被激活时,训练过程将学习较小的权重W1和W2,使得它们的联合效果更接近真实效果

    上面的例子取自 https://cloud.tencent.com/developer/news/307323 ,感谢作者。

    softmax 是解决K分类的问题,所以对于每一个分类,都需要计算出一个与之对应的拟合函数,所以每个拟合函数都对应一组\Theta值,K 分类就有K组不同的 \Theta 值。即每个样本在模型中都需要计算 K 次,表示该样本在每个分类上的概率。于是将上面的 softmax 回归概率函数推广到对 K 个类别都计算一次的情况,即可得到:

    上式应该是 softmax 回归完整的概率函数,其中, i 表示第 i 个样本,p(...) 表示该样本在每个分类上的概率,一共有k个类别,所以每个样本都会有 k 个概率,即这里的 p(...) 。最后面的关于 \Theta 的矩阵表示我们最终的目的就是求出最合适的 \Theta 矩阵,即求出该矩阵内所有元素的值。

    为什么要求 \Theta 的值?因为 \Theta 是 softmax 回归的概率函数中的自变量 x 的系数,求出 \Theta,即可求出 softmax 回的概率函数,即模型。这里要清楚我们的最终目的是什么,就是求所有的\Theta值。

     

    Softmax算法损失函数(训练过程)

    由上面的论述我们可以知道,每一个用来训练模型的样本都对应一个  h_{\Theta }\left ( x \right ) ,所以 softmax 回归的似然函数就是所有训练样本所对应的的  h_{\Theta }\left ( x \right ) 的乘积。为什么是乘积?见之前 ' 线性回归&逻辑回归 ' 博客,其中有解答。

    1. softmax 的似然函数:

    \large L\left ( \Theta \right )=\prod _{i}^{m}P\left (y ^{(i)=k} | x^{(i)};\Theta \right ) =\prod _{i}^{m}\frac{ e^{\Theta _{k}^{T}x^{(i)}} }{ \sum _{j=1}^{k} e^{\Theta _{j}^{T}x^{(i)}} }

    上式中,k 表示样本 i 的标签类别为类别 k,K 表示类别总数,j 表示第 j 个类别,m 表示样本总数。

    \large \frac{ e^{\Theta _{k}^{T}x^{(i)}} }{ \sum _{j=1}^{k} e^{\Theta _{j}^{T}x^{(i)}} } 表示的是:模型计算出的该样本在标签类别(实际类别)上的概率。

    上述softmax 的似然函数可表述为:各个样本在其的标签类别上模型计算出的概率的乘积。

    2. softmax 的损失函数:

    损失函数一般都是似然函数推到出来的,这里 softmax 回归的似然函数是概率相乘的结果,对似然函数取对数即可转化成相加。为什么要取对数?因为相乘的计算量比较大,取对数后即可转换成加运算,计算量会小很多。由此可以得到 softmax 的损失函数,如下:

    这里m表示所有样本的数量,k为类别数量,j 表示第 j 个类别,i 表示第 i 个样本。

    假设一个样本 i,其标签为类别 a,样本总量为 n 。上式可表述为:各个样本在其标签类别上模型计算出的概率取对数再相加求和。就是说,如果模型计算出样本 i 的类别为 b,而样本 i 的实际类别为 a,这种情况下预测结果和实际结果不一致的话,损失函数不会计算模型计算样本 i 在类别为 b 上的概率(实际上是被I()函数赋值为0了,这就是I()函数的作用),还是只计算样本 i 在类别 a 上模型计算出的概率。即要保证样本在标签类别上计算出的概率越大越好,即上式掉前面的 -\frac{1}{m},剩下的部分要越大越好 ( 其实剩下的部分就是似然函数,前提是如果上面损失函数的类别 j 表示样本 i 的标签类别(实际类别),上式的  \large \sum _{j=1}^{k}I\left ( y^{(i)}=j \right ) 可以去掉。就和上面的似然函数一致了 ) ,表示要尽量让样本 i 分类为类别 a 的概率最大。对于所有样本都要如此。-\frac{1}{m} 中的符号主要是为了方便使用梯度下降求最小值,而除以 m 只是为了平均一下,无伤大雅。

    损失函数取到最小值时,此时的 \Theta 值即为最合适的,代入 softmax 回归概率函数即可。

    预测过程就是:用训练出的模型(即回归概率函数)对每个样本在每个分类上的概率都计算一下,然后取概率值最大的那个分类作为该样本的分类。

    3. 标签平滑

    上面的损失函数其实是点缺陷的,会导致模型的精准程度降低,上面的损失函数只考虑模型计算出的各个样本在其标签类别(实际类别)上的概率,默认样本在非标签类别(实际类别)上的概率为0(因为I()函数),实际上样本在非标签类别(实际类别)上的概率不是0,是有值的,而我们要保证这些值应该越小越好,所以可以定义 I\left ( y^{(i)}=j \right ) 在 y^{(i)}\neq j 的情况下的值为一个很小的超参,比如 0.01,而不是直接设置为 0 。这样将 ' 样本在非标签类别(实际类别)上的概率 ' 也考虑到损失函数中,更为科学。

     

    补充

    最后,softmax 和 k个二元分类器(例如逻辑回归) 之间应该如何选择呢?

    1. 如果样本最后只能分类为1个类别,例如一张图片只有猫,在猫、狗、鼠中,最后被分类为猫,适合用softmax
    2. 如果样本最后能分类为n个类别,例如一张图片上有猫和狗,在猫、狗、鼠中,最后被分类为猫和狗,适合用n个二元分类器(第一步判断是猫/非猫,判断完成后该分类器判断是狗/非狗,以此类推)
     

     

    参考资料:

    CNN入门讲解:我的Softmax和你的不太一样 - 云+社区 - 腾讯云  https://cloud.tencent.com/developer/news/307323

     

     

     

    展开全文
  • c#学习笔记.txt

    2008-12-15 14:01:21
    另外我发现论坛上学习Java人都非常有个性,当有人问起学习哪种语言更好时,他会打出百个“JAVA”来,填满整个屏幕,也不说是为了什么。我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对,虽然我...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.1 我该如何决定使用哪种整数类型? 1.2 为什么不精确定义标准类型大小? 1.3 因为C语言没有精确定义类型大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    《你必须知道495个C语言问题》以问答形式组织内容,讨论了学习或使用C语言过程经常遇到一些问题。书列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...
  • 1.1 我该如何决定使用哪种整数类型? 1  1.2 为什么不精确定义标准类型大小? 2 1.3 因为C语言没有精确定义类型大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、...
  • 直接采集待测信号,将情况计算待测信号频率: 如果频率比较高,在一秒内对待测信号就行计数。 如果频率比较低,在待测信号一个周期内对单片机工作频率进行计数。 将得到频率值通过显示译码后直接送入...
  • 几种重要配置文件.......................................................................................................26 三.Linux下常用工具软件......................................................
  • 015 计算公式结果的几种方法 20 016 使用【F9】键查看公式结果 21 017 批量复制公式——按【Ctrl+Enter】组合键 21 018 批量复制公式——按【Ctrl+D】组合键 23 019 批量复制公式——拖动控制柄 24 020 ...
  • 你必须知道495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    2.8 如何向接受结构参数的函数传入常数值? . . . . . . . . . . . . . . 8 2.9 怎样从/向数据文件读/写结构? . . . . . . . . . . . . . . . . . . . 9 2.10 我的编译器在结构留下了空洞, 这导致空间浪费而且...
  • 在此Repo,我们展示了如何用 PaddlePaddle来解决常见的机器学习任务,提供若干不同易学易用神经网络模型。PaddlePaddle用户可领取免费Tesla V100在线算力资源,高效训练模型,每日登陆即送12小时,连续五天...
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    面试题37 C++哪几种基本数据类型 38 面试题38 整型有哪几种形式?各种形式有什么区别 39 面试题39 C++有哪些常量 40 面试题40 常量与变量有哪些区别 42 4.2 操作符 42 面试题41 操作符有哪些分类 43 面试题42 ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    11.2 方法中的参数.125 11.3 静态和非静态方法.129 11.4 方法重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三...
  • 要想学习和掌握它诸多新特性,只能从Oracle手册入手,而数万页11g手册不免让人心存畏惧,从中挑出对新特性描述更需要一双“火眼金睛”。  好消息!在本书第1版出版时隔4年后,Thomas Kyte及时了解了大家这...
  • 介绍下机器学习和深度学习中常见的参数类算法和非参数类算法 随机梯度下降 神经网络训练如何解决过拟合和欠拟合 L1正则化和L2正则化区别,具体有何用途 L1正则化相比于 L2正则化为何具有稀疏解 2. C++开发...
  • C#微软培训资料

    2014-01-22 14:10:17
    11.2 方法中的参数.125 11.3 静态和非静态方法.129 11.4 方法重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

机器学习中参数的学习分哪几种