機器學習中用到哪些矩陣知識,如果要補這些知識,求推薦合適的書籍資料?

機器學習中用到哪些矩陣知識?
如果要補這些知識,求推薦合適的書籍資料?


首先我覺得你應該好好過一遍MIT的Linear Algebra的課。這個課有兩個版本,我是跟這個更適合自學的版本。因為這個版本所有章節都模塊化了,跟起來不會讓人覺得壓力很大。Linear Algebra

我所說的過一遍,不是你看個錄像就完事兒了的,首先,把pdf資料都列印出來,然後你得記筆記,接著你得跟著助教做習題課的練習,最後你得把課後作業都做完,並且把考試也做完(都有答案的你自己可以check)。這個版本的題目量不是很大,但是都是精挑細選的題目,做完會讓你有一種豁然開朗的感覺。不管你本科是不是理工科,線代基礎有多好,我都建議仔細過一遍,一定能發現很多新東西。如果基礎夠好,用不著看課本,直接看講義就行了,因為已經講得很細很好了。

然後就是前面說的Matrix Cookbook,
https://www.ics.uci.edu/~welling/teaching/KernelsICS273B/MatrixCookBook.pdf
這本書其實就是一本速查手冊,裡面向量矩陣微分的東西還是很全的。這些東西一般也很難背下來,用到了查就是了。

如果你要從寫code的層面去學線性代數,方法一,就是看這本書:
Coding the Matrix: Linear Algebra through Applications to Computer Science
Linear Algebra through Applications to Computer Science: Philip N. Klein: 9780615880990: Amazon.com: Books
布朗大學之前在coursera開過公開課,好像已經下架了,不過網上能找到視頻。

如果你要從寫code的層面去學線性代數,但是你想上一門課,方法二,就是去跟EDX這門課:
Linear Algebra - Foundations to Frontiers

如果你要是對矩陣的數值計算計算感興趣那就去看約翰霍普金斯大學的
Matrix Computations Gene H. Golub, Charles F. Van Loan: 9781421407944: Amazon.com: Books,
不過現在Matlab和Numpy的線性代數的庫已經很厲害了,所以自己手動去實現矩陣計算的機會我個人認為應該不會特別多。

其他的話,ML的書中和論文中出現什麼上網搜就行了。

最後牆裂建議先把MIT的認真上一遍,真的是上過的最好的一門線性代數打底的課程:

------------------------2017-01-04----------
-------------------------Update 一下-------------
國內要是有看不到的可能因為視頻是youtube的,看網易公開課對應章節的課程視頻和習題課視頻就行了:

課程視頻:
麻省理工公開課:線性代數_全35集_網易公開課

習題課視頻:
麻省理工學院公開課:MIT線性代數習題課_全36集_網易公開課
-----------------------
布朗大學的那個Coding the Matrix的視頻,在這裡:
Coding the Matrix, Fall 2014
整本書的資料,在這裡:
Coding The Matrix


我說兩本書加一個dessertion吧。書是Matrix Analysis and Applied Linear Algebra 內容循序漸進,看的時候不會覺得太困難,覆蓋內容也比較廣,但還是有一點點的知識沒深談,主要這本書看完對矩陣空間變換啊,特徵值啊,馬可夫鏈啊還是有比較深入的了解了。

另一本書叫The Matrix Cookbook 這樣的書有點像一本矩陣字典,有什麼矩陣的專有名詞啊,疑問啊可以去翻。很薄,以推導過程居多,PDF才43頁。但最好是有一定矩陣基礎,碰到遺忘的知識或者不太了解的點再去翻。

最後是一個MIT博士的dissertation,Learning with Matrix Factorization,他PhD階段就是做ML方向的。寫得也都是用矩陣來做的各種應用以及這麼做的原理。是他多年與ML和Matrix打交道的博士生涯的總結吧。目前我只看到第二章,寫得挺好的。


謝邀。

機器學慣用到的矩陣知識主要有:矩陣求逆,最小二乘,解特徵值,奇異值分解,共軛梯度法等。

