色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

谷歌深度神經網絡 基于數據共享的快速訓練方法

WpOh_rgznai100 ? 2019-07-18 09:25 ? 次閱讀

導讀:神經網絡技術的普及離不開硬件技術的發展,GPU 和 TPU 等硬件型訓練加速器帶來的高算力極大的縮短了訓練模型需要的時間,使得研究者們能在短時間內驗證并調整想法,從而快速得到理想的模型。然而,在整個訓練流程中,只有反向傳播優化階段在硬件加速器上完成,而其他的例如數據載入和數據預處理等過程則不受益于硬件加速器,因此逐漸成為了整個訓練過程的瓶頸。本文應用數據共享和并行流水線的思想,在一個數據讀入和預處理周期內多次重復使用上一次讀入的數據進行訓練,有效降低模型達到相同效果所需的總 epoch 次數,在算法層面實現對訓練過程的加速。

網絡訓練的另一個瓶頸

網絡訓練速度的提升對神經網絡的發展至關重要。過去的研究著重于如何在 GPU 和更專業的硬件設備上進行矩陣和張量的相關運算,從而代替 CPU 進行網絡訓練。GPU 和TPU 等相關專業計算硬件的通用性不像 CPU 那么廣泛,但是由于特殊的設計和計算單元構造,能夠在一些專門的任務中具有大幅超越 CPU 的表現。

由于 GPU 相關硬件善于進行矩陣和張量運算,因此通常用于訓練中的反向傳播計算過程,也就是參數優化過程。然而,一個完整的網絡訓練流程不應該只包含反向傳播參數優化過程,還應該有數據的讀入和預處理的過程,后者依賴于多種硬件指標,包括 CPU、硬盤、內存大小、內存帶寬、網絡帶寬,而且在不同的任務中細節也不盡相同,很難專門為這個概念寬泛的過程設計專用的硬件加速器,因此其逐漸成為了神經網絡訓練過程中相對于方向傳播過程的另一個瓶頸。

因此,如果要進一步提升訓練速度,就需要考慮優化非硬件加速的相關任務,而不僅僅是優化反向傳播過程,這一優化可以從兩個方面來進行:

(1) 提升數據載入和預處理的速度,類似于提升運算速度

(2) 減少數據載入和預處理的工作量

其中第一個思路更多的需要在硬件層面進行改進,而第二個思路則可以通過并行計算和數據共享,重復利用的方法來實現。

并行化問題

在了解具體的訓練優化方法之前,我們需要知道神經網絡訓練過程中的典型步驟,并做一些合理假設。下圖是一個典型的神經網絡訓練流程:

圖1 一種典型的神經網絡訓練流程

包含了 5 個步驟:read and decode 表示讀入數據并解碼,例如將圖片數據重新 resize成相應的矩陣形式;Shuffle 表示數據打亂,即隨機重新排列各個樣本;augmentation 表示對數據進行變換和增強;batch 對數據按照 batch size 進行打包;Apply SGD update表示將數據輸入到目標網絡中,并利用基于 SGD 的優化算法進行參數學習。

不同的任務中或許會增加或減少某些環節,但大致上的流程就是由這5步構成的。此外,網絡采用的學習優化算法也會有不同,但都是基于 SGD 算法的,因此一律用“SGD update”來表示。這個流程每次運行對應一個 epoch,因此其輸入也就是整個訓練數據集。

可并行化是這個過程的重要特點,也是對其進行優化的關鍵所在。不同的 epoch 流程之間的某些環節是可以同時進行的,例如在上一個 epoch 訓練時,就可以同步的讀入并處理下一個epoch 的數據。進一步地,作者將該流程劃分為兩個部分,上游(upstream)過程和下游(downstream)過程。其中上游過程包含數據載入和部分的數據預處理操作,而下游過程包含剩余的數據預處理操作和 SGD update 操作。這個劃分并不是固定的,不同的劃分決定了上游和下游過程的計算量和時間開銷。這樣劃分后,可以簡單地將并行操作理解為兩個流水線并行處理,如下圖:

圖1 基礎并行操作,idle表示空閑時間

上面的流水線處理上游過程,下面的處理下游過程。為了更好地表示對應關系,我在原圖的基礎上添加了一個紅色箭頭,表示左邊的上游過程是為右邊的下游過程提供數據的,他們共同構成一個 epoch 的完整訓練流程,并且必須在完成這個 epoch 的上游過程后才可以開始其下游過程,而與左側的上游過程豎直對應的下游過程則隸屬于上一個 epoch了。

