熱的東西顯然會變涼。房間會會人沮喪地變得凌亂。幾乎同樣,消息會失真。逆轉這些情況的短期策略分別是重新加熱、 做衛生和使用 Hopfield 網絡。本文向您介紹了三者中的最后一個,它是一個只需要特定的參數就可以消除噪聲的算法。net.py 是一個特別簡單的 Python 實現,將向您展示它的基本部分如何結合到一起,以及為何 Hopfield 網絡有時可以自失真的圖案中 重新得到原圖案。盡管這個實現有局限性,不過仍然可以讓您獲得關于 Hopfield 網絡的很多有益且有啟發作用的經驗。
您尋求的是什么?
我假定您是因為遇到了一些計算上的問題而來閱讀本文。有人向您建議,一些神經網絡算法可能會提供解決方案。具體說, 建議是說您可以使用一個 Hopfield 網絡。我進一步假設您需要有一個大致的想法,以使得您可以決定那個建議是否切實 可行而且確保深入的研究。下面這個 Hopfield 網絡的非常縮略的應用可能會引導您著手解決問題。
首先,您的問題有一組基本的用 -1 和 +1 編碼的圖案。如果需要,它們可以用 0 和 +1 編碼。這些圖案可以是郵票的規格化的 二進制圖案(參閱 參考資料)。下一個要素是偏離這一基礎的一組圖案。您尋求的是創建代碼,以 使得可以輸入不正常的圖案而輸出應得的一個基本圖案。因而您尋求的將是一個算法,可以輸入一個對特定郵票的編碼描述,然后 輸出應得的一個基本郵票圖案。您搜索不確定會成功。有可以接受的對您的計劃產生負面影響的失敗率。對您來說,會有一個不 會顯著地影響您的項目的郵票誤識別的比率。
如果這使您想起了您的問題,下面可能會是您的解決方案設計的開始。在結束之前,您最好應該能回答出基本的問題。 這個 Hopfield 是什么?它如何工作?它的局限性是什么?它可以為我做什么?我希望用更多的時間來研究它嗎?
圖案及其失真
讓我們首先來看將會失真而隨后被重新獲得的五個任意圖案。它們可以可視化地表示為 10 乘 10 的黑白方塊矩陣。圖 1 展示了第一個圖案,p1。
圖 1. p1 的可視化表示
點擊 net.py 中 p2到 p5 的任意一個,可以顯示其他的圖案。為了編碼,這五個圖案被初始描述為 Python 列表。 這樣,舉例來說,第一個圖案的描述見清單 1。
清單 1. 圖案 p1
p1 = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1], [-1, -1, -1, -1, -1, -1, -1, -1, 1, 1] ]
新聞熱點
疑難解答