成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

8個深度學習中常用的激活函數

人工智能 深度學習
當在隱藏層和輸出層中實現時,激活函數的選擇非常關鍵。模型的準確性和損失很大程度上依賴于激活函數。此外,必須根據您對模型的期望來選擇它們。例如,在二值分類問題中,sigmoid函數是一種最優選擇。

 

激活函數,又稱轉換函數,是設計神經網絡的關鍵。激活函數在某種意義上是重要的,因為它被用來確定神經網絡的輸出。它將結果值映射為0到1或-1到1等(取決于函數)。激活函數還有另一個名稱,稱為Squashing函數,當限制了激活函數的范圍時使用這個名稱。激活函數應用于神經網絡的每個節點,并決定該神經元是否應該被“觸發”/“激活”。

為什么選擇激活函數是非常重要的。

當在隱藏層和輸出層中實現時,激活函數的選擇非常關鍵。模型的準確性和損失很大程度上依賴于激活函數。此外,必須根據您對模型的期望來選擇它們。例如,在二值分類問題中,sigmoid函數是一種最優選擇。

激活函數類型。大致可分為兩類:

線性激活函數。

非線性激活函數。

為了方便展示我們導入如下庫:

  1. import math as m  
  2. import matplotlib.pyplot as plt  
  3. import numpy as np  
  4. import tensorflow as tf  
  5. from tensorflow import keras  
  6. from tensorflow.keras import layers  

 

Sigmoid

sigmoid激活函數也稱為logistic函數。Sigmoid函數在回歸分類問題中非常流行。sigmoid函數給出的值的范圍是0和1。

  1. def sigmoid(x):  
  2. return 1 / (1 + m.exp(-x))values_of_sigmoid = []  
  3. values_of_x = []  
  4. for i in range(-500,500,1):  
  5. i = i*0.01  
  6. values_of_x.append(i)  
  7. values_of_sigmoid.append(sigmoid(i))plt.plot( values_of_x ,values_of_sigmoid)  
  8. plt.xlabel("values of x")  
  9. plt.ylabel("value of sigmoid")  

 

 

8個深度學習中常用的激活函數

 

tanH

這個函數非常類似于sigmoid激活函數。這個函數在-1到1的范圍內接受任何實值作為輸入和輸出值。輸入越大(越正),輸出值越接近1.0,而輸入越小(越負),輸出越接近-1.0。Tanh激活函數計算如下。

  1. def tanh(x):  
  2. return (m.exp(x) - m.exp(-x)) / (m.exp(x) + m.exp(-x))values_of_tanh = []  
  3. values_of_x = []  
  4. for i in range(-500,500,1):  
  5. i = i*0.001  
  6. values_of_x.append(i)  
  7. values_of_tanh.append(tanh(i))plt.plot( values_of_x ,values_of_tanh)  
  8. plt.xlabel("values of x")  
  9. plt.ylabel("value of tanh")  

 

 

8個深度學習中常用的激活函數

 

Softmax

Softmax激活函數輸出一個和為1.0的值向量,可以解釋為類隸屬度的概率。Softmax是argmax函數的“軟”版本,它允許一個“贏家通吃”函數的似然輸出。

  1. def softmax(x):  
  2. e_x = np.exp(x - np.max(x))  
  3. return e_x / e_x.sum()values_of_x = [i*0.01 for i in range(-500,500)]  
  4. plt.plot(scores ,softmax(values_of_x))  
  5. plt.xlabel("values of x")  
  6. plt.ylabel("value of softmax")  

 

 

8個深度學習中常用的激活函數

 

RELU 線性整流單元

ReLU可能是用于隱藏層的最常見的函數。它還可以有效地克服其他以前流行的激活函數(如Sigmoid和Tanh)的限制。具體來說,它不太容易受到阻止深度模型被訓練的梯度下降消失問題的影響,盡管它可能會遇到諸如飽和單元等其他問題。

  1. def ReLU(x):  
  2. return max(0,x)values_of_relu = []  
  3. values_of_x = []  
  4. for i in range(-500,500,1):  
  5. i = i*0.01  
  6. values_of_x.append(i)  
  7. values_of_relu.append(ReLU(i))plt.plot(values_of_x,values_of_relu)  

 

 

8個深度學習中常用的激活函數

 

Leaky ReLU

ReLU的問題:當給ReLU一個負值時,它立即變成零,這降低了模型合適地擬合或從數據訓練的能力。這意味著ReLU激活函數的任何負輸入都會在圖中立即將該值轉換為零,這反過來又會通過不適當地映射負值而影響結果圖。

為了克服這個問題,Leaky ReLU被引入。

  1. def leaky_ReLU(x):  
  2. return max(0.1*x,x)values_of_L_relu = []  
  3. values_of_x = []  
  4. for i in range(-500,500,1):  
  5. i = i*0.01  
  6. values_of_x.append(i)  
  7. values_of_L_relu.append(leaky_ReLU(i))plt.plot(values_of_x,values_of_L_relu)  

 

 

