111年身心障礙人員三等資訊管理
三、如果你要用機器學習模式來訓練你的系統辨識圖片中的狗,請敘述主要的作業過程。(25分) |
答:
要讓機器 (電腦) 像人類一樣具有學習與判斷的能力,就要把人類大腦學習與判斷的流程轉移到機器 (電腦),基本上就是運用數據進行「訓練 (Training)」與「預測 (Predict)」,包括下列七個步驟:
(一)收集資料(Gathering data)
1.要訓練機器判斷走進便利商店的是人、是貓、還是狗,首先先要準備訓練資料給機器。資料愈大量就愈有可能訓練出更厲害的機器,就像是刷了100份考古題的考生上考場的表現會比較好。
2.很多時候,人們是沒有辦法準備足夠多的資料提供機器學習,所以需要有不同的方法來訓練機器,不能只是海量寫考古題。
(二)準備數據(Preparing that data)
1.除了數量之外,資料本身的品質也會影響到訓練的品質。例如找了一堆線性代數的考古題給明天要上場考微積分的考生是一點幫助也沒有。
2.要訓練機器分辨貓跟狗,如果準備了大量的貓,少量的狗,訓練出來的機器,很有可能判斷的結果會偏向貓的機會比較大。
3.準備好資料之後,幫機器挑選出用來判斷的「特徵」(features),例如聲音跟體長,以及判斷的結果:
聲音 |
體長 |
結果 |
2020Hz |
30cm |
貓 |
1440Hz |
100cm |
狗 |
1984Hz |
45cm |
貓 |
4.除了準備資料來訓練機器之外,也要準備一組測試 (或是評估) 資料,這兩套 資料是獨立的。就像是平常寫很多練習卷之後,在正式上考場之前,來個模擬考試來確定學生是否有學好。
(三)選擇模型(Choosing a model)
在準備好資料之後,接下來選擇合適的模型來訓練機器。在處理不同的資料、問題會使用到不同的模型,例如下面這個最簡單的線性模型:
y = a+b×X1+c×X2
把每一筆資料的聲音帶入 X1,把體長帶入 X2,算出來的 y 會告知這筆資料是貓或狗。
(四)訓練機器(Training)
要怎麼決定上面那個模型的參數 a, b 和 c?這裡就是訓練機器的開始了。通常一開始會隨機決定一組 a, b, c,然後,帶入先前準備好的訓練資料得到結果,接著去比較這個結果與預期結果之間的落差,並且使用一套演算法去持續調整 a, b, c 並縮小落差。對於一個「訓練有素」的機器來說,這個誤差應該是愈小愈好,也就是能夠更準確的判斷結果。
(五)評估分析(Evaluation)
當機器訓練到某個程度後,可以拿先前準備好的測試資料來考它,看機器是否真的可以面對實際沒有見過的狀況,而不是只會處理有看過的訓練資料。
(六)調整參數(Hyperparameter tuning)
當訓練好的機器經過實際測試後發現不夠準確,此時可以調整訓練方法,讓機器的判斷能夠更為精準。例如調整訓練資料的次數,調整學習速度的參數等等。其實不會知道最好的模型長什麼樣子,只能夠不斷地優化與逼近理想狀態。
(七)預測推論(Prediction)
最後就可以將訓練好的機器推上實際的應用場景,來幫助人類做判斷或預測。
※參考資料:
1.https://ithelp.ithome.com.tw/articles/10216322
2.https://www.ansforce.com/post/S1-p1079
3.https://www.google.com/intl/zh-TW/about/main/machine-learning-qa/