機器學習 - 特征學習(表示學習)

為了提高機器學習算法的能力,我們需要抽取有效、穩定的特征。

傳統的特征提取是通過人工方式進行的,需要大量的人工和專家知識。一個成功的機器學習系統通常需要嘗試大量的特征,稱為特征工程(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.pswp.cn/news/895350.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895350.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895350.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【pytest】獲取所有用例名稱并存于數據庫

數據庫操作包,引用前面創建的py文件,【sqlite】python操作sqlite3(含測試) #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2025-02-11 8:45 # Author : duxiaowei # File : get_filename.py # Software: 這個文…

2024年12月中國電子學會青少年軟件編程(Python)等級考試試卷(四級)

青少年軟件編程(Python)等級考試試卷(四級) 一、單選題(共25題,共60分) 1.以下有關位置實參和關鍵字實參的表述中,錯誤的選項是?(C) A.位置實參和關鍵字實參可以混用。 B. 形參不占用內存地址。 C.調用函…

c/c++藍橋杯經典編程題100道(18)括號匹配

括號匹配 ->返回c/c藍橋杯經典編程題100道-目錄 目錄 括號匹配 一、題型解釋 二、例題問題描述 三、C語言實現 解法1:棧匹配法(難度★) 解法2:計數器法(僅限單一括號類型,難度★☆) …

day02冒泡排序

思路&#xff1a; 外層循環控制循環次數(i<len)&#xff0c;設置swapFlagfalse內層循環j1(j<len-i)&#xff0c;兩兩(j和j-1)比較&#xff0c;逆序則交換內層每次循環結束&#xff0c;沒有交換&#xff0c;則break結束 內層循環j從1開始&#xff0c;小于len&#xff0c;…

如何在華為harmonyOS上調試軟件

1、設置-》關于手機-》HarmonyOS 版本連按多下&#xff0c;輸入鎖屏密碼。顯示開發者模式已打開。 2、設置-》搜索“開發人員選項”-》開啟“開發人員選項”選項。 3、在 開發者選項 中找到 “USB 調試” 并開啟。 4、開啟 “僅充電時允許 ADB 調試”。 5、設置中開啟 &quo…

供應SW7208 NVDC升降壓電池充電控制器IC

1. 概述 SW7208 是一款支持 NVDC 充電路徑管理&#xff0c;SMBus 接口和 USB PD 標準的同步雙向 buckboost 充電控制器。 SW7208 支持寬電壓輸入為 3.5 V ~ 36V&#xff0c;可以為 1 ~ 5 節電池充電&#xff0c;并且支持電池反向放電功能&#xff0c;輸出電壓可調 3V ~ 24V。…

fpga系列 HDL:Quartus II JTAG 間接配置文件 Indirect Configuration File (.jic) AS模式燒錄

先編譯生成pof文件 File->Convert Programming Files 轉換文件 Tools->Programer 燒錄

Python:凱撒密碼

題目內容&#xff1a; 凱撒密碼是古羅馬愷撒大帝用來對軍事情報進行加密的算法&#xff0c;它采用了替換方法對信息中的每一個英文字符循環替換為字母表序列該字符后面第三個字符&#xff0c;對應關系如下&#xff1a; 原文&#xff1a;A B C D E F G H I J K L M N O P Q R …

如何保證緩存和數據庫一致性

保證緩存和數據庫一致性是分布式系統中的一個常見挑戰。以下是幾種常用的策略和方法,用于解決緩存與數據庫之間的數據一致性問題: 1. 基礎同步策略 基礎同步策略包括以下幾種常見的操作順序: 先更新緩存再更新數據庫:這種方法可能導致緩存中的數據成為臟數據,因為如果數…

JavaScript系列(71)--函數式編程進階詳解

JavaScript函數式編程進階詳解 &#x1f3af; 今天&#xff0c;讓我們深入探討JavaScript函數式編程的進階內容。函數式編程是一種強大的編程范式&#xff0c;它通過使用純函數和不可變數據來構建可預測和可維護的應用程序。 函數式編程進階概念 &#x1f31f; &#x1f4a1;…

postman登錄cookie設置

1.設置環境變量&#xff0c; 定義變量存放共享的登錄信息 如Cookie 2.登錄接口編碼test腳本獲取cookie信息 let jsessionidCookie pm.cookies.get("JSESSIONID");if (jsessionidCookie) {let cookie "JSESSIONID" jsessionidCookie "; Admin-Tok…

c/c++藍橋杯經典編程題100道(21)背包問題

背包問題 ->返回c/c藍橋杯經典編程題100道-目錄 目錄 背包問題 一、題型解釋 二、例題問題描述 三、C語言實現 解法1&#xff1a;0-1背包&#xff08;基礎動態規劃&#xff0c;難度★&#xff09; 解法2&#xff1a;0-1背包&#xff08;空間優化版&#xff0c;難度★…

講解下MySql的外連接查詢在SpringBoot中的使用情況

在Spring Boot中使用MySQL的外連接查詢時&#xff0c;通常通過JPA、MyBatis或JDBC等持久層框架來實現。外連接查詢主要用于從多個表中獲取數據&#xff0c;即使某些表中沒有匹配的記錄。外連接分為左外連接&#xff08;LEFT JOIN&#xff09;、右外連接&#xff08;RIGHT JOIN&…

【大模型知識點】什么是KV Cache?為什么要使用KV Cache?使用KV Cache會帶來什么問題?

1.什么是KV Cache&#xff1f;為什么要使用KV Cache&#xff1f; 理解此問題&#xff0c;首先需理解自注意機制的計算和掩碼自注意力機制&#xff0c;在Decoder架構的模型中&#xff0c;每生成一個新的token&#xff0c;便需要重新執行一次自注意力計算&#xff0c;這個過程中…

【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】通過…

1.1計算機的發展

一、計算機系統的概念 1、計算機系統軟件&#xff0b;硬件 軟件&#xff1a;由具有各種特殊功能的程序組成。 硬件&#xff1a;計算機的實體。如&#xff1a;主機、外設等。 硬件決定了計算機系統的上限&#xff0c;軟件決定了硬件性能發揮了多少。 2、軟件 軟件有系統軟…

本地生活服務平臺開發進入發展熱潮

本地生活服務平臺&#xff1a;當下的發展熱潮 本地生活服務平臺開發模式 在當今數字化時代&#xff0c;本地生活服務平臺開發已成為人們日常生活中不可或缺的一部分。只需動動手指&#xff0c;打開手機上的 APP&#xff0c;就能輕松滿足各類生活需求。像某團、餓XX這樣的平臺&a…

LSTM變種模型

GRU GRU簡介 門控循環神經網絡 (Gated Recurrent Neural Network&#xff0c;GRNN) 的提出&#xff0c;旨在更好地捕捉時間序列中時間步距離較大的依賴關系。它通過可學習的門來控制信息的流動。其中&#xff0c;門控循環單元 (Gated Recurrent Unit &#xff0c; GRU) 是…

詳解tensorflow的tensor和Python list及Numpy矩陣的區別

TensorFlow中的張量&#xff08;tensor&#xff09;、Python列表和NumPy矩陣在數據結構和功能上有一些顯著的區別。以下是它們的詳細介紹及代碼示例。 1、Python List 定義&#xff1a;Python列表是一種內置的數據結構&#xff0c;可以存儲不同類型的對象&#xff0c;包括數字…

多模態模型詳解

多模態模型是什么 多模態模型是一種能夠處理和理解多種數據類型&#xff08;如文本、圖像、音頻、視頻等&#xff09;的機器學習模型&#xff0c;通過融合不同模態的信息來提升任務的性能。其核心在于利用不同模態之間的互補性&#xff0c;增強模型的魯棒性和準確性。 如何融合…