閱讀筆記 Python神經網路程式設計

2021-10-06 18:12:20 字數 2708 閱讀 1110

**器:接受輸入並作出**,給出結果。(調整內部引數讓模型更加精確)

分類器:決策邊界7使得不同元素分開。(線性分類器調整斜率更加精確)

我們不能精確制導一些事情如何運作,嘗試使用模型來估計其運作方式,在模型中包括了我們可以調整的引數。

要改進這些模型,乙個好辦法是基於模型和已知真實案例直接進行比較得到模型偏移的誤差值e

分類器通過使用調節係數/學習率l改進調節速率,適度更新。

線性分類器的確可以學習布林or函式,但是當面臨xor時(兩個輸入不同時為真,相同為假)無能為力。**線性分類器的主要限制,如果不能用一條直線把根本的問題劃分開,簡單的線性分類器沒有用。**解決可以用多個分類器。

分析一下人類的神經細胞,只有到達一定閾值才會產生輸出訊號,研究員經常用s函式/邏輯函式製作神經網路。基本s型函式為y=1/(1+e-x),如下圖所示。

自然形式複製到人工製造就成了多層神經網路。隨著學習過程進行,神經網路通過調整優化網路內部的 鏈結權重wab

改進輸入輸出。一開始科技將鏈結權重設定成隨機初始值。

當乙個有很多層眾多節點的神經網路會給手動輸入帶來**煩,我們可以使用矩陣。可以使用x=w*i簡潔表示。調節後的訊號x = 權重矩陣w * 輸入矩陣i。點乘要求第乙個矩陣的列等於第二個矩陣的行。

啟用函式(activation function),就是在人工神經網路的神經元上執行的函式,負責將神經元的輸入對映到輸出端。先將之前的輸入資料按權重進行累加,再呼叫啟用函式。最終的輸出是o=sigmoid(x)矩陣o包含了神經網路的最後一層中的所有輸出。

-通過神經網路向前饋送訊號所需要的大量運算可以表示為矩陣乘法。

-不管神經網路的規模如何,將輸入輸出表達為矩陣乘法,使得我們可以更簡潔地進行書寫

-一些程式語言理解矩陣計算可以更加高效計算

不管有多少層神經網路,都一視同仁,組合6訊號,應用鏈結權重調節輸入訊號,應用啟用函式,生成輸出訊號。將神經網路中的輸出值與訓練樣本中的輸出值進行比較,計算出誤差,需要使用這個誤差值來調節神經網路本身,進而改進神經網路的輸出值。

使用權重,將誤差向後傳播進網路中,這個叫做反向傳播。

將誤差標記為e,e誤差=(t訓練集提供的期望輸出值-o實際輸出值) 按照鏈結權重的比例來分割輸出層的誤差,然後在每個內部節點重組這些誤差。==error widden 隱藏誤差=wt(權重的轉置)*erroroutput(輸出的誤差)

反向傳播可以表示為矩陣乘法。

向前饋送訊號和反向傳播都可以使用矩陣計算而變得高效。

實際上我們是如何更新權重的呢?——梯度下降法

我們需要採用合適的步長,避免超調。正梯度減小x值,負梯度增加x值。

實際上函式有許多的引數,以二維平面做模擬,要找到山谷中最低的位置,事實上並不是每次都能找到,所以要從山頂多次訓練保證不是陷入了錯誤的位置。

梯度下降是求解函式最小值的一種很好的方法,當函式非常複雜困難的時候,這種方法發揮了很好的作用。

尤其是函式有很多引數的時候,很多方法會求解錯誤,這種方法有很好的結果

這種方法有彈性,可以容忍錯誤,不能完美描述函式時錯了一步也不會錯得離譜。

關於誤差函式,一般使用(目標值-實際值)2 而不採用絕對值,有以下幾點好處

引用知乎:使用平方形式的時候,使用的是「最小二乘法」的思想,這裡的「二乘」指的是用平方來度量觀測點與估計點的距離(遠近),「最小」指的是引數值要保證各個觀測點與估計點的距離的平方和達到最小。最小二乘法以估計值與觀測值的平方和作為損失函式,在誤差服從正態分佈的前提下,與極大似然估計的思想在本質上是相同。而最終還是要求導的,平方形式求導會容易多,簡單效果也不錯

在尋找誤差最小這個梯度下降過程中,斜率是e誤差/wij網路鏈結權重

然後是一系列眼花繚亂的公式推導,略

new wij=oldwij-α*e的偏導/wij的偏導

α一般稱之為學習率。

神經網路的誤差是內部鏈結權重的函式

改進神經網路,意味著通過改變權重減少這種誤差

很難直接就找到合適的權重,所以需要梯度下降。

使用微積分很容易計算出誤差斜率

一些使得神經網路更容易成功的建議:

調整輸入值在(0,1]範圍內,避免學習能力的喪失

目標值也不能超出啟用函式的範圍,在(0,1)之間

隨機初始權重在乙個節點傳入連線數量平方根倒數的大致範圍內隨機取樣,初始化權重。例如三條就取(-1/根號3,1/根號3),總之不要相同或者為0

環境配置:安裝anaconda,使用py3+的版本,使用notebook。

這章主要是練習了。無筆記。

神經網路 python實現神經網路

神經網路系列目錄 神經網路 神經網路原理介紹 bp演算法 神經網路 sklearn引數介紹及應用 神經網路實戰 主播綜合評分回歸 實戰 最小二乘法 梯度下降法區別及python實現 本篇博文通過python 實現神經網路,採用sklearn自帶的手寫數字集,看分類情況如何 一 匯入資料集並標準化 資...

神經網路筆記

感知機模型如下圖所示 輸入層接受多個二值輸入,輸出層提供乙個二值輸出 m p神經元 用數學公式來描述就是 y 0,1 jw jxj b 0 jwjx j b 0 這裡,y 是指輸出,xi 指輸入,wi 是輸入的權重,j 是輸入管腳個數,b是指偏移.多個感知機可以構成神經網路,如下圖 m p神經元的輸...

Python與神經網路0 神經網路介紹

參考 提到神經網路演算法,其實就是人工神經網路演算法neural networks ann 是一種模仿生物大腦神經的工作原理的演算法。神經網路的基本單位是神經元,生物的神經元包含三部分 體細胞 軸突和樹突。樹突成樹狀,用於從接受訊號,軸突用於輸出訊號。抽象成演算法模型就是 在具體執行時,每個輸入變數...