tensorflow - Tensorflow/Keras - 如何暴露类别之间的关系?
问题描述
我有标有 5 个类别的数据。
每个类别代表物理世界中不同强度的同一事件。
这一事实的重要性在于,类别 5 基本上是与类别 1 相同的事件(例如地震)的更强版本。
有人可以提供一个想法如何使模型(TF/Keras)可以使用这些知识吗?
解决方案
One-Hot Encoding 在多类分类问题中很常见。在您的情况下,类别 3 事件标签将被编码为 [0, 0, 1, 0, 0]。您将创建一个具有 softmax 激活的密集输出层的模型,然后为了获得预测,您将采用输出层的 argmax 来获得类别。
如果您要问如何体现所有类别都是同一类的变体这一事实,您可能需要查看嵌入层。基本上,嵌入层将分类(稀疏)向量转换为密集向量,并允许该转换成为模型的可学习参数。它允许模型在向量空间中将相似的类组合在一起。它通常用于语言建模中,用于将相似的单词分组在一起。例如,在嵌入向量中,Woman、Lady、Queen 比 Man、Lord、King 更靠近。在您的情况下,类 1,2,3 可能比 4,5 更接近,并且嵌入层将允许您的模型学习这一点。
推荐阅读
- groovy - Groovy“as”运算符是否在运行时为用户定义的类创建子类?
- mysql - 为具有多个连接的查询编写计数查询
- python - 上传此图片时出现此错误“无法识别媒体类型”?
- powershell - PowerShell Get-Help 无法识别参数注释
- powershell - 从其他 PS 命令向 PS 对象添加值
- oracle - 如何在多租户架构中更改(迁移)根容器数据库的字符集?
- javascript - AngularJS UI-Select 标记不适用于 Google Chrome 中的新标记
- javascript - selectInput 值未在可反应的 Shiny 中更新(Trouble binding-unbiding)
- git - 如何在不复制子包代码的情况下将主版本升级到 v2 并默认获取最新版本?
- sql - Haskell + Squeal 中的 SQL 数组聚合