從圖中可以看到,上游過程需要的時間是比下游過程更長的,因此在下游過程的流水線中有一部分時間(紅色部分)是空閑的等待時間,這也是本文中的主要優化對象。此處做了第一個重要假設:上游過程的時間消耗大于下游過程,這使得訓練所需時間完全取決于上游過程。如果是小于關系,那么優化的重點就會放到下游過程中,而下游過程中主要優化內容還是反向傳播過程。因此這個假設是將優化內容集中在下游過程流水線的充分條件。

那么如何利用這部分空閑時間呢?答案是繼續用來處理下游過程,如下圖:

圖2 單上游過程對應多下游過程

同一個上游過程可以為多個下游過程提供數據(圖中是 2 個),通過在上游過程和下游過程的分界處添加一個額外的數據復制和分發操作,就可以實現相同的上游數據在多個下游過程中的重復利用,從而減少乃至消除下游過程流水線中的空閑時間。這樣,在相同的訓練時間里,雖然和圖1中的一對一并行操作相比執行了相同次數的上游過程,但是下游過程的次數卻提升了一定的倍數,模型獲得了更多的訓練次數,因此最終性能一定會有所提升。

那么進一步,如果要達到相同的模型性能,后者所需執行的上游過程勢必比前者要少,因此從另個角度來講,訓練時間就得到了縮短,即達到相同性能所需的訓練時間更少。

但是,由于同一個上游過程所生成的數據是完全相同的,而在不同的反向傳播過程中使用完全相同的數據(repeated data),和使用完全不同的新數據(fresh data)相比,帶來的性能提升在一定程度上是會打折扣的。這個問題有兩個解決方法:

(1)由于下游過程并不是只包含最后的 SGD update 操作,還會包含之前的一些操作(只要不包含 read and encode 就可以),而諸如 shuffle 和 dropout 等具有隨機性的操作會在一定程度上帶來數據的差異性,因此合理的在下游過程中包含一些具有隨機性的操作,就可以保證最后用于 SGD update 的數據具有多樣性,這具體取決于上下游過程在整個流程中的分界點。

(2)在進行分發操作的同時對數據進行打亂,也能提高數據的多樣性,但由于數據打亂的操作本身要消耗計算資源,因此這不是一個可以隨意使用的方法。

我們將這種對上游過程的數據重復利用的算法稱為數據交流 data echoing,而重復利用的次數為重復因子 echoing factor。

數據重復利用效率分析

假設在完成一個上游過程的時間內,可以至多并行地完成 R 個下游過程,而數據的實際重復使用次數為e,通常 e 和 R 滿足 e

? ? ?

在此基礎上,可以得到以下關于訓練效率的結論:

(1)只要e不大于R,那么訓練時間就完全取決于上游過程所需的時間,而總訓練時間就取決于上游過程的次數,也就是第一條流水線的總時長。

(2)由于重復數據的效果沒有新數據的效果好,因此要達到相同的模型性能,數據交流訓練方法就需要更多的 SGD update操作,也就是需要更多下游過程。理論上,只要下游過程的擴張倍數小于e倍,那么數據交流訓練方法所需的總訓練時長就小于傳統訓練方法。

(3)由于e的上限是R,那么R越大,e就可以取得越大,在下游過程只包含SGD update過程時,R最大。進一步地,若此時重復數據和新數據對訓練的貢獻完全相同,那么訓練加速效果將達到最大,即訓練時間縮短為原來的1/R。

然而在前面已經提到了,對重復利用的數據而言,其效果是不可能和新數據媲美的,這是限制該訓練方法效率的主要因素。作者進一步探究了在訓練流程中的不同位置進行上下游過程分割和數據交流所帶來的影響。

(1)批處理操作(batching)前后的數據交流

如果將批處理操作劃分為下游過程,那么由于批處理操作本身具有一定的隨機性,不同的下游過程就會對數據進行不同的打包操作,最后送到 SGD update 階段的數據也就具備了一定的batch間的多樣性。當然,如果將批處理操作劃分為上游過程,那么R值會更大,可以執行更多次的SGD update 訓練操作,當然這些訓練過程的數據相似度就更高了,每次訓練帶來的性能提升也可能變得更少。

(2)數據增強(data augmentation)前后的數據交流