通常情況下,機器學習研究都使用已有的庫,但這樣很難對機器學習的演算法複雜度有概念。我十分推薦選看《矩陣計算》這本書其中幾章,以後在跑機器學習的同時也能知道複雜度是多少了。


樓上的答主一上來就是各種斯坦福各種MIT,都能把不知道的嚇得夠嗆。其實很簡單,題主踏踏實實地把大學的高等數學和線性代數教材啃個透就完全夠用了!其實我也是畢業了才知道大學基礎課程地重要


數值線性代數 (豆瓣)矩陣計算 (豆瓣) SVD QR分解 最小二乘法
高等代數/線性代數 、(多元)微積分、概率論與數理統計 機器學習問題的數學表示
凸優化 (豆瓣)實用最優化方法 (豆瓣) 模型訓練 SGD mini-batch SGD (深度學習就這了) 拉格朗日乘子法(sparse model 壓縮感知等用的比較多) newton 共軛梯度 BFGS(神經網路 高階優化方法)最小二乘法

都在課堂里學過。。


我們就挑最簡單的機器學習問題來說說矩陣是怎麼用的吧。最簡單的機器學習問題是什麼呢?線性回歸--- 用很多很多點來擬合一條直線。

數據:(x_1, y_1),(x_2, y_2) ... (x_n, y_n)

參數:選取(m, b), 即直線y = mx + b

目標:最小化誤差 E = sum_{i=1}^n(y_i - mx_i-b)^2

這和矩陣有什麼關係呢? 沒什麼關係,但是如果我用矩陣來求最小值,會很帥。

egin{align} E=sum_{i=1}^n(y_i - mx_i-b)^2\ =sum_{i=1}^n(y_i - egin{bmatrix} x_{1}  1 end{bmatrix} egin{bmatrix} m \ b end{bmatrix})^2\ =egin{Vmatrix} egin{bmatrix} y_{1} \ vdots \ y_{n} end{bmatrix} - egin{bmatrix} x_{1}  1 \ vdots  vdots \ x_{n}  1 \ end{bmatrix} egin{bmatrix} m \ b end{bmatrix}end{Vmatrix}^2, let ,mathbf{h} = egin{bmatrix} m \ b end{bmatrix} \ =egin{Vmatrix} mathbf{y-Xh}end{Vmatrix}^2\ = mathbf{(y-Xh)^T(y-Xh)}\ = mathbf{y^Ty-2(Xh)^Ty + (Xh)^TXh}\ \ \ frac{dE}{dmathbf{h}} =2mathbf{X^TXh-2X^Ty}=0\ \ mathbf{h} =mathbf{(X^TX)^{-1}X^Ty}\ end{align}

搞定!忍不住大叫美觀。 順便提一下,mathbf{(X^TX)^{-1}X^T} 叫做 mathbf{X} 的偽逆矩陣 (Pseudoinverse)。

啊,等等,還沒完。我們在這裡嘗試減小的誤差是y方向的誤差。這在擬合的直線是水平的時候效果還不錯。 但是如果直線是豎直的時候,就完全GG了。偏離直線一些些,就會帶來極大的誤差。這是不科學的。於是我們想要最小化的是所有點到候選直線的距離的平方和。

數據:(x_1, y_1),(x_2, y_2) ... (x_n, y_n)

參數:選取(a, b, d), 即直線 l: ax+by = d , 其中 ||(a,b)||=1

目標:最小化誤差 E = sum_{i=1}^n(ax_i+by_i-d)^2

其中 |ax_i+by_i-d| 即點 (x_i, y_i) 到直線 l:ax+by = d 的距離。

egin{align} frac{partial E}{partial d} =sum_{i=1}^n-2(ax_i+by_i-d)=0\ d =frac{a}{n}Sigma_{i=1}^{n}x_i + frac{b}{n}Sigma_{i=1}^{n}y_i\ =aar{x} + bar{y}\ end{align}

