人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡稱ANNs)-Python中實現(xiàn)人工神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程
人工神經(jīng)網(wǎng)絡(luò)(ANN)是一種受大腦啟發(fā)的信息處理模式。就像人類一樣,ANN通過示例來學(xué)習(xí)。通過學(xué)習(xí)過程,ANN被配置用于特定應(yīng)用,例如模式識別或數(shù)據(jù)分類。學(xué)習(xí)過程主要涉及調(diào)整神經(jīng)元之間存在的突觸連接。

大腦由數(shù)千億個稱為神經(jīng)元的細胞組成。這些神經(jīng)元通過突觸連接在一起,突觸只不過是一個神經(jīng)元可以向另一個神經(jīng)元發(fā)送沖動的連接。當(dāng)一個神經(jīng)元向另一個神經(jīng)元發(fā)送興奮性信號時,該信號將被添加到該神經(jīng)元的所有其他輸入中。如果它超過給定的閾值,那么它將導(dǎo)致目標(biāo)神經(jīng)元向前發(fā)射動作信號——這就是思考過程內(nèi)部的工作方式。
在計算機科學(xué)中,我們通過使用矩陣在計算機上創(chuàng)建 “網(wǎng)絡(luò)” 來模擬這個過程。這些網(wǎng)絡(luò)可以理解為神經(jīng)元的抽象,而沒有考慮所有生物復(fù)雜性。為簡單起見,我們只對一個簡單的 NN 進行建模,其中兩層能夠解決線性分類問題。

假設(shè)我們有一個問題,我們想在給定一組輸入和輸出作為訓(xùn)練示例的情況下預(yù)測輸出,如下所示:
訓(xùn)練數(shù)據(jù)如下:

預(yù)測下面數(shù)據(jù):

請注意,輸出與第三列直接相關(guān),即輸入3的值是圖2中每個訓(xùn)練示例中的輸出。因此,對于測試示例,輸出值應(yīng)為1。
訓(xùn)練過程包括以下步驟:
1. 前向傳播:
獲取輸入,乘以權(quán)重(僅使用隨機數(shù)作為權(quán)重)
設(shè)Y = WiIi = W1I1+W2I2+W3I3
2. 通過 sigmoid 公式傳遞結(jié)果以計算神經(jīng)元的輸出。Sigmoid 函數(shù)用于在 0 和 1 之間標(biāo)準(zhǔn)化結(jié)果:
1/1 + e-y
3. 反向傳播
計算誤差,即實際輸出和預(yù)期輸出之間的差值。根據(jù)誤差,通過將誤差乘以輸入,然后再次乘以 S 形曲線的梯度來調(diào)整權(quán)重:
權(quán)重 += 誤差輸入輸出(1-輸出),這里輸出(1-輸出)是S形曲線的導(dǎo)數(shù)。
注意:重復(fù)整個過程進行幾千次迭代。
讓我們用Python編寫整個過程的代碼。我們將使用Numpy庫來幫助我們輕松完成矩陣上的所有計算。您需要在系統(tǒng)上安裝numpy庫才能運行代碼
Command 來安裝 numpy:
sudo apt -get install python-numpy
測試案例:
以下內(nèi)容為付費內(nèi)容,請購買后觀看
1人購買
python測試案例
工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















