【人工智能99問】激活函數有哪些,如何選擇使用哪個激活函數?(5/99)

文章目錄

  • 激活函數
    • 一、激活函數的分類
      • 1. 按“是否線性”分類
      • 2. 按“是否飽和”分類(針對非線性激活函數)
      • 3. 按“適用層”分類
    • 二、常見激活函數及特點
      • (一)非線性激活函數(主要用于隱藏層)
        • 1. 飽和激活函數(逐漸被淘汰,但需了解)
        • 2. 非飽和激活函數(當前主流)
      • (二)輸出層激活函數(按任務設計)
    • 三、激活函數的選擇策略
      • 1. 優先根據“層類型”篩選
      • 2. 結合網絡深度和梯度穩定性
      • 3. 考慮計算資源
      • 4. 實驗驗證
    • 總結

激活函數

激活函數是神經網絡的核心組件,其作用是為網絡引入非線性——如果沒有激活函數,無論神經網絡有多少層,都只是線性模型(等價于單層線性回歸),無法擬合復雜的非線性關系(如圖像、語言等)。

一、激活函數的分類

激活函數的分類方式多樣,常見的分類維度包括:是否線性、是否飽和、輸出范圍、適用場景(隱藏層/輸出層)等。以下是最實用的分類框架:

1. 按“是否線性”分類

  • 線性激活函數:函數表達式為線性關系(如 f(x)=kx+bf(x)=kx+bf(x)=kx+b),無法引入非線性,僅用于特定場景(如回歸任務的輸出層)。
  • 非線性激活函數:函數表達式為非線性關系(如 f(x)=11+e?xf(x)=\frac{1}{1+e^{-x}}f(x)=1+e?x1?),是神經網絡的核心,幾乎所有隱藏層都依賴此類函數引入非線性。

2. 按“是否飽和”分類(針對非線性激活函數)

  • 飽和激活函數:當輸入值的絕對值足夠大時,函數的導數趨近于0(“飽和”),容易導致“梯度消失”(深層網絡中梯度經多層傳遞后趨近于0,參數無法更新)。
  • 非飽和激活函數:輸入值很大時,導數仍保持較大值(不趨近于0),可緩解梯度消失,更適合深層網絡。

3. 按“適用層”分類

  • 隱藏層激活函數:用于網絡中間層,核心是引入非線性,同時需避免梯度消失/爆炸,常見如ReLU及其變體。
  • 輸出層激活函數:根據任務需求設計,需匹配輸出的物理意義(如概率、數值范圍),常見如sigmoid(二分類)、softmax(多分類)。

二、常見激活函數及特點

以下按“非線性激活函數(隱藏層為主)”和“輸出層激活函數”分類介紹,重點說明公式、圖像、優缺點及適用場景。

(一)非線性激活函數(主要用于隱藏層)

這類函數的核心是引入非線性,同時需平衡計算效率和梯度穩定性。

1. 飽和激活函數(逐漸被淘汰,但需了解)
  • sigmoid函數
    公式:f(x)=11+e?xf(x)=\frac{1}{1+e^{-x}}f(x)=1+e?x1?
    圖像:S型曲線,輸出范圍 (0,1)(0,1)(0,1)
    特點:

    • 優點:輸出可直接作為概率(如二分類的“屬于正類的概率”),易于解釋。
    • 缺點:
      • 梯度消失嚴重:導數最大值為0.25(在x=0處),多層傳遞后梯度趨近于0,深層網絡無法訓練。
      • 輸出非零均值(均值≈0.5):會導致后續層輸入偏移,影響梯度更新。
      • 計算成本高(含指數運算)。
        適用場景:僅推薦用于二分類輸出層(隱藏層已極少使用)。
  • tanh函數(雙曲正切)
    公式:f(x)=ex?e?xex+e?x=2sigmoid(2x)?1f(x)=\frac{e^x - e^{-x}}{e^x + e^{-x}} = 2sigmoid(2x) - 1f(x)=ex+e?xex?e?x?=2sigmoid(2x)?1
    圖像:S型曲線,輸出范圍 (?1,1)(-1,1)(?1,1),關于原點對稱。
    特點:

    • 優點:解決了sigmoid的“非零均值”問題(輸出均值≈0),梯度消失比sigmoid稍輕(導數最大值為1,在x=0處)。
    • 缺點:仍存在梯度消失(輸入絕對值較大時導數→0),計算成本高(指數運算)。
      適用場景:早期RNN中偶爾用于隱藏層,現逐漸被ReLU變體替代。