E 中替換 d=aar{x} + bar{y} 得到,

egin{align} E =sum_{i=1}^n(ax_i+by_i-d)^2\ =sum_{i=1}^n(ax_i+by_i-aar{x} - bar{y})^2\ =sum_{i=1}^n(a(x_i-ar{x})+b(y_i-ar{y}))^2\ =egin{Vmatrix} egin{bmatrix} x_{1}-ar{x}  y_1-ar{y} \ vdots  vdots \ x_{n}-ar{x}  y_n-ar{y} \ end{bmatrix} egin{bmatrix} a \ b end{bmatrix}end{Vmatrix}^2, let , mathbf{h} = egin{bmatrix} a \ b end{bmatrix} \ = mathbf{(Uh)^T(Uh)}\ \ \ frac{dE}{dmathbf{h}} =2mathbf{(U^TU)h}=0, ||mathbf{h}||=1\ end{align}

這就是個標準問題,求齊次線性系統的非平凡解 (Homogeneous Linear Systems non-trivial solution)。mathbf{h}mathbf{U^TU} 的最小特徵值對應的特徵向量。搞定!

總結一下,這個最簡單的機器學習問題裡面,我們都用到了哪些矩陣的知識?

  • 矩陣的模
  • 偽逆矩陣
  • 對矩陣求微分
  • 求齊次線性系統的非平凡解,這其中又涉及
    • 矩陣 SVD 分解
    • 正交矩陣
    • 特徵值,特徵向量

如此一個簡單的的線性回歸問題原來也和這麼多矩陣的知識相關。所以,線性代數很重要啊!至於要看什麼書,其實用不著看書。等你看完了書,你同學的machine learning論文都發了兩篇了,或者kaggle都刷到前5%了,或者都做了個能識別數字的android app 準備開始創業了。要學 機器學習,從現在就可以開始,從這篇文章就可以開始。 查漏補缺,有什麼不懂的就去查去問,找google,找大神。保證每天都學,慢慢的你也就很厲害了。

感謝 @Walker 同學投稿,歡迎各路同學交流!


彷徨疑惑,機器學習該看什麼書?雲棲社區非同步社區機器學習好書籍推薦

機器學習作為近期人工智慧領域的熱點話題一直被廣大知乎討論,小編也一直收到很多私信諮詢有哪些好的書籍適合自己進行閱讀學習。

本周:阿里云云棲社區機構號 聯合機器學習專業出版社:非同步社區,為大家帶來十本經典機器學習相關書籍,分別適合入門、進階到精深的三個不同階段同學閱讀,並且每本書籍都由非同步社區機器學習相關編輯同學標註了適合閱讀人群(文末有彩蛋不看後悔哦):

(非同步社區,是人民郵電出版社旗下IT專業圖書旗艦社區,也是國內領先的IT專業圖書社區,致力於優質學習內容的出版和分享,實現了紙書電子書的同步上架,於2015年8月上線運營。)

Python高性能編程Python高性能編程-圖書 - 非同步社區

本書適合初級和中級Python程序員、有一定Python語言基礎想要得到進階和提高的讀者閱讀。

本書共有12章,圍繞如何進行代碼優化和加快實際應用的運行速度進行詳細講解。本書主要包含以下主題:計算機內部結構的背景知識、列表和元組、字典和集合、迭代器和生成器、矩陣和矢量計算、並發、集群和工作隊列等。最後,通過一系列真實案例展現了在應用場景中需要注意的問題。

NLTK基礎教程——用NLTK和Python庫構建機器學習應用

NLTK基礎教程--用NLTK和Python庫構建機器學習應用-圖書 - 非同步社區

本書適合 NLP 和機器學習領域的愛好者、對文本處理感興趣的讀者、想要快速學習NLTK的資深Python程序員以及機器學習領域的研究人員閱讀。

NLTK 庫是當前自然語言處理(NLP)領域最為流行、使用最為廣泛的庫之一, 同時Python語言也已逐漸成為主流的編程語言之一。

