日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习随笔

發(fā)布時(shí)間:2024/10/6 pytorch 143 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习随笔 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

深度學(xué)習(xí)中 number of training epochs 中的,epoch 到底指什么?

首先復(fù)習(xí)下神經(jīng)網(wǎng)絡(luò)的概念。 神經(jīng)網(wǎng)絡(luò)由一些相互鏈接的“神經(jīng)元”組成。每個(gè)“神經(jīng)元”有相應(yīng)的權(quán)重。 神經(jīng)網(wǎng)絡(luò)的神奇之處就在于權(quán)重是通過訓(xùn)練自動(dòng)得出的。所謂訓(xùn)練,就是讓神經(jīng)網(wǎng)絡(luò)在訓(xùn)練 數(shù)據(jù)集上跑一遍,看看損失函數(shù)的值怎么樣。如果損失函數(shù)的值足夠小,小到符合我們的需 求,那就說明神經(jīng)網(wǎng)絡(luò)擬合得很好了,訓(xùn)練大功告成了(實(shí)際上并非如此,因?yàn)閮H僅知道擬 合得很好并不夠,我們還要知道神經(jīng)網(wǎng)絡(luò)是不是擬合得太好了,也就是過擬合。所以還需要 用測(cè)試數(shù)據(jù)集來測(cè)試是否過擬合。不過這里就姑且就當(dāng)訓(xùn)練完成了把。)反之,如果損失函 數(shù)的值不夠小,那就還需要繼續(xù)訓(xùn)練。 神經(jīng)網(wǎng)絡(luò)在訓(xùn)練數(shù)據(jù)集上跑一遍,稱為一次迭代(iteration)。 那么 epoch 又是怎么回事? 我們知道,簡(jiǎn)單來說,深度學(xué)習(xí)就是很深很深的神經(jīng)網(wǎng)絡(luò)(這一說法并不準(zhǔn)確,但姑且 讓我們這么說),也就是說,有很多層,每層可能有很多神經(jīng)元,結(jié)構(gòu)也可能比較復(fù)雜。然 后相應(yīng)的,數(shù)據(jù)集也可能比較大。那跑一遍(迭代)會(huì)比較慢。所以人們就想出了一個(gè)變通 的辦法,就是每次只使用數(shù)據(jù)集中的部分樣本,這個(gè)數(shù)目就稱為 batch size。 雖然只使用了部分樣本,但很多時(shí)候已經(jīng)足以優(yōu)化權(quán)重,降低損失函數(shù)了。這樣訓(xùn)練效率高 很多,訓(xùn)練時(shí)間也能縮短不少。 不過這樣一來,一次迭代就不一定完整跑遍數(shù)據(jù)集中的所有樣本了。那在比較的時(shí)候, 就不太方便直接比較迭代次數(shù)了。 比如,假設(shè)深度神經(jīng)網(wǎng)絡(luò) A 經(jīng)過 32 次迭代損失函數(shù)的值足夠低了,而深度神經(jīng)網(wǎng)絡(luò) B 經(jīng)過 16 次迭代損失函數(shù)的值足夠低了,但實(shí)際上,A 的 batch size 可能是 256,而 B 的 batch size 可能是 2048。所以直接比較 A 和 B 的迭代次數(shù)并沒有什么意義。 所以就又提出了 epoch 這個(gè)概念,指數(shù)據(jù)集中的所有樣本都跑過一遍。 那對(duì)于每次迭代都跑遍數(shù)據(jù)集中的樣本的情況,epoch 和迭代是一樣的。否則的話, epoch 就要換算。上面的例子中,假設(shè)數(shù)據(jù)集的樣本總數(shù)是 4096,那 A 的 1 個(gè) epoch 就需 要 16 次迭代,而 B 的 1 個(gè) epoch 只需要 2 次。也就是說,A 經(jīng)過 2 個(gè) epoch 就訓(xùn)練好了, 而 B 需要 8 個(gè) epoch。
參考-------http://www.360doc.com/content/18/0417/18/47852988_746429309.shtml-------

工程化開發(fā)

