机器学习 - 特征学习(表示学习)

为了提高机器学习算法的能力,我们需要抽取有效、稳定的特征。

传统的特征提取是通过人工方式进行的,需要大量的人工和专家知识。一个成功的机器学习系统通常需要尝试大量的特征,称为特征工程(Feature Engineering).但即使这样,人工设计的特征在很多任务上也不能满足需要。

因此,如何让机器自动地学习出有效的特征也成为机器学习中的一项重要研究内容,称为特征学习 (Feature Learning),也叫表示学习(Representation Learning)。特征学习在 一定程度上也可以减少模型复杂性、缩短训练时间、提高模型泛化能力、避免过拟合等。

一、传统的特征学习:

人为设计准则、选取,传统的特征学习分为两种:特征选择和特征抽取

1、特征选择(Feature Selection):

在机器学习中,特征选择(Feature Selection)指的是从原始数据中挑选出对预测目标最有用的那部分特征,同时剔除那些冗余、噪声较多或无关的特征。这样做的主要目的是提高模型的性能和泛化能力,同时降低模型的复杂度和计算成本。

子集搜索 - 一种直接的特征选择方法为子集搜索(Subset Search):

假设原始特征数为 𝐷,则共有 2^𝐷 个候选子集。特征选择的目标是选择一个最优的候选子集。 最暴力的做法是测试每个特征子集,看机器学习模型哪个子集上的准确率最高。

但是这种方式效率太低。常用的方法是采用贪心的策略:由空集合开始,每一轮添加该轮最优的特征,称为前向搜索(Forward Search);或者从原始特征集合开始,每次删除最无用的特征,称为反向搜索(Backward Search)。

在包装方法中,特征选择本质上就是一个子集搜索问题,即在所有可能的特征子集中寻找一个最优子集;而过滤方法和嵌入方法则采用不同的策略,但目标都是为了确定对模型预测最有帮助的特征。

(1)特征选择的意义

  • 提高模型性能:去除无关或冗余特征,可以减少噪声对模型的干扰,提高模型的准确性。
  • 降低过拟合风险:特征数量过多可能导致模型过拟合,通过选择最相关的特征,可以让模型更专注于真正重要的信息。
  • 减少计算成本:减少输入特征的维度可以降低模型训练和预测时的计算负担。
  • 增强模型解释性:较少的特征有助于理解模型决策的依据,便于解释和应用。

(2)特征选择的方法

常见的特征选择方法主要可以分为三类:过滤法(Filter Method)包裹法(Wrapper Method)嵌入法(Embedded Method)

  1. 过滤法(Filter Method)
    • 基本思想:独立于模型,对每个特征与目标变量之间的相关性进行评估,然后选择得分较高的特征。
    • 常用方法
      • 相关系数:如皮尔逊相关系数,用于衡量连续变量之间的线性相关性。
      • 互信息:衡量两个变量之间的依赖关系,适用于非线性关系。
      • 卡方检验:通常用于分类问题,评估每个特征与目标类别之间的关联强度。
      • 方差筛选:剔除方差低(变化小)的特征。
  2. 包裹法(Wrapper Method)
    • 基本思想:将特征子集选择问题作为搜索问题,通过在给定模型上反复训练,选择使模型性能最优的特征组合。
    • 常用方法
      • 前向选择(Forward Selection):从空特征集开始,逐步添加能使模型性能提升最大的特征,直到没有显著改进为止。
      • 后向消除(Backward Elimination):从全特征集开始,逐步剔除对模型性能影响最小的特征,直到去除任何特征都会使性能下降为止。
      • 递归特征消除(Recursive Feature Elimination, RFE):不断训练模型并移除最不重要的特征,直到达到预设特征数量或性能最佳。
  3. 嵌入法(Embedded Method)
    • 基本思想:特征选择过程嵌入到模型训练中,同时进行参数估计和特征选择。
    • 常用方法
      • 正则化方法:例如Lasso回归(L1正则化),在优化目标中加入正则项,使得部分不重要的特征的系数收缩到零,从而实现自动特征选择。
      • 树模型特征重要性:例如决策树、随机森林等模型,通过训练过程中评估特征对预测的贡献,进而筛选出重要特征。