如果在 data augmentation 之前進行數據交流,那么每個下游過程最終用于訓練的數據就更不相同,也更接近于新數據的效果,這個道理同批處理操作前后的數據交流是相同的,只不過數據交流操作的插入點更靠前,R值更小,帶來的數據差異性也更強。

(3)在數據交流的同時進行數據打亂

數據打亂本質上也是在提升分發到不同下游過程的數據的多樣性,但這是一個有開銷的過程,根據應用環境的不同,能進行數據打亂的范圍也不同。

進一步地,作者通過實驗在5個不同的方面評估了數據交流訓練方法帶來的性能提升,并得到了以下結論:

(1)數據交流能降低訓練模型達到相同效果所需的樣本數量。由于對數據進行了重復使用,因此相應的所需新數據數量就會減少。

(2)數據交流能降低訓練時間。事實上即便是 e>R,在某些網絡上仍然會帶來訓練效果的提升,如下圖:

圖4 不同的e和R值在兩個不同網絡中帶來的訓練時間提升

在 LM1B 數據集中,當 e>R 是總訓練時間都是擴大的,而在 ImageNet 數據集中,只要R 大于1.5, e 越大,訓練時間就越小,作者并沒有對這個結論給出解釋,筆者認為這是以為因為在ImageNet 數據集中,重復數據帶來的性能衰減 小于 重復訓練帶來的性能提升,因此,e 越大,達到相同性能所需的訓練時間越少,只是 LMDB 對重復數據的敏感度更高。

(3)batch_size越大,能支持的e數量也就越大。進一步的,batch_size越大,所需要的訓練數據也就越少。

(4)數據打亂操作可以提高最終訓練效果,這是一個顯而易見的結論。

(5)在數據交流的訓練方法下,模型仍然能訓練到和傳統訓練方法一樣的精度,也就是不損失精度。作者在 4 個任務上進行了對比試驗:

總結

