[學習筆記] 機器學習: 簡介 (Machine learning: Introduction)


Machine learning 的定義


使得電腦有能力學習而不需要被明確地編程.
The field of study that gives computers the ability to learn without being explicitly programmed. -- Arthur Samuel
電腦程式由經驗 E 學習以執行任務 T, 效能為 P, 而隨著經驗 E 的累積, 執行任務 T 的效能 P 能夠隨之提升.
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. -- Tom Mitchell

舉例: 下圍棋.

E = 下許多場圍棋的經驗.

T = 下圍棋.

P = 下一場圍棋程式會贏的機率
Machine learning 的問題主要分為兩大類:

1. Supervised learning

2. Unsupervised learning

另外還有 reinforcement learning, recommender system.

Supervised learning


Supervised learning: desired output is provided for examples in the training set.

分為 2 類:

1. regression: predict continuous valued output.
舉例: 給定 20 組房屋坪數及其成交價的資料。對於坪數為 N 的房屋,預測其成交價 P。

舉例: 給定 1 萬組人臉及其年齡的資料。輸入一張新的人臉,預測其年齡。
2. classification: predict discrete valued output.
舉例: 給定 1 萬組腫瘤大小及其為良性或惡性的資料。對於大小為 S 的腫瘤,預測它是屬於良性或惡性。

Unsupervised learning


Unsupervised learning: we are not told what the desired output is.

clustering: 把資料根據變數之間的關聯性進行分群.
舉例: 給定 1 萬條新聞, 根據不同的屬性 (財經, 政治, 健康, 娛樂...) 自動進行分類.
non-clustering
舉例: 在環境中有多人同時講話, 聲音會混在一起聽不清楚, Cocktail Party Algorithm 可以讓我們把每個人的聲音分離出來.

Cocktail Party Algorithm 以 Octave 語言來實現, 只需要 1 行 code:

[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

(stackoverflow 上對於這行 code 運作原理的說明)

延伸閱讀


[Coursera] Machine Learning: Introduction, by Andrew Ng, Stanford University