人工神經網絡的驅動者:激活函數是什麼?

2021-01-10 讀芯術

全文共2282字,預計學習時長6分鐘

圖源:unsplash

激活函數是人工神經網絡的驅動因素,其位於神經元之上,並管理著神經元行為,比如是否需要處理某個輸入數據,若需要,又以何種程度處理等等。從技術上來講,某個節點的激活函數將其在神經網絡中前一個節點的數據輸入,並輸出一個確定值,這個值繼而指導後續節點如何發動來響應特定輸入信號。

本文剖析由激活函數組成的神經網絡,以及神經網絡的生物類似物,並簡要介紹幾種常用的激活函數。

神經網絡的結構

作為一名數據科學愛好者,你一定見過上面的這張圖片或者與之相似的圖片。這張圖片是對雙層神經網絡工作流程的經典描述。如圖,該網絡對貓或狗的圖片進行分類,其中有兩個隱藏層,每一層包含一行神經元,一行有16個。我們把圖片局部放大,放大第二層的第一個神經元。

局部放大之後大致如此。注意,此神經元接受前16個神經元傳遞的信號。神經元將連接權值與信號相乘,並在乘積上加上一個偏差項,最後得到計算結果,並將其命名為v。此v可視為這個神經元對所輸入圖像的認知。

在識別到輸入信號之後,神經元可產生相應的反應,在此激活函數發揮其作用。激活函數被命名為f(),作為由識別到反應的映射,產生值a,並將其傳遞到下一層神經元,作為前一層特定神經元對信號做出反應的標誌。

生物學類比

假如將手放在逐漸升溫的鋼鍋上,一旦溫度超過某個閾值,你就會急切地要拿開手。把手移開時並不需要知道鍋的確切溫度,而是根據實際參數做出選擇。這是神經元在放電,當神經元放電時,指令傳遞到外圍(本例中的手)。

這就是激活函數的來源或者至少與之相似。在這裡實際數據是冗餘的,神經元只需判斷其是否超過閾值。

就目前所知,生物神經元和人工神經元之間的一個顯著差異是,前者要麼被激活,要麼不被激活,只有兩種結果,而後者的激活程度是在一定範圍內。

激活函數的種類

激活函數多種多樣。讓我們按照函數所解決問題的順序,大致學習其中的幾種:

· 問題1:學習問題

早期,神經網絡的目標是學習自身,線性函數的處理效果相當好。之所以稱為線性函數,是因為v = wa + b的近似值與直線方程y = mx + c極為相似。

· 問題2:非線性問題

雖然線性函數非常接近於右側數據,但是左側數據卻效果不佳。由於非線性分布數據集主導著機器學習領域,而且激活函數是將非線性注入到網絡中的唯一適用方法,所以函數就不能是線性的。能夠解決這個問題的常見函數有:

Sigmoid函數:在函數內輸入一個值,輸出值的範圍為(0,1)。輸入的值越小,輸出值越接近於0,輸入的值越大,輸出值則越接近於1,但都不會達到任一個極限值。

tanh函數:也稱雙曲正切函數。tanh函數與sigmoid函數非常相似,只是輸出值範圍為(-1,1)。右側為sigmoid函數圖像,左側為tanh函數圖像。

· 問題3:梯度消失問題

再次觀察圖表,sigmoid函數曲線越接近於極限值越平緩,也就是說,當輸入絕對值非常大的值的時候,輸出值的變化不明顯。這大大降低了學習率。這就是所謂的梯度消失問題,隨著進程推進,梯度(比如,學習)消失。ReLU函數解決了這個問題,實際上它也是現代神經網絡的默認激活函數。

ReLU函數:ReLU函數是線性整流函數(Rectified Linear Unit)的簡稱,它可能是最有趣、最反直覺的函數。它幾乎就是一個直線函數,只不過在原點處有個拐角,所以它是一個分段函數。

人們經常會問,一個近似線性的函數是如何解決這個問題的。從圖中可以明顯看出,它幾乎可以完全避免梯度消失問題。單個ReLU函數會顯得比較單調乏味,但是多個在一些就會變得無懈可擊。

線性函數完全無法近似,而tanh函數試圖畫出平滑的類圓曲線,所以最終出現了六角形邊狀的ReLU函數。你可能會認為,這是兩個直線的一端接在一起,如同鐘錶指針那樣。

現在,假設有一百萬條這樣的直線,那麼你可以用這種排列方法模擬任何非線性形狀。ReLU的精妙之處就在於,它既近似線性,多個組在一起時又能通過改變拐角的角度模擬出幾乎所有形狀。

這引出了最後一個要解決的問題。

