在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度學習基礎知識(5)

CHANBAEK ? 來源:小小研究生 ? 作者:小小研究生 ? 2023-05-16 18:24 ? 次閱讀

上一節中說到,需要求使損失函數最小的權重和偏置,高中數學中,求函數的極值就是使函數導數為0的點。

1、導數

導數是某個瞬間的變化量,瞬間的定義是時間趨近于0

使用代碼來實現:

def numerical_diff(f,x):
  h=10e-50
  return(f(x+h)-f(x))/h

此時,h取一個極小的數來表示趨近于0,但是如果太小的話在計算機中貴產生舍入誤差,用float32的浮點數來表示依然是0.0。另外,上述定義是函數f在x與x+h之間的差分,是近似的導數定義,而真正的導數是曲線在某一點上的切線,這個誤差產生是由于h不可能無限趨近于0。因此,可以計算f在x+h和x-h之間的差分進一步減小誤差。

真正數值微分的代碼:

def numerical_diff(f,x):
  h=1e-4
  return (f(x+h)-f(x-h))/(2*h)

真正用函數的導數計算出的結果是解析解,而數值微分近似的結果嚴格意義上并不一致,但是由于誤差可以忽略不計,因此可以認為它們是相等的。

2、偏導數

當函數y有多變量時,多變量函數的導數就是偏導數。求偏導數時,多變量中的一個變量是目標變量,其他變量需要為定值。

求偏導的代碼:

def function_2(x):
  return x[0]**2+x[1]**2

3、梯度

偏導數匯總而成的向量成為梯度。

向量是有大小和方向的,在梯度圖中,箭頭的指向就是梯度的方向,箭頭的長度就是梯度的大小。 梯度總是指向函數值減小最多的方向。

知道梯度的定義,就可以用梯度來使損失函數減小。復雜函數中,梯度指示的方向基本上都不是函數值最小處,但沿著梯度方向可以最大限度減小函數的值。在梯度法中,函數的值從當前位置沿著梯度方向前進,然后在新的地方重新求梯度,再沿著新梯度的方向前進,不斷重復,逐漸減小函數值。尋找最小值的梯度法是梯度下降法,尋找最大值的梯度法是梯度上升法,一般神經網絡中梯度法主要是指梯度下降法。

4、梯度法求某個函數值優化結果

η是學習率,表示更新量,決定在一次學習中,應該學習多少以及在多大程度上更新參數。上式會反復執行,逐漸減小函數值。學習率需要事先確定,過大或過小都不行,一般會一邊改變學習率一邊確定學習是否正確進行。

梯度下降法代碼:

def gradient_descent(f,init_x,lr=0.01,step_num=100);
  x=init_x
  for i in range(step_num):
    grad=numerical_gradient(f,x)
    x-=lr*grad
    return x

參數f是要最優化的函數,init_x是初始值,lr是學習率,step_num是重復次數。 numerical_gradient()會求函數梯度,并更新x。

當使用梯度法求f(x0,x1)=x0^2+x1^2的最小值時,設置初始值為(-3,-4),學習率為1,上面次數定義的時候是100,實際使用的時候設置是20,最終結果為[-0.03458765 0.04611686]。 使用解析法求最小值是[0,0],因此結果在一定程度上可以認為是一致的。

對梯度法每次迭代進行繪圖顯示,函數的取值在向原點(最小值處)逐步靠近。

學習率的設置非常重要,當我們將其設置為10時,結果為[-2.58983747e+13 ,-1.29524862e+12]發散成一個很大的值。 當設置成1e-10時,結果為[-2.99999999 , 3.99999998]幾乎沒有什么變化。 學習率這種超參數和權重偏置不同,只能人工設定,需要嘗試多個值。

5、梯度法求神經網絡的損失函數優化結果

class simpleNet:
    def __init__(self):
        self.W = np.random.randn(2,3)
    def predict(self, x):
        return np.dot(x, self.W)
    def loss(self, x, t):
        z = self.predict(x)
        y = softmax(z)
        loss = cross_entropy_error(y, t)
        return loss
x = np.array([0.6, 0.9])
t = np.array([0, 0, 1])
net = simpleNet()
f = lambda w: net.loss(x, t)
dW = numerical_gradient(f, net.W)
print(dW)

init (self)創建一個隨機的2*3的矩陣,predict(self,x)讓x與W矩陣相乘,loss(self,x,t)定義了損失函數。 給定了x,t之后調用了實例化的類,再將net.loss傳遞給f后,在numerical_gradient()函數中進行調用求梯度。

