介紹
數據科學無疑是當今最迷人的領域之一。大約十年前,隨著機器學習的重大突破,數據科學在科技界的受歡迎程度急劇上升。每年,我們都能看到越來越強大的工具,這些工具曾經看起來不可思議。像是Transformer架構、ChatGPT、檢索增強生成(RAG)框架,以及最先進的計算機視覺模型,包括生成對抗網絡(GANs),都對我們的世界產生了深遠的影響。
然而,隨著工具的增多和對人工智慧的持續熱潮,對於初學者來說,確定在追求數據科學職業時應優先學習哪些技能可能會感到不知所措。此外,這個領域要求很高,需要大量的奉獻和毅力。
本系列的前三部分概述了成為數據科學家的必要技能,涵蓋了數學、軟體工程和機器學習三個關鍵領域。雖然了解經典機器學習和神經網絡算法對於有志於成為數據專家的學習者來說是一個很好的起點,但在從事更高級的項目時,還有許多重要的機器學習主題需要掌握。
本文將專注於開始數據科學職業所需的數學技能。是否追求這條道路是基於你的背景和其他因素的值得選擇,將在另一篇文章中討論。
學習機器學習方法演變的重要性
以下部分提供有關自然語言處理(NLP)方法演變的信息。
與本系列之前的文章不同,我決定改變呈現有志於成為數據科學家的必要技能的格式。與其直接列出需要發展的具體能力及掌握它們的動機,不如簡要概述過去幾十年來在機器學習中發展和使用的最重要的方法,並按時間順序呈現。
原因在於,我認為從一開始就學習這些算法是至關重要的。在機器學習中,許多新方法是基於舊方法構建的,這在自然語言處理和計算機視覺中尤其如此。
例如,直接進入現代大型語言模型(LLMs)的實現細節而沒有任何前期知識,可能會使初學者很難理解特定機制的動機和基本思想。
考慮到這一點,在接下來的兩個部分中,我將以粗體突出應該學習的關鍵概念。
NLP
自然語言處理(NLP)是一個廣泛的領域,專注於處理文本信息。機器學習算法無法直接處理原始文本,因此通常需要對文本進行預處理,將其轉換為數值向量,然後再輸入神經網絡。
在轉換為向量之前,單詞會經過預處理,包括解析、詞幹提取、詞形還原、標準化或去除停用詞等簡單技術。預處理後,生成的文本會被編碼為標記。標記代表文檔集合中的最小文本元素。一般來說,標記可以是單詞的一部分、一系列符號或單個符號。最終,標記會被轉換為數值向量。
詞袋模型是編碼標記的最基本方法,專注於計算每個文檔中標記的頻率。然而,實際上,這通常不夠,因為還需要考慮標記的重要性——這一概念在TF-IDF和BM25方法中被引入。TF-IDF改進了詞袋模型的簡單計數方法,而研究人員則開發了一種全新的方法,稱為嵌入。
嵌入是數值向量,其組件保留單詞的語義意義。因此,嵌入在NLP中扮演著至關重要的角色,使輸入數據能夠進行訓練或用於模型推理。此外,嵌入還可以用來比較文本相似性,從而從文檔集合中檢索最相關的文檔。
嵌入還可以用來編碼其他非結構化數據,包括圖像、音頻和視頻。
作為一個領域,NLP在過去的10到20年中迅速發展,以有效解決各種與文本相關的問題。複雜的任務,如文本翻譯和文本生成,最初是使用循環神經網絡(RNNs)來解決的,這引入了記憶的概念,使神經網絡能夠捕捉和保留長文檔中的關鍵上下文信息。
儘管RNN的性能逐漸提高,但對於某些任務來說仍然不理想。此外,RNN的速度相對較慢,其序列預測過程不允許在訓練和推理過程中進行並行化,這使得它們的效率降低。
此外,原始的Transformer架構可以分解為兩個獨立的模塊:BERT和GPT。這兩者構成了當今用於解決各種NLP問題的最先進模型的基礎。理解它們的原理是有價值的知識,將幫助學習者在學習或使用其他大型語言模型(LLMs)時進一步進步。

在LLMs方面,我強烈建議學習至少前三個GPT模型的演變,因為它們對我們今天所知的AI世界產生了重大影響。特別是,我想強調在GPT-2中引入的少量學習(few-shot)和零樣本學習(zero-shot)概念,這使得LLMs能夠在沒有明確接收任何訓練示例的情況下解決文本生成任務。
近年來開發的另一個重要技術是檢索增強生成(RAG)。LLMs的主要限制是它們僅了解訓練期間使用的上下文。因此,它們缺乏對訓練數據之外的任何信息的了解。

