[ML]Stanford 機器學習 課程筆記-001

ChunJen Wang
jimmy-wang
Published in
7 min readApr 6, 2021

本系列文為筆記Stanford ML課程筆記。

課程資訊: https://www.coursera.org/learn/machine-learning/home/welcome
導師: Andrew Ng

ML應用領域有哪些?

搜尋引擎、垃圾郵件識別都是著名的ML case。透過告訴演算法什麼是重要的訊息,讓其學習辨識並協助我們篩選出重要的資訊。

更重要的是,將數學模型落地到實際場景。AI之所以重要,在於人們希望可以讓機器自動化地執行人們的工作,讓機器模擬人腦運作,並做到更精細、準確的運算與操作。

  • Database mining
    網頁點擊資訊、流量監控、醫療紀錄、工程學
  • Application can’t program by hand
    NLP、Computer Vision、自動飛行
  • Self-customizing programs
  • Understanding human learning(brain, real AI)

Definition of ML

最早透過電腦學習跳棋策略,讓電腦自己進行無數次競賽,習得最佳的跳棋策略。

體驗E: 玩上萬次跳棋,任務T: 玩跳棋,性能P: 勝率多少

“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.”

Tom Mitchell

再舉一例代表ETP,垃圾郵件識別:

  • E: 看著你標籤的垃圾郵件資料(data)
  • T: 進行垃圾郵件分類
  • P: 分類正確比率

老師在教程中也相當重視,除了學工具,也要知道如何應用:

Imagine that someone is teaching you how to be a carpenter, and they say, here’s a hammer, here’s a screwdriver, here’s a saw, good luck. Well, that’s no good.

想像某人正要教你如何成為職人木匠,但只給了你槌子、鋸子、螺絲釘,加油好嗎 ? 給釣竿不教釣魚不是最好的方法!

廣的來說,ML可以分為Supervised learning 與 Unsupervised learning。

其實也相當於在討論BADM課程中所學的地圖。且在清大Galit教授帶領下,也有機會體驗到與業界拿data,進行需求探索、定義問題、預測模型建立等環節。

Supervised Learning 監督式學習

給定X,得Y,找到最佳f(x)的過程。

以房價預測來說,假定價格與房屋大小正相關,我們將其繪製2維平面上,便可以找到一條最配適的線,並作為參考,來判斷其價格是否合理。

其中又可以將監督式學習,分為迴歸、分類模型預測。
“Regression” & “Classification”

  • 迴歸模型: 價格預測、勝率(機率)、存貨或銷量預測、時間序列預測。
  • 分類模型: 是否確診、違約與否、評等預測、垃圾郵件判斷。

試想像如果今天維度爆炸,要如何處理? ANS: SVM。後續章節討論。

Unsupervised Learning 非監督式學習

沒有標準答案,讓電腦自己學習規則。

範例: Google News,透過演算法,判斷新聞內容,並整合為一篇。

Unsupervised Learning 應用領域:

  1. Organize computing clusters
  2. Social network analysis
  3. Market segmentation
  4. Astronomical data analysis

Cocktail Party Problem

兩個人、兩隻麥克風,分別採用不同的語言,站在不同的位置,數一至十。將被疊加的聲音,輸出並分離聲音。再考量情境,加入背景雜音(派對音樂),如何分離,並且把背景音樂剔除。

Octave提供開源的作法,公式如下:

透過奇異質分解,用一行代碼就將聲音清晰的分開了!?

其中又可以分為“Clustering” & “Non-clustering”

  • 分群: 客群分析、群集分析、基因分析。
  • Non-clustering: 話者分離。著重在識別特定特徵。

模型建立步驟

代入Training Set,藉由演算法找到最佳方程式 h。

Cost Function

最小化誤差值的function。

透過找到最適合的theta0, theta1,找到誤差最小的方程式。

J(θ0​,θ1​)=1/2m ​∑m​(yi_hat​−yi​)^2 = 1/2m ∑m​(​(xi​)−yi​)^2

J >>> 加總所有error,平方,除上1/2m。

視覺化可得,在 theta1 = 1 時,得 Global minimum。

將theta0重新加入Cost Function考量 >>>三維下凹空間。
平面視覺化(似等高線圖)

右上角帶入theta0, theta1後得最小 J (cost function)

Gradient Descent

給定theta0, theta1 初始值,持續調整theta0, theta1值,
來降低J(theta0, theta1),直到找到最小的 J 。

但要如何知道 theta0, theta1每一次變化應該增加/減少? Ans: 偏微分。

需要設定 alpha (learning rate),決定每一步要調整多大。
Trap: 學習率過大,可能永遠找不到minimum(local/gobal)。

找到minimum也可能不是真global minimum。

如何整合Loss(cost) Function與Gradient Descent演算法?

將Loss Function J(θ0,θ1)帶入Gradient Descent偏微分計算。

Source: Stanford Machine Learning, Andrew Ng

讓其同時更新θ0,θ1尋找最佳解。

Source: Stanford Machine Learning, Andrew Ng

然最簡單的梯度下降方式,在後續的發展也有許多變形作法,適用於不同情境,但不出都是為了跳脫local minimum,找到更適合的解。

--

--

ChunJen Wang
jimmy-wang

嗨,歡迎你的到來,我目前在銀行擔任DS。過去曾做過銀行大型專案BA,也曾在轉職科技業DE中踢了鐵板,相信每一個人都有自己要走的路,而努力的過程,可以讓我們離心中理想更接近,如果我的文章能帶給你一些啟發與幫助,別忘了幫我在文章底下按下拍手~^^