人工智慧 BP神經網路(數字識別)

2021-09-10 17:19:57 字數 1063 閱讀 9084

摘要:構造乙個三層的 bp 神經網路,完成手寫 0-9 數字的識別。設計網路的結構,比如層數,每層的神經元數,單個神經元的輸入輸出函式;根據數字識別的任務,設計網路的輸入和輸出;實現 bp 網路的錯誤反傳演算法,完成神經網路的訓練和測試,最終識別率達到 70%以上;

bp 演算法思想流程:

初始化輸入訓練樣本,計算各層輸出;

計算網路輸出誤差;

計算各層誤差訊號;

調整各層權值;

對所有樣本完成一次輪訓。

設計 bp 神經網路,實現手寫數字識別

使用 mnist 手寫數字資料庫提供的訓練資料集和測試資料集,訓練資料集有

60000 個樣本,測試資料集有 10000 個樣本,每個樣本是乙個 784 維的向量,是一張手寫 0-9 數字的按從上到下,從左到右進行向量化的結果。

採用三層 bp 神經網路——輸入層,隱層和輸出層。輸入層的神經元數根據使用的數字識別訓練集或測試集中輸入向量的維數決定,為 784;隱層的神經元數可調整以提高識別率,經過多次測試取 45;輸出層的神經元數取 10,分別代表數字 0-9;學習率為 0.2。

網路的輸入:乙個 784 維的輸入向量。網路的輸出:輸出層有 10 個神經元,分別代表數字 0-9,每個神經元的輸出值表示識別出的數字為該神經元代表的數字的可能性,值越大則可能性越高,最終識別出的數字為 10 個神經元中輸出值最大的神經元所代表的數字。

調整隱層神經元數和學習率,使用相同的訓練和測試資料集,得出的識別率會發生變化,經過多次調整,最終取神經元數為 45,學習率為 0.2.

結果:執行 10 次,識別率均在 93%~95%之間,滿足要求。

一次執行:

可以看到不同數字的識別率存在差異,這與數字的識別難度有一定關係,也跟訓練樣本的數量有關。因此,要使識別更加精準,可能需要更多的訓練樣本,或者找到更好的權值調整方法。

人工智慧和神經網路

人工智慧的發展飛快,這也得益於人工智慧的技術成熟。而人工智慧離不開神經網路,神經網路在人工智慧的發展中也是走過了十分崎嶇的道路,那麼究竟是怎麼一回事呢?我們在這篇文章中給大家介紹一下這個問題。每乙個科學的技術發展程序都是十分相似的,如果我們從歷史來看,就能夠發展一件十分有意思的事情,重大科學的研究往...

人工智慧 深層神經網路

對於人臉識別等應用,神經網路的第一層從原始中提取人臉的輪廓和邊緣,每個神經元學習到不同邊緣的資訊 網路的第二層將第一層學得的邊緣資訊組合起來,形 臉的一些區域性的特徵,例如眼睛 嘴巴等 後面的幾層逐步將上一層的特徵組合起來,形 臉的模樣。隨著神經網路層數的增加,特徵也從原來的邊緣逐步擴充套件為人臉的...

人工智慧04 神經網路

這裡我們集中討論具有可調節權值的tlu網路。網路系統通過不斷調節權值,直到其動作計算表現令人滿意來完成學習。tlu網路稱為神經網路是因為它模仿了生物神經元的一些特性。首先介紹如何訓練單個tlu權值,從而使其對某一些訓練集合產生正確的輸出。首先簡要介紹下神經網路。神經網路的每個單元如下 其對應的公式如...