1.拿到深度學(xué)習(xí)項(xiàng)目需要考慮些什么?

  • DL or ML?
  • DL比機(jī)器學(xué)習(xí)特征提取強(qiáng)
  • 分析目前的問題
  • 分析當(dāng)前數(shù)據(jù),現(xiàn)在可用的數(shù)據(jù)是什么樣的(高維的數(shù)據(jù)?圖片?音頻?語料?),數(shù)據(jù)的維度是高維的還是低維的?數(shù)據(jù)的類型表明了解決方案的類型即第五條
  • 解決方案屬于哪類典型問題(分類?回歸?)
    圖片數(shù)據(jù)的處理(獲取數(shù)據(jù)、分析數(shù)據(jù))
  • 盡可能多的獲取數(shù)據(jù)
  • 觀察數(shù)據(jù)的分布,是否存在分布不均勻
  • 觀察數(shù)據(jù)的質(zhì)量,是否有明顯的標(biāo)簽錯(cuò)誤,是否有大量人類都無法識(shí)別的圖片
  • 數(shù)據(jù)是否需要進(jìn)行標(biāo)準(zhǔn)化
  • 標(biāo)注數(shù)據(jù)使用什么軟件
  • 標(biāo)注還在
  • 選擇模型、模型調(diào)優(yōu)

  • 確定問題目標(biāo):圖片分類?目標(biāo)檢測(cè)?實(shí)例分割?
  • 確定主要約束條件:求準(zhǔn)還是求快?在Server還是在嵌入式設(shè)備?算力如何?內(nèi)存是否足夠?
  • 目前已經(jīng)是最好效果了嗎?還是可以再一進(jìn)步提高精度?過高的訓(xùn)練精度是否是過擬合了?過高的預(yù)測(cè)精度是不是會(huì)導(dǎo)致泛化能力不足?
    ●上線效果
    ●從系統(tǒng)吐出的錯(cuò)誤中查找問題
    ●人臉識(shí)別問題。總不能識(shí)別的場(chǎng)景。燈光太強(qiáng)?太暗?人臉不正?
    ●圖片分類問題。把分類錯(cuò)誤的圖片收集到,仔細(xì)觀察圖片,看是不是標(biāo)簽了?過于模糊? .
    ●目標(biāo)檢測(cè)問題。某些物體總是識(shí)別不出來。是不是目標(biāo)太小了,太大了,太長(zhǎng)了?
  • 2.1數(shù)據(jù)預(yù)處理
    去掉錯(cuò)誤數(shù)據(jù),采集數(shù)據(jù)通常可能采集回來錯(cuò)誤的值,人工標(biāo)注也容易標(biāo)注錯(cuò)誤,寧肯漏標(biāo)也不要錯(cuò)標(biāo),去除有爭(zhēng)議的數(shù)據(jù)(貓和hello kitty的對(duì)比),人類也無法處理的數(shù)據(jù)(有些圖像的預(yù)測(cè)概率在0.5-0.6之間,理論上可能是這個(gè)圖像表現(xiàn)出不止一個(gè)類別,所以模型給他們分配了相同的概率),訓(xùn)練的時(shí)候盡量多選擇特征明顯的圖片,偶爾加入一些不好分類的圖片也可以。如果數(shù)據(jù)集中大部分?jǐn)?shù)據(jù)都是肉眼都不好分類的圖片的話,模型訓(xùn)練的效果應(yīng)該就是不好的。

    2.2數(shù)據(jù)擴(kuò)充
    為什要數(shù)據(jù)擴(kuò)充,就是數(shù)據(jù)量不夠。
    數(shù)據(jù)是深度學(xué)習(xí)的糧食
    數(shù)據(jù)量不夠—數(shù)據(jù)增強(qiáng)
    數(shù)據(jù)分布不均衡----數(shù)據(jù)均衡
    2.2.1簡(jiǎn)單的數(shù)據(jù)擴(kuò)充方式
    1.水平翻轉(zhuǎn)(horizontally flipping):會(huì)使原數(shù)據(jù)集擴(kuò)充-倍。
    2.隨機(jī)摳取(random crops): -般用較大(約0.8-0.9倍原圖大小)的正方形在原圖隨機(jī)位置摳取圖像(image patch/crop),每張圖像摳取的次數(shù)決定了數(shù)據(jù)集擴(kuò)充的倍數(shù)。
    3.旋轉(zhuǎn)(rotating):將原圖旋轉(zhuǎn)一-定角度(-30°, 30°), 將經(jīng)旋轉(zhuǎn)變換后的圖像作為擴(kuò)充的訓(xùn)練樣本加入原訓(xùn)練集。
    4.色彩抖動(dòng)(color jittering):在RGB顏色空間對(duì)原有RGB色彩分布進(jìn)行輕微的擾動(dòng),或在HSV顏色控件隨機(jī)改變?cè)袌D像飽和度和明度或?qū)ι{(diào)進(jìn)行微調(diào)。
    在實(shí)踐中,往往會(huì)將上述幾種方式疊加使用。如此,便可將圖像數(shù)據(jù)擴(kuò)充至原有數(shù)量的數(shù)倍甚至數(shù)十倍。
    5.色彩抖動(dòng)的其他預(yù)處理
    ●當(dāng)我們獲取了足夠的訓(xùn)練樣本后,在訓(xùn)練前,還有些操作是必不可少的一步。
    ●比如:減均值操作。
    ●具體這樣操作:計(jì)算數(shù)據(jù)集的像素均值,然后讓訓(xùn)練集、驗(yàn)證集、測(cè)試集分別減去該均值。
    ●減均值操作的原理是,我們默認(rèn)自然圖象是一類平穩(wěn)的數(shù)據(jù)分布,此時(shí)從每個(gè)樣本.上減去數(shù)據(jù)的統(tǒng)計(jì)平均值可以移除共同部分,凸顯個(gè)體差異。
    2.2.2其他的數(shù)據(jù)預(yù)處理方法
    ●對(duì)輸入特征做歸一化處理(normal ization)也是常見的預(yù)處理操作,同樣在圖像處理中可以將圖像的每個(gè)像素信息看作–種特征。
    ●在實(shí)踐中,對(duì)每個(gè)特征減去平均值來中心化數(shù)據(jù)的歸- -化處理方式稱為“中心式歸一化”(mean normal ization)。
    ●需要注意的是,實(shí)際操作中應(yīng)首先劃分好訓(xùn)練集,驗(yàn)證集和測(cè)試集,該均值僅針對(duì)劃分后的訓(xùn)練集計(jì)算,不可再未劃分的所有圖上計(jì)算,如此會(huì)違背機(jī)器學(xué)習(xí)的基本原理,即“在模型訓(xùn)練過程中能且僅能從訓(xùn)練集中獲取信息”。

    樣本不均衡的弊端
    ●經(jīng)典算法通常假設(shè)各類數(shù)據(jù)是均衡(平衡)的,即每個(gè)類別的樣本數(shù)量是-樣多的●然而,實(shí)際工程多數(shù)情況樣本是不均衡的
    ●不均衡導(dǎo)致泛化能力弱:
    ●訓(xùn)練出的模型只會(huì)重視樣本多的類別
    ●輕視樣本少數(shù)的類別
    ●比喻:
    ●上高中偏科,總數(shù)學(xué),偶爾學(xué)英語
    ●高考的時(shí)候英語也是要考的
    ●極端的例子:
    ●二分類問題:訓(xùn)練集中,正例( 99個(gè)少, 負(fù)例:/1個(gè)
    ●分類器只要放棄負(fù)例的預(yù)測(cè)就可以獲得99%的正確率●二分類問題:訓(xùn)練集中,正例: 1個(gè),負(fù)例: 99個(gè)
    ●分類器只有1%的正確率,這個(gè)分類器沒法用
    樣本不均衡的應(yīng)對(duì)—把數(shù)據(jù)數(shù)量拉平
    ●樣本數(shù)量過少的想辦法擴(kuò)充數(shù)量(_上采樣)
    ●直接復(fù)制類別較少的圖片
    ●數(shù)據(jù)擴(kuò)充的方式
    ●樣本數(shù)量過多的想辦法減少數(shù)量(下采樣)
    ●有針對(duì)性的挑選圖片進(jìn)行訓(xùn)練
    下采樣
    下采樣不是丟棄圖片(數(shù)據(jù)是寶貴的資源,仍數(shù)據(jù)就像扔錢)
    正例和負(fù)例的比例為5:1
    那么不是簡(jiǎn)單的丟棄4張正例,使得圖片比例變?yōu)?:1而是每輪訓(xùn)練的時(shí)候從5個(gè)中隨機(jī)抽取一張貓,多輪訓(xùn)練

    遷移學(xué)習(xí)

    Layer Normalization 與Batch Normalization的區(qū)別:LN是在輸入神經(jīng)元之前就計(jì)算了均值和方差,BN是對(duì)同一批的數(shù)據(jù)計(jì)算均值和方差。

    簡(jiǎn)單的來說就是BN和LN進(jìn)行處理的方向不同。對(duì)于BN來說,batch_size大小不同,那么它對(duì)應(yīng)的BN出來的mean和std都是變化的,上圖中batch_size=3,均值是mean=3,std=3(第0維度),當(dāng)batch_size不是3的時(shí)候,那么均值和方差就會(huì)改變;而LN隨著batch_size的不同對(duì)應(yīng)單條樣本的均值和方差不同——————BN對(duì)batch比較敏感,batch_size不能太小;LN則是獨(dú)立于batch_size的———就可以這么理解。參考:關(guān)于batch normalization和layer normalization的理解
    如果前面有學(xué)過Batch Normalization,則會(huì)發(fā)現(xiàn)其實(shí)Layer Normalization并沒有什么新奇的地方,只是兩者計(jì)算均值和標(biāo)準(zhǔn)差的對(duì)象不一樣。最后還是總結(jié)一下:

    Layer Normalization可以提高模型的訓(xùn)練速度和精度,使得模型更加穩(wěn)健。
    Layer Normalization可以適用于單樣本的情況,在RNN中效果比Batch Normalization更優(yōu)。
    參考:Layer Normalization原理介紹

    總結(jié)

    以上是生活随笔為你收集整理的深度学习随笔的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。