更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html

Softmax回归

Softmax回归属于多分类\(c_1,c_2,\ldots,c_k\)模型,它通过估计某个样本属于\(k\)个类别的各自的概率达到多分类的目的。它是逻辑回归的一般形式,即当\(k=2\)的时候退化为逻辑回归。

一、Softmax回归详解

1.1 让步比

由于softmax回归更多的是逻辑回归的多分类形式,此处只给出softmax的定义及公式。

让步比可以理解成有利于某一特定事件的概率,可以定义为

\[{\frac{p}{1-p}}
\]

在已知二分类问题的情况下每个分类的概率分别为\(\hat{y_i}\)和\(1-\hat{y_i}\),可以定义logit函数,即让步比的对数形式(log-odds)为

\[\begin{align}
\log{it}(\hat{y_i}) & = \log{\frac{p(y=1|x,\omega)}{p(y=0|x,\omega)}} \\
& = \log{\frac{\hat{y_i}}{1-\hat{y_i}}} \\
& = \log{\frac{{\frac{1}{1+e^{-\omega^Tx}}}}{{\frac{-\omega^Tx}{1+e^{-\omega^Tx}}}}} \\
& = \omega^Tx
\end{align}
\]

其中\(\log{it}(p)\)函数等于事件发生的概率除以不发生的概率取对数,即表示特征值和对数概率之间的线性关系。

1.2 不同类之间的概率分布

现在假设有一个\(k\)元分类模型,即样本的输出值为\(c_1,c_2,\ldots,c_k\),对于某一个实例预测为\(c_i\)样本的概率总和为\(1\),即

\[\sum_{i=1}^k p(y=i|x,\omega) =1
\]

该\(k\)元分类模型依据让步比的对数形式可以得到

\[\begin{align}
& \ln{\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} = {\omega_1^T}x \\
& \ln{\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} = {\omega_2^T}x \\
& \cdots \\
& \ln{\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} = {\omega_{k-1}^T}x \\
& \ln{\frac{p(y=k|x,\omega)}{p(y=k|x,\omega)}} = {\omega_{k}^T}x = 0 \\
\end{align}
\]

通过对上述公式化简可得

\[\begin{align}
& {\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_1^T}x} \\
& {\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_2^T}x} \\
& \cdots \\
& {\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_{k-1}^T}x} \\
\end{align}
\]

