人工神經網路


人工神經網路,或簡稱為神經網路,並不是一個新想法。 它已經存在了大約80年。

直到2011年,當深度神經網路因使用新技術,龐大的資料集可用性和功能強大的計算機而變得流行時。

神經網路模擬神經元,其具有樹突,核,軸突和末端軸突。

對於網路,我們需要兩個神經元。 這些神經元通過突觸之間的突觸和另一個突觸軸突傳遞資訊。

一個人造神經元的可能模型看起來像這樣 -

神經網路將如下所示 -

圓是神經元或節點,它們在資料上的功能和連線它們的線/邊是傳遞的權重/資訊。

每一列都是一個圖層。 資料的第一層是輸入層。 然後,輸入層和輸出層之間的所有層都是隱藏層。

如果有一個或幾個隱藏層,那麼有一個淺層的神經網路。 如果有很多隱藏層,那麼有一個深層的神經網路。

在這個模型中,有輸入資料,加權它,並通過神經元中被稱為閾值函式或啟用函式的函式傳遞它。

基本上,它是將所有值與某個值進行比較後的總和。 如果發射一個信號,那麼結果是(1),或者什麼都沒有被觸發,然後是(0)。 然後加權並傳遞給下一個神經元,並執行相同型別的函式。

我們可以有一個S形(S形)功能作為啟用功能。

至於權重,它們只是隨機開始的,而且它們對於節點/神經元的每個輸入都是唯一的。

在一個典型的「前饋」,最基本的神經網路型別中,資訊直接通過您建立的網路,並將輸出與您希望輸出使用樣本資料的結果進行比較。

從這裡開始,需要調整權重以幫助您獲得符合要求的輸出的輸出。

直接通過神經網路傳送資料的行為稱為前饋神經網路。

我們的資料依次從輸入到圖層,然後依次輸出到輸出。

當我們倒退並開始調整權重以最小化損失/成本時,這稱為反向傳播。

這是一個優化問題。有了神經網路,在實際操作中,我們必須處理成千上萬的變數,或數百萬甚至更多的變數。

第一個解決方案是使用隨機梯度下降作為優化方法。現在,有AdaGrad,Adam Optimizer等選項。無論哪種方式,這是一個巨大的計算操作。這就是為什麼神經網路在半個多世紀內大部分被擱置在書架上的原因。直到最近,我們甚至已經在我們的機器中擁有能力和體系結構,甚至可以考慮執行這些操作,並且要匹配正確大小的資料集。

對於簡單的分類任務,神經網路在效能上與其他簡單演算法(如K最近鄰居)的效能相當接近。當我們有更大的資料和更複雜的問題時,神經網路的實際效用就會實現,這兩個問題都超過了其他機器學習模型。