2、特征抽取

(1)我们先看看特征抽取和特征选择的本质区别是什么 ?

特征抽取和特征选择都是为了改善模型性能、降低数据维度、提高效率,但它们的本质区别在于:

  • 特征选择
    直接从原始特征中挑选出一部分与目标最相关的特征,其本质是一个子集选择问题。它不改变原始特征的表达方式,只是剔除那些冗余或无关的特征,从而降低数据维度。例如,在一个有100个特征的数据集中,可能通过相关性分析或正则化方法(如Lasso)选择出其中最重要的20个特征用于训练模型。

  • 特征抽取
    则是通过一定的变换将原始数据转换到一个新的特征空间,在这个过程中会生成全新的特征表示。其目标是从原始高维数据中提取出最具信息量的低维表示,同时保留原始数据的主要特性。例如,使用主成分分析(PCA)可以将原始数据转换为若干个正交的主成分,这些主成分是原始特征的线性组合,能够解释大部分数据的方差。

总结

  • 特征选择是在原始特征集合中挑选出一个子集,不改变特征的表达形式;
  • 特征抽取则是通过数学变换将原始数据映射到新的特征空间,从而生成新的特征表示。

两者都旨在降低数据维度和提高模型性能,但特征抽取更侧重于通过转换找到更有效的表示,而特征选择则关注于筛选最有用的原始特征。

(2)特征抽取:

特征抽取(Feature Extraction)是构造一个新的特征空间,并将原始特征

投影在新的空间中得到新的表示.以线性投影为例,令 𝒙 ∈ R^𝐷 为原始特征向量, 𝒙′ ∈ R^𝐾 为经过线性投影后得到的在新空间中的特征向量,有

𝒙′ = 𝑾𝒙,

其中𝑾 ∈ R^𝐾×𝐷 为映射矩阵.

特征抽取(Feature Extraction)是机器学习和数据挖掘中的一个关键步骤,其主要目标是从原始数据中提取出能够有效表征数据本质信息的特征或表示,从而使得后续的模型训练和预测更加准确和高效。它通常涉及降维、数据变换或从数据中提取潜在表示等过程。下面详细说明特征抽取的概念及常见方法:

(3)特征抽取的概念

  • 定义
    特征抽取是将原始数据转换为一组新的、更有信息量且通常维度较低的特征的过程。这些新特征应尽可能保留原始数据中与任务(如分类、回归等)相关的重要信息,同时剔除噪声和冗余信息。

  • 意义

    • 降维与去噪:在高维数据中,直接使用原始特征可能导致维度灾难和过拟合,通过特征抽取可以减少特征数量,同时提高模型的泛化能力。
    • 提高效率:降维后的数据维度较低,既降低了计算复杂度,也便于可视化和解释。
    • 增强信息表达:通过变换原始数据,往往能发现原始特征之间的内在关系,获得更具辨识度的特征表示。

(4)常见的特征抽取方法

特征抽取的方法通常可以分为传统统计方法和基于深度学习的方法,具体方法视数据类型而定:

1.针对数值数据和图像数据的传统方法
  • 主成分分析(PCA, Principal Component Analysis)
    通过线性变换将数据投影到一组正交基上,选择解释数据方差最多的若干个主成分。PCA可以降维并去除冗余信息,常用于探索数据的结构。

  • 线性判别分析(LDA, Linear Discriminant Analysis)
    除了降维,还试图最大化类别之间的分离度,常用于分类任务中的特征抽取。

  • 独立成分分析(ICA, Independent Component Analysis)
    用于将多变量信号分解为相互独立的成分,适用于信号处理等领域。

2.针对文本数据的特征抽取方法
  • TF-IDF(Term Frequency-Inverse Document Frequency)
    衡量一个词在文档中出现频率的同时,降低在所有文档中普遍出现的词的权重,从而得到更具代表性的词汇特征。

  • 词嵌入(Word Embedding)
    通过将词语映射到连续低维向量空间(如 Word2Vec、GloVe、FastText 等),捕捉词与词之间的语义和上下文关系,从而获得更丰富的文本表示。