本書主要介紹如何通過NLTK庫與一些Python庫的結合從而實現複雜的NLP任務和機器學習應用。全書共分為10章。第1章對NLP進行了簡單介紹。第2章、第3章和第4章主要介紹一些通用的預處理技術、專屬於NLP領域的預處理技術以及命名實體識別技術等。第5章之後的內容側重於介紹如何構建一些NLP應用,涉及文本分類、數據科學和數據處理、社交媒體挖掘和大規模文本挖掘等方面。

機器學習與數據科學(基於R的統計學習方法)

機器學習與數據科學(基於R的統計學習方法)-圖書 - 非同步社區

本書適合數據科學家、數據分析師、軟體開發者以及需要了解數據科學和機器學習方法的科研人員閱讀參考。

本書試圖指導讀者掌握如何完成涉及機器學習的數據科學項目。本書將為數據科學家提供一些在統計學習領域會用到的工具和技巧,涉及數據連接、數據處理、探索性數據分析、監督機器學習、非監督機器學習和模型評估。本書選用的是R統計環境,書中所有代碼示例都是用R語言編寫的,涉及眾多流行的R包和數據集。

實用機器學習

實用機器學習-圖書 - 非同步社區

本書適合需要應用機器學習演算法解決實際問題的工程技術人員閱讀,也可作為相關專業高年級本科生或研究生的入門教材或課外讀物

大數據時代為機器學習的應用提供了廣闊的空間,各行各業涉及數據分析的工作都需要使用機器學習演算法。本書圍繞實際數據分析的流程展開,著重介紹數據探索、數據預處理和常用的機器學習演算法模型。本書從解決實際問題的角度出發,介紹回歸演算法、分類演算法、推薦演算法、排序演算法和集成學習演算法。在介紹每種機器學習演算法模型時,書中不但闡述基本原理,而且討論模型的評價與選擇。為方便讀者學習各種演算法,本書介紹了R語言中相應的軟體包並給出了示常式序。

本書的最大特色就是貼近工程實踐。首先,本書僅側重介紹當前工業界最常用的機器學習演算法,而不追求知識內容的覆蓋面;其次,本書在介紹每類機器學習演算法時,力求通俗易懂地闡述演算法思想,而不追求理論的深度,讓讀者藉助代碼獲得直觀的體驗。

Python機器學習實踐指南

Python機器學習實踐指南-圖書 - 非同步社區

本書適合Python 程序員、數據分析人員、對演算法感興趣的讀者、機器學習領域的從業人員及科研人員閱讀。

機器學習是近年來漸趨熱門的一個領域,同時Python 語言經過一段時間的發展也已逐

漸成為主流的編程語言之一。本書結合了機器學習和Python 語言兩個熱門的領域,通過利用兩種核心的機器學習演算法來將Python 語言在數據分析方面的優勢發揮到極致。

全書共有10 章。第1 章講解了Python 機器學習的生態系統,剩餘9 章介紹了眾多與

機器學習相關的演算法,包括各類分類演算法、數據可視化技術、推薦引擎等,主要包括機器學習在公寓、機票、IPO 市場、新聞源、內容推廣、股票市場、圖像、聊天機器人和推薦引擎等方面的應用。

貝葉斯方法:概率編程與貝葉斯推斷

貝葉斯方法:概率編程與貝葉斯推斷-圖書 - 非同步社區

本書適用於機器學習、貝葉斯推斷、概率編程等相關領域的從業者和愛好者,也適合普通開發人員了解貝葉斯統計而使用。

本書基於PyMC語言以及一系列常用的Python數據分析框架,如NumPy、SciPy和Matplotlib,通過概率編程的方式,講解了貝葉斯推斷的原理和實現方法。該方法常常可以在避免引入大量數學分析的前提下,有效地解決問題。書中使用的案例往往是工作中遇到的實際問題,有趣並且實用。作者的闡述也盡量避免冗長的數學分析,而讓讀者可以動手解決一個個的具體問題。通過對本書的學習,讀者可以對貝葉斯思維、概率編程有較為深入的了解,為將來從事機器學習、數據分析相關的工作打下基礎。

