機器學習 softmax啟用函式

2021-10-10 04:20:54 字數 1862 閱讀 9705

softmax函式

softmax函式,一般用於多分類的問題上,將多個神經元的輸入,對映在(0,1)之間。可以當作概率的計算。這一點跟sigmoid函式相似。

softmax的計算公式為:

s i=

ei∑j

=1ne

js_i = \frac^n e^j}

si​=∑j

=1n​

ejei

​【值得關注的是: ∑i=

1nsi

=1

\sum_^n s_i = 1

∑i=1n​

si​=

1】相當於每個神經元的exp值 除上 所有神經元的exp值總和。

舉個簡單的例子。

輸入三個神經元的值,分別是 1,2,3,then e1=

2.7,e2

=7.3,e

3=

20e^1 = 2.7, e^2 = 7.3, e^3 = 20

e1=2.7

,e2=

7.3,

e3=20s1

=2.7

2.7+

7.3+20=

0.09,s

2=

7.32.7

+7.3+20

=0.24,s

3=

202.7

+7.3+20

=0.67

s_1 = \frac= 0.09, s_2 = \frac= 0.24,s_3 = \frac= 0.67

s1​=2.

7+7.

3+20

2.7​

=0.0

9,s2

​=2.

7+7.

3+20

7.3​

=0.2

4,s3

​=2.

7+7.

3+20

20​=

0.67

s 1+

s2+s

3=

1s_1 +s_2 + s_3 = 1

s1​+s2

​+s3

​=1, 所以softmax求出來的值可以當作 概率,記為logit

實際上問題,輸入的神經元為每個class的值,然後通過softmax函式的過濾,變成每個class的概率值,因此可應用在分類問題上,即選取概率最大的那個類別便是 predict值

值得關注的另乙個問題是:sofrmax經常遇到數值溢位的問題,因為有大量的指數運算,因此當輸入值太大,便會出現溢位error。因此一般會對輸入值進行處理,比如減去數值中的最大值。

例子如下:

score = np.array(

[122

,232

,333])

#減去array中的最大值

score -= np.

max(score)

#然後再算每個softmax值

s = np.exp(score)

/np.

sum(np.exp(score)

)

relu函式 【rectified linear unit修正線性單元】

relu函式的公式如下:

f (x

)=

0, & \text \\ x, & \text \end

f(x)={

0,x,

​if 

x=< 0

if x

>0

​relu函式是分段函式,用來把所有的負值變成0,而正值不變。稱為單側抑制。 由於relu函式的存在,使得神經網路中的神經元具有了稀疏啟用性,執行效率大大地增強。而且relu使得模型能夠更好地挖掘相關特徵,擬合訓練資料。

python實現 softmax啟用函式

softmax函式 以上版本有問題 a np.array 1010,1000,990 np.exp a np.sum np.exp a main 1 runtimewarning overflow encountered in exp main 1 runtimewarning invalid va...

機器學習中的Softmax函式

在使用logistic做線性回歸時,如果我們遇到多分類的問題,我們可以考慮使用softmax函式進行篩選 函式公式如下 so ftma x yi expyi jexpyj 原理是對logistic回歸所取得的評分 score 逐個求對數,然後除以所有評分的對數的總和,可以理解為取評分最高的乙個分類。...

機器學習 Softmax推導

lr可以看成是softmax的特例。lr主要是用於二分類,如果面臨的是多分類問題,可以用softmax。softmax通常也是深度學習影象識別網路的最後一層。在lr中,引數 是乙個向量,而在softmax中,引數可以看成是乙個矩陣。也就是每乙個輸出都對應著乙個引數向量 h xi p yi 1 x i...