2. 非飽和激活函數(當前主流)
  • ReLU(Rectified Linear Unit,修正線性單元)
    公式:f(x)=max?(0,x)f(x)=\max(0, x)f(x)=max(0,x)
    圖像:x>0時輸出x,x≤0時輸出0(折線)。
    特點:

    • 優點:
      • 計算極快(僅比較和取最大值,無指數/除法運算)。
      • 緩解梯度消失:x>0時導數為1,梯度可無損傳遞,適合深層網絡(如ResNet)。
    • 缺點:
      • 死亡ReLU問題:x≤0時導數為0,若神經元長期輸入負信號,參數將永遠無法更新(“死亡”)。
      • 輸出非零均值(僅非負):可能導致后續層輸入偏移。
        適用場景:絕大多數隱藏層的默認選擇,尤其卷積神經網絡(CNN)和淺層網絡。
  • Leaky ReLU(帶泄漏的ReLU)
    公式:f(x)=max?(αx,x)f(x)=\max(\alpha x, x)f(x)=max(αx,x)α\alphaα 為小常數,通常取0.01)
    圖像:x>0時輸出x,x≤0時輸出 αx\alpha xαx(小斜率的直線)。
    特點:

    • 優點:解決“死亡ReLU問題”(x≤0時仍有梯度 α\alphaα),保留ReLU的計算效率。
    • 缺點:α\alphaα 是固定值(如0.01),可能不適應所有數據分布。
      適用場景:當ReLU出現大量死亡神經元時替代使用(如訓練數據中負樣本較多的場景)。
  • Parametric ReLU(參數化ReLU,PReLU)
    公式:f(x)=max?(αx,x)f(x)=\max(\alpha x, x)f(x)=max(αx,x)α\alphaα 為可學習參數,通過訓練優化)
    特點:

    • 優點:α\alphaα 自適應數據分布,靈活性更高(如對不同任務自動調整負斜率)。
    • 缺點:增加網絡參數(每層一個 α\alphaα),可能過擬合小數據集。
      適用場景:大數據集(如ImageNet),需更高靈活性時。
  • ELU(Exponential Linear Unit,指數線性單元)
    公式:f(x)={xif?x>0α(ex?1)if?x≤0f(x)=\begin{cases} x & \text{if } x>0 \\ \alpha(e^x - 1) & \text{if } x \leq 0 \end{cases}f(x)={xα(ex?1)?if?x>0if?x0?α\alphaα 通常取1)
    圖像:x>0時同ReLU,x≤0時為指數曲線(趨近于 ?α-\alpha?α)。
    特點:

    • 優點:
      • 輸出更接近零均值(x≤0時輸出接近 ?α-\alpha?α),緩解輸入偏移問題。
      • 抗噪聲能力強(負輸入時平滑過渡,而非硬截斷)。
    • 缺點:計算成本高于ReLU(含指數運算)。
      適用場景:對魯棒性要求高的任務(如含噪聲的圖像識別)。
  • Swish函數
    公式:f(x)=x?sigmoid(βx)f(x)=x \cdot \text{sigmoid}(\beta x)f(x)=x?sigmoid(βx)β\betaβ 為常數或可學習參數,通常取1)
    圖像:平滑曲線,x→∞時接近x,x→-∞時接近0(類似ReLU但更平滑)。
    特點:

    • 優點:結合ReLU(計算快)和sigmoid(平滑性),在深層網絡(如MobileNet、ResNet-50)中表現優于ReLU,緩解梯度消失。
    • 缺點:計算成本略高于ReLU(含sigmoid運算)。
      適用場景:深層CNN(如目標檢測、圖像分割)。
  • GELU(Gaussian Error Linear Unit,高斯誤差線性單元)
    公式:f(x)=x?Φ(x)f(x)=x \cdot \Phi(x)f(x)=x?Φ(x)Φ(x)\Phi(x)Φ(x) 是標準正態分布的累積分布函數,近似為 x?sigmoid(1.702x)x \cdot \text{sigmoid}(1.702x)x?sigmoid(1.702x)
    圖像:平滑曲線,x>0時接近x,x<0時輸出較小的負值(比ELU更平滑)。
    特點:

    • 優點:天然適配“ dropout ”(隨機失活)機制(可理解為“對輸入x按概率 Φ(x)\Phi(x)Φ(x) 保留,否則置0”),在Transformer模型(如BERT、GPT)中表現最優。
    • 缺點:計算稍復雜(需近似高斯分布)。
      適用場景:Transformer、BERT等預訓練語言模型(當前NLP的默認選擇)。
  • Mish函數
    公式:f(x)=x?tanh?(softplus(x))f(x)=x \cdot \tanh(\text{softplus}(x))f(x)=x?tanh(softplus(x))softplus(x)=log?(1+ex)\text{softplus}(x)=\log(1+e^x)softplus(x)=log(1+ex)
    圖像:比Swish更平滑,x→-∞時趨近于0,x→+∞時趨近于x。
    特點:

    • 優點:平滑性更好,在一些競賽(如ImageNet分類)中表現優于Swish和ReLU,梯度更穩定。
    • 缺點:計算成本較高(含tanh和softplus運算)。
      適用場景:需極致性能的競賽或大模型(如深層ResNet)。

