国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值

這篇具有很好參考價(jià)值的文章主要介紹了【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中,權(quán)重的初始值特別重要。實(shí)際上,設(shè)定什么樣的權(quán)重初始值,經(jīng)常關(guān)系到神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能否成功。本節(jié)將介紹權(quán)重初始值的推薦值,并通過(guò)實(shí)驗(yàn)確認(rèn)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)是否會(huì)快速進(jìn)行。

可以將權(quán)重初始值設(shè)為0嗎
后面我們會(huì)介紹抑制過(guò)擬合、提高泛化能力的技巧 —— 權(quán)值衰減。
權(quán)值衰減就是一種以減小權(quán)重參數(shù)的值為目的進(jìn)行學(xué)習(xí)的方法。

如果想減小權(quán)重的值,一開始就將初始值設(shè)為較小的值才是正途。實(shí)際上在這之前的權(quán)重初始值都是像0.01 * np.random.randn(10,100)這樣,使用由高斯分布生成的值乘以0.01后得到的值(標(biāo)準(zhǔn)差為0.01的高斯分布)。

如果我們把權(quán)重初始值全部設(shè)為0以減小權(quán)重的值,會(huì)怎么樣呢? 事實(shí)上,將權(quán)重初始值設(shè)為0的話,將無(wú)法正確進(jìn)行學(xué)習(xí)。
為什么不能將權(quán)重初始值設(shè)為0呢? 嚴(yán)格地說(shuō),為什么不能將權(quán)重初值設(shè)成一樣的值?
這是因?yàn)樵谡`差反向傳播法中,所有的權(quán)重值都會(huì)進(jìn)行相同的更新。
比如,在2層神經(jīng)網(wǎng)絡(luò)中,假設(shè)第1層和第2層的權(quán)重為0。這樣一來(lái),正向傳播時(shí),因?yàn)檩斎藢拥臋?quán)重為0,所以第2層的神經(jīng)元全部被傳遞相同的值。第2層的神經(jīng)元中全部輸入相同的值,這意味著反向傳播時(shí)第2層的權(quán)重全部都會(huì)進(jìn)行相同的更新。因此,權(quán)重被更新為相同的值,并擁有了對(duì)稱的值(重復(fù)的值)。這使得神經(jīng)網(wǎng)絡(luò)擁有許多不同的權(quán)重的意義喪失了,所以必須隨機(jī)生成初始值。

隱藏層的激活值的分布
各層的激活值的分布都要求有適當(dāng)?shù)膹V度。因?yàn)橥ㄟ^(guò)在各層間傳遞多樣性的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)可以進(jìn)行高效的學(xué)習(xí)。反過(guò)來(lái),如果傳遞的是有所偏向的數(shù)據(jù),就會(huì)出現(xiàn)梯度消失或者“表現(xiàn)力受限”的問(wèn)題,導(dǎo)致學(xué)習(xí)可能無(wú)法順利進(jìn)行。

現(xiàn)在,在一般的深度學(xué)習(xí)框架中,Xavier初始值已被作為標(biāo)準(zhǔn)使用,比如,Cafe框架中,通過(guò)在設(shè)定權(quán)重初始值時(shí)賦予xavier參數(shù),就可以使用Xavier初始值。Xavier的論文中,為了使各層的激活值呈現(xiàn)出具有相同廣度的分布,推導(dǎo)了合適的權(quán)重尺度。推導(dǎo)出的結(jié)論是,如果前一層的節(jié)點(diǎn)數(shù)為n,則初值使用標(biāo)準(zhǔn)差為【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值
的分布
【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值

使用Xavier初始值后,前一層的節(jié)點(diǎn)數(shù)越多,要設(shè)定為目標(biāo)節(jié)點(diǎn)的初始值的權(quán)重尺度就越小。

ReLU的權(quán)重初始值
Xavier初始值是以激活函數(shù)是線性函數(shù)為前提而推導(dǎo)出來(lái)的。因?yàn)閟igmoid函數(shù)和tanh函數(shù)左右對(duì)稱,且中央附近可以視作線性函數(shù),所以適合使用Xavier初始值。但當(dāng)激活函數(shù)使用ReLU時(shí),一般推薦使用ReLU專用的初始值也就是“He初始值”,即:當(dāng)前一層的節(jié)點(diǎn)數(shù)為n時(shí),He初始值使用標(biāo)準(zhǔn)差為【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值的高斯分布。
總結(jié)一下,當(dāng)激活函數(shù)使用ReLU時(shí),權(quán)重初始值使用He初始值,當(dāng)激活函數(shù)為sigmoid或tanh等S型曲線函數(shù)時(shí),初始值使用Xavier初始值。這是目前的最佳實(shí)踐。

基于MNIST數(shù)據(jù)集的權(quán)重初始值的比較
下面通過(guò)實(shí)際的數(shù)據(jù),觀察不同的權(quán)重初始值的賦值方法會(huì)在多大程度上影響神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。這里,我們基于std=0.01、Xavier初始值、He初始值進(jìn)行實(shí)驗(yàn),測(cè)試代碼如下:

# coding: utf-8
import os
import sys

sys.path.append(os.pardir)  # 為了導(dǎo)入父目錄的文件而進(jìn)行的設(shè)定
import numpy as np
import matplotlib.pyplot as plt
from dataset.mnist import load_mnist
from common.util import smooth_curve
from common.multi_layer_net import MultiLayerNet
from common.optimizer import SGD


# 0:讀入MNIST數(shù)據(jù)==========
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True)

train_size = x_train.shape[0]
batch_size = 128
max_iterations = 2000


# 1:進(jìn)行實(shí)驗(yàn)的設(shè)置==========
weight_init_types = {'std=0.01': 0.01, 'Xavier': 'sigmoid', 'He': 'relu'}
optimizer = SGD(lr=0.01)

networks = {}
train_loss = {}
for key, weight_type in weight_init_types.items():
    networks[key] = MultiLayerNet(input_size=784, hidden_size_list=[100, 100, 100, 100],
                                  output_size=10, weight_init_std=weight_type)
    train_loss[key] = []


# 2:開始訓(xùn)練==========
for i in range(max_iterations):
    batch_mask = np.random.choice(train_size, batch_size)
    x_batch = x_train[batch_mask]
    t_batch = t_train[batch_mask]
    
    for key in weight_init_types.keys():
        grads = networks[key].gradient(x_batch, t_batch)
        optimizer.update(networks[key].params, grads)
    
        loss = networks[key].loss(x_batch, t_batch)
        train_loss[key].append(loss)
    
    if i % 100 == 0:
        print("===========" + "iteration:" + str(i) + "===========")
        for key in weight_init_types.keys():
            loss = networks[key].loss(x_batch, t_batch)
            print(key + ":" + str(loss))


# 3.繪制圖形==========
markers = {'std=0.01': 'o', 'Xavier': 's', 'He': 'D'}
x = np.arange(max_iterations)
for key in weight_init_types.keys():
    plt.plot(x, smooth_curve(train_loss[key]), marker=markers[key], markevery=100, label=key)
plt.xlabel("iterations")
plt.ylabel("loss")
plt.ylim(0, 2.5)
plt.legend()
plt.show()

結(jié)果如下:
【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值

std =0.01時(shí)完全無(wú)法進(jìn)行學(xué)習(xí)。這和才觀察到的激活值的分布一樣,是因?yàn)檎騻鞑ブ袀鬟f的值很小(集中在附近的數(shù)據(jù))。因此,逆向傳播時(shí)求到的梯度也很小,權(quán)重幾乎不進(jìn)行更新。
相反,當(dāng)權(quán)重初始值為Xavier初始值和He初始值時(shí),學(xué)習(xí)進(jìn)行得很順利并且,我們發(fā)現(xiàn)He初始值時(shí)的學(xué)習(xí)進(jìn)度更快一些。

綜上,在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中,權(quán)重初始值非常重要。很多時(shí)候權(quán)重初值的設(shè)定關(guān)系到神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能否成功。權(quán)重初始值的重要性容易被忽視而任何事情的開始(初始值)總是關(guān)鍵的,因此在結(jié)束本節(jié)之際,再次強(qiáng)調(diào)權(quán)重初始值的重要性。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-495068.html

到了這里,關(guān)于【深度學(xué)習(xí)】5-2 與學(xué)習(xí)相關(guān)的技巧 - 權(quán)重的初始值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【算法小記】深度學(xué)習(xí)——循環(huán)神經(jīng)網(wǎng)絡(luò)相關(guān)原理與RNN、LSTM算法的使用

    【算法小記】深度學(xué)習(xí)——循環(huán)神經(jīng)網(wǎng)絡(luò)相關(guān)原理與RNN、LSTM算法的使用

    文中程序以Tensorflow-2.6.0為例 部分概念包含筆者個(gè)人理解,如有遺漏或錯(cuò)誤,歡迎評(píng)論或私信指正。 卷積神經(jīng)網(wǎng)絡(luò)在圖像領(lǐng)域取得了良好的效果,卷積核憑借優(yōu)秀的特征提取能力通過(guò)深層的卷積操作可是實(shí)現(xiàn)對(duì)矩形張量的復(fù)雜計(jì)算處理。但是生活中除了圖像這樣天然以矩陣形

    2024年01月25日
    瀏覽(21)
  • 模型權(quán)重和深度學(xué)習(xí)訓(xùn)練框架之間的關(guān)系

    通常我們可以看到有Caffe或Pytorch或TensorFlow的模型參數(shù)文件 不同的團(tuán)隊(duì)可能會(huì)使用不同的深度學(xué)習(xí)訓(xùn)練框架, 然后使用其 內(nèi)部的模型權(quán)重保存函數(shù) 進(jìn)行保存, 以便之后 自己的復(fù)用 或 發(fā)布開源 , 讓別人使用自己已經(jīng)訓(xùn)練好的模型權(quán)重, 在其基礎(chǔ)上進(jìn)一步做改進(jìn)或訓(xùn)練 那么該團(tuán)

    2024年02月11日
    瀏覽(23)
  • 深度學(xué)習(xí)技術(shù)棧 —— Pytorch中保存與加載權(quán)重文件

    權(quán)重文件是指訓(xùn)練好的模型參數(shù)文件,不同的深度學(xué)習(xí)框架和模型可能使用不同的權(quán)重文件格式。以下是一些常見的權(quán)重文件格式: PyTorch 的模型格式: .pt 文件。 Darknet 的模型格式: .weight 文件。 TensorFlow 的模型格式: .ckpt 文件。 一、參考文章或視頻鏈接 [1] Navigating Mode

    2024年01月19日
    瀏覽(22)
  • 第56步 深度學(xué)習(xí)圖像識(shí)別:CNN梯度權(quán)重類激活映射(TensorFlow)

    第56步 深度學(xué)習(xí)圖像識(shí)別:CNN梯度權(quán)重類激活映射(TensorFlow)

    一、寫在前面 類激活映射(Class Activation Mapping,CAM)和梯度權(quán)重類激活映射(Gradient-weighted Class Activation Mapping,Grad-CAM) 是兩種可視化深度學(xué)習(xí)模型決策過(guò)程的技術(shù)。他們都是為了理解模型的決策過(guò)程,特別是對(duì)于圖像分類任務(wù),它們可以生成一種熱力圖,這種圖可以突出顯

    2024年02月13日
    瀏覽(28)
  • 【機(jī)器學(xué)習(xí)300問(wèn)】78、都有哪些神經(jīng)網(wǎng)絡(luò)的初始化參數(shù)方法?

    ????????在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),權(quán)重初始化是確保良好收斂的關(guān)鍵步驟之一。不合適的初始化方法可能會(huì)導(dǎo)致梯度消失或爆炸,特別是在深層網(wǎng)絡(luò)中。那么都有哪些神經(jīng)網(wǎng)絡(luò)的初始化參數(shù)方法呢?選擇它這些方法的原則是什么? ? ? ? ? 關(guān)于隨機(jī)初始化神經(jīng)網(wǎng)絡(luò)參數(shù)的方法

    2024年04月23日
    瀏覽(46)
  • 深度學(xué)習(xí)學(xué)習(xí)筆記——解決過(guò)擬合問(wèn)題的方法:權(quán)重衰減和暫退法,與正則化之間的關(guān)系

    解決過(guò)擬合問(wèn)題是機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中關(guān)鍵的任務(wù)之一,因?yàn)樗鼤?huì)導(dǎo)致模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,但在未見數(shù)據(jù)上表現(xiàn)不佳。以下是一些解決過(guò)擬合問(wèn)題的常見方法: 增加訓(xùn)練數(shù)據(jù) : 增加更多的訓(xùn)練數(shù)據(jù)可以幫助模型更好地捕捉數(shù)據(jù)的真實(shí)分布,減少過(guò)擬合的可能性。

    2024年02月09日
    瀏覽(20)
  • Pytorch權(quán)重初始化/參數(shù)初始化

    refer: 【Pytorch】各網(wǎng)絡(luò)層的默認(rèn)初始化方法 https://blog.csdn.net/guofei_fly/article/details/105109883 其實(shí)Pytorch初始化方法就在各自的層的 def reset_parameters(self) - None: 方法中。 有人可能會(huì)問(wèn) 為什么這個(gè)方法和Pytorch直接出來(lái)的權(quán)重初始值不一樣 ?單步調(diào)試會(huì)發(fā)現(xiàn)其實(shí)這個(gè)方法運(yùn)行了至少兩

    2024年02月11日
    瀏覽(32)
  • 【深度學(xué)習(xí)實(shí)驗(yàn)】注意力機(jī)制(一):注意力權(quán)重矩陣可視化(矩陣熱圖heatmap)

    【深度學(xué)習(xí)實(shí)驗(yàn)】注意力機(jī)制(一):注意力權(quán)重矩陣可視化(矩陣熱圖heatmap)

    ? ?? 注意力機(jī)制 作為一種模擬人腦信息處理的關(guān)鍵工具,在深度學(xué)習(xí)領(lǐng)域中得到了廣泛應(yīng)用。本系列實(shí)驗(yàn)旨在通過(guò)理論分析和代碼演示,深入了解注意力機(jī)制的原理、類型及其在模型中的實(shí)際應(yīng)用。 本文將介紹將介紹 注意力權(quán)重矩陣可視化 (矩陣熱圖heatmap) ??本系

    2024年02月05日
    瀏覽(30)
  • 【學(xué)習(xí)筆記】神經(jīng)網(wǎng)絡(luò)相關(guān)

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)常簡(jiǎn)稱為神經(jīng)網(wǎng)絡(luò)(Neural Network,NN),它是一種通過(guò)數(shù)學(xué)模型來(lái)模擬生物大腦神經(jīng)網(wǎng)絡(luò)以及生物大腦功能的技術(shù)。 1943年,心理學(xué)家McCulloch和數(shù)學(xué)家Pitts提出了MP模型。該模型將一個(gè)生物神經(jīng)元的結(jié)構(gòu)簡(jiǎn)化成數(shù)學(xué)模型。 單個(gè)MP模型可以

    2024年01月16日
    瀏覽(27)
  • 【深度學(xué)習(xí)】第一門課 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) Week 1 深度學(xué)習(xí)概論

    【深度學(xué)習(xí)】第一門課 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) Week 1 深度學(xué)習(xí)概論

    ??Write In Front?? ??個(gè)人主頁(yè):令夏二十三 ??歡迎各位→點(diǎn)贊?? + 收藏?? + 留言?? ??系列專欄:深度學(xué)習(xí) ??總結(jié):希望你看完之后,能對(duì)你有所幫助,不足請(qǐng)指正!共同學(xué)習(xí)交流 ?? 1.1 歡迎來(lái)到深度學(xué)習(xí) 1. 為什么要學(xué)深度學(xué)習(xí)? 2. 我們將學(xué)習(xí)到哪些內(nèi)容? 1.2 什么是

    2024年02月04日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包