<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 十三、AutoML 和學習如何學習(元學習) 深度學習的成功極大地促進了特征工程的工作。 確實,傳統的機器學習很大程度上取決于對正確的特征集的選擇,而且與選擇特定的學習算法相比,這一步驟通常更為重要。 深度學習改變了這種情況。 創建正確的模型仍然非常重要,但是現今的網絡對特定特征集的選擇已不那么敏感,并且能夠自動選擇真正重要的特征。 取而代之的是,深度學習的引入使人們更加關注正確的神經網絡架構的選擇。 這意味著研究人員的興趣正逐漸從特征工程轉向網絡工程。 **AutoML**(**元學習**)是一個新興的研究主題,旨在針對給定的學習任務自動選擇最有效的神經網絡。 換句話說,AutoML 代表*學習如何有效學習*的一組方法。 考慮例如機器翻譯,圖像識別或游戲的任務。 通常,模型是由工程師,數據科學家和領域專家組成的團隊手動設計的。 如果您認為一個典型的 10 層網絡可以具有約`10^10`個候選網絡,那么您就會知道該過程可能很昂貴,容易出錯并且最終不是最佳選擇。 # 使用循環網絡和強化學習的元學習 解決此問題的關鍵思想是擁有一個控制器網絡,該控制器網絡會在給定特定網絡輸入的情況下,以概率`p`提出*子*模型架構。 對子項進行訓練和評估,以解決要解決的特定任務(例如,子項獲得的準確率`R`)。 該評估`R`被傳遞回控制器,該控制器進而使用`R`來改善下一個候選架構。 在此框架下,可以將候選子項到控制器的反饋建模為計算`p`的梯度的任務,然后通過`R`縮放此梯度。 控制器可以實現為循環神經網絡(請參見下圖)。 這樣做,控制器將傾向于在迭代之后獲得更好的`R`的架構候選區域,并傾向于給得分不那么高的候選區域分配較低的概率。 ![](https://img.kancloud.cn/ac/43/ac4339c0161008ace88fbf19f6632113_528x236.png) 例如,控制器循環神經網絡可以對卷積網絡進行采樣。 控制器可以預測許多超參數,例如過濾器高度,過濾器寬度,步幅高度,步幅寬度和一層過濾器的數量,然后可以重復。 每個預測可以由 softmax 分類器執行,然后輸入到下一個 RNN 時間步中。 以下圖片來自[《使用增強學習的神經架構搜索》](https://arxiv.org/abs/1611.01578)(Barret Zoph,Quoc V. Le): ![](https://img.kancloud.cn/a6/bd/a6bd45b8b44684d032303beb348c5476_842x331.png) 預測超參數是不夠的,因為最好定義一組動作以在網絡中創建新層。 這特別困難,因為描述新層的獎勵函數極有可能是不可區分的,因此無法通過標準技術(例如 SGD)對其進行優化。 解決方案來自強化學習,它包括采用類似于我們的第 9 章,“強化學習”中所述的策略梯度網絡。 除此之外,并行性可用于優化控制器 RNN 的參數。 Quoc Le&Barret Zoph 建議采用參數服務器方案,其中我們有一個 S 碎片的參數服務器,用于存儲 K 個控制器副本的共享參數。 每個控制器副本都采樣了如下圖所示的并行訓練的不同子架構,如下圖所示,取自[《使用增強學習的神經架構搜索》](https://arxiv.org/abs/1611.01578)(Barret Zoph,Quoc V. Le): ![](https://img.kancloud.cn/ff/16/ff16027124c1dad5ce5ec1ee29881598_819x300.png) Quoc 和 Barret 將 AutoML 技術用于神經架構搜索應用于 [Penn Treebank 數據集](https://en.wikipedia.org/wiki/Treebank),這是語言建模的著名基準。 他們的結果改進了目前被認為是最先進的手動設計網絡。 特別是,他們在 Penn Treebank 上實現了 62.4 的測試集困惑,這比以前的最新模型好 3.6 困惑。 同樣,在 [CIFAR-10 數據集](https://www.cs.toronto.edu/~kriz/cifar.html)上,該方法可以設計一種新穎的網絡架構,與測試集準確率方面最好的人類發明架構旗鼓相當。 提出的 CIFAR-10 模型實現了 3.65 的測試錯誤率,比使用類似架構方案的最新技術模型好 0.09%,并且快 1.05 倍。 # 元學習塊 在[《用于可伸縮圖像識別的學習可傳輸架構》](https://arxiv.org/abs/1707.07012)(Barret Zoph,Vijay Vasudevan,Jonathon Shlens,Quoc V. Le,2017)中,建議在小型數據集上學習架構構造塊,然后將其傳輸到大型數據集。 作者建議在 CIFAR-10 數據集上搜索最佳的卷積層(或單元),然后通過堆疊該單元的更多副本(每個都有其自己的參數),將此學習到的單元應用于 ImageNet 數據集。 準確地說,所有卷積網絡都是由結構相同但權重不同的卷積層(或單元)組成的。 因此,將搜索最佳卷積架構簡化為搜索最佳單元結構,這樣可以更快地將其推廣到其他問題。 盡管無法在 ImageNet 上直接學習該單元,但是在已發表的工作中,由學得最好的單元構成的架構可實現 ImageNet 的最新精度為 82.7% top-1 和 96.2% top-5。 該模型的 top-1 準確率比人類發明的最佳架構高 1.2%,而 FLOPS 則減少了 90 億個,與之前的最新模型相比降低了 28%。 還需要注意的重要一點是,使用 RNN + RL(循環神經網絡+強化學習)學習的模型正在擊敗隨機搜索(RL)代表的基線,如本文中所取的圖所示。 在 RL 與 RS 中確定的前 5 名和前 25 名模型的平均表現中,RL 始終是贏家: ![](https://img.kancloud.cn/49/98/49988d7713bfe369431793d24dea239c_483x344.png) # 新任務的元學習 可以對元學習系統進行訓練以完成大量任務,然后對其元學習新任務的能力進行測試。 這種元學習的一個著名例子是在高級 CNN 章節中討論的所謂遷移學習,其中網絡可以從相對較小的數據集中成功學習基于圖像的新任務。 但是,對于諸如語音,語言和文本之類的非視覺領域,沒有類似的預訓練方案。 [《用于快速適應深度網絡的模型不可知元學習》](https://arxiv.org/abs/1703.03400)(切爾西·芬恩(Chelsea Finn),彼得·阿比爾(Siety Levine),2017 年)提出了一個模型 -不可知論方法的名稱為 MAML,它與經過梯度下降訓練的任何模型兼容,并且適用于各種不同的學習問題,包括分類,回歸和強化學習。 元學習的目標是針對各種學習任務訓練模型,以便僅使用少量訓練樣本即可解決新的學習任務。 元學習器旨在找到一種可以快速(以很少的步驟)并有效地(僅使用幾個示例)快速適應各種問題的初始化。 用參數為θ的參數化函數`f[0]`表示的模型。 當適應新任務`T[i]`時,模型參數`θ`變為`θ[i']`。 在 MAML 中,使用對任務`T[i]`的一個或多個梯度下降更新來計算更新的參數向量`θ[i']`。 例如,當使用一個梯度更新時,`θ[i'] = θ - α?[0]L[Ti](f[θ])`,其中`L[Ti]`是任務`T`的損失函數,而`α`是元學習參數。 該圖報告了 MAML 算法: ![](https://img.kancloud.cn/4d/fc/4dfc171cba87dd724ffee3957f7bc981_343x225.png) MAML 能夠在流行的少拍圖像分類基準上大大勝過許多現有方法。 旨在從一個或幾個概念中學習新概念的鏡頭很少有挑戰性。 例如,[《通過概率性程序歸納進行人級概念學習》](https://www.cs.cmu.edu/~rsalakhu/papers/LakeEtAl2015Science.pdf)(Brenden M. Lake,Ruslan Salakhutdinov,Joshua B. Tenenbaum,2015 年),建議人們可以學會從單個圖片中識別新穎的兩輪車,例如紅色框中包含的圖片,如下所示: ![](https://img.kancloud.cn/fc/b2/fcb294557c18a57a398b92c3870febd7_210x224.png) 在 2017 年底,AutoML(或元學習)主題是一個活躍的研究主題,旨在針對給定的學習任務自動選擇最高效的神經網絡。 目標是學習如何高效,自動地設計網絡,從而可以學習特定任務或適應新任務。 主要問題是不能簡單地用可微分的損失函數描述網絡的設計,因此傳統的優化技術不能簡單地用于元學習。 因此,已經提出了一些解決方案,包括具有控制器循環網絡(RNN)和基于強化學習的獎勵策略的思想,以及具有與模型無關的元學習的思想。 兩種方法都非常有前途,但是肯定還有很多研究空間。 因此,如果您對一個熱門話題感興趣,那么*學習深度學習*當然是一個可以考慮作為下一份工作的空間。 * Google 提出了[采用 RNN 作為控制器的方法](https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html),該方法使用機器學習來探索神經網絡架構。 * [《帶有增強學習的神經架構搜索》](https://arxiv.org/abs/1611.01578)(Barret Zoph,Quoc V. Le)是一篇開創性的論文,它證明了有關 Google 方法的更多細節。 但是,RNN 不是唯一的選擇。 * [《圖像分類器的大規模發展》](https://arxiv.org/abs/1703.01041)(Esteban Real,Sherry Moore,Andrew Selle,Saurabh Saxena,Yutaka Leon Suematsu,Jie Tan,Quoc Le,Alex Kurakin,2017 年)提出在進化遺傳算法中使用遺傳計算來探索新的候選網絡。 * [《學習用于可伸縮圖像識別的可遷移架構》](https://arxiv.org/abs/1707.07012)(Barret Zoph,Vijay Vasudevan,Jonathon Shlens,Quoc V. Le)提出了在 CIFAR 上學習的單元,用于改善 ImageNet 分類。 * [《構建可以建立人工智能的 AI》](https://www.nytimes.com/2017/11/05/technology/machine-learning-artificial-intelligence-ai.html):谷歌和其他公司為爭奪一小部分研究人員而奮斗,他們正在尋找自動方法來應對人工智能專家的短缺。 * [《用于快速適應深度網絡的模型不可知元學習》](https://arxiv.org/abs/1703.03400)(切爾西·芬恩(Chelsea Finn),彼得·阿比耶爾(Pieter Abbeel),謝爾蓋·萊文(Sergey Levine),2017 年)。 * [《通過梯度下降學習》](https://arxiv.org/abs/1606.04474)(Marcin Andrychowicz,Misha Denil,Sergio Gomez,Matthew W. Hoffman,David Pfau,Tom Schaul,Brendan Shillingford,Nando de Freitas)展示了如何將優化算法的設計轉換為學習問題,從而使該算法能夠自動學習感興趣的問題中的結構。 LSMT 學習的算法在訓練任務上勝過手工設計的競爭對手,并且可以很好地推廣到結構相似的新任務。 該算法的代碼可在 [GitHub](https://github.com/deepmind/learning-to-learn) 上獲得。 # 連體網絡 連體網絡是 Yann LeCun 及其同事在 NIPS 1994 中提出的[一種特殊類型的神經網絡](http://www.worldscientific.com/doi/pdf/10.1142/S0218001493000339)。 它們背后的基本思想是,像“連體雙胞胎”一樣,該網絡由兩個不同的神經網絡組成,它們共享相同的架構和權重。 在這里,您可以看到連體架構: ![](https://img.kancloud.cn/91/b8/91b893e521ed4a985706ef30eac1a6e8_1223x1070.png) 在訓練階段,該對網絡會顯示一個訓練對`(X[1], X[2])`,其中兩個輸入不同但相似,例如, `X[1] = 他很聰明`,而`X[2] = 他是一個聰明人`。 這兩個神經網絡將產生兩個不同的結果。 可以將組合網絡視為測量訓練對`(X[1], X[2])`之間相似度的標量**能量函數** , 定義為: ![](https://img.kancloud.cn/c3/b3/c3b351ca30c1b3b5ed51a35573977763_191x22.png) 連體網絡的目標是訓練對`(X[1], X[2])`之間的能量應小于其他贗品對之間的能量`(X[1], X'[2])`。 這可以通過使用**對比損失函數**進行訓練來實現。 在訓練階段,網絡被輸入一個訓練對和一個與之相關的標簽,告訴它是一個真正的對或贗品對的網絡:`(X[1], X[2], Y[i])`第`i`個訓練樣本。 對比損失函數計算如下: ![](https://img.kancloud.cn/40/e7/40e7d6f51f9459ac128cc53e0a3cb6c5_242x53.png) 其中, ![](https://img.kancloud.cn/ce/20/ce2022954febc0e92430a5857fdaa2db_364x20.png) 和`L[G]`是真正對的部分損失, `L[I]`是贗品的部分損失對和`P`訓練樣本數。 當偶對是正品時,標簽`Y`的值為 0;當偶對是贗品時,標簽`Y`的值為 1。 設計局部損失`L[G]`和`L[I]`的方式應使對比損耗`L(W)`將減少真正對的能量并增加贗品的能量。 這是通過選擇部分損失`L(G)`單調增加而選擇部分損失`L(I)`單調減少`f`來實現的。 一種可能的選擇是使用余弦相似度來計算部分損耗。 使用反向傳播算法調整權重。 # 連體網絡的應用 近年來,連體網絡已用于許多應用。 他們在 LeCun 論文中首次使用的是簽名驗證。 從那時起,出現了許多應用,我們將介紹一些最近的應用: * [與連體網絡進行說話人和語音相似性的聯合學習](https://pdfs.semanticscholar.org/4ffe/3394628a8a0ffd4cba1a77ea85e197bd4c22.pdf):他們訓練了一個多輸出連體網絡,其中一個輸出用于語音相似性,其他用于演講者相似性。 他們將工作擴展到三體網絡。 * [用于對象跟蹤的全卷積連體網絡](https://link.springer.com/chapter/10.1007/978-3-319-48881-3_56):他們使用在 ILSVRC15 數據集上訓練的卷積連體網絡進行視頻中的目標檢測。 * 我們站在一起:[連體網絡進行類似問題的檢索](http://www.aclweb.org/anthology/P16-1036):本文使用連體網絡來查找當前問題和已歸檔問題之間的語義相似性 。 他們還使用了卷積連體網絡。 除此之外,還對連體網絡進行了[臉部驗證/識別](https://github.com/harveyslash/Facial-Similarity-with-Siamese-Networks-in-Pytorch)。 [它們已用于問題解答](https://arxiv.org/pdf/1512.05193v2.pdf)。 # 一個有效的例子 -- MNIST 工作示例基于 [Github 頁面](https://github.com/ywpkwon/siamese_tf_mnist)。 此處的代碼使用連體網絡將手寫的 MNIST 數字嵌入到 2D 空間中,屬于同一類的數字被嵌入在一起。 該代碼包含三個主要文件: + `run.py`:它包含執行訓練的基本包裝。 它使用“梯度下降”算法將對比度損失降至最低。 + `inference.py`:包含定義 3 層全連接網絡的連體類。 代碼中兩個網絡的輸出之間的相似性是歐幾里得。 然后,使用部分生成損失和部分贗品損失來計算對比損失。 + `visualize.py`:這只是用于可視化結果的包裝。 經過前 100,000 個訓練步驟,結果是: ![](https://img.kancloud.cn/ab/3b/ab3b28943cad629a18525528f174f373_724x478.png) 您可以看到相同(標記)的數字一起嵌入 2D 空間。 還有另一個有趣的示例](https://github.com/dhwajraj/deep-siamese-text-similarity) 。 在這里,使用 Tensorflow,訓練了深層的連體 LSTM 網絡以使用字符嵌入來捕獲短語/句子相似性。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看