概覽
????????包括:半環(huán)定義挂滓、例行證明馒索、完備半環(huán)定義和解釋岖食;先把這幾個半環(huán)擺出來吧:
? ? ? ? 為什么WFST要基于半環(huán)構(gòu)建呢红碑?我的理解是:一方面環(huán)這樣的代數(shù)結(jié)構(gòu)是比我們熟知的域()更加普遍的、實用性更廣的結(jié)構(gòu)泡垃,可以讓W(xué)FST更加普適析珊。另一方面,WFST庫的設(shè)計只需考慮面向這些代數(shù)結(jié)構(gòu)編程蔑穴,只要WFST框架內(nèi)的運算模塊符和環(huán)的定義忠寻,無需考慮具體的任務(wù)相關(guān)知識;而使用者則需根據(jù)業(yè)務(wù)設(shè)計具體的適當(dāng)?shù)臋?quán)重環(huán)就能直接利用WFST框架存和,不同環(huán)對應(yīng)的功能奕剃;換句話說,這是個很棒的接口捐腿,例如kaldi中的代碼WeightType::Zero()纵朋,WeightType::One()就代表了環(huán)的加法中性元和乘法中性元。
我們先來簡單介紹一下基本的代數(shù)結(jié)構(gòu):
環(huán)(ring)
設(shè)是一個集合茄袖,其上定義了兩個二元運算操软,分別稱為“加法”和“乘法”,分別使用
和
作為記號宪祥,定義為
聂薪,
,并且滿足下面的條件:
1)關(guān)于
運算封閉
2)關(guān)于
運算構(gòu)成Abelian群
3)關(guān)于
運算構(gòu)成幺半群
4)乘法運算關(guān)于加法運算
滿足左分配律和右分配律
我們說構(gòu)成了一個環(huán)品山,為了強調(diào)這里的0和1是抽象環(huán)的“加法中性元”和“乘法中性元”胆建,遵循Mohri的文章,我們特意使用上加bar來表示肘交,下面也稱”中性元“是”單位元“或”幺元“。
注:不同的書上對環(huán)的定義會有些許的不同扑馁,比如有人喜歡把上面條件(3)改為“關(guān)于
運算構(gòu)成半群semi-group“涯呻,而不是上面的幺半群monoid,這無非只是更傾向于是否把乘法中性元(即”幺“)放到乘法半群中去腻要;當(dāng)你需要環(huán)的性質(zhì)時复罐,你把它稱述清楚即可;這里我們還是遵循Mohri的定義雄家。
半環(huán)(semi-ring)
有了上面的環(huán)的定義效诅,那么什么叫半環(huán)呢?“半”的性質(zhì)肯定來自環(huán)的子結(jié)構(gòu)(即“群”),自然已經(jīng)關(guān)于
運算構(gòu)成半群乱投,那么“半環(huán)”的“半”字肯定就來自加法群了咽笼;即將上面“環(huán)”的定義做個剪裁:
1)、3)戚炫、4)保持不變剑刑;
2)關(guān)于
構(gòu)成幺半群,當(dāng)然交換性依然滿足(即上面的abelian修飾詞)双肤,也就是不是所有的元素都有加法逆元了施掏。
顯然,半環(huán)比環(huán)的條件更加弱茅糜,因此更加普適七芭。
以下我們用五元組來代表半環(huán)結(jié)構(gòu),并且我們既使用
來表示進行運算的元素所在集合蔑赘,也用
表示這個半環(huán)的五元組定義抖苦。
簡單的形式證明
下面我們來證明一下上面表格(1)中的各個集合在對應(yīng)的運算下的確構(gòu)成半環(huán),證明過程非常的形式化和簡單米死,我們權(quán)當(dāng)做個練習(xí)锌历。
Boolean Semiring
verbose proof:
1),顯然關(guān)于加法封閉峦筒,而且“交換性”可以直接看出來究西,不過也可以由邏輯運算的交換性來保證∥锱纾“幺元”顯然就是0卤材,因為它與其它元素作加法運算,結(jié)果還是其它元素自己峦失;最后可以發(fā)現(xiàn)元素1的確不存在加法逆元扇丛。
2)加法結(jié)合率:?顯然成立,因為只要
中有一個是1尉辑,則兩邊均為1帆精;全為0的時候,兩邊顯然都是0隧魄。
3)卓练,可見關(guān)于乘法運算封閉,存在乘法單位元
购啄。
4)乘法結(jié)合律:顯然成立襟企,因為只要
中有一個為0,則兩邊全為0狮含;全為1的時候顽悼,兩邊都是1曼振。
5)分配律:
在case1中,當(dāng)蔚龙,這意味著
冰评,進而有
,即此時分配律成立府蛇;
在case2中集索,若,則
汇跨;若
务荆,則
;顯然case2中分配律也成立穷遂;
由于這里的環(huán)是交換的函匕,所以我們沒有刻意強調(diào)左右分配律。
Probability Semiring
verbose proof:
1)由于這里的半環(huán)運算就是實數(shù)域中的加法和乘法運算蚪黑,因此由實數(shù)公理盅惜,可知
關(guān)于加法和乘法封閉;
2)再由無窮大運算相關(guān)性質(zhì):
可知集合的確關(guān)于加法和乘法封閉忌穿;
3)加法抒寂、乘法結(jié)合率,加法掠剑、乘法交換律屈芜,以及乘法關(guān)于加法的分配律都繼承自實數(shù)的運算律;
4)顯然加法幺元朴译,乘法幺元
都存在井佑;
5)再次,除了0都不存在加法逆元眠寿,所以是半環(huán)躬翁。
Log Semiring
,其中加法運算定義為:
verbose proof:
1)顯然對于任意實數(shù)盯拱,都有
是一個實數(shù)盒发;下面考慮幾個特殊情況,
:
2)顯然坟乾,由于滿足交換性迹辐,我們只要驗證下面表格中的情況:
,令
甚侣,則
,所以
间学,即
3)顯然殷费,通過觀察上面的(1)和(2)可以發(fā)現(xiàn)的確是“加法中性元”印荔;
4)由于Log-半環(huán)的乘法運算只是實數(shù)域的加法運算,顯然也滿足封閉性详羡、交換性仍律、結(jié)合性等等;
5)并且滿足,
,
,
实柠;
6)最后水泉,在拓展的實數(shù)域中不是一個數(shù),這樣的運算是無意義的窒盐;但是Mohri的文章中似乎沒提到這點草则,如果這條封閉性不滿足,那么嚴(yán)格意義上并不構(gòu)成半環(huán)蟹漓;不過是否可以參考積分學(xué)中的“主值意義下的積分”思路炕横,定義
呢?這樣就算封閉了葡粒;但是如果實際中份殿,并不會出現(xiàn)這樣的運算,那么這一點也是無關(guān)緊要的嗽交。
7)Log-半環(huán)的乘法運算關(guān)于加法運算的分配律卿嘲,也很好驗證,比如:
其中符號“”是“by definition“的意思夫壁,并且
拾枣;
顯然上式說明Log-半環(huán)的分配律在實數(shù)中成立,再來看看一些邊界case:
掌唾,另一方面
放前,所以分配律此時也成立;
但是這里出現(xiàn)一個例外情況:
而糯彬,因此有
凭语;我們發(fā)現(xiàn)此時若使用主值意義下的無窮大加法,則不滿足分配律撩扒!
所以似扔,前面的討論是欠考慮了(ok,這些隨筆都是我想到哪寫到哪搓谆,只要不是低級錯誤就不改了)炒辉;看來我們需要定義,因為取主值是沒什么明顯道理的泉手;而讓運算滿足分配律則是明確的動機黔寇;不過回過頭來,以Log-半環(huán)的乘法運算視角來看斩萌,上面新的定義就是:
缝裤,這的確是相當(dāng)自然的(聯(lián)想一下實數(shù)域的平行case:
)屏轰。
8)Log-半環(huán)的乘法單位元顯然是0,顯然有成立憋飞。
Tropical Semiring
插曲
????????說到Tropical Semiring霎苗,這個名字很特別,我特意查了一下Tropical Semiring的含義:這個半環(huán)起初是由巴西的一個數(shù)學(xué)家提出來的榛做,而那些主導(dǎo)學(xué)術(shù)和技術(shù)的西方國家因為懶得去了解這位數(shù)學(xué)家唁盏,于是就憑著“巴西就是某個處于赤道上的國家”這一刻板印象,隨意地為這個半環(huán)取了這樣的一個名字检眯;在我看來厘擂,這真切地體現(xiàn)了西方國家一貫的傲慢形象。
????????說到這里轰传,我又想起來西方人起的另一個名字“中國余數(shù)定理”驴党,雖然(大概)所有的書上都是這么寫的,并且一些老師可能也是這么介紹的获茬,但我真的很反感這樣的名字港庄。不得不說,雖然我一直在吐槽“百度文庫”恕曲,但是這次它給這個定理用了中國人應(yīng)該用的名字“孫子定理”鹏氧。
proof:
1)顯然有成立,因此關(guān)于半環(huán)加法封閉佩谣;
2)和Log-半環(huán)一樣把还,成立,因此關(guān)于半環(huán)乘法也封閉茸俭;
3)結(jié)合率吊履、交換律仍然是繼承自實數(shù)域;
4)顯然有成立调鬓,因此
的確是半環(huán)S的加法單位元艇炎;
5)顯然有成立,因此0的確是半環(huán)S的乘法單位元腾窝;
6)最后驗證以下分配律缀踪,不妨設(shè),則
虹脯,而
驴娃,所以分配律對
成立;根據(jù)Log Semiring中的討論結(jié)果循集,亦可驗證這里當(dāng)
都成立唇敞。
半環(huán)的其它屬性
交換性(commutative)
注意,在環(huán)的定義中,并沒有要求乘法運算滿足交換性厚棵,例如一個矩陣環(huán)就是不交換的蕉世,當(dāng)一個半環(huán)的乘法運算滿足交換律的時候蔼紧,我們稱其為“交換半環(huán)”婆硬;顯然,有上面的討論奸例,可知上面的四個環(huán)均滿足交換性彬犯。
冪等性(idempotent)
若半環(huán)S滿足都成立,則稱其滿足冪等性查吊;由
可知Boolean Semiring是冪等的谐区;由
成立可知Tropical Semiring也是冪等的。
完備半環(huán)(Complete Semiring)
設(shè)為半環(huán)逻卖,設(shè)
為任意索引族(有限或無窮)宋列,和任意由
中的元素構(gòu)成的集合
,都有
關(guān)于累加運算
封閉评也;并且
的結(jié)果不依賴于求和運算中元素的順序炼杖;則我們稱其為“完備半環(huán)”,若還滿足下面幾個條件:
星半環(huán)(Starsemiring)
在半環(huán)上增加了星運算(即一元閉包運算)
盗迟,其定義為:
坤邪,并且對無窮級數(shù)滿足結(jié)合率、交換律罚缕、分配律艇纺。
顯然一個完備半環(huán)是一個星半環(huán),因為對于任意n邮弹,有黔衡,再由完備半環(huán)關(guān)于無窮級數(shù)的封閉性,和性質(zhì)(5)(6)分配性即可得腌乡。
布爾半環(huán)是個完備半環(huán)盟劫,且,
导饲;
熱帶半環(huán)也是一個完備半環(huán)捞高,且有:
以上兩個半環(huán)都是冪等半環(huán),也有非冪等半環(huán)滿足完備性渣锦,例如概率半環(huán)硝岗,且有:
? ? ? ? 我們已經(jīng)對WFST引入了半環(huán)結(jié)構(gòu),使得在WFST上的相關(guān)運算是良定的袋毙;那么型檀,為什么還要引入“完備半環(huán)”和“星半環(huán)”的概念呢?
????????雖然在實際中WFST中只能處理有限個頂點听盖,和有限多個轉(zhuǎn)移弧胀溺,即有限的圖裂七;但是別忘了,我們在圖中會出現(xiàn)循環(huán)連接仓坞,比如:自循環(huán)(self-loop)背零,那么這樣就會出現(xiàn)無窮條路徑,而我們在WFST中經(jīng)常會遇到一族路徑的權(quán)重的累加運算无埃。
? ? ? ? 比如徙瓶,當(dāng)有限長度的路徑中出現(xiàn)一個自循環(huán),則會出現(xiàn)可數(shù)無窮條路徑到達終點嫉称;當(dāng)出現(xiàn)兩個自循環(huán)時則會可數(shù)多個可數(shù)條路徑侦镇,再次仍是可數(shù)的,因此在圖中出現(xiàn)有限多個循環(huán)時织阅,總是可數(shù)無窮條路徑壳繁。
? ? ? ? 不管怎樣,我們的確需要考慮無窮的情況荔棉,即我們不僅需要半環(huán)對加法闹炉、乘法封閉,還需要對極限運算封閉江耀;因此我們需要引入完備性概念剩胁,確保我們在WSFT中的相關(guān)運算都是良定的。
參考:Mohri,?Weighted Automata Algorithms