文章目录
向量化是什么
向量化是把数据转化为向量形式进行表示与处理的过程。在机器学习与深度学习的范畴内,现实中的各类数据,像文本、图像、音频等,其原始形态难以直接被模型所利用。通过向量化,这些复杂的数据结构会依据特定数学方法与算法,被转变为具备特定方向和长度的向量。以自然语言处理里的词嵌入技术为例,它能把单词映射为低维向量空间中的向量,语义相近的单词对应的向量在空间中彼此靠近,借此捕捉单词间的语义关系。在图像领域,可通过卷积神经网络,将图像数据转化为包含图像关键特征信息的特征向量。
为什么要向量化
提升计算效率
传统数据处理方式常需逐个元素操作,而向量化能一次性处理整个向量。在底层,向量化操作可利用现代计算架构,如 CPU 的多核并行处理能力以及 GPU 强大的并行计算性能,显著缩短计算时间。在处理大规模数据时,向量化运算速度比传统方法快几十倍甚至上百倍。例如在大规模矩阵乘法运算中,使用向量化操作可极大提升计算效率。
简化代码与增强可读性
运用向量化函数和操作,能把原本需要复杂循环结构来处理的数据操作,简化为简洁的一行或几行代码。这不仅降低了代码的复杂度,减少出错概率,还使代码逻辑更清晰,方便开发人员理解与维护。以 Python 的 NumPy 库为例,利用其丰富的向量化操作函数,如进行矩阵乘法时,代码变得极为简洁。
适配模型需求
机器学习与深度学习模型以向量作为输入。向量化能将原始数据转化为模型可理解与处理的形式,便于模型从中学习数据特征与模式。在训练模型时,向量化后的数据可让算法更高效地更新模型参数,实现对数据的准确拟合与预测。例如支持向量机模型,输入的向量化数据可助力其更有效地找到最优分类超平面。
怎么做向量化
数据预处理
首先对原始数据进行清洗,去除噪声、错误值和重复数据等。对于数值型数据,可能需要进行归一化或标准化处理,将数据映射到特定的范围,如将数据归一化到 0 - 1 区间或使数据符合标准正态分布,这有助于提升模型的训练效率和稳定性。在处理图像数据时,通常要调整图像大小至统一尺寸,还可能进行灰度化处理以简化数据结构。对于文本数据,常见的预处理步骤包括分词、去除停用词(如 "的""是""在" 等无实际语义贡献的词)以及将单词转换为小写形式,以减少词汇的多样性。
特征提取
文本数据:除了前文提到的词袋模型和 TF - IDF,还可利用更高级的词嵌入技术,如基于神经网络的 Word2Vec 和 GloVe 模型。Word2Vec 通过训练一个浅层神经网络,学习单词的分布式表示,其有 Skip - Gram 和 CBOW 两种模型架构。Skip - Gram 模型根据当前单词预测上下文单词,而 CBOW 模型则根据上下文单词预测当前单词。GloVe 模型则结合了全局词频统计信息,在大规模语料库上能生成更具语义代表性的词向量。
图像数据:在传统方法中,除 SIFT 和 HOG 外,还可使用局部二值模式(LBP)来提取图像的纹理特征。LBP 通过比较中心像素与邻域像素的灰度值,生成二进制编码,以此描述图像的局部纹理信息。在深度学习中,卷积神经网络(CNN)成为主流的图像特征提取方式。通过不同卷积核在图像上的卷积操作,提取图像不同层次的特征,如边缘、角点、纹理等,随着网络层次的加深,逐步提取到更高级、更抽象的特征。
音频数据:常将音频信号转换为频谱图,然后可采用类似于图像特征提取的方法。例如,梅尔频率倒谱系数(MFCC)是音频处理中常用的特征提取方法,它模拟人类听觉系统对声音频率的感知特性,将音频信号转换为一组特征参数,用于表示音频的特征。
特征选择
从提取的众多特征中挑选出对模型性能影响较大、最具代表性的特征,去除冗余和无关特征。常见的特征选择方法有过滤法、包装法和嵌入法。过滤法通过计算特征与目标变量之间的统计量,如皮尔逊相关系数、信息增益等,设定阈值来筛选特征。包装法将特征选择过程与模型训练相结合,根据模型在验证集上的性能来选择特征子集,例如递归特征消除(RFE)算法,它通过不断递归地删除对模型贡献最小的特征,直到达到期望的特征数量。嵌入法在模型训练过程中自动进行特征选择,如基于 L1 正则化的逻辑回归,L1 正则化项会使部分特征的系数变为 0,从而实现特征选择。
向量构建
将经过预处理、提取和选择后的特征组合构建成向量。对于文本数据,若使用词袋模型,向量的维度等于词汇表的大小,每个维度的值表示对应单词在文本中出现的次数或 TF - IDF 值;若是词嵌入向量,则根据模型训练得到的固定维度向量来表示每个单词,然后通过平均、求和或池化等方式将文本中所有单词的向量组合成文本向量。在图像领域,若使用传统特征提取方法,将提取的特征(如 SIFT 特征点描述子、HOG 特征向量等)按一定顺序拼接成一个长向量。对于深度学习中的 CNN 模型,通常将最后一层全连接层的输出作为图像的特征向量。对于音频数据,提取的 MFCC 等特征参数可直接构成向量,或者进一步经过变换和组合后形成最终用于模型输入的向量。
机器学习与深度学习中向量化的区别
数据特征提取方式
机器学习
机器学习严重依赖人工设计的特征工程手段来实现向量化。在文本分类场景中,词袋模型通过统计文本里每个单词的出现次数构建向量,TF - IDF 依据单词在文本中的频率以及在整个文本集合中的逆文档频率,权衡单词对文本特征的贡献,进而将文本转化为向量。这些都是基于人工预先设定的文本统计和词频分析规则。在图像领域,像 SIFT(尺度不变特征变换)、HOG(方向梯度直方图)这类手工设计的特征,需人工定义特征提取规则,提取图像局部特征后再向量化作为模型输入。
深度学习
深度学习侧重于依靠模型自身自动学习数据特征表示并完成向量化。在图像分析中,卷积神经网络(CNN)通过卷积层的卷积核在图像上滑动,自动提取从低级的边缘、纹理到高级的物体局部形状等特征,接着经池化层对特征图下采样,降低数据维度,最终生成特征向量。在自然语言处理方面,词嵌入技术,如 Word2Vec、GloVe 等,可自动将单词映射到低维向量空间,无需人工显式定义特征。循环神经网络(RNN)及其变体长短时记忆网络(LSTM)、门控循环单元(GRU),能够对文本序列这类数据进行建模,自动学习序列中的语义与语法信息并转化为向量表示。
模型结构与复杂度
机器学习
机器学习模型结构相对简单明了,例如决策树、支持向量机、朴素贝叶斯等。向量化后的数据作为这些模型的输入,模型复杂度主要由人为设计的特征以及模型自身参数决定。其训练与推理过程较为直接,对数据向量化的要求主要是契合模型输入格式,保证特征表示的准确性。
深度学习
深度学习模型结构极为复杂,包含多层隐藏层,如多层感知机(MLP)、CNN、RNN 及其各类变体。深度学习模型能够自动学习数据的层次化特征表示,向量化过程与模型结构紧密相连。在 CNN 中,数据经多个卷积层与池化层处理,逐步提炼出不同层次特征,最终的特征向量是多层非线性变换的结果。这种复杂结构使深度学习能应对语音识别、图像生成、视频理解等复杂任务,对数据向量化要求更高,不仅要考虑特征表示,还要兼顾如何借助模型训练优化特征提取与向量化流程。
计算资源需求
机器学习
一般情况下,机器学习模型训练与推理对计算资源需求相对较低。对于线性回归、逻辑回归这类简单算法,普通 CPU 即可高效运算。即使是随机森林、梯度提升树等较复杂的模型,虽计算量较大,但通常借助并行计算,在多个 CPU 核心上也能处理,对 GPU 等专用加速硬件依赖程度不高。
深度学习
鉴于深度学习模型结构复杂以及大规模数据处理需求,其对计算资源要求极高。训练深度学习模型时,通常需借助 GPU 加速计算,因为 GPU 在大规模矩阵运算与并行计算方面优势显著,能大幅提升训练速度。对于大规模语言模型、图像生成模型等,甚至需多个 GPU 或专门的深度学习计算集群进行训练。在推理阶段,尽管计算资源需求低于训练阶段,但在自动驾驶、实时语音识别等对实时性要求严苛的应用场景中,也需高性能计算设备保障推理速度与准确性。
数据规模适应性
机器学习
机器学习在处理小规模数据时表现良好,因为人工设计的特征可在有限数据上有效建模。然而,随着数据规模增大,人工设计特征的难度与工作量会急剧增加,且可能难以充分挖掘大规模数据中的信息,导致模型性能提升受限。
深度学习
深度学习特别适合处理大规模数据。随着数据量增多,深度学习模型能够通过自动学习特征表示,不断挖掘数据中的潜在模式与规律,进而提升模型性能。在图像识别领域,当训练数据从几千张增至几百万张时,深度学习模型准确率会大幅提高。深度学习模型可利用大规模数据学习更复杂、更具鲁棒性的特征表示,更好地适配各类任务与数据分布。