接續著昨天講到的EM routing,今天來將EM routing做進一步的解釋
將向量的輸入輸出改為使用矩陣來做運算處理,協議動態膠囊路由也需要替換成最大期望值演算法(expectation maximaiztion algorithm),若在兩個姿勢向量(pose vector)中使用cosine做運算,並沒有辦法處理得非常好。最大期望值路由演算法(EM routing algorithm)會利用具有多層膠囊的膠囊網路讓其運作起來更有效率。
主要層的膠囊表示為,代表每一層膠囊的姿勢矩陣,而代表他的激活可能性。在層的膠囊和層的膠囊之間有一個可訓練的轉移權重矩陣(Transformation weight matrix)。最大期望值(EM)是膠囊的姿勢矩陣和轉移權重矩陣的姿勢矩陣在層的膠囊的投票結果。這個投票結果是由輸出矩陣和轉換矩陣相乘而得。
以下用圖解來解釋
假設pose matrix是一個4x4的矩陣,W也會是一個4x4的權重矩陣
我們將低層級的膠囊(前面的膠囊)的值丟給後面高層級的膠囊,就會得到更好的結果
中間的部分我們會透過某些方式對這些矩陣做處理
在這種膠囊網路的概念中routing的部分就會被Non-Linear Routing Procedure(程序)做一個取代
這邊訓練的方法,就會使用高斯混合模型(Gaussian mixture model,簡稱GMM)的方式做運算
https://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm
在k-means中,我們只用一個點就代表一個群集的中心
圖中使用GMM可以獲得二次曲面形狀的分類
而若是使用k means則只能識別出球狀的
GMM的聚集越集中,所求出來的a就會越大
因此從分類的角度上來說,這就會是一個分類很好的標準
由於今天才發現有Microsoft的贊助加碼,因此我之後會試試看使用Azure來實作