一个机器学习问题的重新定义

news2024/9/22 9:27:13

任何事物都有两面性。

一些机器学习问题也是如此。并非每个回归问题(你认为的)都需要回归。仔细考虑和审视问题的业务不仅可以帮助开发更好的模型,还可以找到有效的解决方案。

重构或重新定义(reframing)是一种改变机器学习问题输出表示的策略。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

1、回归问题重构

例如,我们可以将回归问题转换为分类问题(反之亦然)。

每个机器学习问题都始于范围界定(scoping)。

范围界定涉及从用户的角度思考问题、确定项目范围以及谁将使用它。这可能涉及提出以下问题:

  • 这是一个监督问题还是非监督问题?
  • 我们服务的最终用户是谁?
  • 最终产品对人类生命/财产是否至关重要?
  • 多少错误是可以接受的?

假设,我们想使用线性回归来预测医院每月的运营时间,以便确定医院的人员配备要求。运营时间变量取决于我们数据集的独立变量,例如每月的 X 光检查次数、每月占用的床位天数和/或每月患者的平均住院时间。

因此,这个看似简单的任务看起来是一个回归任务,因为每月的运营时间是一个连续变量。当我们开始构建回归模型时,我们发现这个任务比听起来要难。同一组特征的运营时间会增加,可能是因为一年中某个时期的急性病,或者由于其他一些不一致。我们预测的运营时间可能会有(比如说)10 小时的偏差。但这不会对人员配备要求产生太大影响。

也许我们可以重新构建我们的机器学习目标,以提高性能。

这里的问题是预测运营时间是概率性的。我们可以将目标构建为分类任务,而不是尝试将此变量预测为回归任务。

将实值因变量分解为大小相等的箱/类别:

然后,我们将对这些类别进行one-hot处理,并创建一个多类分类模型,该模型将对离散概率分布进行建模。

当然,我们需要更细粒度的桶。但这只是为了说明目的

分类方法允许模型捕获不同离散范围内的运行时间概率分布,而不必选择分布的平均值。

这在以下情况下非常有用:

  • 变量不呈现典型的钟形曲线(可能是 tweedie 分布)。
  • 当分布为双峰分布(具有两个峰值的分布)时,或者即使分布为正态但方差较大时。
  • 当分布为正态但方差较大时

2、它为什么有效?

我们正在将模型的目标从学习连续值转变为学习离散概率分布;以损失精度为代价,但反过来,我们获得了完整概率密度函数 (PDF) 的表达能力。

这种分类框架的另一个优点是,我们获得了预测值的后验概率分布,这提供了更细微的信息。

3、权衡与替代方案

另一种方法是多任务学习,它使用多个预测头将两个任务(分类和回归)组合成一个模型,但要注意由于数据集的限制而引入标签偏差的风险。

重新构建回归问题是捕捉不确定性的一种非常好的方法。捕捉不确定性的其他方法是进行分位数回归(quantile regression)。

例如,我们可以估计需要预测的条件第 10、20、30、...、90 个百分位数,而不是仅仅预测平均值。分位数回归是线性回归的扩展。另一方面,重新构建可以与更复杂的机器学习模型一起使用。

3.1 预测精度

如上例所示,我们牺牲了精度来获得离散概率分布函数 (PDF) 的表达能力。如果需要更精确,则需要增加分类模型的箱数。

PDF 的锐度表示回归任务的精度。 PDF 越锐利,表示输出分布的标准差越小,而 PDF 越宽,表示标准差越大,因此方差越大。

对于锐利的密度函数,请坚持使用回归模型。

回归的精度由一组固定输入值的概率密度函数的锐度表示

我们可以通过对右侧图中的特征进行分桶处理来获得左侧的相同图。

另外,不要混淆准确度(accuracy)和精确度(precision)的概念:

准确度是测量值与真实值的接近程度。

精确度是(同一项目的)测量值之间的接近程度。