至此,求出了神經網絡的梯度,接下來只需要根據梯度法更新權重參數。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4804

    瀏覽量

    102631
  • 計算機
    +關注

    關注

    19

    文章

    7625

    瀏覽量

    90055
  • 函數
    +關注

    關注

    3

    文章

    4367

    瀏覽量

    64050
  • C代碼
    +關注

    關注

    1

    文章

    90

    瀏覽量

    14649
  • 深度學習
    +關注

    關注

    73

    文章

    5554

    瀏覽量

    122422
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    C語言基礎知識(5)--循環語句

    C語言基礎知識(5)--循環語句
    的頭像 發表于 06-15 10:18 ?2957次閱讀
    C語言<b class='flag-5'>基礎知識</b>(<b class='flag-5'>5</b>)--循環語句

    5G新空口標準基礎知識

    通俗易懂的5G新扣扣標準基礎知識,是非常實用的初級學習資料。
    發表于 04-02 20:41

    5G新空口標準基礎知識

    5G新空口標準基礎知識,很好的初步學習資料。
    發表于 04-05 16:06

    怎么學習嵌入式系統基礎知識

    如何學習嵌入式系統基礎知識
    發表于 02-19 06:28

    通信基礎知識教程

    通信基礎知識 1、電信基礎知識2、通信電源技術3、配線設備結構、原理與防護4、防雷基礎知識5、EMC基礎知識6、防腐蝕原理與技術7、產品安
    發表于 03-04 16:48 ?33次下載

    FPGA開發經驗與技巧_基礎知識學習篇(1)

    FLC1301T00 基礎知識學習篇希望會對朋友們的學習有幫助!
    發表于 12-16 15:27 ?3次下載

    ADC【DSP基礎知識

    ADC【DSP基礎知識】,好好學習,從零開始學習DSP
    發表于 01-06 16:44 ?10次下載

    使用Eclipse基礎知識

    使用Eclipse 基礎知識 使用Eclipse 基礎知識 適合初學者學習使用
    發表于 02-26 10:30 ?0次下載

    Verilog_HDL基礎知識非常好的學習教程 (1)

    Verilog_HDL基礎知識非常好的學習教程 (1)
    發表于 01-04 12:33 ?0次下載

    PLC基礎知識學習,不看后悔

    PLC基礎知識學習,不看后悔
    發表于 09-09 08:43 ?103次下載
    PLC<b class='flag-5'>基礎知識</b><b class='flag-5'>學習</b>,不看后悔

    機器學習基礎知識詳細說明

    本文檔的主要內容詳細介紹的是機器學習基礎知識詳細說明。
    發表于 03-24 08:00 ?0次下載
    機器<b class='flag-5'>學習</b>的<b class='flag-5'>基礎知識</b>詳細說明

    了解一下機器學習中的基礎知識

    機器學習中的基礎知識 demi 在 周四, 03/07/2019 - 09:16 提交 機器學習中涉及到了很多的概念,當然要想了解機器學習的話就需要對這些
    的頭像 發表于 03-31 17:08 ?4006次閱讀

    51單片機學習 基礎知識總結

    51單片機學習 基礎知識總結
    發表于 11-11 19:21 ?39次下載
    51單片機<b class='flag-5'>學習</b>    <b class='flag-5'>基礎知識</b>總結

    單片機基礎知識學習筆記

    單片機基礎知識學習筆記有關總線1.IIC總線2.SPI總線
    發表于 11-14 16:51 ?26次下載
    單片機<b class='flag-5'>基礎知識</b><b class='flag-5'>學習</b>筆記

    深度學習基礎知識分享

    深度學習也為其他科學做出了貢獻。用于對象識別的現代卷積網絡為神經科學家們提供了可以研究的視覺處理模型(DiCarlo,2013)。深度學習也為處理海量數據以及在科學領域作出有效的預測提
    發表于 09-05 10:30 ?1次下載
    主站蜘蛛池模板: 天天爽天天干天天操 | 国产精品黄网站免费观看 | 亚洲国产欧美日韩一区二区三区 | 永久免费在线播放 | 国产成人午夜精品影院游乐网 | 欧美啊片| 在线观看一区二区三区视频 | 国产精品虐乳在线播放 | 免费黄色地址 | 99亚洲精品卡2卡三卡4卡2卡 | 视频在线观看网站免费 | 一二三区在线观看 | 欧美色图日韩色图 | 国内精品哆啪啪 | 深爱五月综合网 | 亚洲国产色婷婷精品综合在线观看 | 欧美一级艳片视频免费观看 | 嫩草影院网站入口 | 美女牲交毛片一级视频 | 天天综合天天添夜夜添狠狠添 | 性欧美videofree另类超大 | 国精视频一区二区视频 | 在线一级毛片 | 68日本xxxxxxx18| 三级特黄视频 | 欧美mv日韩mv国产mv网站 | 久久婷婷是五月综合色狠狠 | 天堂资源在线最新版 | 狼人狠狠干 | 伊人久久影院大香线蕉 | 特级黄色免费片 | 二级黄的全免费视频 | 777欧美| 亚洲aaaa级特黄毛片 | 久久综合九色 | 好大好硬好长好爽a网站 | 久久天天躁狠狠躁夜夜2020一 | 国产精品成人aaaaa网站 | 欧美一级片手机在线观看 | 高h文男主又粗又狠 | www.xxx国产 |