\[\begin{align}
e^{{\omega_1^T}x}+e^{{\omega_1^T}x}+\cdots+e^{{\omega_{k-1}^T}x} & = \sum_{i=1}^{k-1} e^{{\omega_i^T}x} \\
& = {\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} + {\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} + \cdots + {\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} \\
& = {\frac{p(y=1|x,\omega)+p(y=2|x,\omega)+\cdots+p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} \\
& = {\frac{1-p(y=k|x,\omega)}{p(y=k|x,\omega)}} \\
\end{align}
\]

既得\(p(y=k|x,\omega)={\frac{1}{1+\sum_{i=1}^{k-1} e^{{\omega_i^T}x}}}\)

通过\(p(y=k|x,\omega)\)即可推出\(p(y=j|x,\omega)={\frac{e^{{\omega_j^T}x}}{1+\sum_{t=1}^{k-1} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k-1\),因此可以得到\(k\)元分类模型的\(k\)个类的概率分布为

\[p(c=k|x,\omega)=
\begin{cases}
{\frac{e^{{\omega_j^T}x}}{1+\sum_{t=1}^{k-1} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k-1 \quad if类别为1,2,\ldots,k-1 \\
{\frac{1}{1+\sum_{i=1}^{k-1} e^{{\omega_i^T}x}}} \quad if类别为k \\
\end{cases}
\]

1.3 目标函数

上一节基于\({\omega_k^T}x=0\)计算出每个分类的概率,然而现实中往往\({\omega_k^T}x\neq0\),可以使用上一节的推导过程假设\({\omega_k^T}x\neq0\)则可以推导出\(k\)元分类模型的\(k\)个类的概率分布为

\[p(c=k|x,\omega)={\frac{e^{{\omega_j^T}x}}{\sum_{t=1}^{k} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k
\]

通过上述\(k\)个类别的概率分布可得似然函数

\[\begin{align}
L(\omega) & = \prod_{i=1}^m \prod_{k=1}^k p(c=k|x_i,\omega)^{{y_i}_k} \\
& = \prod_{i=1}^m \prod_{k=1}^k ({\frac{e^{({\omega_k^T}x_i)}}{\sum_{t=1}^k e^{{\omega_t^T}x_i}}})^{y_ik}
\end{align}
\]

通过似然函数即可得对数似然函数即目标函数(注:该目标函数与交叉熵损失函数的形式一致,二元逻辑回归可以理解为交叉熵损失函数两个类变量的特殊形式,Softmax回归可以理解成交叉熵损失函数的多个类变量的特殊形式,交叉熵为

\[\begin{align}
J_m(\omega) & = \log{L(\omega)} \\
& = \sum_{i=1}^m\sum_{k=1}^k {y_i}_k ({\omega_k^T}x_i - \log\sum_{t=1}^k e^{({\omega_t^T}x_i)})
\end{align}
\]

1.4 目标函数最大化

由于Softmax回归和逻辑回归都可以使用梯度上升法使得目标函数最大化,并且方式一样,因此此处只给出目标函数对参数的偏导。

\[{\frac{\partial{J(\omega)}}{\partial\omega_k}}=\sum_{i=1}^m ({y_i}_k-p({y_i}_k|x_i,\omega_k))x_i
\]

二、Softmax回归优缺点

2.1 优点

  1. 基于模型本身可以处理多分类问题

2.2 缺点

  1. 计算极其复杂

\(2^2\)


02-13 Softmax回归的更多相关文章

  1. TensorFlow实现Softmax回归(模型存储与加载)

    # -*- coding: utf-8 -*- """ Created on Thu Oct 18 18:02:26 2018 @author: zhen "& ...

  2. Logistic回归(逻辑回归)和softmax回归

    一.Logistic回归 Logistic回归(Logistic Regression,简称LR)是一种常用的处理二类分类问题的模型. 在二类分类问题中,把因变量y可能属于的两个类分别称为负类和正类, ...

  3. 机器学习之softmax回归笔记

    本次笔记绝大部分转自https://www.cnblogs.com/Luv-GEM/p/10674719.html softmax回归 Logistic回归是用来解决二类分类问题的,如果要解决的问题是 ...

  4. 《动手学深度学习》系列笔记—— 1.2 Softmax回归与分类模型

    目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参 ...

  5. 机器学习——softmax回归

    softmax回归 前面介绍了线性回归模型适用于输出为连续值的情景.在另一类情景中,模型输出可以是一个像图像类别这样的离散值.对于这样的离散值预测问题,我们可以使用诸如 softmax 回归在内的分类 ...

  6. 【深度学习】softmax回归——原理、one-hot编码、结构和运算、交叉熵损失

    1. softmax回归是分类问题 回归(Regression)是用于预测某个值为"多少"的问题,如房屋的价格.患者住院的天数等. 分类(Classification)不是问&qu ...

  7. Softmax回归

    Reference: http://ufldl.stanford.edu/wiki/index.php/Softmax_regression http://deeplearning.net/tutor ...

  8. Softmax回归(Softmax Regression)

    转载请注明出处:http://www.cnblogs.com/BYRans/ 多分类问题 在一个多分类问题中,因变量y有k个取值,即.例如在邮件分类问题中,我们要把邮件分为垃圾邮件.个人邮件.工作邮件 ...

  9. DeepLearning之路(二)SoftMax回归

    Softmax回归   1. softmax回归模型 softmax回归模型是logistic回归模型在多分类问题上的扩展(logistic回归解决的是二分类问题). 对于训练集,有. 对于给定的测试 ...

  10. Machine Learning 学习笔记 (3) —— 泊松回归与Softmax回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 泊松回归 (Poisson ...

随机推荐

  1. GitHub 简单教程

    码农朋友们都知道,GitHub是一个面向开源及私有软件项目的托管平台,上面托管了众多的优秀的项目,比如Linux内核源码.Git源码.机器学习框架Tensorflow等等.当然,除了这些顶尖项目外,还 ...

  2. Git使用(二)版本库创建及文件修改

    一.创建版本库 1.安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ gi ...

  3. 当递归遇到synchronized

    面试题:有一个synchronized方法,加入该方法发生递归调用,会导致线程死锁码? 解析: 所谓递归函数就是自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身. 递归方式有两种:直 ...

  4. length属性、length()方法和size()的方法的区别

    JAVA 1. length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性: 2.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法 ...

  5. Kubernetes v1.16 发布 | 云原生生态周报 Vol. 20

    作者:心贵.进超.元毅.心水.衷源.洗兵 业界要闻 Kubernetes v1.16 发布 在这次发布中值得关注的一些特性和 Feature: CRD 正式进入 GA 阶段: Admission We ...

  6. P0.0口驱动一个LED闪烁

    #include<reg51.h> //头文件 sbit LED=P0^; //led接P0.0,定义P0.0为P0^0 void delay(unsigned int x) //延时函数 ...

  7. Linux 笔记 - 第十三章 Linux 系统日常管理之(一)系统状态监控

    博客地址:http://www.moonxy.com 一.前言 如果你是一名 Linux 运维人员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.系统运行状态主要包括:系统负载.内存状态 ...

  8. Linux(Centos7)yum安装最新mysql

    环境 CentOS 7.1 (64-bit system) MySQL 5.6.24 CentOS 安装 参考:http://www.waylau.com/centos-7-installation- ...

  9. XPath匹配含有指定文本的标签---contains的用法

    1.标签中只包含文字 <div> <ul id="side-menu"> <li class="active"> <a ...

  10. 06: RGB、YUV和HSV颜色空间模型

    RGBA是代表Red(红色)Green(绿色)Blue(蓝色)和Alpha的色彩空间 YUV:Y"表示明亮度(Luminance或Luma),也就是灰阶值:而"U"和&q ...