当前位置: 首页 > news >正文

深度学习--softmax回归

回归可以用于预测多少问题预测房屋出售价格棒球可能获胜常数或者患者住院天数

事实我们也对分类问题感兴趣不是 多少而是哪一个

1 某个电子邮件是否属于垃圾邮件

2 某个用户可能注册还是不注册订阅服务

3 某张图像描绘还是

4 某人接下来最有可能哪部电影

通常机器学习实践者用分类问题描述两个有微妙差别问题如果我们支队样本硬性类别感兴趣就属于某个类别如果我们希望得到类别就属于某个类别概率 这两者界限往往很模糊其中一个原因即使我们只关心类别我们仍然使用类别模型

3.4.1 分类问题

从一个图像分类问题开始每次输入一个2像素x2灰度图像每张图像对应4特征x1,x2,x3,x4.此外假设每张图像属于类别一个

接下来我们选择如何表示标签, 我们有两个明显选择最直接选择y 属于{1,2,3}其中整数分别对应 这是计算机上存储此类信息有效方法如果类别有一定自然顺序假如我们试图预测{婴儿,儿童,青少年,中年人,老年人}那么这个问题可以转变为回归问题并且保留这种格式是有意义

但是一般分类问题并不与类别之间自然顺序有关幸运统计学家很早以前一种表示分类简单方法独热编码独热编码是一个向量它的分量类别一样多类别对应分量设置为1其他所有分量设置0我们例子中标签y将是一个三维向量其中(1,0,0)对应(0,1,0)对应,(0,0,1)对应

3.4.2 网络架构

为了估计所有可能类别条件概率我们需要一个由多个输出模型每个类别对应一个输出为了解决现行模型分类问题我们需要输出一个放射函数每个输出对应自己的放射函数我们例子中由于我们4特征3可能输出类别我们将需要12标量来表示权重(带下标的w)3标量表示偏置(带下标的b)下面我们每个输入计算3规范预测logit

:O1,..On

O1 = x1w11 + x2W12 + x3w13 +b1

O1 = x1w21 + x2W22 + x3w23 +b2

O1 = x1w31 + x2W32 + x3w33 +b3

我们可以用神经网络图像描述这个计算过程如图3-4所示线性回归一样softmax回归也是一个单层神经网络由于计算每个输出o1,o2o1取决于所有输入x1,x2,.x3x4 因此softmax回归输出也是全连接

为了更简洁表达模型使用线性代数符号通过向量形式表示O = WX + b这是一适合数学编写代码形式由此我们已经所有权重放到一个3x4矩阵对于给定数据样本的特征x我们输出权重输入特征进行局长-向量 乘法加上偏置b得到

3.4.3 全链路层的参数开销

正如我们将在后续章节中看到的在深度学习中全连接无处不在然而顾名思义全连接层完全连接可能有很多学习参数具体来说对于任何具有d输入q输出全连接参数开销O(dq)这个数字实践中可能令人望而却步幸运d输入转换为q输出成本可以减少O(dq/n)其中超参数n可以我们灵活指定实际应用中在参数节省模型有效性之间进行权衡

3.4.4 softmax运算

现在我们优化参数最大观测数据概率为了得到预测结果我们设置一个阈值选择具有最大概率标签

我们希望模型输出Yi可以视为属于j概率然后选择具有最大输出类别argmaxxi,yi作为我们预测例如如果yi,y2,y3分别0.1,0.80.1 那么我们预测类别2我们例子中代表

然而我们能否规范预测O直接视作我们感兴趣输出答案是否定因为现行输出直接视为概率存在一些问题一方面我们没有限制这些输出数值1线性输出直接视为概率存在一些问题一方面我们没有限制这些输出数值总和1另一方面根据输入不同输出可以负值这些违反2.6所述概率论基本公里

要将输出视为概率我们必须保证任何数据上输出都是非负总和1此外我们需要一个训练目标函数激励模型精准估计概率例如分类器输出0.5所有样本中我们希望这些样本中刚好有一半实际属于预测这个属性叫作校准

在社会科学家1959奶奶选择模型理论基础上发明softmax函数正是这样做的softmax函数能够将规范预测变换为负数并且总和1,同时模型保持可导性质为了实现这一目标我们首先对每个未规范化概率这样可以确保输出非负值为了确保最终输出概率纵隔1,我们每个求幂结果除以结果总和

Y^ = softmax(a),其中Yi^ = exp(Oj)/sigma exp(Oi)

这里对于所有J总有0 <= Yj^ <=1因此,y^可以视为一个正确概率分布softmax运算不会改变规范化的预测O之间大小次序只会确定分配每个类别概率因此预测过程中我们仍然可以用下选择最优可能类别

argmax Y^j = argmax Oj

尽管softmax是一个非线性函数softmax回归输出仍然输入特征放射变换决定因此softmax回归是一个线性模型


http://www.mrgr.cn/news/96700.html

相关文章:

  • 高效内存位操作:如何用C++实现数据块交换的性能飞跃?
  • Time spent invoking a CUDA kernel
  • 蓝桥杯准备(前缀和差分)
  • Android 中集成 Google 应用内评分
  • 洛谷题单2-P1424 小鱼的航程(改进版)-python-流程图重构
  • thinkcmf搭建
  • 游戏引擎学习第198天
  • 大模型高质量rag构建:A Cheat Sheet and Some Recipes For Building Advanced RAG
  • 配置防火墙和SELinux(1)
  • 【Yolov8部署】 VS2019 + opencv + onnxruntime 环境下部署目标检测模型
  • mysql 八股
  • C语言常用的字符串函数
  • 06-02-自考数据结构(20331)- 查找技术-动态查找知识点
  • 蓝桥杯 刷题对应的题解
  • Java基础 3.31
  • 【Feign】⭐️使用 openFeign 时传递 MultipartFile 类型的参数参考
  • SpringBoot详细教程(持续更新中...)
  • HCIP(RSTP+MSTP)
  • 记忆学习用内容
  • Sentinel[超详细讲解]-4