2022年11月4日 星期五

『普林斯頓最熱門的電腦通識課』人工智慧與機器學習

「人工智慧與機器學習」在這幾年間變成顯學,在十幾年前我唸書的時代還頗為冷門的一個領域,想不到就這樣大翻身了。

記得以前研究所上課通常是叫做「模式識別與機器學習 (Pattern recognition and machine learning)」,講一堆分類器,然後就沒有然後了。

過了 15 年後,再接觸這門學科時,倒是覺得挺有趣的,可以跟我本來的專長影像處理與機器視覺相結合,而且它也是屬於那種可以自己實作看結果的科目。

唯一的障礙是有很多的「數學與統計觀念」要重新理解,但在我看來,數學與統計跟程式一樣都是工具,必須先熟練這些工具後,才能更有效率的解決問題

還好我的程式能力勉強算可以,再來就花上幾年時間積極擁抱這個領域吧!

接下來應該會繼續熟悉「資料科學」的建模基礎跟統計實務,機器學習是資料驅動 (Data Driven) 的學科,資料的取得與篩選跟適當模型的選擇一樣重要。

既然要做,希望自己至少能掌握這個領域 20% 的關鍵知識,來應對 80% 的實務問題 (80/20 法則)。

如何在有限時間的情況下,拓展原來的領域範圍,並且有加乘的效果,就要參考「費曼學習法」。

因此希望未來有機會教授「機器學習」這門課,教中學效率更好,有時邊講課大腦自動連結既有知識樹時,也會有令人意料不到的新想法出來,最近感受特別深刻。


本章節重點摘要如下:

人工智慧 (Artificial intelligence) 泛指使用電腦去做我們通常認為只有人類能做的事,「智慧」是我們認為人類才具有的東西,「人工」意味的是,電腦也會做。

機器學習 (Machine learning) 是人工智慧的一個子集,指的是一大類方法,被用於訓練演算法,以使它們能夠自行做出決策,從而執行一些我們稱之為「人工智慧」的工作。

機器學習跟統計學是不同的東西,但兩者有重疊的地方:在「統計分析」中,我們使用一個機制模型來產生一些資料,然後嘗試找出這模型中與資料最吻合的母數 (parameter, 參數);反觀「機器學習」並不使用一個模型,而是試圖在資料中找出關係。

統計學與機器學習都是「機率性質」:它們得出的答案有可能是正確的,但不能保證必然正確。

「深度學習 (Deep learning)」 是機器學習的一種,使用相似於人腦的神經網絡的運算模型。深度學習的實作大致模仿人腦的處理方式:一群神經元偵測到低階特徵 (low-level features),它們的輸出訊號成為其它神經元的輸入訊號,然後這些神經元根據前面神經元偵測到的低階特徵來辨識更高階的特徵;伴隨系統的學習,一些連結增強,其它連結減弱。

深度學習在電腦視覺方面非常活躍,有大量不同的深度學習模型。

典型的「機器學習」基本概念是對一種演算法給予大量的例子,讓它自行學習,不給它一套規則,也不明確編寫程序讓它去解決特定問題;最簡單的形式是,我們為程式提供一個標記了正確值的訓練集 (training set)。

舉例來說,我們不試圖建立如何建力辨識手寫數字的規則,而是用一個大樣本的手寫數字去訓練一套學習演算法,對每個訓練資料標記其數值,這演算法使用它在辨識訓練資料時的成功與失敗來學習如何結合這些訓練資料的特徵,得出最佳辨識結果。

所謂的最佳,並不是確定的:機器學習演算法盡力去提高得出好結果的機率,但不保證完美。

訓練後,演算法根據它從訓練集學到的,對新的資料進行「分類」,或是「預測」它們的值。

使用有標記的資料 (labelled data/tagged data)來學習,稱為「監督式學習 (supervised learning)」

大多數監督式學習演算法有一個共通的架構,它們大量標記了正確類別 (正確值) 的例子,演算法根據這個訓練集,研判能讓它得出最佳分類或做出最佳預測的參數值;其實就是讓它學習如何從例子做出推斷。

我們仍然得告訴演算法,哪些「特徵」能幫助做出正確研判,但我們不對這些特徵給予權值或把它們結合起來。

「機器學習」演算法可能因為種種因素而失敗,例如「過度擬合(over fitting )」,演算法對其訓練資料表現良好,但對新資料的表現較差。或是沒有足夠的訓練資料,又或是提供了錯誤的特徵集,又或者演算法產生的結果可能確證了訓練集內含偏誤。

分類型 (classification) 演算法:對資料項做出正確分類,數位辨識系統、垃圾郵件偵測。

預測型 (prediction) 演算法:試圖預測一數值,如房屋價格、股市趨勢等。

「非監督式學習 (unsupervised learning)」 使用未加入標記的訓練資料,亦即沒有對資料加上任何標記或標籤。

非監督式學習演算法試圖在資料中找出型態或結構,根據資料項的特徵,把它們分組。

K群集分析 (K-means clustering) 把資料分成 K 群,讓每一群中的資料項相似度最大化,且各群之間的相似度最小化。

非監督式學習也適用在一群資料項中辨識離群值 (outliers)。

非監督式學習的優點是不需要做訓練資料標記的工作,但它不能應用於所有狀況;使用非監督式學習,必須思考出與各群集相關的一些可用特徵。

人工神經網路藉由重複處理輸入訊號及生成輸出訊號來學習,這種迭代次數非常多,但不需要給予它們一組特徵才能進行處理,它們會自行找出特徵,這是它們學習過程的一部分。

但這就引出人工神經網路的一個潛在缺點:它們不解釋它們辨識了什麼「特徵」,因此也不對它們產生的結果做出解釋或理解;這也是必須審慎而不能盲目仰賴神經網路的原因之一。

深度學習在與電腦視覺有關的工作方面特別成功。

「強化學習 (reinforcement learning)」 是一種深度學習的形式,使用來自外部環境的反饋,持續改進自己的表現;它不需要訓練資料,因為環境會告訴它是否做對了或至少是往對的方向。

機器學習的問與答:

問: 這是你的機器學習系統? 答: 是的! 把資料倒進這一大堆線性代數裡,然後從另一邊取得答案。

問: 若答案是錯的呢? 答: 那就攪拌這堆資料,直到它們看起來是對的。

機器學習系統得出的答案可能「看起來是對的」,但這僅僅是因為它們反映了一開始用於訓練它們的資料。

訓練資料是人為的東西,有可能具有誤導作用。

沒有任何人工智慧或機器學習系統能夠做得比其訓練資料還要好,這類系統有很大的可能性只是確證了訓練資料本身固有的偏誤。

沒有留言:

張貼留言

我的創業筆記 (十二) 合資公司是不是試水溫的好方法?

今天這篇又要聊到我老婆的工作內容了,她今年有關創業方面的內容特別多,所以一再被提及,但就她自己的說法,她並不想創業、她比較想躺平耍廢。 自從健身工作室的經營上軌道後,老婆就沒花費太多額外的精神,反倒是那間進出口公司的老闆非常活躍,衝勁跟野心十足,每天似乎都有新的想法,也搞死她們這...