python之matplotlib模組繪製常見的啟用函式及各啟用函式的優缺點
常見的啟用函式效果圖如下:
程式碼區:
#!E:\anaconda\python.exe
# -*-coding:utf-8 -*-
"""
功能:繪製啟用函式 常見的啟用函式有sigmoid、tanh、ReLU、eru、leaky ReLU、softmax
時間:2019/10/6
"""
from matplotlib import pyplot as plt
import numpy as np
# 1.sigmoid函式的表示式:f(x) = 1/(1+e^-x)
x = np.linspace(-6,6,200)
def sigmoid(x):
y = 1/(1+np.exp(-x))
return y
# 2.tanh的函式表示式: f(x) = (e^x-e^-x)/(e^x+e-x)
def tanh(x):
y = (np.exp(x) - np.exp(-x))/(np.exp(x) + np.exp(-x))
return y
#3. ReLu 的函式表示式: f(x)= 當x<0 f(x)0 當x>=0 f(x) = x
def ReLU(x):
y = []
for i in x:
if i >= 0:
y.append(i)
else:
y.append(0)
return y
#return np.maximum(x,[0]*100) #可以利用np中的maximum方法表示,也可以用上述方法
#4.elu 的函式表示式 f(x) x>=0 f(x)=x x<0 f(x) =a(e^x -1)
def elu(x,a):
y = []
for i in x:
if i>=0:
y.append(i)
else:
y.append(a*(np.exp(i)-1))
return y
#5.leaky ReLU 的函式表示式 x>=0 f(x)=x x<0 f(x) =0.01x
def LReLU(x):
y = []
for i in x:
if i>=0:
y.append(i)
else:
y.append(0.01*i)
return y
# softmax啟用函式 softmax的表示式為:輸入訊號的指數函式除以所有輸入訊號的指數和
def softmax(x):
c = np.max(x) #解決溢位問題
exe_x = np.exp(x)
exe_s = np.sum(exe_x)
y = exe_x/exe_s
return y
plt.subplot(1,2,1) #畫子圖
plt.plot(x,sigmoid(x),c="red",lw="2",label = "sigmiod")
plt.plot(x,tanh(x),c="blue",lw="2",label = "tanh")
plt.plot(x,softmax(x),c="yellow",lw="2",label = "softmax")
plt.gca().spines["bottom"].set_position(("data",0)) #將函式影像移動到x軸(0,0)
plt.gca().spines["left"].set_position(("data",0)) #將函式圖形移動到y軸(0,0)
plt.xlabel("x軸",fontproperties="SimHei")
plt.ylabel("y軸",fontproperties="SimHei")
plt.title("啟用函式",fontproperties="SimHei")
plt.legend(loc="best")
plt.subplot(1,2,2)
plt.plot(x,ReLU(x),c="blue",lw="2",label="ReLU")
plt.plot(x,elu(x,0.1),c="yellow",lw="2",label="elu")
plt.plot(x,LReLU(x),c="green",lw="2",label="LReLU")
plt.gca().spines["bottom"].set_position(("data",0))
plt.gca().spines["left"].set_position(("data",0))
plt.xlabel("x軸",fontproperties="SimHei")
plt.ylabel("y軸",fontproperties="SimHei")
plt.title("啟用函式",fontproperties="SimHei")
plt.legend(loc="best")
plt.show()
**
sigmoid啟用函式:
**
優點:1.輸出[0,1]之間,利用前向傳播
2.連續函式,方便求導
缺點:1.容易產生梯度消失。一般5層以內就會產生梯度消失的現象。
2.輸出不是以零為中心
3.大量運算時相當耗時(由於是冪函式)
**
tanh啟用函式:
**
優點:1.輸出[-1,1]之間,利用前向傳播
2.連續函式,方便求導
3.輸出以零為中心
缺點:1.容易產生梯度消失。一般5層以內就會產生梯度消失的現象。
2.大量資料運算時相當耗時(由於是冪函式)
**
ReLU啟用函式:
**
優點:1.解決了正區間梯度消失問題
2.易於計算
3.收斂速度快
缺點:1.輸出不是以零為中心
2.某些神經元不能被啟用,導致引數永遠不能更新
** 無錫人流醫院哪家好
Leaky ReLU啟用函式:
**
優點:
1.解決了正區間梯度消失問題
2.易於計算
3.收斂速度快
4.解決了某些神經元不能被啟用
缺點:輸出不是以零為中心
**
elu啟用函式:
**
優點:
1.解決了正區間梯度消失問題
2.易於計算
3.收斂速度快
4.解決了某些神經元不能被啟用
5.輸出的均值為0
缺點:輸出不是以零為中心
softmax啟用函式:
**
一般用在分類的輸出層作為啟用函式
優點:
1.輸出在[0,1]之間,可以當初機率
缺點:
在實際問題中,由於冪運算需要時間,而且softmax不會影響各元素的大小,因此輸出層的softmax啟用函式一般被省略。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2658959/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Matplotlib 系列之【繪製函式影象】函式
- Matplotlib 系列之【繪製函式影像】函式
- python的os模組的常見函式及用途詳解Python函式
- 常見啟用函式的介紹和總結函式
- 啟用函式的作用函式
- 使用python繪出常見函式Python函式
- 常用啟用函式函式
- Matplotlib呼叫imshow()函式繪製熱圖函式
- ## matplotlib.pyplot庫的知識點之bar函式——繪製條形圖函式
- 常見函式之單行函式函式
- 動畫函式的繪製及自定義動畫函式動畫函式
- 深度學習(啟用函式)深度學習函式
- 雜篇:Android繪製函式圖象及正弦函式的介紹Android函式
- python常見內建函式Python函式
- sigmoid啟用函式如何求導Sigmoid函式求導
- python嶺跡圖繪製函式Python函式
- python檢視模組下的函式Python函式
- 重構 - 用各種方式優化自己的函式庫優化函式
- 人工智慧---神經網路啟用函式恆等函式、sigmoid函式、softmax函式詳解人工智慧神經網路函式Sigmoid
- 神經網路的啟用函式總結神經網路函式
- 神經網路中使用的啟用函式神經網路函式
- Hooking linux核心函式(三):Ftrace的主要優缺點HookLinux函式
- cs231_n6.1_啟用函式函式
- Python繪製正餘弦函式影像Python函式
- 函式的遞迴及科赫曲線繪製函式遞迴
- Python 偏函式介紹及應用Python函式
- python語言幾個常見函式的使用Python函式
- python的upper函式怎麼用Python函式
- python threading模組有哪些函式Pythonthread函式
- php常見的危險函式PHP函式
- 從A到Z,26個實用Python模組/函式速覽Python函式
- 機器學習之簡單介紹啟用函式機器學習函式
- python和Keras.backend常見函式PythonKeras函式
- Python常見工廠函式用法示例Python函式
- 卷積神經網路-啟用函式卷積神經網路函式
- sigmod啟用函式和梯度消失問題函式梯度
- socket模組函式函式
- 用Python的random模組繪製折線圖Pythonrandom