人工神經網路實現簡單的邏輯運算

2021-09-09 09:20:25 字數 2024 閱讀 8674

目錄

官方定義

1、人工神經元模型

2、轉移函式

3、matlab實現簡單的邏輯運算

什麼是人工神經網路,我的理解就是:舉個不太恰當的例子,當你訓練你的狗時,第一次給它乙個橘子,跟它說這是橘子;下一次再給它橘子,看它還認不認識,如果不認識,繼續告訴他,直到狗可以認出橘子為止。那麼下次你就可以給它拿乙個香蕉,問它這是不是橘子,如果它說不是,說明它已經被訓練的差不多了。

神經網路是一種

運算模型

,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函式,稱為激勵函式(activation function)。每兩個節點間的連線都代表乙個對於通過該連線訊號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連線方式,權重值和激勵函式的不同而不同。而網路自身通常都是對自然界某種演算法或者函式的逼近,也可能是對一種邏輯策略的表達。

對於每乙個神經元j,它的輸入神經元為xi(i=1,2,...n),輸入神經元節點連線到神經元j的加權向量為:

由此可得神經元j的輸入加權和為:

神經元j的輸出狀態為

用向量表示則為

人工神經元的數學模型主要包括3部分功能:加權、求和與轉移。各種不同的人工神經元數學模型的主要區別在於採用了不同的轉移函式。

(1)、線性函式

(2)、閾值型函式

越階函式

符號函式

(3)、非線性函式

這裡我們用神經網路訓練四個輸入,使得最終的網路可以進行簡單的邏輯運算。通過不斷的訓練,每次需要調整輸入權值和閾值,公式如下:

這裡k=1,2,3,4;t表示迭代次數,q表示閾值,d表示期望(理論)輸出,y表示每次的實際輸出。e表示誤差。

(1)、這裡的每個變數意思標出alpha、beta、error分別表示權值學習速率、閾值學習速率、誤差。

(2)、這裡用的是越階閾值型函式(sgn.m)

(3)、輸入、輸出、測試函式(sjwltest.m)

(4)、結果驗證,人機互動

由於是簡單的邏輯運算,5次訓練就可以了。可以看出輸入兩組值【0 1】和【1 1】進行邏輯運算,結果分別為0和1,是對的。

(5)、結果展示

從圖中可以看出,這個簡單的神經網路相當於將4個點分成了2類,本身直線上的點線性組合恰好為0,直線下面的點(圓圈表示)線性組合就小於0,函式值sgn(x1,x2)=0,直線上面(加號表示)線性組合就大於0的點函式值sgn(x1,x2)=1,這與我們邏輯運算得出的結論也是一致的。表明簡單的神經網路可以解決線性可分問題。

我的個人部落格**

簡單的邏輯運算

邏輯運算 長路與運算在兩邊都是都是整數時,是逐位與運算,0 1結果是0 在兩邊都是邏輯運算的時候結果也是邏輯運算,並且長路運算子會把兩邊的運算結果都運算出來。而短路與運算子當左邊的運算結果是false時,不再對右邊的關係運算進行計算。三種邏輯運算的優先順序是 非運算大於與運算大於或運算 關係運算的優...

實現簡單的神經網路

python語言 tensorflow框架實現簡單的神經網路 訓練神經網路的過程一般分為3個步驟 不隨網路結構的變化而變化 1.定義網路結構和前向傳播的輸出結果 2.定義損失函式以及選擇反向傳播優化演算法 3.生成會話,並在訓練資料上反覆執行反向傳播優化演算法 完整 如下 import tensor...

神經網路的簡單實現

在吳恩達的機器學習教程中,講解了同或邏輯運算的神經網路實現原理,我將其用python語言實現一下。異或即相同取1,不同取0,真值表如下 x1x2 x1 xnor x200 1100 0101 11同或運算的神經網路包括三層 輸入層 隱藏層 輸出層。首先需要實現以下三個部分 1 x1 and x2 與...