(非線性激活函數(shù)))
一、概念激活函數(shù)是神經(jīng)網(wǎng)絡(luò)中引入非線性特性的關(guān)鍵組件它決定了神經(jīng)元是否被“激活”以及輸出信號的強(qiáng)度。沒有激活函數(shù)無論網(wǎng)絡(luò)有多少層其整體效果都等同于一個線性模型無法處理圖像識別、自然語言理解等復(fù)雜任務(wù)。概念總是晦澀難懂。人類對陌生新事物天然會保持警惕所以這是正?,F(xiàn)象萬不可不懂裝懂。至于前期有點儲備略懂一點還愛裝甚至裝腔作勢借此打壓周邊同事的人就更可恨了。祈福愿各位同事都是干干凈凈一心搞技術(shù)的干凈人。如此需要借助于熟悉的事物舉例翻譯這才是教育培訓(xùn)的意義。假設(shè)你去水果攤買蘋果和橘子蘋果 5 元/斤買了 3 斤 → 15 元橘子 4 元/斤買了 2 斤 → 8 元總價 15 8 23 元這就是典型的線性運算輸出 權(quán)重 × 輸入 偏置。現(xiàn)在問題來了如果老板說“滿 30 減 5”“買三斤以上打九折”“兩種一起買再送一個”這時候不再是簡單的乘加了——規(guī)則出現(xiàn)了“拐點”和“跳躍”。這種帶拐點的關(guān)系就是非線性?;貧w到神經(jīng)網(wǎng)絡(luò)上來。神經(jīng)網(wǎng)絡(luò)如果只用線性運算哪怕疊一千層最終也等價于一層線性變換。就像一個只會做“乘加”的計算器疊多少個都一樣失去了多個神經(jīng)元參與計算的作用只存活在理論世界解決不了錯綜復(fù)雜的現(xiàn)實問題即永遠(yuǎn)學(xué)不會“滿減”這種復(fù)雜規(guī)則。而激活函數(shù)就是那個“拐點制造機(jī)”。它讓網(wǎng)絡(luò)能表達(dá)打折、門檻、飽和、突躍等現(xiàn)實規(guī)律結(jié)合了現(xiàn)實世界的復(fù)雜環(huán)境要素從而具備逼近任意復(fù)雜函數(shù)的能力。現(xiàn)在是不是有所悟了。綜上激活函數(shù)的核心作用是打破線性疊加的局限使網(wǎng)絡(luò)能夠?qū)W習(xí)和擬合現(xiàn)實世界中復(fù)雜的非線性關(guān)系。它在每個神經(jīng)元的加權(quán)求和結(jié)果后施加一個非線性變換從而讓深層網(wǎng)絡(luò)具備強(qiáng)大的表達(dá)能力。圖解概念紅線 (glinear)這是一條直線。如果只用這種函數(shù)無論疊多少層網(wǎng)絡(luò)最終的效果都等于只有一層。類比把多個放大鏡疊在一起它依然只是個放大鏡無法變成顯微鏡。它只能處理簡單的線性關(guān)系比如y2x1 。藍(lán)線 (gsigmoid) 和 綠線 (?gtanh?)它們是彎曲的S形曲線。這種非線性讓神經(jīng)網(wǎng)絡(luò)能夠去擬合現(xiàn)實世界中復(fù)雜的、彎彎曲曲的數(shù)據(jù)分布比如識別貓的臉部輪廓、理解句子的語意。二、常見的激活函數(shù)Sigmoid 函數(shù)將輸入壓縮到 [0,1] 區(qū)間模擬生物神經(jīng)元的“興奮/抑制”狀態(tài)常用于二分類問題的輸出層。但其梯度在兩端趨近于零容易導(dǎo)致梯度消失反向傳播時誤差傳到這里信號直接歸零。前面的層根本收不到誤差信號也就無法更新權(quán)重。類比像把不同難度的考試成績統(tǒng)一折算成百分制方便比較。缺點是當(dāng) z 很大或很小時曲線變得極平。此時輸入再怎么變輸出幾乎不動——就像學(xué)生已經(jīng)考 99 分了再努力也提不了分老師給不出反饋。這就是著名的梯度消失。Tanh 函數(shù)將輸入壓縮到 [-1,1] 區(qū)間相比 Sigmoid 以零為中心收斂速度更快但同樣存在梯度消失問題。類比Sigmoid 是“從 0 分起步”Tanh 是“有正有負(fù)能表達(dá)反對和贊成”。數(shù)據(jù)在層與層之間傳遞時不會整體往上飄訓(xùn)練更穩(wěn)。ReLU 函數(shù)當(dāng)輸入大于零時輸出原值小于零時輸出零。計算簡單、訓(xùn)練速度快是目前最常用的隱藏層激活函數(shù)。但其缺點是可能導(dǎo)致“神經(jīng)元死亡”即部分神經(jīng)元永遠(yuǎn)不被激活。類比一排燈泡電壓為負(fù)的直接不亮。優(yōu)勢正區(qū)間梯度恒為 1信號一路暢通深層網(wǎng)絡(luò)才訓(xùn)得動一部分神經(jīng)元被關(guān)掉形成稀疏性——相當(dāng)于網(wǎng)絡(luò)自動在做“ feature 篩選”只保留有用的通路缺點某個神經(jīng)元如果長期收到負(fù)輸入就會永久失活俗稱“神經(jīng)元死亡”從此不再參與計算。解決辦法是把負(fù)區(qū)間的閥門留一條縫——即下面的 Leaky ReLU。Leaky ReLUReLU 的改進(jìn)版在負(fù)區(qū)間賦予一個很小的斜率如 0.01避免神經(jīng)元完全“死亡”保證梯度始終存在。類比負(fù)數(shù)不完全關(guān)死而是乘一個很小的系數(shù)如 0.01或者用平滑曲線過渡。神經(jīng)元永遠(yuǎn)不會徹底“死掉”。在實際應(yīng)用中ReLU 及其變體如 Leaky ReLU、ELU因其高效性和良好的性能已成為深度神經(jīng)網(wǎng)絡(luò)的首選。而 Sigmoid 和 Tanh 則更多用于特定場景如輸出層的概率預(yù)測或需要平滑過渡的場合。選擇合適的激活函數(shù)是構(gòu)建高性能神經(jīng)網(wǎng)絡(luò)的重要一步。