人工神經網絡,簡稱神經網絡,並不是一個新的概念。它已經存在了大約80年。
直到2011年,隨著新技術的應用、巨大的數據集可用性和強大的計算機的出現,深神經網絡才開始流行起來。
神經網絡模擬一個神經元,它有樹突、核、軸突和終末軸突。
對於一個網絡,我們需要兩個神經元。這些神經元通過一個樹突和另一個軸突終末之間的突觸傳遞信息。
人工神經元的可能模型看起來是這樣的;
神經網絡如下所示;
圓是神經元或節點,它們在數據上的功能和連接它們的線/邊是傳遞的權重/信息。
每一列都是一層。數據的第一層是輸入層。然後,輸入層和輸出層之間的所有層都是隱藏層。
如果你有一個或幾個隱藏層,那麼你就有一個淺層神經網絡。如果你有很多隱藏層,那麼你就有一個深層的神經網絡。
在這個模型中,你有輸入數據,你給它稱重,然後把它傳遞給神經元中的函數,這個函數叫做閾值函數或激活函數。
基本上,它是所有值與某個值比較後的總和。如果觸發一個信號,則結果爲(1)out,或者不觸發任何信號,則爲(0)。然後加權並傳遞給下一個神經元,然後運行同樣的函數。
我們可以用乙狀結腸(s形)作爲激活函數。
至於權重,它們只是隨機開始的,而且每個節點/神經元的輸入都是唯一的。
在一個典型的「前饋」,最基本的神經網絡類型,你有你的信息直接通過網絡,你創建,你比較的輸出,你希望的輸出將一直使用你的樣本數據。
從這裡開始,您需要調整權重,以幫助您獲得與所需輸出匹配的輸出。
通過神經網絡直接發送數據的行爲稱爲a前饋神經網絡
我們的數據從輸入,到層,按順序,然後到輸出。
當我們向後移動並開始調整權重以最小化損失/成本時,這稱爲反向傳播
這是一個優化問題。在實際應用中,神經網絡需要處理數十萬個變量,或數百萬個或更多的變量。
首先採用隨機梯度下降法作爲優化方法。現在,有像AdaGrad、Adam Optimizer等選項。不管怎樣,這都是一個龐大的計算操作。這就是爲什麼神經網絡被擱置了半個多世紀的原因。直到最近,我們才有能力和架構在我們的機器甚至考慮做這些操作,並適當大小的數據集來匹配。
對於簡單的分類任務,神經網絡在性能上與K近鄰等簡單算法比較接近。當我們有更大的數據和更複雜的問題時,神經網絡的真正效用就實現了,這兩個問題都優於其他機器學習模型。