<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      AI+ 正文
      發(fā)私信給AI研習社-譯站
      發(fā)送

      0

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      本文作者: AI研習社-譯站 2018-03-12 18:05
      導語:在每個具體案例下,我會結合fast.ai的代碼片段來大概的列出其基本的原理

      本文為雷鋒字幕組編譯的技術博客,原標題8 Deep Learning Best Practices I Learned About in 2017,作者為Brian Muhia。

      翻譯 |  付騰  林立宏    整理 |  凡江

      在2017年我感到最開心的事情就是,我更多地通過實踐來參與最新AI的發(fā)展,學到了很多的數(shù)學知識。這很有趣,但是卻沒有接觸什么實踐項目。因此,也沒有什么東西能體現(xiàn)我付出的努力。

      為了彌補這點,在四月份,我在 AI Grant 網(wǎng)站上申請了一個AI項目,目標是用 FastText 的skip-gram模型來為肯尼亞語建模。我獲得了初選的決賽資格,但是,卻沒有笑到最后。

      然后,在九月份,我申請了一個國際獎學金,學習了一個由 fast.ai 的Jeremy Howard開講的課程:Practical Deep Learning for Coder 《程序員的深度學習實踐》 第一部(目前該課程已經(jīng)完結)。該課程會在一月份的頭兩個星期左右來到MOOC,并且對公眾開放哦。在七周的學習中,我學習到了八種基本技術用來構建:

      1. 在已經(jīng)訓練好的模型上構建世界級的圖像分類器。

      2. 通過對數(shù)據(jù)進行調(diào)查,來構建語言模型,進而建立情感分析工具。

      3. 如何在結構化的數(shù)據(jù)集上進行深度學習。

      4. 如何通過協(xié)同篩選和深度學習來構建推薦引擎。

      所有這些都是在一個更夠提供非常高生產(chǎn)效率的開發(fā)界面:Jupyter Notebook 來實現(xiàn)的,它目前是由 fastai 的深度學習庫支持的,而這個庫本身又是由 PyTorch 所支持的。

      來看看這里的八個技術。在每個具體案例下,我會結合fast.ai的代碼片段來大概的列出其基本的原理,并且在括弧中指出哪些技術是比較適用的(這點很有用,無論你是用深度學習來做圖像識別或者分類,NLP,給結構化數(shù)據(jù)建?;蛘邊f(xié)同篩選),又或者對更加具體的,某些可以應用深度學習來學習的特殊類型數(shù)據(jù)進行討論。在這個課程中,圖像識別的課程使用Kaggle challenges的案例來做實踐的 1.  是貓還是狗?狗品種的鑒別。 2. 地球數(shù)據(jù),如何從太空中看懂亞馬遜雨林。

      這是互聯(lián)網(wǎng)時代,我要自我挑戰(zhàn)一下??寺∫幌?狗vs貓 的形式,不過換成 蜘蛛vs蝎子。嗯,蜘蛛vs蝎子。我從Google圖片 上搜索了關鍵詞“蜘蛛”和“沙漠蝎”,然后抓取下載了大約1500張左右的圖片。我當然是用程序來自動抓取。我可不想自動的成為資深的蜘蛛學專家,然后右鍵點點點。。。

      我先是對數(shù)據(jù)進行清理,去除那些非jpg格式的圖片,非圖片文件和沒有擴展名的圖片。當我完成這些雜項清理之后,我有了大約815張可用圖片。每個類 [蜘蛛,蝎子],有290張圖片作為訓練集,然后118張蜘蛛和117張蝎子用來做測試/驗證集。令我驚訝的是(對我而言,尤其是我看到結果后),這個模型很成功!這個模型達到了95%的準確率。

      from fastai.imports import *

      from fastai.transforms import *

      from fastai.conv_learner import *

      from fastai.model import *

      from fastai.dataset import *

      from fastai.sgdr import *

      from fastai.plots import *

      sz=224 # image size

      # architecture, from https://github.com/facebookresearch/ResNeXt

      arch=resnext50

      # batch size

      bs=64

      PATH = 'data/spiderscorpions/'

      # Enable data augmentation, and precompute=True

      # transforms_side_on flips the image along the vertical axis

      # max_zoom: 1.1 makes images up to 10% larger

      tfms = tfms_from_model(arch, sz, aug_tfms=transforms_side_on, max_zoom=1.1)

      data=ImageClassifierData.from_paths(PATH,tfms=tfms)

      learn = ConvLearner.pretrained(arch, data, precompute=True)

      # Use lr_find() to find highest learning rate where loss is still clearly improving

      learn.lr_find()

      # check the plot to find the learning rate where the losss is still improving

      learn.sched.plot()

      # assuming the optimal learning rate is 0.01, train for 3 epochs

      learn.fit(0.01, 3)

      # train last layer with data augmentation (i.e. precompute=False) for 2-3 epochs with cycle_len=1

      learn.precompute=False

      learn.fit(1e-2, 3, cycle_len=1)

      # unfreeze all layers, thus opening up resnext50's original ImageNet weights for the

      # features in the two spider and scorpion classes

      learn.unfreeze()

      lr = 0.01

      # fastai groups the layers in all of the pre-packaged pretrained convolutional networks into three groups

      # retrain the three layer groups in resnext50 using these learning rates for each group

      # We set earlier layers to 3x-10x lower learning rate than next higher layer

      lrs = np.array([lr/9, lr/3, lr])

      learn.fit(lrs, 3)

      # Use lr_find() again

      learn.lr_find()

      learn.sched.plot()

      learn.fit(1e-2, 3, cycle_len=1, cycle_mult=2)

      log_preds,y = learn.TTA()

      preds = np.mean(np.exp(log_preds),0)

      accuracy(log_preds, y)

      1.通過微調(diào)VGG-16和ResNext50來學習 (計算機視覺和圖像分類)

      對于圖像分類的工作,一個神經(jīng)網(wǎng)絡的架構已經(jīng)在多個挑戰(zhàn)中測試過,可以得到非常好的結果了。針對特定的問題,你可以通過微調(diào)模型從而得到非常具有里程碑的結果。殘留網(wǎng)絡 ResNext50 就是一個例子,一個50層的卷積神經(jīng)網(wǎng)絡。它接受了1000種ImageNet挑戰(zhàn)的訓練, 而且因為它表現(xiàn)得非常好,所以從圖像數(shù)據(jù)中提取的特征足以被重用 。要讓它在我的問題上使用,我需要做的是替換最后一層神經(jīng)網(wǎng)絡,輸出一個 1000維的向量作為ImangeNet的預測,并帶有一層網(wǎng)絡輸出一個2維向量。在上面代碼片段中,這兩個輸出被特定放在稱為PATH 的文件夾。對于蜘蛛VS蝎子的挑戰(zhàn),有以下的內(nèi)容:

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      注意到 train 文件夾的兩個內(nèi)容都是文件夾,每一個都包含了290兩張圖片。

      一個微調(diào)流程示意圖展示如下,重新訓練最后一層10維的神經(jīng)網(wǎng)絡。

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      圖片從這里獲取


      2.周期學習率(通常適用)

      學習率可能是用于訓練調(diào)整深度神經(jīng)網(wǎng)絡最重要的超參數(shù)。通常在非自適應環(huán)境中完成的(即不使用Adam,AdaDelta 或其變體),而是由DL從業(yè)者/研究者同時運行多個實驗,每個實驗在學習速率之間具有小的差異。如果你有一個非常大的數(shù)據(jù)集,這需要花費非常多的時間。如果你對用隨機矩陣建立直覺的方法缺乏經(jīng)驗,很容易出錯。然而,在2015,美國海軍研究實驗室的 Leslie N. Smith ,找到了一種自動搜索最佳學習率的方法,從一個非常小的值開始,通過網(wǎng)絡運行幾個小批量,調(diào)整學習率,同時跟蹤損失的變化,直到損失開始下降。在fast.ai上面兩篇博客解釋了周期學習率的方法,分別在這里這里

      在fast.ai,你可以利用通過在學習者對象上運行 lr_find() 來利用學習速率退火的優(yōu)勢, 運行 sched.plot()以確定與最佳學習率一致的點  ,截圖如下:

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      0.1 seems like a good learning rate

      從周期性學習率論文摘錄中顯示,它表現(xiàn)更好, 達到最高的準確度,比學習速率指數(shù)衰減的方法快兩倍以上。

      在fast.ai課堂上,我總結的8個深度學習最佳實踐圖一:Smith (2017) “使用周學習率訓練神經(jīng)網(wǎng)絡”


      3.帶重新啟動的隨機梯度下降(通常適用)

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      Fig. 2: SGD vs. snapshot ensembles (Huang et al., 2017)

      另外一個方法來加速隨機梯度下降,包含了逐漸降低學習率的訓練過程。 這有助于注意到學習速度的變化與損失的改善是否一致 。當你接近最優(yōu)的權重,你要采取更小的步驟,因為如果你采取大步驟,你可能會跳過錯誤表面的最佳區(qū)域。如果學習率和損失之間的關系是不穩(wěn)定的,比如學習率一個小的改變,就會導致?lián)p失變化很大,那我們就處在一個不穩(wěn)定的區(qū)域,就像上圖所示。那么此時策略變成周期性地提高學習率。這里的“周期”是指提高學習率的次數(shù)。這是周期學習率的流程。在fast.ai,將參數(shù) cycle_len 和 cycle_mult 傳入到 learner.fit,在上圖中,學習率被重置了3次。在使用正常的學習速率時間表時,通常需要更長的時間才能找到最佳的損失,開發(fā)人員等待所有的訓練周期完成后,再手動嘗試不同的學習速率。

      在fast.ai課堂上,我總結的8個深度學習最佳實踐


      4.數(shù)據(jù)增加(計算機視覺和圖像分類 - 現(xiàn)在)

      數(shù)據(jù)增加是一個在你已有的訓練和測試數(shù)據(jù)集中簡單的方法。比如圖片,這取決于你手頭的學習問題,并取決于數(shù)據(jù)集中圖像的對稱數(shù)量。比如說蜘蛛VS蝎子挑戰(zhàn),在數(shù)據(jù)集中的很多圖片可以垂直翻轉,仍然顯示動物,沒有奇怪的扭曲,這被稱為:transforms_side_on. 比如:

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      5.測試時間增加 ( 計算機視覺和圖像分類 - 現(xiàn)在 )

      我們在推理的時候使用數(shù)據(jù)增加(或者時間,這由此而得名)。在推理時間時,你只是在做預測。你可以用測試集中的單個圖像來完成,但是如果在被訪問的測試集中隨機生成每個圖像的幾個增量,這個過程會變得更加健壯。在fast.ai中,每個測試圖像的4個隨機增量用于預測,并將這些預測的平均值用作該圖像的預測。

      6.用預訓練的循環(huán)神經(jīng)網(wǎng)絡替換詞向量

      一種獲得世界級的情緒分析框架的方法, 不使用詞向量,而是通過使用整個你想要訓練的數(shù)據(jù)集進行分析,從中建立一個深層循環(huán)的神經(jīng)網(wǎng)絡語言模型。當模型具有高精度時,保存模型的編碼器,并使用從編碼器獲得的嵌入來構建情感分析模型。這比從詞向量獲得的嵌入矩陣更好,因為RNN可以比詞向量更好地跟蹤更大范圍的依賴性。

      7.通過時間反向傳播 (BPTT) (NLP)

      深層遞歸神經(jīng)網(wǎng)絡中的隱藏狀態(tài), 如果在反向傳播一些時間后它沒有被重置,可能會增長到難以處理的大小 。比如說,在字符級RNN上,如果你有一百萬個字符,那么你也有一百萬個隱藏的狀態(tài)向量,每個都有自己的歷史狀態(tài)。為了調(diào)整神經(jīng)網(wǎng)絡的梯度,我們需要對每個字符每批執(zhí)行一百萬條鏈規(guī)則的計算。這會消耗太多的內(nèi)存。因此,為了降低內(nèi)存,我們設置了一個最大字符數(shù)量來反向傳播。由于循環(huán)神經(jīng)網(wǎng)絡中的每個循環(huán)被稱為時間步長,所以限制反向傳播保持隱藏狀態(tài)歷史層數(shù)的任務被稱為時間反向傳播。這個數(shù)字的值決定了模型計算的時間和內(nèi)存要求,但它提高了模型處理長句或行動序列的能力。

      8.實體嵌入分類變量 ( 結構數(shù)據(jù)和NLP )

      當在結構化的數(shù)據(jù)集進行深度學習時, 它有助于區(qū)分包含連續(xù)數(shù)據(jù)的列,比如說在線商店的價格信息,列中包含了,比如日期和生產(chǎn)地址的連續(xù)數(shù)據(jù)。然后,可以將這些分類列,通過熱編碼過程轉換為指向神經(jīng)網(wǎng)絡的完全連接的嵌入層的查找表。你的神經(jīng)網(wǎng)絡因此獲得機會學習這些分類好的變量/列,如果忽略了這些列的分類性質(zhì),那么這個問題就會被忽略。它可以學習周期性事件,比如在很多年的數(shù)據(jù)集上,公眾假期之前和之后,一周中的哪一天有最多的事情。這樣做的最終結果是在預測產(chǎn)品最優(yōu)定價和協(xié)同篩選的一個非常有效的方法。這應該是所有擁有表格數(shù)據(jù)公司的標準數(shù)據(jù)分析和預測方法。所有的公司都應該使用這個。

      這個方法在 Rossmann Store Sales Kaggle 比賽中 Guo 和Berkhahn應用了,  即使他們只用最少的特征進行深度學習,也能獲得第三名。  他們在本文( this paper )概述了他們的方法。

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      Guo, Berkhahn (2016)

      最后

      AI中深度學習的分支變得越來越容易學習,庫也變得越來越好。感覺研究人員和從業(yè)人員就像爬山一樣,步伐越來越大,通過艱苦的工作編譯大型數(shù)據(jù)集和性能更好的GPU,公開發(fā)表了一套承諾顛覆人類歷史進程的工具。在我看來,AI最大的潛力在于教育和醫(yī)學,尤其是復興生物技術。

      在我們使用深度學習創(chuàng)造真正的人工智能之前,用正確的策略,在洞察力、動力和全球協(xié)調(diào)上,我們會變得更聰明、更富有,并且應該期望在本世紀末,能因為這些工具而活得更長壽、更健康。

      博客原址 https://hackernoon.com/8-deep-learning-best-practices-i-learned-about-in-2017-700f32409512 


      更多文章,關注雷鋒網(wǎng)

      添加雷鋒字幕組微信號(leiphonefansub)為好友

      備注「我要加入」,To be an  AI  Volunteer !

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      在fast.ai課堂上,我總結的8個深度學習最佳實踐

      雷鋒網(wǎng)雷鋒網(wǎng)

      雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。

      分享:

      知情人士

      AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
      當月熱門文章
      最新文章
      請?zhí)顚懮暾埲速Y料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 午夜国产精品福利一二| 亚洲av永久无码精品天堂久久| 99人体免费视频| 熟女白浆精品一区二区| 狠狠色噜噜狠狠狠狠色综合网 | 欧美黑人巨大videos精品| 男受被做哭激烈娇喘gv视频| 无码人妻中文字幕| 一二三四中文字幕日韩乱码| 老司机精品影院一区二区三区| 亚洲 欧美 中文 在线 视频 | 久久天天躁狠狠躁夜夜2020老熟妇| 成人福利国产精品视频| 亚洲精品国产suv| 国产黄三级高清在线观看播放| 国产成人综合在线观看不卡| 爱操影院| 国产成人亚洲精品狼色在线| 久久99精品国产麻豆婷婷洗澡| 中文字幕潮喷人妻系列| 久久综合激情网| 亚洲AV成人片不卡无码| 亚洲精品日本久久久中文字幕| 精品不卡一区二区| 宅男噜噜噜66一区二区| 人妻少妇看A偷人无码电影| 少妇人妻偷人精品视蜜桃| 凌海市| 亚洲国产精品自产在线播放| 亚洲欧美视频| 国产av一区二区三区| 亚洲无码一区二区三区蜜桃| av无码天堂| 亚洲中文字幕2022| 人妻人人摸| 精品无码一区在线观看| 欧美精品亚洲精品日韩精品| 久久久久国产精品熟女影院| 精品亚洲男人一区二区三区| 国产高清在线A免费视频观看| 亲近乱子伦免费视频|