3.2 重构作为限制预测范围的一种方法

很多时候,预测范围是一个实值变量。 仅使用一个神经元的密集层可能会使预测输出超出可接受/可解释的范围。

重构可以在这里起到救援作用。

为了限制预测范围,将倒数第二层的激活函数设为 S 型函数(通常与分类相关),使其在 [0, 1] 范围内,并让最后一层将这些值缩放到所需范围:

MIN_Y = 3
MAX_Y = 20
input_size = 10
 
inputs = keras.layers.Input(shape=(input_size,))
h1 = keras.layers.Dense(20, 'relu')(inputs)
h2 = keras.layers.Dense(1, 'sigmoid')(h1) # a sigmoid layer
output = keras.layers.Lambda(
	lambda y: (y*(MAX_Y-MIN_Y) + MIN_Y)
    )(h2) # a custom layer for scaling
model = keras.Model(inputs, output)

由于输出是 S 型函数,因此模型实际上永远不会达到范围的最小值或最大值,只是接近它。

3.3 标签偏差

基于神经网络的推荐系统被设计为回归或分类模型,比矩阵分解更具优势,因为它们可以结合矩阵分解中学习到的用户和项目嵌入之外的更多附加特征。

但是,将目标设计为分类问题(观众是否会点击)可能会导致推荐系统优先考虑点击诱饵。

在这种情况下,最好将目标重新定义为回归问题,预测将观看的视频部分,或视频观看时间,甚至预测用户观看至少一半视频片段的可能性。

3.4 多任务学习

我们甚至可以尝试两者,而不是将任务重新设计为回归或分类,这称为多任务学习。

多任务学习是指优化多个损失函数的任何机器学习模型。

神经网络中多任务学习最常见的两个分支是:

  • 硬参数共享——当模型的隐藏层在所有输出任务之间共享时。
  • 软参数共享——当每个标签都有自己的神经网络和自己的参数时,通过某种形式的正则化鼓励不同模型的参数相似。

多任务学习的两种常见实现


原文链接:机器学习问题的重新定义 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【rust工具链】

1 查看正在使用的工具链 命令:rustup show 结果显示: 从图中可以看到正在使用的是rustc 1.76.0版本,也可以看到已安装的所有版本的工具链 2 使用默认工具链 命令:rustup default 版本号 例如:rustup default 1.58…

Python数据分析实验四:数据分析综合应用开发

目录 一、实验目的与要求二、主要实验过程1、加载数据集2、数据预处理3、划分数据集4、创建模型估计器5、模型拟合6、模型性能评估 三、主要程序清单和运行结果四、实验体会 一、实验目的与要求 1、目的: 综合运用所学知识,选取有实际背景的应用问题进行…

大模型中的Tokenizer

在使用GPT 、BERT模型输入词语常常会先进行tokenize 。 tokenize的目标是把输入的文本流,切分成一个个子串,每个子串相对有完整的语义,便于学习embedding表达和后续模型的使用。 一、粒度 三种粒度:word/subword/char word词&a…

人工智能+跨癌种分析,能否解决医学数据样本量小的问题?【医学AI|顶刊速递|05-26】

小罗碎碎念 先说明,目前小罗只是硕士,以下个人观点很有可能不准确,欢迎批评指正!!小罗虚心听取有益建议!! 众所周知,医学数据相比于其他领域的数据来说,属于小样本数据。…

Java----Maven详解

前言 Maven是Java项目的构建工具,通过项目对象模型(POM)管理项目配置信息,自动化构建、测试和部署过程。开发人员可定义项目结构、依赖和构建流程,提高开发效率和质量。本文介绍基本概念和用法,帮助您更好…

ros2编写pcl节点加载pcd文件

初次学习ros2和pcl,尝试在ros2中创建节点,加载pcd文件,并在rviz中进行可视化,记录一下整个过程。 编辑环境 ubuntu20.04 ros2_foxy 创建节点 mkdir -p proj_ws_pcl/src #创建工程文件夹 cd proj_ws_pcl/src #创建源码文件夹 …

社交媒体数据恢复:绿洲

本教程将向您展示如何在绿洲平台上备份和恢复数据,但不涉及推荐任何具体的数据恢复软件。 一、绿洲平台数据备份 为了确保数据的安全,在日常使用过程中,我们需要定期备份绿洲平台上的数据。以下是备份绿洲平台数据的步骤: 登录绿…

opencv进阶 ——(四)图像处理之去高光

去高光步骤: 1、转换成灰度图 2、二值化图像,得到高光区域 3、进行膨胀操作,放大高光区域,以此得到高光蒙版 4、通过illuminationChange函数对高光区域消除高光

Vite + Vue3 部署 GitHub

因为静态资源是可以部署到 GitHub 上,自己顺便学习部署网站 因为我使用的是 Vite 工具,官方有提供相应 Demo 部署静态站点 | Vite 官方中文文档 新建文件夹 .github 然后再建一个文件夹 workflows 新建文件 main.yml 文件 直接使用官方文档 demo #…

携手AI,如何共赢未来?

5/25日参加了一个培训分享会,由博奥研究院、武汉博奕咨询和华工科技联合举办,主题是“携手Ai,共赢未来”。 抱着跟书友线下交流的心态我参与了,参与前我对博奥做了基础了解,他们跟工信部考试和教育中心有合作&#x…

区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测

区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测 目录 区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DNN-KDE深度神经网络结合…

Textual for Mac:轻量级IRC客户端

在寻找一款高效、轻量级的IRC客户端时,Textual for Mac无疑是你的不二之选。它集成了众多现代技术,如本机IPv6、最新的IRCv3规范,以及客户端证书身份验证,让你的聊天体验更加顺畅和安全。 Textual for Mac v7.2.2免激活版下载 Tex…

Soybean Admin:一款高效、现代化的后台管理模板探索

随着前端技术的快速发展,越来越多的开发者开始寻求使用最新技术栈来构建高效、用户友好的后台管理系统。Soybean Admin作为一款基于Vue3、Vite5、TypeScript、Pinia、NaiveUI和UnoCSS等前沿技术的后台管理模板,为我们提供了一个全新的解决方案。本文将深…

SWM320系列应用

一、Swm320系列 SPI 应用 现象:应用SWM320的SPI1的模式0作为从机,整体产品硬件平台同步上电,从机的SPI无法正常工作,进不了中断,手工复位一次或连接SWD调试就正常了,这样的情况应该怎么解决?其…

Next.js里app和pages文件夹的区别

最近开始学 Next.js,因为纯自学,有时候网上找到的学习资料都是几年前的,难免会有点 outdated,因此当自己创建的项目结构和视频里呈现的结构不一致时,难免会有点困惑。 例如,今天遇到的第一个问题就是&…

企业如何正确地利用LLM大模型?

大型语言模型 (LLM) 不值得信任。就是这样。 考虑到它们先进的 AI 能力以及当今强大的基础模型的普遍知识,这似乎是一件令人惊讶的事情。然而,问题的关键在于 LLM 无法解释其输出。你不能信任 LLM 的结果,不是因为它不准确,而是因…

(南京观海微电子)——MCU屏介绍

MCU-LCD屏与RGB-LCD屏主要区别在于显存的位置: RGB-LCD的显存是由系统内存充当的,因此其大小只受限于系统内存的大小,这样RGB-LCD可以做出较大尺寸,像现在4.3只能算入门级,而MID中7、10的屏都开始大量使用。 MCU-L…

window好用的网速工具

这是一个用于显示当前网速、CPU及内存利用率的桌面悬浮窗软件,并支持任务栏显示,支持更换皮肤。 github链接如下 https://github.com/zhongyang219/TrafficMonitor?tabreadme-ov-file