softmax函式的搬運工

2021-10-08 13:48:05 字數 1731 閱讀 9268

softmax函式一般用於分類問題的輸出層。

分類問題中使用的softmax函式的表現形式如下

exp(x)是表示ex的指數函式,上面的式子表示假設輸出層共有n個神經元,計算第k個神經元的輸出y k。分子是輸入訊號ak的指數函式,分母是所有輸入訊號的指數函式的和。

如果用圖表示softmax函式的話,如下圖。softmax函式的輸出通過箭頭與所有的輸入訊號相連。這是因為重softmax函式的式子可以看出,分母是需要所有的輸入訊號的加和。所以輸出層的各個神經元都受到所有輸入訊號的影響。

# softmax函式的python實現

# 這個python的實現完全是依照上面的式子來寫的

a = np.array(

[0.3

,2.9

,4.0])

exp_a = np.exp(a)

sum_exp_a = np.

sum(exp_a)

y = exp_a / sum_exp_a

# 其每一步執行的結果可如下圖

如果要經常使用softmax函式的話,可以把他定義成乙個函式

所以softmax函式的實現可以進行如下改進。

對改進的解釋

通過上面的例子所示,通過減去輸入訊號中的最大值,我們發現原來為nan的值(無法計算的值),現在被正確的計算了。綜上我們就重新修改了softmax的實現函式

在這裡插入**片

defsoftmax

(a):

c = np.

max(a)

exp_a = np.exp(a - c)

# 解決exp計算溢位問題

sum_exp_a = np.

sum(exp_a)

y = exp_a / sum_exp_a

return y

由於softmax函式最終輸出的每乙個類別的大小就對應上一層輸入的大小,所以一般在進行分類的時候就不用softmax,但是在進行學習建立模型的時候還是需要softmax函式這一層的。

午夜搬運工

做乙個作業,夜深人靜的時候搬運資料。如下 use mydb godeclare i int declare j int declare m int declare offset int select m isnull max id 0 from sourcedb dbo.table set offs...

知識的搬運工

jquery ajax呼叫遠端介面的跨域問題 ajax crossdomain true,就是上面的兩行 success function data error function data 不知到為什麼,但就是這麼使用的 2.雙波浪號 可以將物件轉化成小數,並且取整 只要整數部分,非四捨五入的那種 ...

浮躁的搬運工

說明 在周公的部落格上看到 請不要做浮躁的人 轉給即將上路或者正在路上的程式設計師朋友 這篇文章,感覺說的很有道理。目前,本人就是乙個浮躁的人。常常會看看人家的 看看資料。但是,很少自己動手去寫一下 去實踐一下。這樣,很不好。於是,就將下面的部分文章拷貝過來,以督促自己都動手寫 多實踐。it 搬運工...