谷歌大腦提出AutoML-Zero,只會數學運算就能找到AI演算法 | 開源
AlphaGo戰勝了人類最強棋手,但前提是它先學會了人類棋譜,離不開人類指導。
接著谷歌又推出了AlphaGo Zero,只讓AI知道圍棋規則,從零開始學下棋,結果再次登上棋藝頂峰。
AI既然能從零學習圍棋,是否可以從零開始摸索機器學習演算法?當然可以,谷歌大腦團隊最新的研究成果已經做到了。
谷歌將這種技術稱之為 AutoML-Zero,意為“從零開始的自動機器學習”,已經在GitHub開源,並在Arxiv上提交了論文。
而且這一研究還是來自谷歌大腦的Quoc V.Le大神之手。
AutoML-Zero僅使用基本數學運算為基礎,從一段空程式開始,即可自動發現解決機器學習任務的計算機程式。
AutoML Zero能發現什麼
AutoML是一種實現從資料集到機器學習模型的自動化方法,讓你無需高深專業知識,就能自動部署ML模型。
雖說是自動,但現階段的AutoML還要對搜尋空間進行很大的限制,這使我們在使用AutoML的時候仍然需要一些專業知識去設計神經網路的層。
谷歌的目標是讓AutoML可以走得更遠,僅僅使用基本的數學運算作為構建塊,就可以自動發現完整的機器學習演算法,進一步降低機器學習的門檻。
儘管AutoML-Zero巨大的搜尋空間充滿挑戰性,但進化搜尋還是能發現具有梯度下降的線性迴歸演算法、具有反向傳播的二層神經網路。
值得注意的是,可以AutoML-Zero的進化過程也是一個不斷“發明”的過程解釋進化的演算法,它已經找到了雙線性 互動、權重平均、歸一化梯度、資料增強等技術,甚至在某些情況下還發現了類似Dropout的演算法。
下面我們先來看看,AutoML在CIFAR-10的二元分類任務上是如何一步步進化的。它首先發現了線性迴歸,然後找到了損失函式、梯度下降。
隨著訓練的進行,出現了隨機學習率、隨機權重、啟用函式ReLU、梯度歸一化,最後得到了84.06 ± 0.10%正確率的終極演算法。
只訓練一個二元分類結果還不太具有說服力,作者又用3種極端情況考察了Auto ML。
首先,當樣本數量很少的時候,在80個樣本上執行100個epoch。AutoML竟然進化出另一種適應性演算法,給輸入資料加上了噪聲,並開始使用Dropout來訓練模型。
在快速訓練的情況下,只有800個樣本和10個epoch,結果導致學習率衰退反覆出現,這是一個我們在快速訓練訓練機器學習模型中常見的策略。
至於多類別的分類問題,作者使用了CIFAR-10資料集的所有10個類。AutoML進化演算法有時會使用權重矩陣的變換平均值作為學習速率。甚至作者也不知道為什麼這種機制會更有利於多類任務,雖然這種結果在統計學上是顯著的。
上面的所有測試整個過程中,人類沒有告訴程式任何先驗的機器學習知識。
演示
現在谷歌將AutoML-Zero的程式提交到GitHub,普通電腦只需5分鐘就能體驗一下它的實際效果。
安裝好Bazel後,將程式碼下載到本地,執行其中的demo程式:
git clone https://github.com/google-research/google-research.git
cd google-research/automl_zero
./run_demo.sh
這個指令碼在10個線性任務上執行進化搜尋。每次實驗後,它都會評估在100個新的線性任務中發現的最佳演算法。一旦演算法的適應度大於0.9999,就選擇該演算法作為最終結果,將程式碼列印在螢幕上。
在普通電腦上使用CPU在5分鐘內就能發現類似於梯度下降進行線性迴歸的程式:
found:
found:
def Setup():
s3 = -0.520936
s2 = s2 * s3
s2 = dot(v1, v1)
v2 = s2 * v1
s2 = s3 * s2
v1 = s0 * v2
s2 = s0 - s3
s2 = -0.390138
v2 = s2 * v0
s1 = dot(v1, v0)
def Predict():
s2 = -0.178737
s1 = dot(v1, v0)
def Learn():
s1 = s1 * s2
s3 = s3 * s2
s2 = s0 * s2
s1 = s1 - s2
v2 = s1 * v0
v1 = v2 + v1
v2 = s3 * v0
v1 = v2 + v1
由人工設計的ML演算法是,有興趣的話,你可以比較這兩段程式的差異。
def Setup():
s2 = 0.001 # Init learning rate.
def Predict(): # v0 = features
s1 = dot(v0, v1) # Apply weights
def Learn(): # v0 = features; s0 = label
s3 = s0 - s1 # Compute error.
s4 = s3 * s1 # Apply learning rate.
v2 = v0 * s4 # Compute gradient.
v1 = v1 + v2 # Update weights.
關於作者
這篇文章的四位作者分別是:Esteban Real、Chen Liang、David R. So以及谷歌大腦的大神Quoc V.Le。
前兩位都是有物理背景的博士生。Esteban Real畢業於哈佛大學,擁有物理學士學位和神經科學博士學位。他的研究方向是視網膜的神經編碼。
Chen Liang畢業於北京大學物理系,之後獲得了西北大學的人工智慧和機器學習博士學位,現在是谷歌大腦的一名研究員,研究方向是強化學習、NLP和AutoML。
傳送門
論文地址:https://arxiv.org/abs/2003.03384
GitHub地址:https://github.com/google-research/google-research/tree/master/automl_zero
— 完 —
https://www.toutiao.com/i6802803803381826060/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2679945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 無需數學就能寫AI,MIT提出AI專用程式語言GenAIMIT
- 谷歌總是找不到想要的內容?學會這14個技巧,立馬就能找到谷歌
- 谷歌提出最新引數優化方法Adafactor,已在TensorFlow中開源谷歌優化
- 對大腦進行逆向工程,會找到AI的明日之光嗎?AI
- 數十億次數學運算消耗幾毫瓦電力,谷歌開源Pixel4背後的視覺模型谷歌視覺模型
- 谷歌開發者大會爐邊談話,Hinton解析AI如何影響人類理解大腦谷歌AI
- 谷歌大腦提出NAS-FPN:這是一種學會自動架構搜尋的特徵金字塔網路谷歌架構特徵
- 最新進展!谷歌AutoML-Zero驗證自我演化:成功復現數十年AI演進歷程谷歌TOMLAI
- Python數學運算Python
- 想象力驚人!只憑一句話,AI就能腦補出動漫小片AI
- 加速產業AI化!浪潮提出”元腦“生態計劃,要成就行業AI大腦產業AI行業
- 高精度數學運算
- 谷歌大腦新研究:強化學習如何學會用聲音來觀察?谷歌強化學習
- PODsys:大模型AI算力平臺部署的開源“神器”大模型AI
- PODsys:大模型AI算力平臺部署的開源"神器"大模型AI
- java大數運算詳解【其十】大數除法之Burnikel-Ziegler除法演算法Java演算法
- 風變RPA智慧辦公,會簡單操作電腦就能學得會!
- 運維不是修電腦!月薪30K的高階運維告訴你,學會這些就能逆襲運維
- 和演算法渣一起練習--利用位運算,輕輕鬆鬆就能解決數學裡的子集問題演算法
- 谷歌大腦提出概念啟用向量,助力神經網路可解釋性研究谷歌神經網路
- java大數運算詳解【其九】大數除法之試商法(Knuth除法)核心演算法Java演算法
- 12%計算量就能媲美原模型,Adobe、羅切斯特大學等提出YOPO剪枝技術模型
- java大整數四則運算Java
- 6 年前,只會 JSP 和 Servlet 就可以找到工作JSServlet
- 計算機、數學、運籌學等領域的32個重要演算法計算機演算法
- 大數運算—大數加法、減法、乘法、除法詳解
- 谷歌AI良心開源:一部手機就能完成3D目標檢測,還是實時的那種谷歌AI3D
- 讀天才與演算法:人腦與AI的數學思維筆記19_深度數學演算法AI筆記
- DeepSeek開源數學大模型,高中、大學定理證明新SOTA大模型
- 計算機架構頂會ISCA 2018唯一中國論文:清華大學提出AI計算晶片的儲存優化新方法計算機架構AI晶片優化
- 正則實現數學運算
- 2023雲棲大會開幕:全球數萬開發者參會,展現AI時代的雲端計算創新AI
- 腦洞大開!機器學習與AI突破(附連結)機器學習AI
- 2019 AI開發者大會AI
- 谷歌大腦開發機器思維的“人類翻譯器”,打破AI“黑盒”新方式谷歌AI
- JavaScript數字開任意次方運算JavaScript
- 谷歌開源“窮人版”摘要生成NLP模型:1000個樣本就能打敗人類谷歌模型
- 谷歌、OpenAI學者談AI:語言模型正在努力「攻克」數學谷歌OpenAI模型