3.基于深度学习的特征抽取
  • 自动编码器(Autoencoder)
    利用神经网络将输入数据编码为低维表示,再解码回原始数据。中间隐藏层的激活值通常作为数据的抽象特征表示。

  • 卷积神经网络(CNN)
    尤其在图像处理任务中,CNN 能够自动从图像中提取层次化特征,如边缘、纹理、形状等。

  • 预训练语言模型
    如BERT、GPT等,在自然语言处理任务中,通过预训练获得的深层次特征可以直接作为文本的特征表示。

(5) 示例说明

示例 1:文本情感分析中的特征抽取

假设我们有一组电影评论数据,任务是判断评论是正面还是负面。原始评论文本非常高维且稀疏。

  • 步骤
    1. 预处理:对文本进行分词、去除停用词等处理。
    2. 特征抽取方法
      • 使用 TF-IDF 方法计算每个评论中每个词的权重,得到一个向量表示;
      • 或者利用预训练的词嵌入模型(如 Word2Vec 或 BERT)将每个词转换为低维向量,再通过求平均、池化等方式得到整个评论的向量表示。
    3. 结果:得到每条评论的低维向量,这些向量可以作为输入特征用于训练情感分类器(例如逻辑回归或神经网络)。

示例 2:图像识别中的特征抽取

假设我们需要识别手写数字。

  • 步骤
    1. 原始数据:图像数据通常为像素矩阵,维度很高。
    2. 特征抽取方法
      • 使用传统方法,如主成分分析(PCA)对图像进行降维,提取主要的视觉特征;
      • 或者使用卷积神经网络(CNN)自动从图像中提取局部特征(如边缘、角点等),通过卷积和池化层逐步获得更抽象的特征表示。
    3. 结果:得到图像的低维特征向量或多层特征表示,作为分类器(如全连接神经网络或 SVM)的输入,实现手写数字的识别。

(4) 总结

  • 特征抽取的意义:将原始数据转换为更具信息量、更低维度的表示,帮助模型更有效地学习和泛化。
  • 对应的方法:根据数据类型,常用的方法有 PCA、LDA、TF-IDF、词嵌入、自动编码器、CNN 等。
  • 应用场景:从文本情感分析到图像识别,再到语音处理等,特征抽取在各类机器学习任务中都扮演着关键角色。

这种方法不仅提升了模型的性能,还能帮助我们更好地理解数据的内在结构和语义。

二、与传统特征学习相对应的是深度学习方法

传统的特征抽取一般是和预测模型的学习分离的。我们会先通过主成分分析或线性判别分析等方法抽取出有效的特征,然后再基于这些特征来训练一个具体的机器学习模型。

如果我们将特征的表示学习和机器学习的预测学习有机地统一到一个模型中,建立一个端到端的学习算法,就可以有效地避免它们之间准则的不一致性. 这种表示学习方法称为深度学习(Deep Learning,DL).深度学习方法的难点 是如何评价表示学习对最终系统输出结果的贡献或影响,即贡献度分配问题。目前比较有效的模型是神经网络,即将最后的输出层作为预测学习,其他层作为表 示学习。

