導航:首頁 > 編程語言 > python神經網路

python神經網路

發布時間:2022-02-10 07:40:36

① 怎麼用python訓練神經網路

Python 可以用scikit-learn、Theano、pybrain等庫來做神經網路,詳細的內容可以搜索相關的例子和官方文檔。

② 如何用9行Python代碼編寫一個簡易神經網路

學習人工智慧時,我給自己定了一個目標--用Python寫一個簡單的神經網路。為了確保真得理解它,我要求自己不使用任何神經網路庫,從頭寫起。多虧了Andrew Trask寫得一篇精彩的博客,我做到了!下面貼出那九行代碼:在這篇文章中,我將解釋我是如何做得,以便你可以寫出你自己的。我將會提供一個長點的但是更完美的源代碼。

首先,神經網路是什麼?人腦由幾千億由突觸相互連接的細胞(神經元)組成。突觸傳入足夠的興奮就會引起神經元的興奮。這個過程被稱為「思考」。我們可以在計算機上寫一個神經網路來模擬這個過程。不需要在生物分子水平模擬人腦,只需模擬更高層級的規則。我們使用矩陣(二維數據表格)這一數學工具,並且為了簡單明了,只模擬一個有3個輸入和一個輸出的神經元。

我們將訓練神經元解決下面的問題。前四個例子被稱作訓練集。你發現規律了嗎?『?』是0還是1?你可能發現了,輸出總是等於輸入中最左列的值。所以『?』應該是1。

訓練過程

但是如何使我們的神經元回答正確呢?賦予每個輸入一個權重,可以是一個正的或負的數字。擁有較大正(或負)權重的輸入將決定神經元的輸出。首先設置每個權重的初始值為一個隨機數字,然後開始訓練過程:

取一個訓練樣本的輸入,使用權重調整它們,通過一個特殊的公式計算神經元的輸出。

計算誤差,即神經元的輸出與訓練樣本中的期待輸出之間的差值。

根據誤差略微地調整權重。

重復這個過程1萬次。最終權重將會變為符合訓練集的一個最優解。如果使用神經元考慮這種規律的一個新情形,它將會給出一個很棒的預測。

這個過程就是back propagation。

計算神經元輸出的公式

你可能會想,計算神經元輸出的公式是什麼?首先,計算神經元輸入的加權和,即接著使之規范化,結果在0,1之間。為此使用一個數學函數--Sigmoid函數:Sigmoid函數的圖形是一條「S」狀的曲線。把第一個方程代入第二個,計算神經元輸出的最終公式為:你可能注意到了,為了簡單,我們沒有引入最低興奮閾值。

調整權重的公式

我們在訓練時不斷調整權重。但是怎麼調整呢?可以使用「Error Weighted Derivative」公式:為什麼使用這個公式?首先,我們想使調整和誤差的大小成比例。其次,乘以輸入(0或1),如果輸入是0,權重就不會調整。最後,乘以Sigmoid曲線的斜率(圖4)。為了理解最後一條,考慮這些:

我們使用Sigmoid曲線計算神經元的輸出

如果輸出是一個大的正(或負)數,這意味著神經元採用這種(或另一種)方式

從圖四可以看出,在較大數值處,Sigmoid曲線斜率小

如果神經元認為當前權重是正確的,就不會對它進行很大調整。乘以Sigmoid曲線斜率便可以實現這一點

Sigmoid曲線的斜率可以通過求導得到:把第二個等式代入第一個等式里,得到調整權重的最終公式:當然有其他公式,它們可以使神經元學習得更快,但是這個公式的優點是非常簡單。

構造Python代碼

雖然我們沒有使用神經網路庫,但是將導入Python數學庫numpy里的4個方法。分別是:

exp--自然指數

array--創建矩陣

dot--進行矩陣乘法

random--產生隨機數

比如, 我們可以使用array()方法表示前面展示的訓練集:「.T」方法用於矩陣轉置(行變列)。所以,計算機這樣存儲數字:我覺得我們可以開始構建更優美的源代碼了。給出這個源代碼後,我會做一個總結。

我對每一行源代碼都添加了注釋來解釋所有內容。注意在每次迭代時,我們同時處理所有訓練集數據。所以變數都是矩陣(二維數據表格)。下面是一個用Python寫地完整的示例代碼。

我們做到了!我們用Python構建了一個簡單的神經網路!

首先神經網路對自己賦予隨機權重,然後使用訓練集訓練自己。接著,它考慮一種新的情形[1, 0, 0]並且預測了0.99993704。正確答案是1。非常接近!

傳統計算機程序通常不會學習。而神經網路卻能自己學習,適應並對新情形做出反應,這是多麼神奇,就像人類一樣。

③ 機器學習、Python哪個以人類神經網路為目的的學習

最近接了一個大數據項目,需要進行到數據分析,作為一個從程序員往數據挖掘工程師轉行的人來說,R語言在靈活性上不如Python,並且在深度神經網路等機器學習開源模塊上,python也比R語言有更好的支持。本文主要利用Ubuntu來搭建虛擬機來進行數據分析工作,主要利用了sklearn和keras開源模塊。Google開發的深度神經網路python開源模塊tensorflow目前不支持windows系統,因此強烈建議使用linux操作系統,而redhat雖然是Linux系統中比較成熟的一種,但是其yum是付費服務,並且沒有預裝apt-get等大量的插件,因此選擇ubuntu系統,對於剛入門的新手來說更友好。

環境配置:

VM Ware 12.0(在不同主機之間的文件復制粘貼比Visual Box要好一點)

