GAN 在圖像生成上取得了巨大的成功,這無疑取決於 GAN 在博弈下不斷提高建模能力,最終實現以假亂真的圖像生成。
Author Archive
機器學習領域,史上引用次數最多的論文 Top 10
近40年來機器學習領域產生了數以萬計的論文,並以每年上萬篇的速度增長。但真正能夠稱為經典、經受住歷史檢驗、能投入實際應用的並不多。本文整理了機器學習歷史上出現的經典論文,按照被引用次數對它們進行了排序,分為top10,被引用次數超過2萬,被引用次數超過1萬,未來有潛力的文章4部分。
不誇大、不炒作:透過機器學習實例看清AI本質
我們一起來看看AI和機器學習對當今的技術發揮着怎樣的影響,因為當AI真的徹底改變了世界之後,再來了解這些影響可能就太晚了。
元學習 – Meta learning
元學習是人工智能領域裡一個較新的方向,被認為是實現通用人工智能的關鍵。
為什麼他如此重要?如何快速簡單的理解元學習的精髓?本文將詳細給大家介紹一下元學習。
為什麼元學習很重要?
元學習的核心是具備自學能力。那為什麼需要自學能力?
機器學習:簡單的機器學習很難處理複雜問題;
深度學習:深度學習相比機器學習來說,在複雜問題上的效果更好,但是面對互相影響的問題或者連續問題時就無從下手了,智能處理一對一的映射問題;
強化學習:依賴海量的訓練,並且需要精準的獎勵。成本較高且比較複雜。
元學習:具備自學能力,能夠充分利用過去的經驗來指導未來的任務。被認為是實現通用人工智能的關鍵。
什麼是元學習?
元學習的思想是學習「學習(訓練)」過程。
元學習有好幾種實現方法,不過本文談到的兩種「學習『學習』過程」的方法和上文介紹的方式很類似。 在我們的訓練過程中,具體而言,可以學習到兩點:
- 神經網絡的初始參數(圖中的藍色■);
- 優化器的參數(粉色的★)。
我會介紹將這兩點結合的情況,不過這裡的每一點本身也非常有趣,而且可獲得到簡化、加速以及一些不錯的理論結果。 現在,我們有兩個部分需要訓練:
- 用「模型(M)」這個詞來指代我們之前的神經網絡,現在也可以將其理解為一個低級網絡。有時,人們也會用「優化對象(optimizee)」或者「學習器(learner)」來稱呼它。該模型的權重在圖中用 ■ 表示。
- 用「優化器(O)」或者「元學習器」來指代用於更新低級網絡(即上述模型)權重的高級模型。優化器的權重在圖中用 ★ 表示。
維基百科
元學習最初由Donald B. Maudsley(1979)描述為“學習者意識到並且越來越多地控制他們已經內化的感知,探究,學習和成長習慣的過程”。Maudsely將他的理論的概念基礎設定為在假設,結構,變革過程和促進的標題下合成。闡述了五個原則以促進元學習。學習者必須:
- 有一個理論,無論多麼原始;
- 在安全的支持性社會和物質環境中工作;
- 發現其規則和假設;
- 重新與環境中的現實信息聯繫起來;
- 通過改變其規則/假設來重組自己。
John Biggs(1985)後來使用元學習的概念來描述“意識到並控制自己的學習”的狀態。您可以將元學習定義為對學習本身現象的認識和理解,而不是學科知識。這個定義隱含着學習者對學習環境的感知,包括了解學科的期望是什麼,更簡單地說,是對特定學習任務的要求。
在這種背景下,元學習取決於學習者的學習觀念,認識論信念,學習過程和學術技能,在此總結為一種學習方法。具有高水平元學習意識的學生能夠評估她/他的學習方法的有效性,並根據學習任務的要求對其進行管理。相反,元學習意識低的學生將無法反思她/他的學習方法或學習任務集的性質。因此,當學習變得更加困難和苛刻時,他/她將無法成功適應。
擴展閱讀
遺傳算法(Genetic algorithm | GA)
小白版本
遺傳算法借鑒了生物學中的遺傳原理,是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。
其本質是一種高效、並行、全局搜索的方法,能在搜索過程中自動獲取和積累有關搜索空間的知識,並自適應地控制搜索過程以求得最佳解。
由於整個邏輯比較複雜,可以看看《超詳細的遺傳算法(Genetic Algorithm)解析》
百度百科版本
遺傳算法(Genetic Algorithm)是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。遺傳算法是從代表問題可能潛在的解集的一個種群(population)開始的,而一個種群則由經過基因(gene)編碼的一定數目的個體(individual)組成。
每個個體實際上是染色體(chromosome)帶有特徵的實體。染色體作為遺傳物質的主要載體,即多個基因的集合,其內部表現(即基因型)是某種基因組合,它決定了個體的形狀的外部表現,如黑頭髮的特徵是由染色體中控制這一特徵的某種基因組合決定的。因此,在一開始需要實現從表現型到基因型的映射即編碼工作。
由於仿照基因編碼的工作很複雜,我們往往進行簡化,如二進制編碼,初代種群產生之後,按照適者生存和優勝劣汰的原理,逐代(generation)演化產生出越來越好的近似解,在每一代,根據問題域中個體的適應度(fitness)大小選擇(selection)個體,並藉助於自然遺傳學的遺傳算子(genetic operators)進行組合交叉(crossover)和變異(mutation),產生出代表新的解集的種群。這個過程將導致種群像自然進化一樣的後生代種群比前代更加適應於環境,末代種群中的最優個體經過解碼(decoding),可以作為問題近似最優解。
維基百科版本
在計算機科學和運籌學研究中,遺傳算法(GA)是一種受自然選擇過程啟發的元啟發式,屬於更大類的進化算法(EA)。遺傳算法通常用於生成高質量的優化和搜索問題的解決方案,依靠生物啟發的運算符,如變異,交叉和選擇。John Holland在1960年基於達爾文進化論的概念引入了遺傳算法; 之後,他的學生戈德堡於1989年延長了GA。
擴展閱讀
2019年深度學習的十大預測
革命性進展應該分階段發生,我們今天遇到的是實現Interventional level的主要障礙。這並不意味着我們不能取得任何進展,而是在目前的成熟度水平中有許多懸而未決的成果,而這些成果已經準備好進行開發,DL在2019年的進展將主要圍繞這一務實的認識。
Facebook利用跨字嵌入實現無監督機器翻譯
本文轉載自公眾號 微軟研究院AI頭條,原文地址
現有的機器翻譯需要大量的翻譯文本做訓練樣本,這使得機器翻譯只在一小部分樣本數量充足的語言上表現良好,但如何在沒有源翻譯的情況下訓練機器翻譯模型,即無監督訓練,成為了目前熱門的研究話題。Facebook在EMNLP 2018上的論文《Phrase-Based & Neural Unsupervised Machine Translation》利用跨字嵌入(Cross Word Embedding),提升了高達11 BLEU,那麼Facebook是如何實現的呢?
第一步是讓系統學習雙語詞典。系統首先為每種語言中的每個單詞訓練詞嵌入,訓練詞嵌入通過上下文來預測給定單詞周圍的單詞。不同語言的詞嵌入具有相似的鄰域結構,因此可以通過對抗訓練等方法讓系統學習旋轉變換一種語言的詞嵌入,以匹配另一種語言的詞嵌入。基於這些信息,就可以得到一個相對準確的雙語詞典,並基本可以實現逐字翻譯。在得到語言模型和初始的逐字翻譯模型之後,就可以構建翻譯系統的早期版本。
然後將系統翻譯出的語句作為標註過的真實數據進行處理,訓練反向機器翻譯系統,得到一個更加流暢和語法正確的語言模型,並將反向翻譯中人工生成的平行句子與該語言模型提供的校正相結合,以此來訓練這個翻譯系統。
通過對系統的訓練,形成了反向翻譯的數據集,從而改進原有的機器翻譯系統。隨着一個系統得到改進,可以使用它以迭代方式在相反方向上為系統生成訓練數據,並根據需要進行多次迭代。
逐字嵌入初始化、語言建模和反向翻譯是無監督機器翻譯的三個重要原則。將基於這些原理得到的翻譯系統應用於無監督的神經模型和基於計數的統計模型,從訓練好的神經模型開始,使用基於短語模型的其它反向翻譯句子對其進行訓練,最終得到了一個既流暢,準確率又高的模型。
對於無監督機器翻譯,微軟亞洲研究院自然語言計算組也進行了探索。研究人員利用後驗正則(Posterior Regularization)的方式將SMT(統計機器翻譯)引入到無監督NMT的訓練過程中,並通過EM過程交替優化SMT和NMT模型,使得無監督NMT迭代過程中的噪音能夠被有效去除,同時NMT模型也彌補了SMT模型在句子流暢性方面的不足。相關論文《Unsupervised Neural Machine Translation with SMT as Posterior Regularization》已被AAAI 2019接收。
預訓練(Pre-train)
微軟研究院版本
目前神經網絡在進行訓練的時候基本都是基於後向傳播(Back Propagation,BP)算法,通過對網絡模型參數進行隨機初始化,然後利用優化算法優化模型參數。但是在標註數據很少的情況下,通過神經網絡訓練出的模型往往精度有限,“預訓練”則能夠很好地解決這個問題,並且對一詞多義進行建模。
預訓練是通過大量無標註的語言文本進行語言模型的訓練,得到一套模型參數,利用這套參數對模型進行初始化,再根據具體任務在現有語言模型的基礎上進行精調。預訓練的方法在自然語言處理的分類和標記任務中,都被證明擁有更好的效果。目前,熱門的預訓練方法主要有三個:ELMo,OpenAI GPT和BERT。
在2018年初,艾倫人工智能研究所和華盛頓大學的研究人員在題為《Deep contextualized word representations》一文中提出了ELMo。相較於傳統的使用詞嵌入(Word embedding)對詞語進行表示,得到每個詞唯一固定的詞向量,ELMo 利用預訓練好的雙向語言模型,根據具體輸入從該語言模型中可以得到在文本中該詞語的表示。在進行有監督的 NLP 任務時,可以將 ELMo 直接當做特徵拼接到具體任務模型的詞向量輸入或者是模型的最高層表示上。
在ELMo的基礎之上,OpenAI的研究人員在《Improving Language Understanding by Generative Pre-Training》提出了OpenAI GPT。與ELMo為每一個詞語提供一個顯式的詞向量不同,OpenAI GPT能夠學習一個通用的表示,使其能夠在大量任務上進行應用。在處理具體任務時,OpenAI GPT 不需要再重新對任務構建新的模型結構,而是直接在 Transformer 這個語言模型上的最後一層接上 softmax 作為任務輸出層,再對這整個模型進行微調。
ELMo和OpenAI GPT這兩種預訓練語言表示方法都是使用單向的語言模型來學習語言表示,而Google在提出的BERT則實現了雙向學習,並得到了更好的訓練效果。具體而言,BERT使用Transformer的編碼器作為語言模型,並在語言模型訓練時提出了兩個新的目標:MLM(Masked Language Model)和句子預測。MLM是指在輸入的詞序列中,隨機的擋上 15% 的詞,並遮擋部分的詞語進行雙向預測。為了讓模型能夠學習到句子間關係,研究人員提出了讓模型對即將出現的句子進行預測:對連續句子的正誤進行二元分類,再對其取和求似然。
上面內容轉載自公眾號 微軟研究院AI頭條,原文地址
百度百科版本
無監督預訓練是用來訓練的數據不包含輸出目標,需要學習算法自動學習到一些有價值的信息。
擴展閱讀
玩轉TensorFlow?你需要知道這30功能
twitter 上有一位 Goolge AI 工程師、Google AI 的積極宣傳者 Paige Bailey (@DynamicWebPaige)總結了 TensorFlow 的 30 個主要功能
一文詳解 TensorFlow 2.0 的 符號式 API 和命令式 API
Josh Gordon 在 TensorFlow 官網上發布了一篇博客,詳細介紹了符號式 API(symbolic API)和命令式 API(imperative API),並詳細介紹了兩種樣式各自的優點和局限性,以及各自適用於哪些場景。