檢索器將輸入提示轉換為嵌入,然後用於查詢向量數據庫。數據庫根據與嵌入的相似性返回最相關的上下文。然後,這個檢索到的上下文與原始提示結合,並傳遞給生成模型。該模型處理初始提示和附加上下文,以生成更具信息性和上下文準確的回應。
這一限制的好例子是第一版的ChatGPT模型,該模型的訓練數據截至2022年,對2023年以後發生的事件一無所知。
為了解決這一限制,OpenAI的研究人員開發了一個RAG管道,其中包含一個不斷更新的數據庫,該數據庫包含來自外部來源的新信息。當ChatGPT被賦予需要外部知識的任務時,它會查詢數據庫以檢索最相關的上下文,並將其整合到發送給機器學習模型的最終提示中。

蒸餾的目標是創建一個可以模仿更大模型的較小模型。實際上,這意味著如果一個大模型做出預測,則預期小模型會產生類似的結果。
在現代時代,LLM的發展導致了具有數百萬甚至數十億參數的模型。因此,這些模型的整體大小可能超過標準計算機或小型便攜設備的硬體限制,這些設備有許多限制。

量化是減少存儲表示模型權重的數值所需內存的過程。
這時,優化技術變得特別有用,允許LLMs在不顯著損害其性能的情況下進行壓縮。當前最常用的技術包括蒸餾、量化和剪枝。

剪枝是指丟棄模型中最不重要的權重。
微調
無論你希望專注於哪個領域,微調的知識都是必備技能!微調是一個強大的概念,允許你有效地將預訓練模型適應於新任務。
微調在處理非常大的模型時特別有用。例如,假設你想使用BERT對特定數據集進行語義分析。雖然BERT是在一般數據上訓練的,但它可能無法完全理解你的數據集的上下文。同時,從頭開始訓練BERT以滿足你的特定任務將需要大量的資源。
這就是微調的用武之地:它涉及使用預訓練的BERT(或其他模型),並凍結其某些層(通常是最前面的層)。因此,BERT會重新訓練,但這次僅在提供的新數據集上。由於BERT僅更新其權重的一部分,而新數據集可能遠小於BERT原本訓練的數據集,因此微調成為將BERT的豐富知識適應於特定領域的非常有效的技術。
微調不僅在NLP中廣泛使用,還在許多其他領域中應用。
計算機視覺
顧名思義,計算機視覺(CV)涉及使用機器學習分析圖像和視頻。最常見的任務包括圖像分類、物體檢測、圖像分割和生成。
大多數CV算法基於神經網絡,因此了解它們的詳細工作原理至關重要。特別是,CV使用一種特殊類型的網絡,稱為卷積神經網絡(CNNs)。這些網絡類似於全連接網絡,但通常以一組特殊的數學運算(稱為卷積)開始。

簡單來說,卷積作為過濾器,使模型能夠從圖像中提取最重要的特徵,然後將這些特徵傳遞給全連接層進行進一步分析。
下一步是學習最流行的CNN架構,用於分類任務,如AlexNet、VGG、Inception、ImageNet和ResNet。
談到物體檢測任務,YOLO算法無疑是明顯的贏家。實際上,並不需要學習YOLO的所有版本。實際上,閱讀第一個YOLO的原始論文應該足以理解如何將像物體檢測這樣的相對困難的問題優雅地轉化為分類和回歸問題。這種方法在YOLO中也提供了一個良好的直覺,說明如何將更複雜的CV任務重新表述為更簡單的問題。
雖然有許多架構可以執行圖像分割,但我強烈建議學習UNet,它引入了一種編碼器-解碼器架構。
最後,圖像生成可能是CV中最具挑戰性的任務之一。就我個人而言,我認為這是學習者的可選主題,因為它涉及許多高級概念。然而,對生成對抗網絡(GAN)如何生成圖像的高層次直覺是擴展視野的好方法。
在某些問題中,訓練數據可能不足以建立一個性能良好的模型。在這種情況下,通常使用數據增強技術。這涉及從已存在的數據(圖像)中人工生成訓練數據。通過向模型提供更多樣化的數據,它能夠學習和識別更多的模式。
其他領域
在一篇文章中詳細介紹所有現有機器學習領域的路線圖是非常困難的。因此,在本節中,我想簡要列出並解釋一些其他值得探索的數據科學熱門領域。
首先,推薦系統(RecSys)在近年來獲得了很大的普及。它們越來越多地應用於在線商店、社交網絡和流媒體服務。大多數算法的關鍵思想是將所有用戶和項目的大型初始矩陣分解為幾個矩陣的乘積,這樣就可以將每個用戶和每個項目與高維嵌入相關聯。這種方法非常靈活,因為它允許對嵌入進行不同類型的比較操作,以找到最相關的項目。此外,在小矩陣上進行分析的速度比在通常具有巨大維度的原始矩陣上要快得多。

排名通常與RecSys密切相關。當RecSys識別出一組最相關的項目時,排名算法用於對它們進行排序,以確定將以何種順序顯示或建議給用戶。一個好的例子是搜索引擎,它們將查詢結果從上到下過濾在網頁上。
與排名密切相關的還有匹配問題,旨在根據匹配標準,最佳地將來自兩個集合A和B的對象進行映射,使得平均而言,每對對象(a,b)都能“良好”地映射。一個使用案例可能包括將一組學生分配到不同的大學學科,其中每個班級的名額有限。
聚類是一種無監督的機器學習任務,其目標是將數據集拆分為幾個區域(聚類),每個數據集對象屬於這些聚類之一。根據任務,拆分標準可能會有所不同。聚類是有用的,因為它允許將相似的對象分組。此外,可以進一步分析以分別處理每個聚類中的對象。

降維是另一個無監督問題,目標是壓縮輸入數據集。當數據集的維度很大時,機器學習算法分析它所需的時間和資源會增加。通過識別和刪除噪聲數據集特徵或那些不提供太多有價值信息的特徵,數據分析過程變得相當簡單。
相似性搜索是一個專注於設計算法和數據結構(索引)以優化在大型嵌入數據庫(向量數據庫)中搜索的領域。更準確地說,給定一個輸入嵌入和一個向量數據庫,目標是大約找到與輸入嵌入相似的最相似嵌入。

這裡的“約”意味著搜索不保證100%精確。然而,這就是相似性搜索算法的主要思想——在預測速度或數據壓縮上取得顯著增益,犧牲一些準確性。
時間序列分析涉及研究目標變量隨時間的行為。這個問題可以使用經典的表格算法來解決。然而,時間的存在引入了新的因素,這些因素無法被標準算法捕捉。例如:
- 目標變量可能有整體趨勢,長期內其值上升或下降(例如,由於全球變暖,平均年溫度上升)。
- 目標變量可能具有季節性,使其值根據當前給定的時期而變化(例如,冬季溫度較低,夏季較高)。
大多數時間序列模型考慮了這兩個因素。一般來說,時間序列模型在金融、股票或人口分析中被廣泛使用。

我還建議探索的一個高級領域是強化學習,這在算法設計上與經典機器學習有根本性的不同。簡單來說,它的目標是在一個環境中訓練一個代理,根據獎勵系統做出最佳決策(也稱為“試錯法”)。通過採取行動,代理會獲得獎勵,這有助於它理解所選行動是否產生了正面或負面的影響。之後,代理稍微調整其策略,整個循環重複進行。

強化學習在複雜環境中尤其受歡迎,因為經典算法無法解決問題。考慮到強化學習算法的複雜性及其所需的計算資源,這一領域尚未完全成熟,但未來有很高的潛力獲得更多的普及。

目前最受歡迎的應用包括:
- 遊戲。現有的方法可以設計最佳的遊戲策略並超越人類。最著名的例子是棋類和圍棋。
- 機器人技術。先進的算法可以被應用到機器人中,幫助它們移動、搬運物品或完成家庭日常任務。
- 自動駕駛。可以開發強化學習方法來自動駕駛汽車,控制直升機或無人機。
結論
本文是前一部分的邏輯延續,擴展了成為數據科學家所需的技能組合。雖然大多數提到的主題需要時間來掌握,但它們可以為你的作品集增添顯著的價值。這對於今天需求量大的NLP和CV領域尤其如此。
在達到高水平的數據科學專業知識後,仍然至關重要的是保持動力,持續推動自己學習新主題並探索新興算法。
數據科學是一個不斷發展的領域,在未來幾年,我們可能會見證新一流方法的發展,這些方法是我們過去無法想像的。
資源
所有圖片均由作者提供,除非另有說明。
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!