新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 智能安全鍵盤軟硬件完整方案

智能安全鍵盤軟硬件完整方案

作者: 時間:2014-11-23 來源:網(wǎng)絡(luò) 收藏

  關(guān)于 規(guī)則

本文引用地址:http://butianyuan.cn/article/265780.htm

   規(guī)則是基于梯度降落這樣一種思路的。在權(quán)系數(shù)的調(diào)整中,神經(jīng)網(wǎng)絡(luò)將會找到一種將誤差減少到最小的權(quán)系數(shù)的分配方式。

  將我們的網(wǎng)絡(luò)限制為沒有隱藏節(jié)點,但是可能會有不止一個的輸出節(jié)點,設(shè)p是一組學習中的一個元素,t(p,n)是相應(yīng)的輸出節(jié)點n的目標。設(shè)y(p,n)由以上提到的squash函數(shù)s決定,這里a(p,n)是與p相關(guān)的n的激活函數(shù),或者用(p,n)=s(a(p,n))表示為與p相關(guān)的節(jié)點n的squash過的激活函數(shù)。為網(wǎng)絡(luò)設(shè)定權(quán)系數(shù)(每個Wi),也為每個p和n建立t(p,n)與y(p,n)的差分,這就意味著為每個p設(shè)定了網(wǎng)絡(luò)全部的誤差。因此對于每組權(quán)系數(shù)來說有一個平均誤差。但是規(guī)則取決于求平均值方法的精確度以及誤差。對于每個Wi,平均誤差定義如下:

  sum = 0

  FOR p = 1 TO M: # M is number of training vectors

  FOR n = 1 TO N: # N is number of output nodes

  sum = sum + (1/2 * (t(p,n)-y(p,n))^2)

  average = 1/M * sum

  delta規(guī)則就是依據(jù)這個誤差的定義來定義的。因為誤差是依據(jù)那些學習向量來說明的,delta規(guī)則是一種獲取一個特殊的權(quán)系數(shù)集以及一個特殊的向量的算法。而改變權(quán)系數(shù)將會使神經(jīng)網(wǎng)絡(luò)的誤差最小化。任何Wi發(fā)生的變化都如下所示:alpha*s'(a(p,n))*(t(p,n)-y(p,n))*X(p,i,n)。

  X(p,i,n)是輸入到節(jié)點n的p中的第i個元素,alpha是已知的學習率。最后s'(a(p,n))是與p相關(guān)的第n個節(jié)點激活的squashing函數(shù)的變化(派生)率,這就是delta規(guī)則,并且當alpha非常小的時候,權(quán)系數(shù)向量接近某個將誤差最小化的向量。用于權(quán)系數(shù)調(diào)節(jié)的基于delta規(guī)則的算法就是如此。

  梯度降落(直到誤差小到適當?shù)某潭葹橹?如下:

  step 1: for each training vector, p, find a(p)

  step 2: for each i, change Wi by:

  alpha * s'(a(p,n)) * (t(p,n)-y(p,n)) * X(p,i,n)

  delta規(guī)則算法總是在權(quán)系數(shù)上調(diào)整,而且這是建立在相對輸出的激活方式上,不一定適用于存在隱藏節(jié)點的網(wǎng)絡(luò)。

  反向傳播

  反向傳播這一算法把支持delta規(guī)則的分析擴展到了帶有隱藏節(jié)點的神經(jīng)網(wǎng)絡(luò)。當輸出節(jié)點從隱藏節(jié)點獲得輸入,網(wǎng)絡(luò)發(fā)現(xiàn)出現(xiàn)了誤差,權(quán)系數(shù)的調(diào)整可以通過一個算法來找出整個誤差是由多少不同的節(jié)點造成的,具體方法如下:

  

