會員登入
購物車
(
0
)
HOME
×
關於科月
關於科月
科月目錄
科報目錄
購買科月
訂閱方案
優惠方案
諾貝爾系列
購買單期
購買通路
投稿須知
推廣專案
星火相傳計畫
支持專案計畫
進階搜尋
封面故事
News Focus
專訪
專欄
評論
精選文章
活動訊息
永續科學
基金會
科技報導
繁體中文
English
ig
line
facebook
Please enable JavaScript
Search / 搜尋
分類選單
- 文章分類 -
封面故事
News Focus
專訪
專欄
評論
精選文章
活動訊息
永續科學
基金會
科技報導
專欄
文章專區
2024-07-01
AI如何辨識人臉? 一起打造能認出K-POP偶像團體的AI模型!
655 期
Author 作者
蔡炎龍/政治大學應用數學系副教授,專長為代數幾何及深度學習。近年來致力推廣Python程式語言及人工智慧教學。
人臉辨識
AI
特徵
KPOP
IVE
Google
Colab
實作模型
Take Home Message
•傳統AI人臉辨識模型的建立需要大量訓練資料,且難以應對必須辨識新人的情況,此時就需要一個能「捕捉特徵」的AI模型。
•透過對比學習的方式,就能訓練出熟悉捕捉個人特徵的AI模型,使模型可以抓出同一人的相似特徵,並區分不同人的差異。
•我們可以使用Colab平臺打造AI人臉辨識模型,在訓練時僅需一張照片,就能讓程式抓出不同人的特徵並儲存、訓練模型。
在人工智慧(artificial intelligence, AI)應用愈來愈廣泛的21世紀,許多設備、公司都會應用到「人臉辨識」的系統。不過AI人臉辨識背後的原理是什麼?如何運用深度學習(deep learning)的方法進行人臉辨識呢?
人臉辨識的AI模型該怎麼設計?
在講述AI模型的設計原理之前,我們先說一個故事。
兔子老闆在臺灣經營了一間牧草買賣公司,有一天他看到隔壁公司的員工都是「刷臉」就可以開鎖,他進公司後覺得很羨慕,於是決定幫自家公司也做個人臉辨識系統。還好兔子老闆的公司只有四位員工,所以我們可以給每位一個編號。
怎麼設計這個人臉辨識系統的AI模型呢?在建立AI模型前,首先要知道我們是將什麼資料「輸入」模型,並預期會「輸出」什麼結果。而在這個故事中,我們輸入是一張照片,輸出的則是代表四個人的四個分數,得分最高的表示AI辨識出照片是那個人。
不過這種設計方式有兩個問題。第一,深度學習基本上是「讓電腦自己看著辦」,也就是我們並不會手把手教電腦每個人有什麼特徵,只是給他看某人的照片,告訴他正確答案是第幾號。於是電腦大約需要1000張照片才學得會一個人的長相――要向每位同仁要1000張照片好像不太合情理?
就算兔子老闆很有威嚴,大家真的各自交出1000張照片,模型也順利訓練完成,大家終於鬆了一口氣。但是公司的人不是永遠固定不變的,如果有一天來了一位新報到的員工,我們總不能告訴他:「本公司規定,新人要交自己的1000張照片!」而且這時候我們只能分辨四個人的模型己經不敷使用,要砍掉重練!
如果有個很會「抓特徵」的模型?
假如有一個AI 模型,它很擅長捕捉出照片中不同人物的長相特徵,當輸入一個人的照片後,它便能輸出AI 模型對這個人的「理解」。而這個理解只是一個向量、抽象的理解,我們沒辦法知道具體的意義,只知道是AI 給這個人的特徵。
接著將公司每一位同仁的照片都送進這個「擅長捕捉特徵」的 AI 模型中,如此一來每個人的特徵代表向量就出現了。再將這幾個向量放到資料庫中,以後有人進來,只要把監視器拍到的影像送入此模型,就可以比對拍到的影像和誰的代表向量最接近,藉此辨識出是哪個人進公司了。
有新進員工加入也不是問題,只要把他的照片送入這個模型並找到代表他的特徵代表向量,最後再存入公司的資料庫就可以。
如何訓練模型捕捉特徵?
這種「擅長捕捉特徵」的模型要怎麼訓練呢?畢竟我們很難訓練資料, 如果隨便找一個人的照片輸入AI 模型中,它究竟要怎麼知道什麼是這個人最合適的特徵代表向量?
很有意思的是,雖然我們沒辦法教電腦什麼是「正確答案」,卻可以讓電腦知道,他生出的特徵代表向量「好」或「不好」。要怎麼做呢? Google的AI 科學家想到,在訓練時可以每次準備三張照片,其中兩張是同一個人,另一張則是不同人的照片。將三張照片送進「找特徵」的AI 模型後,會出現三個特徵代表向量。那麼,同一個人的特徵代表向量當然應該要接近,不同人的差距要愈大愈好。也就是說,告訴電腦我們的目標,電腦就會慢慢調整成我們想要的樣子。
經過一次次學習後,電腦就會變成一個很會抓個人特徵的AI 模型。由於我們用來訓練AI 模型的照片會有「正向」(同一個人)的數據,還有「負向」(不同人)的數據。理論上正向樣本要愈接近目標愈好、負向愈遠愈好。後續在訓練模型時也發現,正向樣本較少(畢竟就是一個人)、負向的樣本較多(其他人的照片都是負向)的狀況下模型的訓練效果較佳。因此,每次在訓練AI 模型時應該多輸入一些不同人的照片。後來更導出對比學習 (contrastive learning)的概念,也就是對任一張目標照片, 一次取一張正向的樣本,但負向樣本會取數張, 成為 AI 運用中一個很重要的想法。
一起來實作, 辨識IVE 成員吧!
今(2024)年3 月,韓國六人女團IVE來臺灣開演唱會,但如果你不是IVE 的粉絲,可能會分不太清楚六位成員。這時候我們就可以試試看用前面提到的概念, 打造一個能夠辨識IVE 成員的AI模型!
我們可以使用Google 的Colab 雲端運算平臺來打造這個AI 模型。就算沒有什麼程式經驗也不需要太過擔心,程式中會提醒你。讀者可以點擊此連結
Colab 雲端運算平臺
,並且按下「Open In Colab」的按鈕。
在操作時需要使用Google 帳號登入Colab,然後在「檔案」選單選擇「在雲端硬碟中儲存副本」,這麼一來程式就會存在你自己的Google 雲端硬碟中,這就會完全變成你的程式了。
首先,我們需要知道怎麼執行每一行程式:可按下程式儲存格前面的 「play」按鈕, 也可以直接用shift-enter 快捷鍵。整個程式只有兩個重要需要自己動手輸入的地方,第一個是你希望辨識的成員姓名,英文(作為資料夾名稱用)和中文的部分。也就是說,不一定要辨識IVE 成員,你想做出辨識任何人的AI模型都可以!
第二個需要動手操作的就是重點了。程式會幫忙開好每位成員的資料夾,此時要幫每位成員都找「一張」照片、放入資料夾中,之後程式在執行時就會先找到每一位成員的特徵代表向量, 並且儲存。
執行到最後,程式會給你一個網址,讓你可以在任何瀏覽器上執行這個AI 人臉辨識模型。也就是你可以將連結分享給親朋好友,讓他們看看你親手打造出來的IVE AI 辨識模型。
實作的討論
還記得每位成員我們只給一張範例嗎?你會發現AI 其實有點厲害,居然只需要少少的資料就能正確辨識。但如果你是IVE 的粉絲,還是會發現AI的辨識能力遠遠不及你。
其實這也是在實作上常會碰到的問題,模型的確能做到某種程度的辨識,但我們希望它能做得更好。於是針對不同成員,我們可以給AI 模型更多的照片,尤其是那些AI 辨識錯的照片。這種做法的確能改善AI 辨識的精準度,但卻不是最好的做法。原因在於AI 不像人類,真的認得一個人時會說:「哦這是兪真(IVE成員之一)!」AI 沒有辦法融會貫通,它只是覺得這張照片比較接近「兪真的某一張照片」,但辨識結果的第二名可能就給了其他人的照片。
另一個比較好的作法是我們可以找到分別的特徵代表向量,再用其他機器學習的方式去分類這些特徵代表向量。你也可以想成這是AI 「消化吸收」的過程。經過大量訓練後,AI 就會變得更有能力、也可以更肯定的判斷出這是誰了。
回列表頁
加入收藏
列印
相關推薦
科學月刊 7月號/2024 第655期:災難生存學-請至博客來...
特別價
$266
科學月刊 6月號/2024 第654期:生物多樣性in臺灣請至...
特別價
$266
新訂一年方案:《科學月刊》一年12期
售價 $2780
新訂兩年方案:《科學月刊》二年24期
售價 $5300
TOP
本站使用第三方服務進行分析,以確保使用者獲得更好的體驗。了解本站
隱私權政策
OK