· 問題4:概率和問題

無論隱藏層的工作內容如何,最終的目標都是生成某種預測,而在這裡,就是輸出一個概率向量,其中包含輸入對象為已標記對象概率表。比如,第一張圖片中神經網絡的結果可能是:

[dog,cow,cat,goat,lamb]=[0.2,0.05,0.7,0.03,0.01]

結果最有可能是貓,因為是貓的概率為0.7,概率最高。

為了將全連接層的最終輸出值轉換為正規化概率向量,需要一個函數接受一個向量,然後輸出另一個向量,而且輸出向量所有元素的和為1。畢竟,這才是概率向量。

Sigmoid函數非常接近於概率函數,因為它的輸出值範圍為0到1,但是不滿足和等於1的情況。Softmax函數可以滿足這一點。

Softmax函數:函數接受一個向量,並使用下列函數計算輸出向量中每個元素的相應概率。

函數中分母為所有可能分子的和,避免輸出值超過1。

關於激活函數,你了解了嘛?

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 神經網絡為何非激活函數不可?
    本文作者 Vandit Jain 對激活函數的相關知識進行了一個較為全面的總結,重點聚焦於以下幾個方面:一、激活函數是什麼?簡單地說,激活函數就是加入到人工神經網絡中的一個函數,目的在於幫助神經網絡從數據中學習複雜模式。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • 如何選擇神經網絡激活函數:有效的改善模型學習模式的能力
    什麼是人工神經網絡?典型的人工神經網絡(ANN)是受人腦工作啟發而設計的受生物啟發的電腦程式。 這些ANN稱為網絡,因為它們由不同的功能組成,這些功能通過使用過去稱為訓練示例的經驗來檢測數據中的關係和模式來收集知識。 數據中的學習模式通過適當的激活函數進行修改,並作為神經元的輸出呈現,如下圖所示:什麼是激活函數?在神經網絡模型中怎麼使用?
  • Pytorch_第九篇_神經網絡中常用的激活函數
    神經網絡中常用的激活函數Introduce理論上神經網絡能夠擬合任意線性函數,其中主要的一個因素是使用了非線性激活函數(因為如果每一層都是線性變換,那有啥用啊,始終能夠擬合的都是線性函數啊)。本文主要介紹神經網絡中各種常用的激活函數。以下均為個人學習筆記,若有錯誤望指出。
  • 從ReLU到GELU,一文概覽神經網絡的激活函數
    根據每一層前面的激活、權重和偏置,我們要為下一層的每個激活計算一個值。但在將該值發送給下一層之前,我們要使用一個激活函數對這個輸出進行縮放。本文將介紹不同的激活函數。在閱讀本文之前,你可以閱讀我前一篇介紹神經網絡中前向傳播和反向傳播的文章,其中已經簡單地提及過激活函數,但還未介紹其實際所做的事情。
  • 什麼是人工神經網絡(ANN)?
    人工神經網絡如何運作人工神經網絡的核心成分是人工神經元。每個神經元接收來自其他幾個神經元的輸入,將它們乘以分配的權重,將它們相加,然後將總和傳遞給一個或多個神經元。一些人工神經元可能在將輸出傳遞給下一個變量之前將激活函數應用於輸出。
  • 通過函數圖像,了解26種神經網絡激活函數都長啥樣.
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。因此,神經網絡傾向於部署若干個特定的激活函數(identity、sigmoid、ReLU 及其變體)。
  • ReLU到Sinc的26種神經網絡激活函數可視化大盤點
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。
  • 人工神經網絡發展歷程及特點
    人工神經網絡ANN簡稱為神經網絡或類神經網絡。深度學習實際上是深度神經網絡DNN,即深度學習從人工神經網絡ANN模型發展起來的,因此有必要對人工神經網絡ANN作進一步探討。^_^ 最近十幾年來,人工神經網絡ANN的研究工作不斷深入,已經取得了很大進展,其在模式識別、智慧機器人、自動控制、預測估計、生物、醫學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智能特性。 那麼究竟什麼是人工神經網絡ANN呢?
  • AI的人工神經網絡
    人工神經網絡是模擬人和動物的神經網絡的某種結構和功能的模擬,所以要了解神經網絡的工作原理,所以我們首先要了解生物神經元。其結構如下圖所示:   而人工神經網絡的基本原理也就是對生物神經元進行儘可能的模擬,當然,以目前的理論水平,製造水平,和應用水平,還與人腦神經網絡的有著很大的差別,它只是對人腦神經網絡有選擇的,單一的,簡化的構造和性能模擬,從而形成了不同功能的,多種類型的,不同層次的神經網絡模型。
  • 人工神經網絡(Artificial Neural Network)算法簡介
    人工神經網絡,簡稱神經網絡,是一種模仿生物神經網絡的結構和功能的數學模型或者計算模型。其實是一種與貝葉斯網絡很像的一種算法。之前看過一些內容始終雲裡霧裡,這次決定寫一篇博客。
  • 深度|人工神經網絡深入分析
    本文與吳老師的講解方式不同,筆者希望能從神經網絡的起源揭開神經網絡的面紗,從而幫助更多的對神經網絡感興趣但卻沒有相關理論基礎的朋友們。說起人工神經網絡的起源肯定要追溯到生物的神經網絡。這些可以從輸入層實際觀測或者是一個隱藏層的中間值(隱藏層即介於輸入與輸出之間的所有節點組成的一層。幫助神經網絡學習數據間的複雜關係。大家不理解沒關係,後面講到多層神經網絡是會再跟大家解釋的)。X0:偏置單元。這是常值添加到激活函數的輸入(類似數學裡y=ax+b中使直線不過原點的常數b)。即截距項,通常有+1值。w0,w1,w2,…,wN:對應每個輸入的權重。
  • 吳恩達深度學習(20)-激活函數的導數和神經網絡的梯度下降
    激活函數的導數(Derivatives of activation functions)在神經網絡中使用反向傳播的時候,你真的需要計算激活函數的斜率或者導數。>在神經網絡中a=g(z);g(z)'=d/dz g(z)=a(1-a)2) Tanh activation function其具體的求導如下: 公式2: g(z)=tanh(z)=(e^z-e^(-z))/(e^z+e^(-z) )在神經網絡中;3)Rectified Linear Unit
  • 機器學習與人工智慧之六:人工神經網絡
    觀眾老爺這期講機器學習的神經網絡算法,本來小編想先介紹基於我們人類知識和規則的機器學習的,但想著打鐵要趁熱,上期我們將人類的視覺系統進行了建模,今天咱們了解一下機器學習的人工神經網絡算法,這樣能比對出機器與人的差異,也能深入理解人工智慧算法具體的實現和原理。
  • 斯坦福的神經網絡用這種激活函數,高保真還原圖像視頻
    SIREN在這個方向上進行了突破,通過採用周期性激活函數Sine代替常見的非線性激活函數(如ReLU、TanH等),以連續的方式進行數據存儲。相比於ReLU、TanH等非周期性的激活函數來說,SIREN將正弦周期函數用作激活函數,相當於為神經網絡引入了周期性。
  • 金融領域裡的機器學習算法介紹:人工神經網絡
    神經網絡神經網絡(又稱人工神經網絡,英文為artificial neural networks,簡稱ANNs)是一種高度靈活的機器學習算法,它已被成功地應用於具有大量特徵的非線性複雜交互任務。神經網絡通常用於分類和回歸,但在強化學習中(可以是無監督的)也很重要。下表顯示了多元回歸和神經網絡之間的聯繫。
  • AI瘋狂進階——激活函數篇
    神經網絡激活函數的作用是什麼?2. 如何評價激活函數的好壞?3. ReLU存在哪些問題?4. 存在替換萬年ReLU的激活函數嗎?激活函數對於人工神經網絡模型學習、理解非常複雜的數據來說具有十分重要的作用。激活函數給神經元引入了非線性因素,使得神經網絡可以逼近任何非線性函數,這樣神經網絡就可以應用到眾多的非線性模型中。
  • 深度學習基礎篇:如何選擇正確的激活函數?
    激活函數可以幫助神經網絡做這種隔離。它激活有用的信息,並抑制無關的數據點。激活函數如此重要,那麼都有哪些比較熱門呢?它們是如何工作的?又適合解決什麼問題?本文將為你一一解答。以下是本文目錄。1.簡單介紹神經網絡2.什麼是激活函數?3.可以不用激活函數嗎?
  • 乾貨|不同的損失函數會對深度神經網絡帶來什麼樣的影響?
    二次損失函數會在神經元犯了明顯錯誤的情況下使得網絡學習緩慢,而使用交叉熵損失函數則會在明顯犯錯的時候學的更快。 今天,我們主要來談談不同的損失函數會對深度神經網絡帶來什麼樣的影響?
  • 神經網絡中的各種損失函數介紹
    不同的損失函數可用於不同的目標。在這篇文章中,我將帶你通過一些示例介紹一些非常常用的損失函數。這篇文章提到的一些參數細節都屬於tensorflow或者keras的實現細節。損失函數的簡要介紹損失函數有助於優化神經網絡的參數。