最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Softmax函數(shù)原理及Python實現(xiàn)過程解析

 更新時間:2020年05月22日 15:52:19   作者:April15  
這篇文章主要介紹了Softmax函數(shù)原理及Python實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Softmax原理

Softmax函數(shù)用于將分類結(jié)果歸一化,形成一個概率分布。作用類似于二分類中的Sigmoid函數(shù)。

對于一個k維向量z,我們想把這個結(jié)果轉(zhuǎn)換為一個k個類別的概率分布p(z)。softmax可以用于實現(xiàn)上述結(jié)果,具體計算公式為:

對于k維向量z來說,其中zi∈R,我們使用指數(shù)函數(shù)變換可以將元素的取值范圍變換到(0,+∞),之后我們再所有元素求和將結(jié)果縮放到[0,1],形成概率分布。

常見的其他歸一化方法,如max-min、z-score方法并不能保證各個元素為正,且和為1。

Softmax性質(zhì)

輸入向量x加上一個常數(shù)c后求softmax結(jié)算結(jié)果不變,即:


我們使用softmax(x)的第i個元素的計算來進(jìn)行證明:

函數(shù)實現(xiàn)

由于指數(shù)函數(shù)的放大作用過于明顯,如果直接使用softmax計算公式

進(jìn)行函數(shù)實現(xiàn),容易導(dǎo)致數(shù)據(jù)溢出(上溢)。所以我們在函數(shù)實現(xiàn)時利用其性質(zhì):先對輸入數(shù)據(jù)進(jìn)行處理,之后再利用計算公式計算。具體使得實現(xiàn)步驟為:

  • 查找每個向量x的最大值c;
  • 每個向量減去其最大值c, 得到向量y = x-c;
  • 利用公式進(jìn)行計算,softmax(x) = softmax(x-c) = softmax(y)

代碼如下:

import numpy as np

def softmax(x):
  """
  softmax函數(shù)實現(xiàn)
  參數(shù):
  x --- 一個二維矩陣, m * n,其中m表示向量個數(shù),n表示向量維度
  返回:
  softmax計算結(jié)果
  """
  assert(len(X.shape) == 2)
  row_max = np.max(X, axis=axis).reshape(-1, 1)
  X -= row_max
  X_exp = np.exp(X)
  s = X_exp / np.sum(X_exp, axis=axis, keepdims=True)

  return s

測試一下:

a = [[1,2,3],[-1,-2,-3]]
b = [[1,2,3]]
c = [1,2,3]
a = np.array(a)
b = np.array(b)
c = np.array(c)

print(softmax(a))
print(softmax(b))
print(softmax(c)) # error

輸出結(jié)果為:

[[ 0.09003057 0.24472847 0.66524096]
[ 0.66524096 0.24472847 0.09003057]]
[[ 0.09003057 0.24472847 0.66524096]]
Traceback (most recent call last):
assert(len(X.shape) == 2)
AssertionError

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python使用Plotly繪圖工具繪制散點圖、線形圖

    python使用Plotly繪圖工具繪制散點圖、線形圖

    這篇文章主要為大家詳細(xì)介紹了python使用Plotly繪圖工具繪制散點圖、線形圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Jupyter打開圖形界面并畫出正弦函數(shù)圖像實例

    Jupyter打開圖形界面并畫出正弦函數(shù)圖像實例

    這篇文章主要介紹了Jupyter打開圖形界面并畫出正弦函數(shù)圖像實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 詳解Django中的unittest及應(yīng)用

    詳解Django中的unittest及應(yīng)用

    unittest是python的一個單元測試框架,它是用于對一個確定結(jié)果和預(yù)測結(jié)果的一種判斷,這篇文章主要介紹了Django中的unittest及應(yīng)用,需要的朋友可以參考下
    2021-11-11
  • python 利用panda 實現(xiàn)列聯(lián)表(交叉表)

    python 利用panda 實現(xiàn)列聯(lián)表(交叉表)

    這篇文章主要介紹了python 利用panda 實現(xiàn)列聯(lián)表(交叉表),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • python實現(xiàn)手機號歸屬地查詢功能

    python實現(xiàn)手機號歸屬地查詢功能

    手機上突然收到了某銀行的短信提示,看了一下手機的位數(shù),正好是11位,我一想,這不就是標(biāo)準(zhǔn)的手機號碼嗎?于是想用python的庫實現(xiàn)查詢手機號碼歸屬地查詢自由,所以本文給大家介紹了如何用python實現(xiàn)手機號歸屬地查詢功能,需要的朋友可以參考下
    2024-03-03
  • Python Socket庫基礎(chǔ)方法與應(yīng)用詳解

    Python Socket庫基礎(chǔ)方法與應(yīng)用詳解

    這篇文章主要介紹了關(guān)于Python socket庫的詳細(xì)技術(shù)解析,包含基礎(chǔ)方法說明、工作原理剖析,以及多個應(yīng)用領(lǐng)域的完整實現(xiàn)代碼,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-04-04
  • Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼

    Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼

    這篇文章主要介紹了Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • DataFrame.groupby()所見的各種用法詳解

    DataFrame.groupby()所見的各種用法詳解

    這篇文章主要介紹了DataFrame.groupby()所見的各種用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 如何在Python里使用ChatGPT及ChatGPT簡介

    如何在Python里使用ChatGPT及ChatGPT簡介

    今年最火的應(yīng)該就是ChatGPT了,現(xiàn)在短短2個月已經(jīng)突破了1億注冊用戶,馬斯克可高興壞了,這篇文章主要介紹了如何在Python里使用ChatGPT及ChatGPT是什么?注冊方式?需要的朋友可以參考下
    2023-02-02
  • Python 3.8正式發(fā)布,來嘗鮮這些新特性吧

    Python 3.8正式發(fā)布,來嘗鮮這些新特性吧

    今天 Python3.8 發(fā)布啦,它是 Python2 終結(jié)前最后一個大版本,我們一起看看這個版本都添加了那些新功能和特性
    2019-10-10

最新評論

巴彦淖尔市| 岗巴县| 河北省| 巴中市| 留坝县| 凌源市| 郸城县| 资阳市| 宜州市| 亚东县| 监利县| 台山市| 南宁市| 水城县| 临夏市| 绍兴县| 静安区| 徐汇区| 惠东县| 祁门县| 新民市| 门头沟区| 东辽县| 梨树县| 兴文县| 耒阳市| 奉新县| 新绛县| 建水县| 灵宝市| 阿拉善左旗| 通海县| 辰溪县| 兴安盟| 黎平县| 界首市| 扎囊县| 文登市| 前郭尔| 海南省| 巴彦淖尔市|