深度学习方法是一类通过多层神经网络结构自动学习数据特征的算法和技术,其主要方法和模型包括但不限于以下几类:

  1. 前馈神经网络(Feedforward Neural Networks, FNN)

    • 最基本的深度神经网络形式,其中信息从输入层经过隐藏层最终传到输出层,常用于简单分类和回归任务。
  2. 卷积神经网络(Convolutional Neural Networks, CNN)

    • 主要用于处理图像、视频等具有空间结构的数据。通过卷积层、池化层和全连接层自动提取局部特征和层次化特征。
    • 应用领域包括图像识别、目标检测、图像分割等。
  3. 循环神经网络(Recurrent Neural Networks, RNN)

    • 适用于序列数据(如文本、语音、时间序列等),通过循环结构处理时间上的依赖性。
    • 常见变体包括长短时记忆网络(LSTM)和门控循环单元(GRU),这些结构能够解决标准 RNN 在长序列中梯度消失或爆炸的问题。
  4. 自编码器(Autoencoders)

    • 一种无监督学习方法,通过构建编码器—解码器结构,将高维数据压缩到低维表示,再从低维表示重构原始数据。常用于降维、去噪和特征学习。
    • 变种有稀疏自编码器、变分自编码器(VAE)等。
  5. 生成对抗网络(Generative Adversarial Networks, GANs)

    • 由一个生成器和一个判别器组成,通过两者的对抗训练来生成与真实数据相似的新数据。
    • GAN 已在图像生成、图像修复、风格迁移等任务中取得显著成果。
  6. Transformer 及其变体

    • 最初由 Google 提出的 Transformer 架构主要用于自然语言处理任务,基于自注意力机制处理序列数据,能够捕捉长距离依赖性。
    • 典型应用包括 BERT、GPT、T5 等预训练语言模型,这些模型在文本生成、机器翻译、问答系统等领域取得了很大成功。
  7. 图神经网络(Graph Neural Networks, GNNs)

    • 处理图结构数据的深度学习方法,通过节点、边和全局属性之间的消息传递机制,捕捉图中复杂的关系结构。
    • 应用于社交网络分析、推荐系统、化学分子结构分析等领域。
  8. 深度强化学习(Deep Reinforcement Learning, DRL)

    • 将深度学习与强化学习相结合,用于解决决策和控制问题。深度神经网络用于近似策略或价值函数,指导智能体在环境中通过试错学习最优策略。
    • 应用包括游戏(例如 AlphaGo)、机器人控制、自动驾驶等领域。

深度学习方法覆盖了从基础的前馈神经网络到专门针对图像、文本、序列数据设计的卷积网络、循环网络,再到生成模型(如GAN、变分自编码器)和图结构模型(如GNN),以及结合决策过程的深度强化学习。它们共同的目标是利用多层结构自动从数据中提取复杂特征,解决传统机器学习中需要手工设计特征的问题。

这些方法各有侧重点和适用场景,在实际应用中,根据任务的数据类型、复杂性以及对模型解释性的要求,可以选择合适的深度学习模型进行训练和部署。

本文先总结性的列出深度学习的这些方法,后面我们逐一来学习和掌握。

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

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

相关文章

如何在华为harmonyOS上调试软件

1、设置-》关于手机-》HarmonyOS 版本连按多下,输入锁屏密码。显示开发者模式已打开。 2、设置-》搜索“开发人员选项”-》开启“开发人员选项”选项。 3、在 开发者选项 中找到 “USB 调试” 并开启。 4、开启 “仅充电时允许 ADB 调试”。 5、设置中开启 &quo…

fpga系列 HDL:Quartus II JTAG 间接配置文件 Indirect Configuration File (.jic) AS模式烧录

先编译生成pof文件 File->Convert Programming Files 转换文件 Tools->Programer 烧录

Python:凯撒密码

题目内容: 凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:A B C D E F G H I J K L M N O P Q R …

【大模型知识点】什么是KV Cache?为什么要使用KV Cache?使用KV Cache会带来什么问题?

1.什么是KV Cache?为什么要使用KV Cache? 理解此问题,首先需理解自注意机制的计算和掩码自注意力机制,在Decoder架构的模型中,每生成一个新的token,便需要重新执行一次自注意力计算,这个过程中…

【STM32】HAL库Host MSC读写外部U盘及FatFS文件系统的USB Disk模式

【STM32】HAL库Host MSC读写外部U盘及FatFS文件系统的USB Disk模式 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…

本地生活服务平台开发进入发展热潮

本地生活服务平台:当下的发展热潮 本地生活服务平台开发模式 在当今数字化时代,本地生活服务平台开发已成为人们日常生活中不可或缺的一部分。只需动动手指,打开手机上的 APP,就能轻松满足各类生活需求。像某团、饿XX这样的平台&a…

LSTM变种模型

GRU GRU简介 门控循环神经网络 (Gated Recurrent Neural Network,GRNN) 的提出,旨在更好地捕捉时间序列中时间步距离较大的依赖关系。它通过可学习的门来控制信息的流动。其中,门控循环单元 (Gated Recurrent Unit , GRU) 是…

微服务与网关

什么是网关 背景 单体项目中,前端只用访问指定的一个端口8080,就可以得到任何想要的数据 微服务项目中,ip是不断变化的,端口是多个的 解决方案:网关 网关:就是网络的关口,负责请求的路由、转发…

