10個例子帶你了解機器學習中的線性代數

2021-08-20 04:58:17 字數 4143 閱讀 6204

本文介紹了 10 個常見機器學習案例,這些案例需要用線性代數才能得到最好的理解。

線性代數是數學的分支學科,涉及向量、矩陣和線性變換。

它是機器學習的重要基礎,從描述演算法操作的符號到**中演算法的實現,都屬於該學科的研究範圍。

雖然線性代數是機器學習領域不可或缺的一部分,但二者的緊密關係往往無法解釋,或只能用抽象概念(如向量空間或特定矩陣運算)解釋。

閱讀這篇文章後,你將會了解到:

讓我們開始吧。

這 10 個機器學習案例分別是:

1. dataset and data files 資料集和資料檔案

2. images and photographs 影象和**

3. one-hot encoding one-hot 編碼

4. linear regression 線性回歸

5. regularization 正則化

6. principal component analysis 主成分分析

7. singular-value decomposition 奇異值分解

8. latent semantic analysis 潛在語義分析

9. recommender systems 推薦系統

10. deep learning 深度學習

1. 資料集和資料檔案

在機器學習中,你可以在資料集上擬合乙個模型。

這是**式的一組數字,其中每行代表一組觀察值,每列代表觀測的乙個特徵。

例如,下面這組資料是鳶尾花資料集的一部分

5.1,3.5,1.4,0.2,iris-setosa

4.9,3.0,1.4,0.2,iris-setosa

4.7,3.2,1.3,0.2,iris-setosa

4.6,3.1,1.5,0.2,iris-setosa

5.0,3.6,1.4,0.2,iris-setosa

這些資料實際上是乙個矩陣:線性代數中的乙個關鍵資料結構。

接下來,將資料分解為輸入資料和輸出資料,來擬合乙個監督機器學習模型(如測量值和花卉品種),得到矩陣(x)和向量(y)。向量是線性代數中的另乙個關鍵資料結構。

每行長度相同,即每行的資料個數相同,因此我們可以說資料是向量化的。這些行資料可以一次性或成批地提供給模型,並且可以預先配置模型,以得到固定寬度的行資料。

2. 影象和**

也許你更習慣於在計算機視覺應用中處理影象或**。

你使用的每個影象本身都是乙個固定寬度和高度的**結構,每個單元格有用於表示黑白影象的 1 個畫素值或表示彩色影象的 3 個畫素值。

**也是線性代數矩陣的一種。

與影象相關的操作,如裁剪、縮放、剪下等,都是使用線性代數的符號和運算來描述的。

3. one-hot 編碼

有時機器學習中要用到分類資料。

可能是用於解決分類問題的類別標籤,也可能是分類輸入變數。

對分類變數進行編碼以使它們更易於使用並通過某些技術進行學習是很常見的。one-hot 編碼是一種常見的分類變數編碼。

one-hot 編碼可以理解為:建立乙個**,用列表示每個類別,用行表示資料集中每個例子。在列中為給定行的分類值新增乙個檢查或「1」值,並將「0」值新增到所有其他列。

例如,共計 3 行的顏色變數:

red

green

blue

...

這些變數可能被編碼為:

red, green, blue

1, 0, 0

0, 1, 0

0, 0, 1

...

每一行都被編碼為乙個二進位制向量,乙個被賦予「0」或「1」值的向量。這是乙個稀疏表徵的例子,線性代數的乙個完整子域。

4. 線性回歸

線性回歸是一種用於描述變數之間關係的統計學傳統方法。

該方法通常在機器學習中用於**較簡單的回歸問題的數值。

描述和解決線性回歸問題有很多種方法,即找到一組係數,用這些係數與每個輸入變數相乘並將結果相加,得出最佳的輸出變數**。

如果您使用過機器學習工具或機器學習庫,解決線性回歸問題的最常用方法是通過最小二乘優化,這一方法是使用線性回歸的矩陣分解方法解決的(例如 lu 分解或奇異值分解)。

即使是線性回歸方程的常用總結方法也使用線性代數符號:

y = a . b

其中,y 是輸出變數,a 是資料集,b 是模型係數。

5. 正則化

在應用機器學習時,我們往往尋求最簡單可行的模型來發揮解決問題的最佳技能。

較簡單的模型通常更擅長從具體示例泛化到未見過的資料。

在涉及係數的許多方法中,例如回歸方法和人工神經網路,較簡單的模型通常具有較小的系數值。

一種常用於模型在資料擬合時盡量減小系數值的技術稱為正則化,常見的實現包括正則化的 l2 和 l1 形式。

這兩種正則化形式實際上是係數向量的大小或長度的度量,是直接脫胎於名為向量範數的線性代數方法。

6. 主成分分析

通常,資料集有許多列,列數可能達到數

十、數百、數千或更多。

對具有許多特徵的資料進行建模具有一定的挑戰性。而且,從包含不相關特徵的資料構建的模型通常不如用最相關的資料訓練的模型。

我們很難知道資料的哪些特徵是相關的,而哪些特徵又不相關。

自動減少資料集列數的方法稱為降維,其中也許最流行的方法是主成分分析法(簡稱 pca)。

該方法在機器學習中,為視覺化和模型建立高維資料的投影。

pca 方法的核心是線性代數的矩陣分解方法,可能會用到特徵分解,更廣義的實現可以使用奇異值分解(svd)。

7. 奇異值分解

另一種流行的降維方法是奇異值分解方法,簡稱 svd。

如上所述,正如該方法名稱所示,它是源自線性代數領域的矩陣分解方法。

在機器學習中我們會看到以下兩個使用 svd 的情況。

8. 潛在語義分析

在用於處理文字資料的機器學習子領域(稱為自然語言處理),通常將文件表示為詞出現的大矩陣。

例如,矩陣的列可以是詞彙表中的已知詞,行可以是文字的句子、段落、頁面或文件,矩陣中的單元格標記為單詞出現的次數或頻率。

這是文字的稀疏矩陣表示。矩陣分解方法(如奇異值分解)可以應用於此稀疏矩陣,該分解方法可以提煉出矩陣表示中相關性最強的部分。以這種方式處理的文件比較容易用來比較、查詢,並作為監督機器學習模型的基礎。

這種形式的資料準備稱為潛在語義分析(簡稱 lsa),也稱為潛在語義索引(lsi)。

9. 推薦系統

涉及產品推薦的**建模問題被稱為推薦系統,這是機器學習的乙個子領域。

例如,基於你在亞馬遜上的購買記錄和與你類似的客戶的購買記錄向你推薦書籍,或根據你或與你相似的使用者在 netflix 上的**歷史向你推薦電影或電視節目。

推薦系統的開發主要涉及線性代數方法。乙個簡單的例子就是使用歐式距離或點積之類的距離度量來計算稀疏顧客行為向量之間的相似度。

像奇異值分解這樣的矩陣分解方法在推薦系統中被廣泛使用,以提取專案和使用者資料的有用部分,以備查詢、檢索及比較。

10. 深度學習

人工神經網路是一種非線性機器學習演算法,它受大腦中資訊處理元素的啟發,其有效性已經在一系列問題中得到驗證,其中最重要的是**建模。

深度學習是近期出現的、使用最新方法和更快硬體的人工神經網路的復興,這一方法使得在非常大的資料集上開發和訓練更大更深的(更多層)網路成為可能。深度學習方法通常會在機器翻譯、**字幕、語音識別等一系列具有挑戰性的領域取得最新成果。

神經網路的執行涉及線性代數資料結構的相乘和相加。如果擴充套件到多個維度,深度學習方法可以處理向量、矩陣,甚至輸入和係數的張量,此處的張量是乙個兩維以上的矩陣。

線性代數是描述深度學習方法的核心,它通過矩陣表示法來實現深度學習方法,例如 google 的 tensorflow python 庫,其名稱中包含「tensor」一詞。

編譯:機器之心

參與:張倩、劉曉坤

乙個例子了解apacheBench的簡單使用方法

apachebench,即ab,apache http server benchmarking tool,是apache提供的衡量http伺服器效能的乙個簡單的小工具,用來對apache伺服器進行壓力測試,主要的衡量指標就是伺服器每秒能夠處理請求的數目,同時支援併發請求。下面舉個例子來分析ab 執行...

FLUTTER 中 Isolate 的乙個例子

最近看了一點isolate的東西,自己寫了乙個例子.普通的的 consummer producer例子是只有前後兩端的,實際上,會把前後兩端再進行包裝.我這裡這個例子,是把這個層級擴充,變成4層.graph lr a 消費者 定單 b 小商店 定單 c 批發商 定單 d 加工廠 d 運送 c 運送 ...

DELPHI中控制EXCEL的乙個例子

unit unit1 inte ce uses windows,messages,sysutils,classes,graphics,controls,forms,dialogs,stdctrls,comobj type tform1 class tform button1 tbutton butt...