(二)輸出層激活函數(按任務設計)

輸出層激活函數需匹配任務的輸出要求(如概率、數值范圍),常見如下:

  • sigmoid:用于二分類任務(輸出“屬于正類的概率”,范圍 (0,1)(0,1)(0,1))。例如:判斷圖片是否為貓(輸出0-1之間的概率,>0.5為正類)。

  • softmax:用于多分類任務(輸出K個類別的概率分布,和為1)。公式:f(x)i=exi∑j=1Kexjf(x)_i=\frac{e^{x_i}}{\sum_{j=1}^K e^{x_j}}f(x)i?=j=1K?exj?exi??xix_ixi? 為第i類的 logit 得分)。例如:識別圖片是貓、狗還是鳥(輸出三個概率,和為1)。

  • Identity(線性激活函數):用于回歸任務(輸出連續數值,范圍 (?∞,∞)(-∞,∞)(?,))。公式:f(x)=xf(x)=xf(x)=x。例如:預測房價(輸出任意實數)。

  • ReLU(或其變體):用于非負回歸任務(輸出≥0的數值)。例如:預測圖片中物體的面積(面積不能為負)。

三、激活函數的選擇策略

沒有“萬能”的激活函數,選擇需結合任務類型、網絡結構、數據特點計算資源,核心原則如下:

1. 優先根據“層類型”篩選

  • 隱藏層

    • 首選ReLU(計算快、適配大多數場景);
    • 若ReLU出現大量死亡神經元,換Leaky ReLU(小數據集)或PReLU(大數據集);
    • 深層網絡(如>50層)或需更高性能,選Swish(CNN)或GELU(Transformer);
    • 對噪聲敏感的任務(如醫學圖像),選ELU(魯棒性更好)。
  • 輸出層

    • 二分類:sigmoid
    • 多分類:softmax
    • 回歸(任意數值):Identity
    • 回歸(非負數值):ReLU

2. 結合網絡深度和梯度穩定性

  • 淺層網絡(<10層):ReLU、sigmoid、tanh均可(梯度消失影響小);
  • 深層網絡(>20層):必須用非飽和激活函數(如ReLU變體、Swish、GELU),避免梯度消失。

3. 考慮計算資源

  • 資源有限(如移動端):選ReLULeaky ReLU(無指數運算,計算最快);
  • 資源充足(如服務器訓練):可嘗試ELUSwish等(性能更優但計算稍慢)。

4. 實驗驗證

同一任務下,不同激活函數的表現可能差異較大(如小數據集上PReLU可能過擬合,而Leaky ReLU更穩定)。建議:

  • 先用默認值(如隱藏層ReLU,輸出層按任務選);
  • 再替換1-2個備選(如Swish、GELU)對比驗證。

總結

激活函數的核心是為網絡注入非線性,其選擇需在“性能”“效率”和“穩定性”之間平衡。實際應用中,優先使用主流激活函數(如ReLU、GELU),再根據具體問題微調——沒有最優解,只有最適合當前任務的選擇。

