中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用Python代碼搭建神經網絡來掌握一些基本概念

發布時間:2021-12-10 17:25:17 來源:億速云 閱讀:163 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關如何用Python代碼搭建神經網絡來掌握一些基本概念,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

這里的“用Python”指的就是不用那些現成的神經網絡庫比如Keras、Tensorflow等,否則連9行都不用了。

如何用Python代碼搭建神經網絡來掌握一些基本概念

本文我會解釋這個神經網絡是怎樣煉成的,所以你也可以搭建你自己的神經網絡。也會提供一個加長版、但是也更漂亮的源代碼。

不過首先,什么是神經網絡?人腦總共有超過千億個神經元細胞,通過神經突觸相互連接。如果一個神經元被足夠強的輸入所激活,那么它也會激活其他神經元,這個過程就叫“思考”。

我們可以在計算機上創建神經網絡,來對這個過程進行建模,且并不需要模擬分子級的生物復雜性,只要觀其大略即可。為了簡化起見,我們只模擬一個神經元,含有三個輸入和一個輸出。

如何用Python代碼搭建神經網絡來掌握一些基本概念

我們將訓練這個神經元來解決下面這個問題,前四個樣本叫作“訓練集”,你能求解出模式嗎??處應該是0還是1呢?

如何用Python代碼搭建神經網絡來掌握一些基本概念

或許已經發現了,輸出總是與第一列的輸入相等,所以?應該是1

訓練過程

問題雖然很簡單,但是如何教會神經元來正確的回答這個問題呢?我們要給每個輸入賦予一個權重,權重可能為正也可能為負。權重的絕對值,代表了輸入對輸出的決定權。在開始之前,我們先把權重設為隨機數,再開始訓練過程:

  1. 從訓練集樣本讀取輸入,根據權重進行調整,再代入某個特殊的方程計算神經元的輸出。

  2. 計算誤差,也就是神經元的實際輸出和訓練樣本的期望輸出之差。

  3. 根據誤差的方向,微調權重。

  4. 重復10000次。

如何用Python代碼搭建神經網絡來掌握一些基本概念

最終神經元的權重會達到訓練集的最優值。如果我們讓神經元去思考一個新的形勢,遵循相同過程,應該會得到一個不錯的預測。

計算神經元輸出的方程

你可能會好奇,計算神經元輸出的人“特殊方程”是什么?首先我們取神經元輸入的加權總和:

如何用Python代碼搭建神經網絡來掌握一些基本概念

如何用Python代碼搭建神經網絡來掌握一些基本概念

如何用Python代碼搭建神經網絡來掌握一些基本概念

為什么是這個方程?首先我們希望調整量與誤差量成正比,然后再乘以輸入(0-1)。如果輸入為0,那么權重就不會被調整。最后乘以Sigmoid曲線的梯度,為便于理解,請考慮:

  1. 我們使用Sigmoid曲線計算神經元輸出。

  2. 如果輸出絕對值很大,這就表示該神經元是很確定的(有正反兩種可能)。

  3. Sigmoid曲線在絕對值較大處的梯度較小。

  4. 如果神經元確信當前權重值是正確的,那么就不需要太大調整。乘以Sigmoid曲線的梯度可以實現。

如何用Python代碼搭建神經網絡來掌握一些基本概念

實際上也有其他讓神經元學習更快的方程,這里主要是取其相對簡單的優勢。

構建Python代碼

盡管我們不直接用神經網絡庫,但還是要從Python數學庫Numpy中導入4種方法:

  • exp: 自然對常數

  • array: 創建矩陣

  • dot:矩陣乘法

  • random: 隨機數

比如我們用array()方法代表訓練集:

如何用Python代碼搭建神經網絡來掌握一些基本概念

.T函數就是矩陣轉置。我想現在可以來看看美化版的源代碼了,最后我還會提出自己的終極思考。源代碼中已經添加了注釋逐行解釋。注意每次迭代我們都一并處理了整個訓練集,以下為完整的Python示例:

如何用Python代碼搭建神經網絡來掌握一些基本概念

(Kaiser:講的是將代碼寫入本地main.py文件,再在終端中運行python main.py,這里只需點擊運行即可。)

我們用Python打造了一個簡單的神經網絡。

首先神經網絡給自己賦予隨機的權重值,然后用訓練集訓練自己,最后去思考新的形勢[1 0 0]并預測了0.99993704,這與正確答案非常接近。

傳統的計算機程序無法學習,神經網絡的最大魅力就在于學習能力,可以自主適應新形勢,就像人的心智一樣。當然,僅僅一個神經元只能完成特別簡單的任務,但如果我們把上百萬個如此的神經元連接起來呢?能否有朝一日制造出具有自我意識的東西?

關于如何用Python代碼搭建神經網絡來掌握一些基本概念就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屯留县| 读书| 阿拉尔市| 沿河| 梁山县| 陕西省| 墨竹工卡县| 阿拉善右旗| 夏邑县| 凉城县| 文山县| 东乌珠穆沁旗| 屏边| 高唐县| 泽库县| 浮山县| 宣恩县| 绥阳县| 通海县| 彭水| 油尖旺区| 忻州市| 伊金霍洛旗| 四平市| 巴东县| 湖州市| 沙河市| 台中县| 沁阳市| 木兰县| 腾冲县| 九江市| 邢台县| 华宁县| 长春市| 边坝县| 古田县| 玛多县| 吉水县| 石屏县| 长子县|