跳至主要內容

學機器學習

Jia-Yin大约 2 分鐘

機器學習的目的是透過資料尋找一個函數,這個函數可以把輸入映射到輸出。例如,給定一張圖片,這個函數可以把輸入圖片映射成對應的說明文字。

怎麼樣找這個函數呢?機器學習的過程要先設定模型的形式,以及使用的參數。一般模型大多使用神經網路,而其中的參數則稱為權重。一個大的模型,參數量可能很多,有些高達幾十億個,要想找到好的參數,人力無法勝任,所以就交給機器去運算,這個運算過程,就稱為訓練模型。

訓練模型,也就是在找模型參數的過程。怎樣的參數才算是好的呢?這要有一個判斷的標準。一般會使用一個損失函數,這個損失函數用來衡量模型的輸出和希望得到的輸出之間的差距,並根據這個差距給一個分數,而我們要想辦法讓損失函數的平均分數越小越好。

當我們得到一個損失函數的分數之後,有一套演算方法,可以用來調整模型的參數,讓損失分數可以稍微往較低的方向變化。

整個訓練模型的過程,就是不斷餵資料、計算輸出、計算損失函數的分數、調整模型參數,這樣不斷地循環,而每次調整都試圖讓模型變得更好一些,經過千千萬萬次的調整之後,模型的效能或者說正確性也就變得越來越好了。

現在的機器模型,功能可以做到非常強大;而我在想,如果人也可以像機器一樣,每天都反省自己,比對理想與實際行為的差異,然後根據這個差異,往好的方向修正一點點,這樣日積月累,心靈也會變得越來越美好吧!易經上說:天行健,君子以自強不息。曾子曰:吾日三省吾身。其實有智慧的賢者,不也是這樣一點一滴累積而成的嗎?向機器學習,有為者亦若是!