本篇為機器學習基礎觀念的第 10 篇文章。在前幾篇文章中,我們介紹了機器學習的五步驟 (定義問題、建立資料集、模型訓練、模型評估與模型推論),並說明如何應用在「房價預測」(監督式學習) 與「探索書籍風格」(非監督式學習) 的問題上。
在上述兩個問題中,我們分別使用了 Linear Regression Model 與 K-Means Clustering Model,皆屬於傳統的機器學習模型。在本篇文章中,我們將學習更厲害與更現代的模型解決「人臉辨識」(Face Recognition) 問題。
「人臉辨識」(Face Recognition) 技術廣泛應用於生活中,從解鎖手機到進出社區大門,都因為這項技術而變得更加便利。
現在請想像一個情境,你是一個非常注重隱私的人,你希望在你去工作的這段時間,調皮的弟弟不得任意進出你的房間。你也懶得去打一把鑰匙,因為你覺得自己一定會把他弄丟。因此,你希望打造一個人臉辨識系統,只有辨識你的人臉時,電子門鎖才能開啟。
為了建立一個人臉辨識系統,必須訓練出一個能夠分辨「你的人臉」的模型。我們希望輸入「一張圖片」到模型中,模型會輸出這張圖片所屬的「類別」。我們事先定義好兩種類別:
為了建立這樣的模型,我們會準備大量的圖片,每張圖片有兩種可能:有你的人臉 (類別 A) 或是沒有你的人臉 (類別 B)。因為我們會事先將這些圖片標注好所屬的類別,因此屬於「監督式學習」(Supervised Learning)。此外,輸入圖片到模型後,模型會輸出該圖片的「類別」,因此屬於「分類」(Classification) 任務。
建立資料集的過程主要可以分為以下階段:
不同於前兩篇文章,我們使用傳統的機器學習模型 (Linear Regression Model、K-Means Clustering Model),在人臉辨識 (Face Recognition) 的問題中,我們使用神經網路模型 (Neurak Network) 來解決此問題。
相較於傳統的機器學習模型,神經網路模型能夠處理的問題更多也更困難。在本文中,我們將不會深入的介紹神經網路模型。
神經網路模型中又包含了非常多種類的模型,每種模型適合處理不同的任務。在定義問題中,我們已經將「人臉辨識」視為「圖像分類」(Image Classification) 的問題。針對「圖像」這種輸入資料,神經網路模型中的「卷積神經網路」 (Convolutional neural network, CNN) 是第一首選,CNN 善於將圖像中重要的特徵萃取出來,進而提升圖像分類模型的預測準確度。
模型訓練完畢後,我們會使用 Testing Dataset 搭配一些統計指標 (Statistical Metrics) 衡量模型的品質。最直覺的 Metrics 為 Accuracy,單純計算模型的準確率。然而,根據問題本身的特性,僅用 Accuracy 並沒有辦法有效評估模型,因而出現了 Confusion Matrix、Precision、Recall 與 ROC Curve 等指標。我們將會在未來的文章中和大家介紹。
模型經過評估通過後,我們可以開始使用模型作為你的「房間守衛」。每次攝影機拍攝一張圖片後,就可以輸入至模型中,由模型預測該圖片的類別,並採取相對應的措施。
在本文中,我們再次歷經機器學習五步驟解決「人臉辨識」的問題。人臉辨識 (Face Recognition) 對於電腦而言算是相當困難的任務,透過神經網路 (Neural Network) 的技術,大幅提升電腦在此任務的準確度,使得人臉辨識的技術廣泛應用於日常生活中,讓我們的生活更加便利。