<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/265780.htm

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

            將我們的網(wǎng)絡(luò)限制為沒有隱藏節(jié)點(diǎn),但是可能會有不止一個的輸出節(jié)點(diǎn),設(shè)p是一組學(xué)習(xí)中的一個元素,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ù)(每個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ù)那些學(xué)習(xí)向量來說明的,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é)點(diǎn)n的p中的第i個元素,alpha是已知的學(xué)習(xí)率。最后s'(a(p,n))是與p相關(guān)的第n個節(jié)點(diǎn)激活的squashing函數(shù)的變化(派生)率,這就是delta規(guī)則,并且當(dāng)alpha非常小的時候,權(quán)系數(shù)向量接近某個將誤差最小化的向量。用于權(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)整,而且這是建立在相對輸出的激活方式上,不一定適用于存在隱藏節(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)整可以通過一個算法來找出整個誤差是由多少不同的節(jié)點(diǎn)造成的,具體方法如下:

            

          “代碼識別”反向傳播的神經(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é)點(diǎn)n的函數(shù)。一方面,n影響輸出節(jié)點(diǎn)越多,n造成網(wǎng)絡(luò)整體的誤差也越多。另一方面,如果輸出節(jié)點(diǎn)影響網(wǎng)絡(luò)整體的誤差越少,n對輸出節(jié)點(diǎn)的影響也相應(yīng)減少。這里d(j)是對網(wǎng)絡(luò)的整體誤差的基值,W(n,j)是n對j造成的影響,d(j)*W(n,j)是這兩種影響的總和。但是n幾乎總是影響多個輸出節(jié)點(diǎn),也許會影響每一個輸出結(jié)點(diǎn),這樣,d(n)可以表示為:SUM(d(j)*W(n,j))

            這里j是一個從n獲得輸入的輸出節(jié)點(diǎn),聯(lián)系起來,我們就得到了一個學(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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

           ?、庇布糠?。借助Xilinx 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è)計,以便搭起我們所需要的硬件平臺。

           ?、曹浖糠帧Mㄟ^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)系,最后得以對合法用戶的身份進(jìn)行辨別。

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




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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();