今天就跟大家聊聊有關(guān)激活函數(shù)activation怎么用呢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)網(wǎng)站建設(shè)、成都做手機(jī)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺(jué)設(shè)計(jì)專才。
下面我們介紹激活函數(shù)。
激活函數(shù)在深度學(xué)習(xí)中扮演著非常重要的角色,它給網(wǎng)絡(luò)賦予了非線性,從而使得神經(jīng)網(wǎng)絡(luò)能夠擬合任意復(fù)雜的函數(shù)。
如果沒(méi)有激活函數(shù),無(wú)論多復(fù)雜的網(wǎng)絡(luò),都等價(jià)于單一的線性變換,無(wú)法對(duì)非線性函數(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ù)在深度學(xué)習(xí)中扮演著非常重要的角色,它給網(wǎng)絡(luò)賦予了非線性,從而使得神經(jīng)網(wǎng)絡(luò)能夠擬合任意復(fù)雜的函數(shù)。
1,tf.nn.sigmoid:將實(shí)數(shù)壓縮到0到1之間,一般只在二分類的最后輸出層使用。主要缺陷為存在梯度消失問(wèn)題,計(jì)算復(fù)雜度高,輸出不以0為中心。
2,tf.nn.softmax:sigmoid的多分類擴(kuò)展,一般只在多分類問(wèn)題的最后輸出層使用。
3,tf.nn.tanh:將實(shí)數(shù)壓縮到-1到1之間,輸出期望為0。主要缺陷為存在梯度消失問(wèn)題,計(jì)算復(fù)雜度高。
4,tf.nn.relu:修正線性單元,最流行的激活函數(shù)。一般隱藏層使用。主要缺陷是:輸出不以0為中心,輸入小于0時(shí)存在梯度消失問(wèn)題(死亡relu)。
5,tf.nn.leaky_relu:對(duì)修正線性單元的改進(jìn),解決了死亡relu問(wèn)題。
6,tf.nn.elu:指數(shù)線性單元。對(duì)relu的改進(jìn),能夠緩解死亡relu問(wèn)題。
7,tf.nn.selu:擴(kuò)展型指數(shù)線性單元。在權(quán)重用tf.keras.initializers.lecun_normal初始化前提下能夠?qū)ι窠?jīng)網(wǎng)絡(luò)進(jìn)行自歸一化。不可能出現(xiàn)梯度爆炸或者梯度消失問(wèn)題。需要和Dropout的變種AlphaDropout一起使用。
8,tf.nn.swish:自門控激活函數(shù)。谷歌出品,相關(guān)研究指出用swish替代relu將獲得輕微效果提升。
9,gelu:高斯誤差線性單元激活函數(shù)。在Transformer中表現(xiàn)最好。tf.nn模塊尚沒(méi)有實(shí)現(xiàn)該函數(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)) #通過(guò)activation參數(shù)指定
model.add(layers.Dense(10))
model.add(layers.Activation(tf.nn.softmax)) # 顯式添加layers.Activation激活層
model.summary()
看完上述內(nèi)容,你們對(duì)激活函數(shù)activation怎么用呢有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。