Anaconda2 (python2.7以及相關的科學計算集成,安裝完成後就可以直接使用科學計算所有的模塊,包括最流行的numpy,pandas)

JetBrain Pycharm (Python開發最火的IDE集成開發工具,方便使用git和github進行代碼的管理)

Ubuntu16.01 amd64位

1、Ubuntu虛擬機安裝

選擇Ubuntu的ISO鏡像文件,這時VM Ware將自動選擇為簡易安裝,不用考慮分區問題


4、機器學習相關開源模塊安裝

安裝Anaconda後,可以使用pip或conda工具進行下載開源Python模塊,但是必須保持網路連接狀態。由於深度神經網路和一些機器學習的模塊很新,所以必須兩個命令都用到。

輸入:

conda install theano

conda install keras

pip install tensorflow

pip install sklearn

安裝提示信息安裝,完成後,輸入python進入python命令行工具,分別輸入import keras和import sklearn,如果沒有錯誤信息,則模塊安裝完成。

5、使用pycharm

打開命令行輸入cd /home/bigdata/Downloads/pycharm-community-2016.2.2/bin

輸入 bash pycharm.sh運行pycharm

點擊左上角的FIle-->settings--->version control----->github,輸入自己的github賬號和密碼,點擊測試

點擊Test後,第一次會讓你設置本地github的登錄密碼,這個密碼必須記住,因為是不是系統在你提交代碼或者從github上clone時需要填寫這個密碼來驗證。如果你的github賬號密碼都正確,則出現下圖。

在選擇git這個選項,設置你已經安裝好的git工具的路徑,一般為/usr/bin/git.

點擊Test,出現下圖則github和git都配置成功,可以使用了。

5、從github中導入項目

從菜單欄中點擊VCS,選擇checkout from version control,再選擇github。

然後就可以選擇你想要的項目導入到本地了

有興趣的同學可以在URL那欄復制粘貼veld/PythonProgram.git,這是我分享的我找的一些機器學習的代碼,以及sklearn和keras的用法,比較容易入手。機器學習的訓練集和測試集留言並留下你的郵箱,我會盡快發給你。

④ 神經網路研究與應用這塊用python好還是matlab

一般的講,如果只是做做模擬,matlab更好,無他,現成的模塊,大量的參考代碼,以及簡單爆了的語法規則,面向過程的程序設計。盡管python也有大量模塊代碼,但畢竟是OO,要用好還是有學習梯度的。
但是一旦有研究需要,包含大量自設計的模型,就會明白python是多麼方便省事了。語言自身的靈活性給自行設計模型提供了極大的方便,這一點matlab能做到,但是很費事。而且做大工程,多人協作等,python比matlab有更多優勢。

⑤ 關於Python的BP神經網路的一個代碼

這個神經網路只能處理分兩類的的情況,這是由這個神經網路的結構決定了的。

如果想應付分多類的情況,必須對輸出層作softmax處理。

具體代碼可參看這里:
http://www.cnblogs.com/hhh5460/p/5434531.html

⑥ 用python編寫的神經網路結果怎麼可視化

學習人工智慧時,我給自己定了一個目標--用Python寫一個簡單的神經網路。為了確保真得理解它,我要求自己不使用任何神經網路庫,從頭寫起。多虧了Andrew Trask寫得一篇精彩的博客,我做到了!下面貼出那九行代碼:

在這篇文章中,我將解釋我是如何做得,以便你可以寫出你自己的。我將會提供一個長點的但是更完美的源代碼。

⑦ 關於神經網路 需要學習python的哪些知識

多讀文檔 應該是庫 庫也是python基礎編寫的 多讀多看

⑧ 如何用神經網路做線性回歸預測python

1:神經網路演算法簡介
2:Backpropagation演算法詳細介紹
3:非線性轉化方程舉例
4:自己實現神經網路演算法NeuralNetwork
5:基於NeuralNetwork的XOR實例
6:基於NeuralNetwork的手寫數字識別實例
7:scikit-learn中BernoulliRBM使用實例
8:scikit-learn中的手寫數字識別實例

⑨ python 有哪些神經網路的包

1. Scikit-learn Scikit-learn 是基於Scipy為機器學習建造的的一個Python模塊,他的特色就是多樣化的分類,回歸和聚類的演算法包括支持向量機,邏輯回歸,樸素貝葉斯分類器,隨機森林,Gradient Boosting,聚類演算法和DBSCAN。

⑩ 神經網路,python報錯:AttributeError: 'DataFrame' object has no attribute 'ravel'

y_train.values.ravel()
這樣試試,因為你的y不是一維向量。
我建議你先看看數據

閱讀全文

與python神經網路相關的資料

熱點內容
單片機kill4軟體下載收費嗎 瀏覽:846
蘋果手機怎麼連接RMS伺服器 瀏覽:603
cisco路由器基本配置命令 瀏覽:186
android狀態欄顏色透明 瀏覽:116
db2編譯工具 瀏覽:181
騰訊雲伺服器創建環境 瀏覽:567
監管資金怎麼解壓 瀏覽:670
榮耀手機內存清理文件夾 瀏覽:174
外派程序員方案 瀏覽:554
安卓怎麼把桌面的軟體變成卡通 瀏覽:885
魯班鎖解壓嗎 瀏覽:395
打包發送文件如何加密 瀏覽:213
centos解壓縮zip 瀏覽:388
我的世界怎麼用命令風塊取消指令 瀏覽:1000
安卓軟體請求超時怎麼辦 瀏覽:476
androidapp調用另一個app 瀏覽:621
數控銑床法蘭克子程序編程 瀏覽:174
linux打包命令targz 瀏覽:997
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255