压缩感知(II) A Compressed Sense of Compressive Sensing (II)
今天在吃飯的時(shí)候,其中一個(gè)人得知我的學(xué)校之后非要出一些 puzzle 來考我……口算都很困難的我覺得壓力山大,要給本校的 CS 算法天才們丟臉了。然后其中一道題就是十二球重量的問題,似乎是一個(gè)經(jīng)典面試題。當(dāng)時(shí)想了一下覺得確實(shí)是可以放在之前看的一些 Compressive Sensing 框架下來考慮這個(gè)問題,后來去查了一下,發(fā)現(xiàn)果真如此。
十二球問題是說,現(xiàn)在有十二個(gè)球,其中有一個(gè)是“異類”,除了這個(gè)異類之外,其他十一個(gè)球的重量是相等的,而這個(gè)異類球可能比其他輕或者重,現(xiàn)在提供一個(gè)天平,要求你通過最多三次天平測(cè)量,找出哪個(gè)球重量和其他不一樣,并得出是輕還是重的結(jié)論。
仔細(xì)想一下發(fā)現(xiàn)做一次天平測(cè)量相當(dāng)于做一次 linear measurement,將球編號(hào)為?,排成一個(gè)向量記為??的話,做一次測(cè)量相當(dāng)于用??去內(nèi)積一個(gè)向量?,其中??的元素可能是??或者?。?表示放在天平左邊,?放在天平右邊。用??表示正常球的質(zhì)量,?表示異常球的質(zhì)量,則
其中??是一個(gè)全??的向量,而??是第??個(gè)位置為?,其他位置為零的向量,這里假設(shè)第??個(gè)球是異類球,但是??的值目前未知。注意我們?cè)跍y(cè)量的時(shí)候一定是會(huì)在左邊和右邊放上同樣數(shù)目的球,否則測(cè)出的結(jié)果一般情況下得不到任何有用的信息:所以??向量里正負(fù)??的數(shù)目應(yīng)該是一樣多的,于是?,也就是說:。
題目要求我們使用三次測(cè)量,分別記為?,排成矩陣為?(題目并沒有限制不能使用 adaptive 的測(cè)量方法,也就是說,根據(jù)上一次測(cè)量的結(jié)果動(dòng)態(tài)地決定接下來測(cè)量那些球。但是我們這里采用 non-adaptive,也就是事先就把三次測(cè)量全部定下來的方式。)
我們用??表示??矩陣的第??列,則
由于我們??的編碼中??表示放左邊,?表示放右邊,所以如果左邊重,我們的觀察值??會(huì)是負(fù)數(shù),右邊重是正數(shù),一樣重是零。由于我們的天平實(shí)際上不是刻度天平,所以我們的觀察值實(shí)際上是?(所以說我們剛才說的“測(cè)量是線性的”這個(gè)說法實(shí)際上是需要糾正的。)
也就是說,我們的觀察值實(shí)際上將會(huì)是矩陣的第??列或者該列的相反數(shù),具體取決于異類球的質(zhì)量是比正常球大還是小。所以說,如果我們能將矩陣??設(shè)計(jì)為任意兩列以及它們的相反數(shù)都互不相等的話(當(dāng)然還必須滿足每一行的??個(gè)數(shù)相等),就可以根據(jù)這個(gè)測(cè)量矩陣找出異類球的位置??了。具體的做法就是直接拿測(cè)量結(jié)果去和??的每一列比較,如果和其中第??列相等的話,那么異類球就是第??個(gè),并且重量比其他球大;否則再用測(cè)量結(jié)果的相反數(shù)去和??的每一列比較,相同的那一列對(duì)應(yīng)的就是異類球的標(biāo)號(hào),并且此時(shí)異類球的質(zhì)量比普通球要小。
那么這樣的矩陣究竟能不能構(gòu)造出來呢?首先矩陣每一個(gè)元素可能的取值范圍是三個(gè),矩陣有 3 行,所以所有可能的不同的列的個(gè)數(shù)為??個(gè),除去全零(永遠(yuǎn)不測(cè)量該球)這種極端的情況,還剩 26 種,由于每一種情況和它的相反數(shù)的情況對(duì)應(yīng)起來,因此我們實(shí)際上會(huì)得到 13 種,任選 12 種填滿這十二列。下面是一個(gè)例子:
類似的算法可以推廣到做??次測(cè)量,可以在多少個(gè)球中找出異類球來上,就不在這里再具體說了。所以這和 Compressive Sensing 有什么關(guān)系呢?當(dāng)然在很多地方都是很相似的。首先??是一個(gè)“稀疏”的向量(除了一個(gè)位置之外其他的位置值都一樣),然后現(xiàn)在通過數(shù)目遠(yuǎn)小于??的維度的測(cè)量來恢復(fù)出原始的?來。其中有一點(diǎn)和普通的 CS 不一樣的是:這里并不是直接做原來的線性測(cè)量,而是在通過一個(gè)矩陣進(jìn)行線性投影之后,測(cè)量結(jié)果的符號(hào):,稍微忽略掉等于零的情況的話,一個(gè)符號(hào)??可以用一個(gè) bit 來表示,所以這樣的特殊的設(shè)定通常稱為 1-bit Compressive Sensing。
由于??是一個(gè)非線性函數(shù),所以這里的測(cè)量也是和普通 CS 不同的非線性測(cè)量。問題的設(shè)定也有些不同,因?yàn)楹苋菀卓梢钥吹降氖?#xff1a;原始向量??的長度信息永久丟失了,因?yàn)閷?duì)于任意正數(shù)?,,所以通常情況下會(huì)嘗試恢復(fù)一個(gè)單位長度的向量?。更常見的設(shè)定是只尋找??的非零元素的位置,而不去管具體的值,比如對(duì)應(yīng)我們剛才的問題,就是找出??是多少,通常叫做 support recovery。這通常被認(rèn)為是更加 achievable 的目標(biāo)。
在 1-bit CS 里,除了普通 CS 里常用的隨機(jī)高斯或者伯努利測(cè)量矩陣之外,由于問題設(shè)定和 Computer Science 里的?Group Testing?問題也聯(lián)系更加緊密一些,所以還有許多通過巧妙地構(gòu)造出來的特殊矩陣配合上專門的恢復(fù)算法(而不是簡(jiǎn)單的?-norm 最小化)可以來完成給定的目標(biāo)。
另外,介于 1-bit CS 和普通的 CS 之間還可以有?-bits CS,因?yàn)槲覀冊(cè)陔娮佑?jì)算機(jī)上處理數(shù)據(jù)的時(shí)候?qū)嶋H上是沒有用無限精度來表示測(cè)量值的,總是在一定程度上做了 quantization,這個(gè) quantization 的步驟(也就是用??個(gè) bit 來近似真正的觀察值)會(huì)產(chǎn)生怎樣的影響,以及??的取值會(huì)對(duì)結(jié)果精度產(chǎn)生什么樣的 trade-off,這也是目前 CS 里正在被研究的一個(gè)問題。
from:?http://freemind.pluskid.org/machine-learning/a-compressed-sense-of-compressive-sensing-ii/
總結(jié)
以上是生活随笔為你收集整理的压缩感知(II) A Compressed Sense of Compressive Sensing (II)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 压缩感知(I) A Compressed
- 下一篇: 压缩感知(III) A Compress