本文的核心思想就是數據的重復利用,通過數據的重復利用在并行執行訓練流程的過程中執行更多次的參數優化操作,一方面提高了流水線效率,另一方面提高了訓練次數,從而降低了達到相同精度所需的訓練時間。(作者 | Google Brain譯者 | 凱隱責編 | 夕顏

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

    關注

    27

    文章

    6164

    瀏覽量

    105312
  • 神經網絡
    +關注

    關注

    42

    文章

    4771

    瀏覽量

    100720

原文標題:谷歌新研究:基于數據共享的神經網絡快速訓練方法

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    從AlexNet到MobileNet,帶你入門深度神經網絡

    通過堆疊卷積層使得模型更深更寬,同時借助GPU使得訓練再可接受的時間范圍內得到結果,推動了卷積神經網絡甚至是深度學習的發展。下面是AlexNet的架構:AlexNet的特點有:1.借助擁有1500萬標簽
    發表于 05-08 15:57

    CV之YOLO:深度學習之計算機視覺神經網絡tiny-yolo-5clessses訓練自己的數據集全程記錄

    CV之YOLO:深度學習之計算機視覺神經網絡tiny-yolo-5clessses訓練自己的數據集全程記錄
    發表于 12-24 11:50

    CV之YOLOv3:深度學習之計算機視覺神經網絡Yolov3-5clessses訓練自己的數據集全程記錄

    CV之YOLOv3:深度學習之計算機視覺神經網絡Yolov3-5clessses訓練自己的數據集全程記錄
    發表于 12-24 11:51

    卷積神經網絡模型發展及應用

    十余年來快速發展的嶄新領域,越來越受到研究者的關注。卷積神經網絡(CNN)模型是深度學習模型中最重要的一種經典結構,其性能在近年來深度學習任務上逐步提高。由于可以自動學習樣本
    發表于 08-02 10:39

    優化神經網絡訓練方法有哪些?

    優化神經網絡訓練方法有哪些?
    發表于 09-06 09:52

    BP神經網絡MapReduce訓練

    為提高大樣本集情況下BP神經網絡訓練效率,提出了一種基于局部收斂權陣進化的BP神經網絡MapReduce訓練方法,以各Map任務基于其輸入數據
    發表于 11-23 15:07 ?12次下載
    BP<b class='flag-5'>神經網絡</b>MapReduce<b class='flag-5'>訓練</b>

    叫板谷歌,亞馬遜微軟推出深度學習庫 訓練神經網絡更加簡單

    據報道,亞馬遜和微軟合力推出全新的深度學習庫,名字叫Gluon。此舉被認為是在云計算市場上與谷歌叫板,谷歌曾通過AI生態系統發力云計算,強調自身產品對深度學習的強大支持。Gluon可以
    發表于 01-05 16:56 ?2175次閱讀

    基于粒子群優化的條件概率神經網絡訓練方法

    訓練方法。我們將這種基于粒子群優化的條件概率神經網絡用于人臉年齡估計,實驗結果表明這種網絡能夠顯著地提高識別的準確率。
    發表于 01-08 16:35 ?0次下載

    基于虛擬化的多GPU深度神經網絡訓練框架

    針對深度神經網絡在分布式多機多GPU上的加速訓練問題,提出一種基于虛擬化的遠程多GPU調用的實現方法。利用遠程GPU調用部署的分布式GPU集群改進傳統一對一的虛擬化技術,同時改變
    發表于 03-29 16:45 ?0次下載
    基于虛擬化的多GPU<b class='flag-5'>深度</b><b class='flag-5'>神經網絡</b><b class='flag-5'>訓練</b>框架

    NVIDIA GPU加快深度神經網絡訓練和推斷

    深度學習是推動當前人工智能大趨勢的關鍵技術。在 MATLAB 中可以實現深度學習的數據準備、網絡設計、訓練和部署全流程開發和應用。聯合高性能
    的頭像 發表于 02-18 13:31 ?2043次閱讀

    時識科技提出新脈沖神經網絡訓練方法 助推類腦智能產業落地

    近日,SynSense時識科技技術團隊發表題為“EXODUS: Stable and Efficient Training of Spiking Neural Networks”的文章,在文章中提出了新的脈沖神經網絡訓練方法EXODUS。
    的頭像 發表于 06-20 14:21 ?1401次閱讀

    cnn卷積神經網絡模型 卷積神經網絡預測模型 生成卷積神經網絡模型

    cnn卷積神經網絡模型 卷積神經網絡預測模型 生成卷積神經網絡模型? 卷積神經網絡(Convolutional Neural Network,CNN)是一種
    的頭像 發表于 08-21 17:11 ?1235次閱讀

    卷積神經網絡訓練的是什么

    訓練過程以及應用場景。 1. 卷積神經網絡的基本概念 1.1 卷積神經網絡的定義 卷積神經網絡是一種前饋深度學習模型,其核心思想是利用卷積
    的頭像 發表于 07-03 09:15 ?403次閱讀

    怎么對神經網絡重新訓練

    發生變化,導致神經網絡的泛化能力下降。為了保持神經網絡的性能,需要對其進行重新訓練。本文將詳細介紹重新訓練神經網絡的步驟和
    的頭像 發表于 07-11 10:25 ?452次閱讀

    ai大模型訓練方法有哪些?

    方法增加數據多樣性。 模型選擇 選擇合適的神經網絡架構,如卷積神經網絡(CNN)、循環神經網絡(RNN)、長短期記憶
    的頭像 發表于 07-16 10:11 ?1469次閱讀
    主站蜘蛛池模板: 国产精品女上位在线观看| 日韩爽爽影院在线播放| 97在线视频免费| 快播h网站| 91久久99久91天天拍拍| 久久不射视频| 中国少妇内射XXXHD免费| 久久笫一福利免费导航| 97国产成人精品视频| 欧美人与善交大片| 国产AV精品一区二区三区漫画| 跳蛋按摩棒玉势PLAY高H| 国产久爱青草视频在线观看| 亚洲人成色777777老人头| 久久黄视频| 97色伦图片7778久久| 99久久99久久久精品久久| 欧美特级午夜一区二区三区| 大香交伊人| 亚洲AV电影天堂男人的天堂| 久久久久久久久女黄| 97视频在线免费| 啪啪做羞羞事小黄文| 国产精品久免费的黄网站| 亚洲久久少妇中文字幕| 99re热精品视频国产免费| 日本高清二区| 国精产品999一区二区三区有限| 在线免费观看a视频| 日本久久久久亚洲中字幕| 国产又黄又粗又爽又色的视频软件 | 51精品国产AV无码久久久密桃| 欧式午夜理伦三级在线观看| 国产精品综合AV一区二区国产馆| 优优色影院| 日韩综合网| 精品水蜜桃久久久久久久| AV多人爱爱XXx| 亚洲国产欧美国产综合在线| 麻豆精品一区二正一三区 | 欧美日韩精品一区二区三区四区|