TensorFlow技術解析與實戰

TensorFlow技術解析與實戰-圖書 - 非同步社區

本書深入淺出,理論聯繫實際,實戰案例新穎,基於最新的TensorFlow 1.1版本,涵蓋TensorFlow的新特性,非常適合對深度學習和TensorFlow感興趣的讀者閱讀。

TensorFlow 是谷歌公司開發的深度學習框架,也是目前深度學習的主流框架之一。本書從深度學習的基礎講起,深入TensorFlow框架原理、模型構建、源代碼分析和網路實現等各個方面。全書分為基礎篇、實戰篇和提高篇三部分。基礎篇講解人工智慧的入門知識,深度學習的方法,TensorFlow的基礎原理、系統架構、設計理念、編程模型、常用API、批標準化、模型的存儲與載入、隊列與線程,實現一個自定義操作,並進行TensorFlow源代碼解析,介紹卷積神經網路(CNN)和循環神經網路(RNN)的演化發展及其TensorFlow實現、TensorFlow的高級框架等知識;實戰篇講解如何用TensorFlow寫一個神經網路程序並介紹TensorFlow實現各種網路(CNN、RNN和自編碼網路等),並對MINIST數據集進行訓練,講解TensorFlow在人臉識別、自然語言處理、圖像和語音的結合、生成式對抗網路等方面的應用;提高篇講解TensorFlow的分散式原理、架構、模式、API,還會介紹TensorFlow XLA、TensorFlow Debugger、TensorFlow和Kubernetes結合、TensorFlowOnSpark、TensorFlow移動端應用,以及TensorFlow Serving、TensorFlow Fold和TensorFlow計算加速等其他特性。最後,附錄中列出一些可供參考的公開數據集,並結合作者的項目經驗介紹項目管理的一些建議。

概率編程實戰

概率編程實戰-圖書 - 非同步社區

本書既可以作為概率編程的入門讀物,也可以幫助已經有一定基礎的讀者熟悉Figaro這一概率編程利器。

人工智慧領域的先驅、美國加州大學伯克利分校教授Stuart Russell作序推薦!一本不可思議的Scala概率編程實戰書籍!

概率推理是不確定性條件下做出決策的重要方法,在許多領域都已經得到了廣泛的應用。概率編程充分結合了概率推理模型和現代計算機編程語言,使這一方法的實施更加簡便,現已在許多領域(包括炙手可熱的機器學習)中嶄露頭角,各種概率編程系統也如雨後春筍般出現。

本書的作者Avi Pfeffer正是主流概率編程系統Figaro的首席開發者,他以詳盡的實例、清晰易懂的解說引領讀者進入這一過去令人望而生畏的領域。通讀本書,可以發現概率編程並非「瘋狂科學家」們的專利,無需艱深的數學知識,就可以構思出解決許多實際問題的概率模型,進而利用現代概率編程系統的強大功能解題。

Python機器學習——預測分析核心演算法

Python機器學習--預測分析核心演算法-圖書 - 非同步社區

本書主要針對想提高機器學習技能的Python 開發人員,幫助他們解決某一特定的項目或是提升相關的技能。

在學習和研究機器學習的時候,面臨令人眼花繚亂的演算法,機器學習新手往往會不知所措。本書從演算法和Python 語言實現的角度,幫助讀者認識機器學習。 書專註於兩類核心的「演算法族」,即懲罰線性回歸和集成方法,並通過代碼實例來展示所討論的演算法的使用原則。全書共分為7 章,詳細討論了預測模型的兩類核心演算法、預測模型的構建、懲罰線性回歸和集成方法的具體應用和實現。

機器學習項目開發實戰

機器學習項目開發實戰-圖書 - 非同步社區

本書適合對機器學習感興趣的.NET開發人員閱讀,也適合其他讀者作為機器學習的入門參考書。

