iT邦幫忙

2021 iThome 鐵人賽

DAY 5
2
AI & Data

AI Facial Expression Recognition: Data, Model, Application系列 第 5

[Day 05] 當我~們同在一起在17在17 (k-means 理論篇)

前言

有一說一,表情辨識到底還是個分類任務。
如果我說有一種演算法可以在不需要標籤的情況下自動幫我們分組,你相信嗎?
那就叫分群演算法(clustering)!

機器學習可分成三種:

  1. 監督式機器學習:有輸入資料(X)且也有全部的標籤(y)
  2. 非監督式機器學習:有輸入資料但沒有標籤。
  3. 半監督式機器學習:有輸入資料,但只有一小部分有標籤。

分群演算法適用在第2、3種情況,
而今天最經典的分群演算法當屬k-means了!可能連高中生也聽過


監督式: 沒什麼好說的

-1

半監督: 什麼是偽標籤(pseudo-label)?

所謂的pseudo-label是指我們在做半監督式學習時,
給予未標籤的資料一個偽標籤。(好饒舌)

  1. 假設我們有兩組訓練資料,但其中一組資料為unlabeled data

  2. 我們用labeled data那組去訓練一個機器學習模型(Model A)
    (這裡的機器學習可以是監督也可以是非監督,但由於已經有label了,在此推薦用監督)

  3. Model A已經學會將資料分類了,於是我們將Model A對unlabeled data進行預測分類即生成偽標籤。
    0

  4. 接下來我們合併labeled data和pseudo-labeled data,訓練出一個完整的機器學習模型(Model B)
    1

修但幾勒!那如果我們一開始就完全沒有labeled data怎麼辦?


非監督:對沒有標籤的資料進行分組!

試想你是一個國一新生班級的導師,
今天是開學第一天,你要幫大家分組,但對於學生們完全不熟,
於是你想出一個奇招...

導師:我在這邊選出三位小組長()
2
第一回合:請同學們都不要動,根據和你離最近的小組長回報你是哪一組的。(E-step)
3
第一回合:請各組以組中心的位置當作新小組長。(M-step)
4
第二回合 E-step:請同學們都不要動,根據和你離最近的小組長回報你是哪一組的。
5
第二回合 M-step:請各組以組中心的位置當作新小組長。
6
第三回合 E-step:請同學們都不要動,根據和你離最近的小組長回報你是哪一組的。
7
第三回合 M-step:請各組以組中心的位置當作新小組長。
8

好了,這時候你就會發現:

你在完全不知道學生原本是三角形、圓形或方形的情況下,

成功把它們分群了,而且分出來的三群剛好分開了三種類型的學生

而這就是k-means演算法!


k-means 演算法介紹

這時候你就要問了:什麼是 E-step 和 M-step ?
EM全名為Expectation-Maximization,EM演算法又稱最大期望演算法
E-step為計算期望值,M-step則為最大概似估計,用來更新E-step上的隱藏參數。
在k-means中,這個參數就是平均值(μ)。

演算法數學式:
9
k-means流程如下:

  1. 初始化k個平均值(組中心)
  2. 執行E-step,讓各個點依造在各組的最大機率去決定歸附在哪一個組。
  3. 執行M-step,更新各組平均值(μ)
  4. 回到2.,直到收斂為止。

為什麼會收斂?

想像我們有一個損失函數,其計算方式為該組的點與組中心的距離平方和。
https://chart.googleapis.com/chart?cht=tx&chl=sum(x_i%20-%20u)%5E2
如何讓這個損失函數最小化呢?那就是用選用x的平均值取代所有x,
而這個步驟其實就是M-step在做的呢!

請參考均一教育平台-高一數學-二次函數最小值


結語

理論介紹完了,今天也快結束了。
明天讓我們進入k-means實作吧!


上一篇
[Day 04] 眼前的黑不是黑,你說的白是什麼白?(直方圖均衡化)
下一篇
[Day 06] 特徵圖想讓人分群 ~模型們的遷移學習戰~ 第一季 (遷移學習)
系列文
AI Facial Expression Recognition: Data, Model, Application30

尚未有邦友留言

立即登入留言