溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

激活函數(shù)activation怎么用呢

發(fā)布時間:2021-12-10 10:25:25 來源:億速云 閱讀:320 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)激活函數(shù)activation怎么用呢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

下面我們介紹激活函數(shù)。

一,激活函數(shù)概述

激活函數(shù)在深度學(xué)習(xí)中扮演著非常重要的角色,它給網(wǎng)絡(luò)賦予了非線性,從而使得神經(jīng)網(wǎng)絡(luò)能夠擬合任意復(fù)雜的函數(shù)。

如果沒有激活函數(shù),無論多復(fù)雜的網(wǎng)絡(luò),都等價于單一的線性變換,無法對非線性函數(shù)進(jìn)行擬合。

目前,深度學(xué)習(xí)中最流行的激活函數(shù)為 relu, 但也有些新推出的激活函數(shù),例如 swish、GELU,據(jù)稱效果優(yōu)于relu激活函數(shù)。

激活函數(shù)的綜述介紹可以參考下面兩篇文章。

《一文概覽深度學(xué)習(xí)中的激活函數(shù)》

https://zhuanlan.zhihu.com/p/98472075

《從ReLU到GELU,一文概覽神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)》

https://zhuanlan.zhihu.com/p/98863801

二,常用激活函數(shù)

激活函數(shù)在深度學(xué)習(xí)中扮演著非常重要的角色,它給網(wǎng)絡(luò)賦予了非線性,從而使得神經(jīng)網(wǎng)絡(luò)能夠擬合任意復(fù)雜的函數(shù)。

1,tf.nn.sigmoid:將實(shí)數(shù)壓縮到0到1之間,一般只在二分類的最后輸出層使用。主要缺陷為存在梯度消失問題,計(jì)算復(fù)雜度高,輸出不以0為中心。

激活函數(shù)activation怎么用呢

2,tf.nn.softmax:sigmoid的多分類擴(kuò)展,一般只在多分類問題的最后輸出層使用。

激活函數(shù)activation怎么用呢

3,tf.nn.tanh:將實(shí)數(shù)壓縮到-1到1之間,輸出期望為0。主要缺陷為存在梯度消失問題,計(jì)算復(fù)雜度高。

激活函數(shù)activation怎么用呢

4,tf.nn.relu:修正線性單元,最流行的激活函數(shù)。一般隱藏層使用。主要缺陷是:輸出不以0為中心,輸入小于0時存在梯度消失問題(死亡relu)。

激活函數(shù)activation怎么用呢

5,tf.nn.leaky_relu:對修正線性單元的改進(jìn),解決了死亡relu問題。

激活函數(shù)activation怎么用呢

6,tf.nn.elu:指數(shù)線性單元。對relu的改進(jìn),能夠緩解死亡relu問題。

激活函數(shù)activation怎么用呢

7,tf.nn.selu:擴(kuò)展型指數(shù)線性單元。在權(quán)重用tf.keras.initializers.lecun_normal初始化前提下能夠?qū)ι窠?jīng)網(wǎng)絡(luò)進(jìn)行自歸一化。不可能出現(xiàn)梯度爆炸或者梯度消失問題。需要和Dropout的變種AlphaDropout一起使用。

激活函數(shù)activation怎么用呢

8,tf.nn.swish:自門控激活函數(shù)。谷歌出品,相關(guān)研究指出用swish替代relu將獲得輕微效果提升。

激活函數(shù)activation怎么用呢

9,gelu:高斯誤差線性單元激活函數(shù)。在Transformer中表現(xiàn)最好。tf.nn模塊尚沒有實(shí)現(xiàn)該函數(shù)。

激活函數(shù)activation怎么用呢

三,在模型中使用激活函數(shù)

在keras模型中使用激活函數(shù)一般有兩種方式,一種是作為某些層的activation參數(shù)指定,另一種是顯式添加layers.Activation激活層。

import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras import layers,models

tf.keras.backend.clear_session()

model = models.Sequential()
model.add(layers.Dense(32,input_shape = (None,16),activation = tf.nn.relu)) #通過activation參數(shù)指定
model.add(layers.Dense(10))
model.add(layers.Activation(tf.nn.softmax))  # 顯式添加layers.Activation激活層
model.summary()

激活函數(shù)activation怎么用呢

看完上述內(nèi)容,你們對激活函數(shù)activation怎么用呢有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI