91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí)基礎(chǔ)知識(5)

CHANBAEK ? 來源:小小研究生 ? 作者:小小研究生 ? 2023-05-16 18:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上一節(jié)中說到,需要求使損失函數(shù)最小的權(quán)重和偏置,高中數(shù)學(xué)中,求函數(shù)的極值就是使函數(shù)導(dǎo)數(shù)為0的點(diǎn)。

1、導(dǎo)數(shù)

導(dǎo)數(shù)是某個瞬間的變化量,瞬間的定義是時間趨近于0

使用代碼來實(shí)現(xiàn):

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

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

真正數(shù)值微分的代碼:

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

真正用函數(shù)的導(dǎo)數(shù)計(jì)算出的結(jié)果是解析解,而數(shù)值微分近似的結(jié)果嚴(yán)格意義上并不一致,但是由于誤差可以忽略不計(jì),因此可以認(rèn)為它們是相等的。

2、偏導(dǎo)數(shù)

當(dāng)函數(shù)y有多變量時,多變量函數(shù)的導(dǎo)數(shù)就是偏導(dǎo)數(shù)。求偏導(dǎo)數(shù)時,多變量中的一個變量是目標(biāo)變量,其他變量需要為定值。

求偏導(dǎo)的代碼:

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

3、梯度

偏導(dǎo)數(shù)匯總而成的向量成為梯度。

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

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

4、梯度法求某個函數(shù)值優(yōu)化結(jié)果

η是學(xué)習(xí)率,表示更新量,決定在一次學(xué)習(xí)中,應(yīng)該學(xué)習(xí)多少以及在多大程度上更新參數(shù)。上式會反復(fù)執(zhí)行,逐漸減小函數(shù)值。學(xué)習(xí)率需要事先確定,過大或過小都不行,一般會一邊改變學(xué)習(xí)率一邊確定學(xué)習(xí)是否正確進(jìn)行。

梯度下降法代碼:

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

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

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

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

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

5、梯度法求神經(jīng)網(wǎng)絡(luò)的損失函數(shù)優(yōu)化結(jié)果

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)創(chuàng)建一個隨機(jī)的2*3的矩陣,predict(self,x)讓x與W矩陣相乘,loss(self,x,t)定義了損失函數(shù)。 給定了x,t之后調(diào)用了實(shí)例化的類,再將net.loss傳遞給f后,在numerical_gradient()函數(shù)中進(jìn)行調(diào)用求梯度。

至此,求出了神經(jīng)網(wǎng)絡(luò)的梯度,接下來只需要根據(jù)梯度法更新權(quán)重參數(shù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4839

    瀏覽量

    107932
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7816

    瀏覽量

    93272
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4419

    瀏覽量

    67627
  • C代碼
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

    15195
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5600

    瀏覽量

    124460
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語言基礎(chǔ)知識(5)--循環(huán)語句

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

    5G新空口標(biāo)準(zhǔn)基礎(chǔ)知識

    通俗易懂的5G新扣扣標(biāo)準(zhǔn)基礎(chǔ)知識,是非常實(shí)用的初級學(xué)習(xí)資料。
    發(fā)表于 04-02 20:41

    5G新空口標(biāo)準(zhǔn)基礎(chǔ)知識

    5G新空口標(biāo)準(zhǔn)基礎(chǔ)知識,很好的初步學(xué)習(xí)資料。
    發(fā)表于 04-05 16:06

    怎么學(xué)習(xí)嵌入式系統(tǒng)基礎(chǔ)知識?

    如何學(xué)習(xí)嵌入式系統(tǒng)基礎(chǔ)知識
    發(fā)表于 02-19 06:28

    通信基礎(chǔ)知識教程

    通信基礎(chǔ)知識 1、電信基礎(chǔ)知識2、通信電源技術(shù)3、配線設(shè)備結(jié)構(gòu)、原理與防護(hù)4、防雷基礎(chǔ)知識5、EMC基礎(chǔ)知識6、防腐蝕原理與技術(shù)7、產(chǎn)品安
    發(fā)表于 03-04 16:48 ?34次下載

    FPGA開發(fā)經(jīng)驗(yàn)與技巧_基礎(chǔ)知識學(xué)習(xí)篇(1)

    FLC1301T00 基礎(chǔ)知識學(xué)習(xí)篇希望會對朋友們的學(xué)習(xí)有幫助!
    發(fā)表于 12-16 15:27 ?3次下載

    使用Eclipse基礎(chǔ)知識

    使用Eclipse 基礎(chǔ)知識 使用Eclipse 基礎(chǔ)知識 適合初學(xué)者學(xué)習(xí)使用
    發(fā)表于 02-26 10:30 ?0次下載

    Verilog_HDL基礎(chǔ)知識非常好的學(xué)習(xí)教程 (1)

    Verilog_HDL基礎(chǔ)知識非常好的學(xué)習(xí)教程 (1)
    發(fā)表于 01-04 12:33 ?0次下載

    PLC基礎(chǔ)知識學(xué)習(xí),不看后悔

    PLC基礎(chǔ)知識學(xué)習(xí),不看后悔
    發(fā)表于 09-09 08:43 ?103次下載
    PLC<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>學(xué)習(xí)</b>,不看后悔

    學(xué)習(xí)PLC必備四方面基礎(chǔ)知識

    PLC本身就是控制電器線路,故學(xué)習(xí)PLC必備基礎(chǔ)中以電工基礎(chǔ)最重要。零基礎(chǔ)學(xué)習(xí)PLC其實(shí)是從學(xué)習(xí)電工基礎(chǔ)知識開始的,若是多年從事電工行業(yè)的老司機(jī),可以直接跳過電工基礎(chǔ)
    發(fā)表于 01-15 08:59 ?1.1w次閱讀

    機(jī)器學(xué)習(xí)基礎(chǔ)知識詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是機(jī)器學(xué)習(xí)基礎(chǔ)知識詳細(xì)說明。
    發(fā)表于 03-24 08:00 ?0次下載
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>基礎(chǔ)知識</b>詳細(xì)說明

    了解一下機(jī)器學(xué)習(xí)中的基礎(chǔ)知識

    機(jī)器學(xué)習(xí)中的基礎(chǔ)知識 demi 在 周四, 03/07/2019 - 09:16 提交 機(jī)器學(xué)習(xí)中涉及到了很多的概念,當(dāng)然要想了解機(jī)器學(xué)習(xí)的話就需要對這些
    的頭像 發(fā)表于 03-31 17:08 ?4572次閱讀

    51單片機(jī)學(xué)習(xí) 基礎(chǔ)知識總結(jié)

    51單片機(jī)學(xué)習(xí) 基礎(chǔ)知識總結(jié)
    發(fā)表于 11-11 19:21 ?39次下載
    51單片機(jī)<b class='flag-5'>學(xué)習(xí)</b>    <b class='flag-5'>基礎(chǔ)知識</b>總結(jié)

    單片機(jī)基礎(chǔ)知識學(xué)習(xí)筆記

    單片機(jī)基礎(chǔ)知識學(xué)習(xí)筆記有關(guān)總線1.IIC總線2.SPI總線
    發(fā)表于 11-14 16:51 ?26次下載
    單片機(jī)<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>學(xué)習(xí)</b>筆記

    深度學(xué)習(xí)基礎(chǔ)知識分享

    深度學(xué)習(xí)也為其他科學(xué)做出了貢獻(xiàn)。用于對象識別的現(xiàn)代卷積網(wǎng)絡(luò)為神經(jīng)科學(xué)家們提供了可以研究的視覺處理模型(DiCarlo,2013)。深度學(xué)習(xí)也為處理海量數(shù)據(jù)以及在科學(xué)領(lǐng)域作出有效的預(yù)測提
    發(fā)表于 09-05 10:30 ?1次下載