文章專區

2022-05-01我們的AI模型和正確答案差多少?了解深度學習中的數學原理 629 期

Author 作者 蔡炎龍/政治大學應用數學系副教授,專長為代數幾何及深度學習。近年來致力推廣Python程式語言及人工智慧教學,著有《少年Py的大冒險:成為Python數據分析達人的第一門課》等書。

Take Home Message
► 人工智慧其實就是要把問題化為一個「函數」,再利用各種機器學習、深度學習等方式,讓電腦想辦法學習這個函數。
► 透過One-Hot Encoding 編碼方式、Softmax 等轉換,我們可以讓AI 模型的函數處理結果更為精準。
► 設計損失函數便能幫AI 模型「評分」,使用方法是把訓練資料都輸入AI 模型中讓它作答,最後再看AI 模型和正確答案的差距。

隨著人工智慧(artificial intelligence, AI)技術興起,有愈來愈多人投入人工智慧領域的研究。人工智慧其實很簡單,首先就是要把問題化為一個「函數」。舉例來說,假設我們想做一個AI系統,辨識在臺灣常見的三種八哥,分別是臺灣原生種八哥(Acridotheres cristatellus,俗稱土八哥)、外來種白尾八哥(Acridotheres javanicus)、外來種家八哥(Acridotheres tristis)。化成函數的形式,就是由我們輸入一張八哥的照片,電腦輸出這是哪種八哥。

土八哥

(Noel Reynolds, CC BY 2.0, Wikimedia Commons)

白尾八哥
(JJ Harrison, CC BY-SA 4.0, Wikimedia Commons)

問題是,電腦只會處理數字,該怎麼告訴我們答案是「土八哥」呢?我們只需要改變一個方式,就是給每隻八哥一個編號!比方說土八哥是1號、白尾八哥是2號、家八哥是3號。

接著,我們就可以利用各種機器學習、深度學習等方式,去打造一臺「函數學習機」,讓電腦想辦法學會這個函數。如果採用深度學習,我們會需要大量的訓練資料:一種八哥大約需要1000 張照片,然後再用這些訓練資料去訓練我們的函數學習機(即AI模型)。如果AI模型學成了這個函數,那只要輸入一張八哥的照片,就會輸出一個數字,讓我們知道這是哪種八哥。


比如說,輸入一隻八哥的照片,輸出結果是1.2,我們就知道「啊,這是土八哥!」,因為數值1.2介於編號1 的土八哥與編號2 的白尾八哥之間,且較靠近 1。

One-Hot Encoding

目前這個函數看來還很美好,但問題是:如果我們輸入一張照片,AI模型告訴我們是2.5,這該怎麼解讀呢?難道要說我們的AI模型判斷,這隻鳥有50%的機會是編號2 的白尾八哥,另外50%的機會是編號3的家八哥嗎?如果你有認真看這三種八哥,就會發現土八哥其實和白尾八哥比較像,白尾八哥和家八哥反而不太像。依常理來說,應該不會有這種分不清的情況吧?

至於會發生這種問題的原因,出在我們給八哥的編號,就只是一個代號,並沒有本來數字系統裡的意義,例如連續、大小關係等。而為了打破數字間的連續性,可以使用一種稱為One-Hot Encoding的編碼方式:因為總共有三個種類的八哥,我們就用三維向量來表示,每個位置代表「是」(1)或「不是」(0)某種八哥。


於是,我們的AI模型就會輸出三個數字,分別代表土八哥、白尾八哥、家八哥的得分。


如果訓練成功,只要我們輸入一張照片,會得到三個數字,我們看最高分是誰, 就能夠知道這隻鳥是哪種八哥。比如說輸入一張照片以後,得到的三個分數是1.9、1.1、0.2。因為第一個數字最大,我們就知道這是土八哥!……【更多內容請閱讀科學月刊第629期】