新聞中心

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

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

作者: 時(shí)間: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ò)將會(huì)找到一種將誤差減少到最小的權(quán)系數(shù)的分配方式。

  將我們的網(wǎng)絡(luò)限制為沒有隱藏節(jié)點(diǎn),但是可能會(huì)有不止一個(gè)的輸出節(jié)點(diǎn),設(shè)p是一組學(xué)習(xí)中的一個(gè)元素,t(p,n)是相應(yīng)的輸出節(jié)點(diǎn)n的目標(biāo)。設(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é)點(diǎn)n的squash過的激活函數(shù)。為網(wǎng)絡(luò)設(shè)定權(quán)系數(shù)(每個(gè)Wi),也為每個(gè)p和n建立t(p,n)與y(p,n)的差分,這就意味著為每個(gè)p設(shè)定了網(wǎng)絡(luò)全部的誤差。因此對(duì)于每組權(quán)系數(shù)來說有一個(gè)平均誤差。但是規(guī)則取決于求平均值方法的精確度以及誤差。對(duì)于每個(gè)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ù)這個(gè)誤差的定義來定義的。因?yàn)檎`差是依據(jù)那些學(xué)習(xí)向量來說明的,delta規(guī)則是一種獲取一個(gè)特殊的權(quán)系數(shù)集以及一個(gè)特殊的向量的算法。而改變權(quán)系數(shù)將會(huì)使神經(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é)點(diǎn)n的p中的第i個(gè)元素,alpha是已知的學(xué)習(xí)率。最后s'(a(p,n))是與p相關(guān)的第n個(gè)節(jié)點(diǎn)激活的squashing函數(shù)的變化(派生)率,這就是delta規(guī)則,并且當(dāng)alpha非常小的時(shí)候,權(quán)系數(shù)向量接近某個(gè)將誤差最小化的向量。用于權(quán)系數(shù)調(diào)節(jié)的基于delta規(guī)則的算法就是如此。

  梯度降落(直到誤差小到適當(dāng)?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)整,而且這是建立在相對(duì)輸出的激活方式上,不一定適用于存在隱藏節(jié)點(diǎn)的網(wǎng)絡(luò)。

  反向傳播

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

  

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

 

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

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

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

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

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

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

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

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

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

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

  將Wi初始化為小的隨機(jī)值。

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

  第1步:輸入學(xué)習(xí)向量;

  第2步:計(jì)算隱藏節(jié)點(diǎn)的輸出;

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

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

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

  第6步:對(duì)于每個(gè)隱藏節(jié)點(diǎn)n,計(jì)算d(n);

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

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

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

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

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

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

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

  ⑴信號(hào)處理模塊

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

  若用TH(i)表示第i個(gè)鍵按下的持續(xù)時(shí)間(Hold-time,即按鍵時(shí)間長短),則TH(i)=Trelease(i) -Tpress(i),Tpress(i)表示第i個(gè)鍵的按下時(shí)刻,Trelease(i)表示第i個(gè)鍵抬起的時(shí)刻。令TL(i,i+1)表示連續(xù)敲擊第i個(gè)鍵和第i+1個(gè)鍵的時(shí)間間隔。則TL(i,i+1)=Tpress(i+1) -Trelease(i)。對(duì)于我們采集到的力感系數(shù),每按鍵一次產(chǎn)生一個(gè)相關(guān)力度模擬信號(hào),經(jīng)Spartan 3E開發(fā)板上的A/D轉(zhuǎn)換器將其轉(zhuǎn)化為數(shù)字信號(hào),得到相應(yīng)的力感值TM(i)。若用戶口令由n個(gè)字符組成,則最后我們得到一個(gè)3n-1維的信號(hào)采集特征向量[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)值或閾值),以實(shí)現(xiàn)或逼近所希望的輸入輸出映射關(guān)系,最后得以對(duì)合法用戶的身份進(jìn)行辨別。

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




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

評(píng)論


相關(guān)推薦

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

關(guān)閉