時間:2017-10-26 來源:互聯網 瀏覽量:
們用一個運行的例子來講一下最近熱門的機器學習裏麵的基礎算法神經元網絡算法。例子一共40行代碼,在文章最後有下載方法。運行環境如下:
操作係統:win10 64位
anaconda:Anaconda3-4.4.0-Windows-x86_64
python:3.6
tensorflow:為anaconda管理安裝,看anaconda是1.1版本。
神經元網絡算法實際是仿生人體神經元。人體神經元,之間互相鏈接,傳遞信息,做出決策。人工智能中最熱門的機器學習的神經元網絡算法就是仿生人的大腦的。人腦中的神經元就有3個基本功能。 1.接受信號。 2.決定是不是讓信號通過。 3.發出信號給別的神經元。 人腦的信號是生物電信號,而計算機的則是0-1之間的小數數字信號。
它是一種模仿動物神經網絡行為特征,進行分布式並行信息處理的算法數學模型。這種網絡依靠係統複雜程度,通過調整內部大量節點之間相互連接的關係,從而達到處理信息的目的。這是最簡單的神經元圖解。彙總輸入信號後,通過激活函數輸出一值。輸入值都有權重。比如構成一個人,頭和胳膊的權重是不同的,一個人可以沒胳膊,不能沒有頭。如果輸入是人體各個部分的有無,那麼輸出就是一個是否為人的概率?!
從基礎知識上了解了神經元,但是實際工作中,為什麼叫機器學習呢?因為大部分神經元網絡,在最初期是沒有輸入權重和對應的偏置(就像一個線段在圖像中的角度和位移,角度即為權重,上下左右位移就為偏置)。我們有的往往是輸入值和對應輸出值,這時候我們就需要機器來學習這些數據,得到對應的權重wi和偏置b。這個程序就是一個最簡單的訓練程序,通過梯度下降算法求得wi和偏置b,再通過bp(back propagation)來優化。
程序主題部分,通過001,111,101,011輸入,對應輸出0,1,1,0進行訓練。最後調用模型輸入1,0,0,算出輸出結果。
以上是訓練函數,通過梯度下降算法,把神經元中的權重和偏置計算出來。
這是運行結果,訓練3000次後,輸入1,0,0,輸出結果為0.999近似等於1.
需要程序的,可以在這裏下載
http://www.angtk.com/archives/36
關注我們,後麵我們會詳細講解後麵算法。ai昂鈦客專注人工智能社群,提供最簡案例!