激活函數公式特點適用場景
Sigmoid( \frac{1}{1+e^{-x}} )輸出(0,1),易梯度消失;計算量大二分類輸出層
Tanh( \frac{ex-e{-x}}{ex+e{-x}} )輸出(-1,1),梯度比Sigmoid強;仍存在梯度消失RNN隱藏層
ReLU( \max(0, x) )計算高效;緩解梯度消失;但存在"死亡神經元"(負輸入梯度為0)CNN/MLP隱藏層(最常用)
Leaky ReLU( \max(\alpha x, x) )解決ReLU死亡問題((\alpha)為小斜率,如0.01)需要避免神經元死亡的場景
GELU( x\Phi(x) )平滑版ReLU,近似神經元隨機激活特性((\Phi)為標準正態CDF)Transformer/BERT
Swish( x\cdot\sigma(\beta x) )平滑、非單調;Google提出,效果常優于ReLU深層網絡實驗性替代
Softmax( \frac{e^{x_i}}{\sum_j e^{x_j}} )輸出概率分布(和為1);多分類任務多分類輸出層

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89028.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89028.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89028.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代數——第4章——線性算子(算符)(Michael Artin)

第 4 章 線性算子(Linear Operators) That confusions of thought and errors of reasoning still darken the beginnings of Algebra, is the earnest and just complaint of sober and thoughtful men. (思維混亂和推理錯誤 仍然使代數的開端變得模糊不清&#xff0c; …

Neo4j Python 驅動庫完整教程(帶輸入輸出示例)

Neo4j Python 驅動庫完整教程&#xff08;帶輸入輸出示例&#xff09; 1. 基礎連接示例 輸入代碼 from neo4j import GraphDatabase# 連接配置 URI "bolt://localhost:7687" USER "neo4j" PASSWORD "password123" # 替換為你的實際密碼def t…

Axios 和 Promise 區別對比

Axios 和 Promise 是前端開發中兩個不同的概念&#xff0c;盡管 Axios 基于 Promise 實現&#xff0c;但它們的核心定位和功能有顯著區別。以下是對比分析&#xff1a; 1. 核心定位與功能Promise 定義&#xff1a;Promise 是 JavaScript 的異步編程方案&#xff0c;用于處理異步…

Git分支管理與工作流詳解

前言 分支管理是Git最強大的功能之一&#xff0c;它允許開發者在不影響主代碼庫的情況下創建獨立的工作空間。本文將詳細介紹Git分支的操作和常見工作流策略&#xff0c;幫助團隊更高效地協作開發。 1. Git分支的基本概念 1.1 什么是分支 在Git中&#xff0c;分支本質上是指…

【flutter】flutter網易云信令 + im + 聲網rtm從0實現通話視頻文字聊天的踩坑

接了一個國外的項目,項目采用網易云im 網易云信令聲網rtm遇到的一些問題這個項目只對接口,給的工期是兩周,延了工期,問題還是比較多的 需要全局監聽rtm信息,收到監聽內容,引起視頻通話網易云給的文檔太爛,所有的類型推策只能文檔一點點推聲網的rtm配置網易云的信令,坑太多,比如…

hive/spark sql中unix_timestamp 函數的坑以及時間戳相關的轉換

我用的是hive版本是3.1.3&#xff0c;spark版本是3.3.1&#xff0c;它們的unix_timestamp 函數在同樣的語句下轉換出來的時間戳是完全不同的&#xff0c;如下試驗所示1.unix_timestamp 函數的坑上圖試驗中我同樣的計算 2025-07-11 10:00:00 時間點對應的時間戳&#xff0c;但是…

MyBatis專欄介紹

專欄導讀 在當今的軟件開發領域&#xff0c;持久層框架的選擇對于提高開發效率和數據處理能力至關重要。MyBatis作為一個半自動化的ORM框架&#xff0c;因其靈活、高效的特點&#xff0c;在眾多開發者中廣受好評。本專欄《MyBatis實戰》旨在通過深入淺出的方式&#xff0c;幫助…

HarmonyOS從入門到精通:自定義組件開發指南(七):自定義事件與回調

HarmonyOS從入門到精通&#xff1a;自定義組件開發指南&#xff08;七&#xff09;&#xff1a;自定義事件與回調 在HarmonyOS應用開發中&#xff0c;組件化架構是構建復雜界面的基礎&#xff0c;而組件間的高效通信則是實現業務邏輯的核心。自定義事件與回調機制作為組件交互的…

C++編程學習(第七天)

基于過程的程序設計C既可以用來進行基于過程的程序設計&#xff0c;又可以用來進行面向對象的程序設計。基于過程的程序設計又稱為過程化的程序設計&#xff0c;它的特點是&#xff1a;程序必須告訴計算機應當具體怎么做&#xff0c;也就是要給出計算機全部操作的具體過程&…

ubuntu透網方案

場景&#xff1a;兩個linux/Ubuntu系統&#xff0c;一個可以上網&#xff0c;一個不能&#xff0c;讓不能上網的,讓能上網的共享網絡 步驟 1&#xff1a;修改 /etc/sysctl.conf sudo nano /etc/sysctl.conf 找到或添加以下行&#xff1a; net.ipv4.ip_forward1 按 CtrlO 保存&a…

基于Python的物聯網崗位爬取與可視化系統的設計與實現【海量數據、全網崗位可換】

文章目錄有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主項目介紹數據采集數據預處理系統展示總結每文一語有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主 項目介紹 隨著物聯網技術的迅速發展&#xff0c;物聯網行業…

線性回歸原理推導與應用(十):邏輯回歸多分類實戰

本篇文章將利用sklearn中內置的鳶尾花數據進行邏輯回歸建模并對鳶尾花進行分類。對于邏輯回歸和線性回歸的相關原理&#xff0c;可以查看之前的文章 數據導入 鳶尾花數據是機器學習里的常用數據&#xff0c;首先導入一些基礎庫并從sklearn中導入數據集 #導入用到的一些pytho…

Docker 部署emberstack/sftp 鏡像

Docker 部署 emberstack/sftp 鏡像 1、找到國內可用的docker源,本次測試使用docker.1ms.run 2、下載emberstack/sftp鏡像docker pull docker.1ms.run/emberstack/sftp3、安裝并啟動emberstack/sftp鏡像docker run -d -p 22:22 --name SFTP -v D:\SFTP:/home/sftpuser/sftp --pr…

【華為OD】MVP爭奪戰2(C++、Java、Python)

文章目錄題目題目描述輸入描述輸出描述示例思路核心思路&#xff1a;關鍵觀察&#xff1a;算法步驟&#xff1a;排序策略&#xff1a;特殊情況處理&#xff1a;代碼CJavaPython復雜度分析時間復雜度空間復雜度結果總結題目 題目描述 給定一個整型數組&#xff0c;請從該數組中…

Python打卡訓練營Day58

DAY 58 經典時序預測模型2知識點回顧&#xff1a;時序建模的流程時序任務經典單變量數據集ARIMA&#xff08;p&#xff0c;d&#xff0c;q&#xff09;模型實戰SARIMA摘要圖的理解處理不平穩的2種差分n階差分---處理趨勢季節性差分---處理季節性建立一個ARIMA模型&#xff0c;通…

003大模型基礎知識

大模型分類&#xff1a; 技術架構&#xff1a; Encoder Only Bert Decoder Only 著名的大模型都是 Encoder - Decoder T5 是否開源&#xff1a; 開源陣營&#xff1a; Llama DeepSeek Qwen 閉源陣營&#xff1a; ChatGpt Gemini Claude 語言模型發展階段&am…

JVM監控及診斷工具-GUI篇

19.1. 工具概述 使用上一章命令行工具或組合能幫您獲取目標Java應用性能相關的基礎信息&#xff0c;但它們存在下列局限&#xff1a; 1&#xff0e;無法獲取方法級別的分析數據&#xff0c;如方法間的調用關系、各方法的調用次數和調用時間等&#xff08;這對定位應用性能瓶頸…

適用于Windows系統截圖工具

1.Faststone Capture 官網網址&#xff1a;https://faststone-capture.com/ 網上很多注冊碼&#xff1a;https://www.cnblogs.com/LiuYanYGZ/p/16839503.html 2.Snipaste 官網網址&#xff1a;https://apps.microsoft.com/detail/9p1wxpkb68kx?launchtrue&modefull&…

區塊鏈的三種共識機制——PoW、PoS和DPoS原理

區塊鏈的核心是去中心化網絡的信任機制&#xff0c;而共識機制是實現這一目標的關鍵。共識機制可分為兩個階段&#xff1a;&#xff08;1&#xff09;提出共識內容&#xff08;2&#xff09;對內容達成共識&#xff08;遵循最長鏈原則&#xff09;。三種主流的共識機制主要有工…

React 和 Vue的自定義Hooks是如何實現的,如何創建自定義鉤子

目的&#xff1a;將公共邏輯提取出來&#xff0c;類似于 mixin&#xff0c;解決了mixin的設計缺陷。 React 和 Vue 自定義 Hooks 實現對比 React 自定義 Hooks React 的自定義 Hooks 是 JavaScript 函數&#xff0c;它們以 use 開頭&#xff0c;可以調用其他 Hooks。 基本規則 …