本書通過一系列有趣的實例,由淺入深地介紹了機器學習這一炙手可熱的新領域,並且詳細介紹了適合機器學習開發的Microsoft F#語言和函數式編程,引領讀者深入了解機器學習的基本概念、核心思想和常用演算法。書中的例子既通俗易懂,同時又十分實用,可以作為許多開發問題的起點。通過對本書的閱讀,讀者無須接觸枯燥的數學知識,便可快速上手,為日後的開發工作打下堅實的基礎。

這裡是彩蛋:

本次人民郵電出版社的同學也特意拿出10本書作為福利贈送給社區小夥伴們。

拿書規則:

1、關注阿里云云棲社區;

2、點擊到原文:彷徨疑惑,機器學習該看什麼書?雲棲社區amp;非同步社區機器學習好書籍推薦 - 知乎專欄,評論回復以上10本中你最想看的一本書籍名稱。請不要在本回答中回復

我們將在6月20日,從關注社區且在評論中回復了想閱讀書籍名稱的用戶中,抽取10名幸運小夥伴免費贈送以上正版書籍一本哦。


高票答主的有乾貨,值得收藏,但是如果追求效率,我只推薦張賢達的矩陣兩部曲,中文教材,內容詳細,足夠ML用了。。。記得刷下課後題。。不做題其實啥也學不到。。。


需要的知識分為兩個部分吧, 一部分是基本的高等代數的內容, 比如矩陣特徵值,矩陣的各種分解,二次式等等。 另一個就是數值代數的一些內容(線性方程組的解,共軛梯度,SVD分解, QR分解等等), 這部分感覺還是比較重要, 它既是線性代數的一個拓展, 也是最優化的一個基礎, 反正我感覺我本科時候學的最有用的一門課就是數值代數了, 現在各種地方用得到。
關於線性代數推薦先看看PRML這本書前面的簡介, 了解一下自己哪些概念不熟悉, 然後再開始去翻教科書裡面那些不熟悉的東西。 數值代數推薦北大出版社的小黃書, 也是我當時用的教材。講得比較清楚,看起來也較快。


高票回答給的答案比較全面。

我這裡講一下對於特定人群的:
1. 有沒有現代基礎均可以;
2. 機器學習方向;
3. 想複習一下現代但是又沒時間把現代全部從頭到尾來一遍。

強烈推薦:
Machine Learning - Stanford CS229的Section Note - Linear Algebra Review and Reference
看過自然懂

以下幾個優點:
1. 零門檻:即使連矩陣是什麼都不知道;
2. 覆蓋全面:基本包含了ML裡面需要用到的現代知識(特徵值特徵向量、Hessian、矩陣微積分);
3. 講解的通俗易懂(不要懼怕英語,用的都是初高中辭彙)。


去B站搜線性代數。點進那個叫做線性代數本質的Series,看完然後回來贊我


推薦MIT的線性代數課程


matrix cookbook,用的最多,但是很多書都不怎麼講的是matrix calculus。


控制系統中的矩陣理論 這個搞熟悉


線性代數應該這樣學。。。很薄的一本書


線性代數 steven j leon 著


1. Artin的algebra

2. lax的線性代數

3. hoffman的線性代數

4. Golub 的matrix computation


昨天澎峰創始人張先軼直播講的就是矩陣乘法的優化,雷鋒網APP上應該能看回放。


其實國內大學用的矩陣論和線性代數就不錯啦,國外的當然好,但是得到不易,入門補充知識的話國產貨夠了


機器學習收集的資料分享:機器學習與深度學習入門|機器學習應用-檸檬學院社區機器學習頻道


推薦閱讀:

機器學習應該準備哪些數學預備知識?
Matlab 中高維數組怎麼做 PCA?
谷歌智能車的難點在哪裡?模式識別,還是分析、控制演算法?

TAG:機器學習 | 模式識別 | 線性代數 | 矩陣分析 | 深度學習(Deep Learning) |