8個深度學習中常用的激活函數

 

下面幾個函數都是RELU的變體基本上都是與Leaky 類似優化了激活函數負值時的返回

ELU

  1. activation_elu = layers.Activation(‘elu’)x = tf.linspace(-3.0, 3.0, 100)  
  2. y = activation_elu(x) # once created, a layer is callable just like a functionplt.figure(dpi=100)  
  3. plt.plot(x, y)  
  4. plt.xlim(-3, 3)  
  5. plt.xlabel(“Input”)  
  6. plt.ylabel(“Output”)  
  7. plt.show()  

 

 

8個深度學習中常用的激活函數

 

SELU

  1. activation_selu = layers.Activation('selu')x = tf.linspace(-3.0, 3.0, 100)  
  2. y = activation_selu(x) # once created, a layer is callable just like a functionplt.figure(dpi=100)  
  3. plt.plot(x, y)  
  4. plt.xlim(-3, 3)  
  5. plt.xlabel("Input")  
  6. plt.ylabel("Output")  
  7. plt.show()  

 

 

8個深度學習中常用的激活函數

 

Swish

  1. activation_swish = layers.Activation(‘swish’)x = tf.linspace(-3.0, 3.0, 100)  
  2. y = activation_swish(x) # once created, a layer is callable just like a functionplt.figure(dpi=100)  
  3. plt.plot(x, y)  
  4. plt.xlim(-3, 3)  
  5. plt.xlabel(“Input”)  
  6. plt.ylabel(“Output”)  
  7. plt.show()  

 

 

8個深度學習中常用的激活函數

 

總結

常用于隱藏層激活函數:

一般遞歸神經網絡使用Tanh或sigmoid激活函數,甚至兩者都使用。例如,LSTM通常對循環連接使用Sigmoid激活,對輸出使用Tanh激活。

1.多層感知器(MLP): ReLU激活函數。

2.卷積神經網絡(CNN): ReLU激活函數。

3.遞歸神經網絡:Tanh和/或Sigmoid激活函數。

如果你不確定使用哪個激活函數,你肯定可以嘗試不同的組合,并尋找最適合的,但是可以從RELU開始

輸出層激活功能:

輸出層激活函數必須根據你要解決的問題類型來選擇。例如,如果你有一個線性回歸問題,那么線性激活函數將是有用的。下面是您可能面臨的一些常見問題和使用的激活函數。

二進制分類:一個節點,sigmoid激活。

多類分類:每個類一個節點,softmax激活。

多標簽分類:每個類一個節點,sigmoid激活。

以下是一些常用激活函數的公式和可視化顯示,希望對你有幫助

 

8個深度學習中常用的激活函數

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2024-07-11 11:07:41

2022-08-05 13:51:32

Python函數lambda

2022-04-17 23:09:07

深度學習人工智能芯片

2019-12-11 13:24:57

深度學習數據結構軟件

2022-09-26 00:00:00

神經網絡激活函數sigmoid

2023-03-30 08:00:56

MySQL日期函數

2018-09-13 22:56:15

機器學習損失函數深度學習

2020-05-13 21:09:10

JavaScript前端技術

2017-11-20 05:08:16

深度學習激活函數神經網絡

2010-04-01 09:46:04

Oracle日期函數

2022-04-14 09:30:22

深度學習激活函數人工神經

2022-10-17 15:43:14

深度學習回歸模型函數

2022-04-25 14:27:05

Pandas函數數據

2018-09-18 10:55:24

人工智能機器學習深度學習

2022-10-28 15:19:28

機器學習距離度量數據集

2022-06-30 08:31:54

排序函數SQL

2023-04-11 08:49:42

排序函數SQL

2010-03-22 10:27:28

Python常用模塊I

2023-12-27 14:17:11

深度學習人工智能激活函數

2023-03-15 17:37:26

Java8ListMap
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜电影网 | 91精品国产综合久久小仙女图片 | 91免费视频观看 | 日韩激情一区 | 久久av网| 国产成人久久 | 久久精品免费一区二区 | 狠狠亚洲 | 日韩欧美高清 | 日韩成人在线看 | 亚洲激情在线观看 | 欧美亚州 | 91福利在线观看视频 | 国产精品免费大片 | 欧美性生活视频 | 日韩aⅴ在线观看 | 日韩欧美综合 | 欧美日韩国产一区 | 免费视频久久 | 国产一二三区免费视频 | 日韩一级黄色片 | 中文成人在线 | 国产日韩欧美一区二区在线播放 | 天天看天天操 | 精品国产欧美一区二区三区不卡 | 三级黄色片在线观看 | 国产一区二区视频免费在线观看 | 欧美一级片在线观看 | 日韩一区二区在线视频 | 视频在线一区二区 | 中文在线日韩 | 亚洲第一在线 | 国产精品日韩欧美一区二区三区 | 一区精品视频 | 三a毛片| 国产在线中文字幕 | 免费在线看a| 国产一区不卡 | 天天曰夜夜 | www.日本国产 | 五月天婷婷综合 |