二分算法篇:二分答案法的巧妙应用

二分算法篇:二分答案法的巧妙应用 那么看到二分这两个字想必我们一定非常熟悉,那么在大学期间的c语言的教学中会专门讲解二分查找,那么我们来简单回顾一下二分查找算法,我们知道二分查找是在一个有序的序列中寻找一个数在这个序列…

C# OpenCV机器视觉:模仿Halcon各向异性扩散滤波

在一个充满创意与挑战的图像处理工作室里,阿强是一位热情的图像魔法师。他总是在追求更加出色的图像效果,然而,传统的图像处理方法有时候并不能满足他的需求。 有一天,阿强听说了 Halcon 中的各向异性扩散滤波功能,它…

实现:多活的基础中间件

APIRouter : 路由分发服务 API Router 是一个 HTTP 反向代理和负载均衡器,部署在公有云中作为 HTTP API 流量的入口,它能识别 出流量的归属 shard ,并根据 shard 将流量转发到对应的 ezone 。 API Router 支持多种路由键&am…

DeepSeek本地化部署

DeepSeek本地化部署 本教程为一键式部署,适合于mac、ubuntu、windows。【开源地址】 环境要求 nodejs > 18Python > 3.10.12 步骤一:安装ollama客户端 官网直接安装,ollama官网。安装完成后使用命令:ollama -h&#xf…

大数据与大模型:数字时代的共生力量

引言:大数据与大模型的崭新时代 在数字化浪潮汹涌澎湃的当下,大数据与大模型无疑是最为耀眼的两颗明星 ,深刻地改变着我们的生活、工作和思维方式。大数据,作为信息时代的宝藏,蕴含着无尽的价值。从电商平台的海量交易…

[2025年最新]2024.3版本idea无法安装插件问题解决

背景 随着大模型的持续发展,特别年前年后deepseek的优异表现,编程过程中,需要解决ai来辅助编程,因此需要安装一些大模型插件 问题描述 在线安装插件的时候会遇到以下问题: 1.数据一直在加载,加载的很满 2.点…

自动驾驶---如何打造一款属于自己的自动驾驶系统

在笔者的专栏《自动驾驶Planning决策规划》中,主要讲解了行车的相关知识,从Routing,到Behavior Planning,再到Motion Planning,以及最后的Control,笔者都做了相关介绍,其中主要包括算法在量产上…

三角拓扑聚合优化器TTAO-Transformer-BiLSTM多变量回归预测(Maltab)

三角拓扑聚合优化器TTAO-Transformer-BiLSTM多变量回归预测(Maltab) 完整代码私信回复三角拓扑聚合优化器TTAO-Transformer-BiLSTM多变量回归预测(Maltab) 一、引言 1、研究背景和意义 在现代数据科学领域,时间序列…

Jenkins+gitee 搭建自动化部署

Jenkinsgitee 搭建自动化部署 环境说明: 软件版本备注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好选稳定版本,不然安装插件有点麻烦 一、安装Jenkins程序 1、到官网下载相应的版本war或者直接使用yum安装 Jenkins官网下载 直接…

AI 编程开发插件codeium Windsurf(vscode、editor) 安装

1、vscode中安装: 2、vscode中使用 3、输入注册的账号密码,就可以使用。 4、或者直接下载editor 5、安装editor 下一步,下一步,直到安装成功,中间可以改下安装位置,如果C盘空间不够。 同样提示注册或者登录…

【Mac排错】ls: command not found 终端命令失效的解决办法

【TroubleShooting on Mac】ls: command not found 终端命令失效的解决办法 A Solution to Solve “Command not found” of Terminal on Mac 一直在使用心爱的MacBook Pro的Terminal,并且为她定制了不同的Profile。 这样,看起来她可以在不同季节&…

河北某石油管廊自动化监测

1. 项目简介 近年来,国家密集出台油气管道建设相关政策和规划引导中国油气管道加快建设,2017年,在《中长期油气管网规划》中对2025年和2030年油气管道发展目标均作出了相应的规划目标。另一方面,随着油气管道行业的发展&#xff…