2

我只開始學習哈希函數,所以我需要幫助理解是否可以將數學表達式的哈希函數應用爲https://en.wikipedia.org/wiki/Tent_map關於密碼學中的哈希函數應用與功能

和Tent map的一個這樣的應用是在密碼學中 - 紙1:基於散列函數的實現 在神經 密碼術download link

在特徵散列中, 假設x是D維的數據點,即它具有D個元素。在特徵散列中,使用線性散列函數將D維數據點轉換爲較低k維數據點,以便保留降維特徵空間中的距離。 哈希位k通過操作獲得, h_k(x) = sign(y(x)) = sign(f(w_k^Tx +b))。輸出h(x)是0或1位。

實質上,我們通過創建隨機超平面來分類數據點x是屬於0還是1類。

特徵散列中存在各種散列函數用於降維:f = tanh()或簡單地隨機採樣以獲得超平面。另一種選擇是在數據不可線性分離時使用內核函數。這種散列函數/技術是使用內核實現的,一種流行的選擇是使用高斯RBF作爲內核函數。


  • 問題:在紙1中,作者使用了不對稱帳篷映射https://en.wikipedia.org/wiki/Tent_map這是對單位時間間隔爲傳遞函數的分段線性。對我來說,本文使用Tent Map進行哈希表達式似乎與哈希方程(1)類似。如何應用分段線性函數,即應用此映射來創建超平面以執行特徵散列?

    還是我混合這兩個概念?

+0

呃,我要麼太累了,要麼你需要重新解釋你的問題。 – gsamaras

回答

2

Feature hashing需要一個散列函數,以便它能夠做到......其散列招!

它會散列每一個圖像,因此你需要一個散列函數來獲取圖像(即D維的特徵/向量)併產生一個整數值。


注:我認爲你與第二個單比特輸出哈希函數ξ,w.r.t混淆。到結果將是二元的事實。 ξ()很容易理解,一旦你得到初始方法的流程,因爲這只是一個優化,以減少散列衝突。


現在讓我們來看看Tent_map_2的行爲:

enter image description here

正如你看到的,是一個實值函數。

它需要一個數字作爲輸入,並給出一個數字作爲輸出。因此,天真的帳篷地圖無法散列矢量(在我們的例子中是一個圖像)。有很多方法可以增加帳篷地圖來處理矢量,最簡單的方法是:

實現帳篷地圖功能,例如, tentMap(),這將實現帳篷地圖的邏輯。您可以將小於0.5的返回值小於0.5作爲0,其餘(即> = 0.5)作爲1,但如果您願意,您可以做更復雜的事情。

現在的圖像,你可以這樣做:

def tentMapVector(image): 
    results = [] 
    for i in image: 
     results.append(tentMap(i)) 
    # now 'results' contains D integers 
    # it needs to be hashed to a single integer 
    # you could treat 'results' as a string and 
    # use one of the numerous hash function to hash that string 
    return hashString(results) 

,你準備好去! tentMapVector()應取代維基百科實現中的hash()。你可能想閱讀它的example,真的很有幫助。


它似乎並不像功能需要降維,它應該工作沒有減少,但是當你的數據在高維空間,通常是用圖像的情況下離開,你應該嘗試減小尺寸(例如,從256到128)。

例如,您可以使用scikit-learn中的PCA()或任何其他庫。

+0

謝謝你的回答,但很多事情不清楚。 (1)請您詳細說明您的最後一句話:「既然您希望您的要素映射爲0或1,那麼可以將小於0.5的值視爲0並將其餘值(即> = 0.5)視爲1。在數學上,如果圖像的輸入圖案在R^D中爲x,那麼我如何應用帳篷貼圖將特徵映射到0和1? (2)你鏈接的論文應用帳篷地圖進行加密,而特徵哈希是不同的 - 涉及2個步驟(a)降維(b)將(a)的結果映射到{0,1}。 – Sm1

+0

我很難爲圖片/連接帳篷地圖進行哈希功能。真的很感謝你的更多見解。感謝你的付出。 – Sm1

+0

@ Sm1原諒我花了很長時間回答,但我的女朋友正在傾訴我,而你知道......無論如何!很高興能給我一個很好的反饋,你看我真的不知道答案,但我正在開車與你一起發現它,這就是爲什麼我upvoted你的問題。所以這裏是我從我的經驗中得知的:圖像是一個D維向量,在R^D中。我們希望將降維應用到該向量,然後獲取暗淡減少的向量並將其饋送到帳篷地圖,對不對?但是,我不確定爲什麼我們希望帳篷地圖的結果是二進制的?我在功能哈希維基百科中找不到這個維基百科 – gsamaras