“代碼識別”反向傳播的神經(jīng)網(wǎng)絡(luò)

 

  “代碼識別”反向傳播的神經(jīng)網(wǎng)絡(luò)

  反向傳播算法同樣來源于梯度降落原理,在權(quán)系數(shù)調(diào)整分析中的唯一不同是涉及到t(p,n)與y(p,n)的差分。通常來說Wi的改變在于:

  alpha * s'(a(p,n)) * d(n) * X(p,i,n)

  其中d(n)是隱藏節(jié)點n的函數(shù)。一方面,n影響輸出節(jié)點越多,n造成網(wǎng)絡(luò)整體的誤差也越多。另一方面,如果輸出節(jié)點影響網(wǎng)絡(luò)整體的誤差越少,n對輸出節(jié)點的影響也相應(yīng)減少。這里d(j)是對網(wǎng)絡(luò)的整體誤差的基值,W(n,j)是n對j造成的影響,d(j)*W(n,j)是這兩種影響的總和。但是n幾乎總是影響多個輸出節(jié)點,也許會影響每一個輸出結(jié)點,這樣,d(n)可以表示為:SUM(d(j)*W(n,j))

  這里j是一個從n獲得輸入的輸出節(jié)點,聯(lián)系起來,我們就得到了一個學習規(guī)則。

  第1部分:在隱藏節(jié)點n和輸出節(jié)點j之間權(quán)系數(shù)改變,如下所示:

  alpha * s'(a(p,n))*(t(p,n) - y(p,n)) * X(p,n,j)

  第2部分:在輸入節(jié)點i和輸出節(jié)點n之間權(quán)系數(shù)改變,如下所示:

  alpha * s'(a(p,n)) * sum(d(j) * W(n,j)) * X(p,i,n)

  這里每個從n接收輸入的輸出節(jié)點j都不同。關(guān)于反向傳播算法的基本情況大致如此。

  將Wi初始化為小的隨機值。

  使誤差小到適當?shù)某潭纫裱牟襟E如下:

  第1步:輸入學習向量;

  第2步:計算隱藏節(jié)點的輸出;

  第3步:在第2步的基礎(chǔ)上計算輸出節(jié)點的輸出;

  第4步:計算第3步所得的結(jié)果和期望值之間的差;

  第5步:把第4步的結(jié)果填入學習規(guī)則的第1部分;

  第6步:對于每個隱藏節(jié)點n,計算d(n);

  第7步:把第6步的結(jié)果填入學習規(guī)則的第2部分。

  通常把第1步到第3步稱為正向傳播,把第4步到第7步稱為反向傳播。

  至此,我們已經(jīng)成功地通過神經(jīng)網(wǎng)絡(luò)算法對用戶需要分類的術(shù)語示例進行了正向?qū)W習,對用戶需要驗證的數(shù)據(jù)進行了識別,并且對經(jīng)過驗證的數(shù)據(jù)進行了反向傳播學習。

  (二)實現(xiàn)原理

  使用Xilinx Spartan 3E Starter-kit的開發(fā)板開發(fā)應(yīng)用程序的過程大致分為兩部分——硬件和軟件。

 ?、庇布糠帧=柚鶻ilinx Platform Studio 9.1i with SP2(一下簡稱為XPS)良好的界面和易用性,我們借助其自帶的IP核實現(xiàn)大部分開發(fā)板上設(shè)備的驅(qū)動,但是由于我們的項目要用到PS/2、A/D轉(zhuǎn)換器以及CC2420射頻板等相應(yīng)的IP核并沒有附帶在XPS中的設(shè)備,因此我們正在完成這些設(shè)備的IP核的設(shè)計,以便搭起我們所需要的硬件平臺。

 ?、曹浖糠?。通過XPS中附帶的Xilinx Platform Studio SDK(以下簡稱為XPSSDK)組件,我們使用C語言完成我們的項目的核心部分的設(shè)計。XPSSDK的外殼實際上使用的是開源軟件Eclipse,其友好的界面可以極大方便我們的項目的開發(fā)。軟件核心部分分為信號處理模塊和密碼處理模塊。其中,信號處理模塊采用神經(jīng)網(wǎng)絡(luò)算法,密碼處理模塊采用混沌算法。

  ⑴信號處理模塊

  信號采集部分主要采集三個系數(shù):按鍵時間長短、按鍵時間間隔和力感模擬信號。其中前兩個系數(shù)可以通過按鍵產(chǎn)生的通碼和斷碼得到(每個通碼和下一個斷碼之間構(gòu)成一個按鍵時間長短,每個斷碼與下一個通碼之間構(gòu)成一個按鍵時間間隔),力感模擬信號可以通過綁定在每個按鍵下面的力度傳感器采集到。

  若用TH(i)表示第i個鍵按下的持續(xù)時間(Hold-time,即按鍵時間長短),則TH(i)=Trelease(i) -Tpress(i),Tpress(i)表示第i個鍵的按下時刻,Trelease(i)表示第i個鍵抬起的時刻。令TL(i,i+1)表示連續(xù)敲擊第i個鍵和第i+1個鍵的時間間隔。則TL(i,i+1)=Tpress(i+1) -Trelease(i)。對于我們采集到的力感系數(shù),每按鍵一次產(chǎn)生一個相關(guān)力度模擬信號,經(jīng)Spartan 3E開發(fā)板上的A/D轉(zhuǎn)換器將其轉(zhuǎn)化為數(shù)字信號,得到相應(yīng)的力感值TM(i)。若用戶口令由n個字符組成,則最后我們得到一個3n-1維的信號采集特征向量[TH(1), TM(1),TL(1,2),TH(2), TM(2),TL(2,3),TH(3), TM(3),……,TL(n-1,n),TH(n) , TM(n)]。

  然后我們將這些特征向量作為BP神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元,使用BP算法通過一邊向后傳播誤差,一邊修正誤差的方法來不斷調(diào)節(jié)網(wǎng)絡(luò)參數(shù)(權(quán)值或閾值),以實現(xiàn)或逼近所希望的輸入輸出映射關(guān)系,最后得以對合法用戶的身份進行辨別。

DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY




關(guān)鍵詞: 鍵盤 TLU delta

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