機器學習入門 神經網路的實現學習筆記

2021-09-24 23:29:35 字數 1567 閱讀 9901

感知機與神經網路的主要區別在於啟用函式。啟用函式必須使用非線性函式,因為使用

線性函式的問題在於,不管如何加深層數,總是存在與之等效的「無

隱藏層的神經網路」,這樣便無法發揮多層網路帶來的優勢。因為神經網路的

啟用函式

必須使用非線性函式。

機器學習問題分為「

學習」 和「

推理」兩個階段。學習階段進行模型學習,推理階段,用學到的模型對未知的資料進行推理(分類)。 推理階段不需要輸出層的

softmax

函式。輸出層使用

softmax

函式(將前一層

score

結果正規化後輸出)與神經網路的

學習有關。推理階段只需要知道分類結果就可以,即找到分數最大值。而學習階段則需要將輸出誤差反饋到前一層更新權重。因此需要

softmax

函式。

機器學習實質是利用訓練資料計算

損失函式

,找到使該值盡可能小的引數。考慮到有些訓練資料很龐大,因此選擇資料中的一批資料作為訓練資料,(稱為

mini-batch

,小批量)

梯度法

是解決機器學習最優化問題的常用方法。(通過不斷沿梯度方向前進逐漸減小函式值的過程就是梯度法)。神經網路中的梯度是指損失函式關於權重引數的梯度。

神經網路學習的最初目標是掌握

泛化能力

,因此,每經過乙個

epoch

,我們都會記錄下訓練資料和測試資料的識別精度。(

乙個epoch

表示學習中所有訓練資料均被使用過

一次時的更新次數。)

當訓練集和測試集的誤差都很高,但是準確度都很低,則可能存在欠擬合。 此時增加資料量是沒效果的,可增加模型引數:如構建更多特徵或減小正則項。當訓練集準確度高於測試集,可能出現過擬合。此時,可以增加訓練的資料量,降低模型複雜度,增大正則項或者通過特徵選擇減少特徵數。
利用

數值微分

計算神經網路的

權重引數的梯度

雖簡單易實現但是耗時太長,高效計算權重引數的梯度的方法是

—誤差反向傳播法

。計算圖

是學習和理解誤差反向傳播法的重要工具。計算圖一大優點是區域性計算(偏導),另外使用計算圖可通過反向傳播高效計算導數。反向傳播的原理是基於

鏈式法則

的。(反向傳播:沿著相反的方向,乘上區域性導數).

加法節點的反向傳播將上游的值原封不動地輸出到下游.

乘法節點的反向傳播會乘以輸入訊號的翻轉值,然後輸出到下游。反向傳播時,將要傳播的值除以批次的大小(

batch_size

)後,傳遞給前面的層是單個資料的誤差。

分類問題中:

輸出層使用

「softmax函式」

,損失函式使用

「交叉熵誤差」

回歸問題中:

輸出層使用

「恒等函式

」,損失函式使用

」平方和誤差「

最終都能得到輸出與真實標籤的差分,神經網路的反向傳播將輸出與真實標籤的誤差高效地傳遞給前面的層,並通過調整權重引數是的神經網路的輸出更加接近真實標籤。

神經網路入門 神經元演算法

目前機器學習 深度學習在業界使用的越來越廣泛,做為乙個有著技術追求的it人,我覺得有必要學習和了解一下這塊的知識,今天就從最簡單的單層神經網路開始介紹。在介紹人工神經網路之前,首先認知下神經元。神經元不知道大家還有印象這個圖嗎?這個是出現在我們生物課本中的一幅圖。乙個神經元的組成基本就是上圖這些東西...

機器學習 神經網路

神經網路中最基本的成分是 神經元 模型,在生物神經網路中,每個神經元與其他神經元相連,當他 興奮 時,就會向相連的神經元傳送化學物質,從而改變這些神經元類的電位 如果某神經元的電位超過乙個 閾值 那麼他就會被啟用。將上述描述當成乙個數學模型 m p神經元模型,神經元接收來自n個神經元傳遞過來的輸入訊...

機器學習 神經網路

序列模型屬於通用模型的一種,因為很常見,所以這裡單獨列出來進行介紹,這種模型各層之間是依次順序的線性關係,在第k層合第k 1層之間可以加上各種元素來構造神經網路這些元素可以通過乙個列表來制定,然後作為引數傳遞給序列模型來生成相應的模型。01 keras model sequential.py fro...