偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

性能超過人類煉丹師,AutoGluon 低調(diào)開源

新聞 人工智能
近日,亞馬遜正式推出了開源代碼庫 AutoGluon。開發(fā)者依靠僅僅幾行代碼,就可以編寫出 AI 嵌入應(yīng)用程序。

 自動機(jī)器學(xué)習(xí)效果能有多好?比如讓 MobileNet1.0 backbone 的 YOLO3 超過 ResNet-50 backbone 的 faster-rcnn 六個(gè)點(diǎn)?AutoGluon 的問世說明,人類煉丹師可能越來越不重要了。

近日,亞馬遜正式推出了開源代碼庫 AutoGluon。開發(fā)者依靠僅僅幾行代碼,就可以編寫出 AI 嵌入應(yīng)用程序。

一個(gè)多月前,AutoGluon 在 GitHub 已經(jīng)悄悄上線,但最近幾天才正式公開發(fā)布。

開發(fā)者「Justin ho」搶先體驗(yàn)了一下 AutoGluon,以下是他的心得體會:

性能超过人类炼丹师,AutoGluon 低调开源

「ResNet-50 backbone + FasterRCNN 騎臉怎么輸嘛?!?/p>

但,最終測試集成績非常出人意料,AutoGluon 通過 NAS 搜索的結(jié)果直接高了六個(gè)點(diǎn)。

性能超过人类炼丹师,AutoGluon 低调开源

對此,李沐表示:

性能超过人类炼丹师,AutoGluon 低调开源

知乎用戶 @Justin ho。

李沐在知乎上回應(yīng):

AutoML 使用大概 15 倍于單次訓(xùn)練的代價(jià),得到的結(jié)果可能比手調(diào)的要好。這個(gè)主要是對于 CV 而言,尤其是 detection 模型,預(yù)計(jì) GluonCV 里面模型很快贏來一大波提升。

AutoGluon 取了一個(gè)巧,我們目前只支持 GluonCV 和 GluonNLP 里面的任務(wù),和額外的 Tabular 數(shù)據(jù)(因?yàn)橐粋€(gè)小哥之前有過經(jīng)驗(yàn))。所以我們可以把以前的很有經(jīng)驗(yàn)東西放進(jìn)去來減小搜參空間,從而提升速度。

當(dāng)然 AutoGluon 還是早期項(xiàng)目,我本來想是讓團(tuán)隊(duì)再開發(fā)一些時(shí)間再公開。還有太多有意思的應(yīng)用、算法、硬件加速可以做的。非常歡迎小伙伴能一起貢獻(xiàn)。

AutoGluon:新特性

性能超过人类炼丹师,AutoGluon 低调开源

圖解 AutoGluon。

AutoGluon 支持易使用和易擴(kuò)展的 AutoML,并專注于涵蓋圖像、文本或表格數(shù)據(jù)的深度學(xué)習(xí)和實(shí)際應(yīng)用。AutoGluon 適用于機(jī)器學(xué)習(xí)初學(xué)者和專家,能夠使他們:

  • 通過幾行代碼即可快速地為數(shù)據(jù)構(gòu)建深度學(xué)習(xí)原型方案;
  • 利用自動超參數(shù)微調(diào)、模型選擇/架構(gòu)搜索和數(shù)據(jù)處理;
  • 無需專家知識即可自動使用深度學(xué)習(xí) SOTA 方法;
  • 輕松地提升現(xiàn)有定制模型和數(shù)據(jù)管道,或者根據(jù)用例自定義 AutoGluon。

支持功能

現(xiàn)在 AutoGluon 已經(jīng)支持了以下一些應(yīng)用:

  • 表格預(yù)測:基于數(shù)據(jù)表中一些列的值預(yù)測其他列的值;
  • 圖像分類:識別圖像中的主要對象;
  • 對象檢測:借助圖像中的邊界框檢測多個(gè)對象;
  • 文本分類:基于文本內(nèi)容做出預(yù)測。

性能超过人类炼丹师,AutoGluon 低调开源

除了這些之外,AutoGluon 還可以進(jìn)行神經(jīng)架構(gòu)搜索,使用起來較為簡便。

怎樣使用 AutoGluon 呢?官方文檔中提供了示例代碼,機(jī)器之心進(jìn)行了節(jié)選:

示例代碼

表格預(yù)測

對于用表格形式(存儲為 CSV 文件等)來表示的標(biāo)準(zhǔn)數(shù)據(jù)集來說,AutoGluon 可以自動根據(jù)其他列的值來預(yù)測某一列值。只需要調(diào)用一次 fit(),就可以在標(biāo)準(zhǔn)的監(jiān)督學(xué)習(xí)任務(wù)(包括分類和回歸)中實(shí)現(xiàn)很高的準(zhǔn)確性,而無需數(shù)據(jù)清洗、特征工程、超參數(shù)優(yōu)化、模型選擇等等繁瑣的流程。

首先,導(dǎo)入 AutoGluon 中預(yù)測表格的相關(guān) api。

  1. import autogluon as agfrom autogluon import TabularPrediction as task 

加載數(shù)據(jù)(這里使用官方教程提供的數(shù)據(jù)集)。

  1. train_data = task.Dataset(file_path='https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')train_data = train_data.head(500) # subsample 500 data points for faster demoprint(train_data.head()) 

表格 train_data 中的每一行都對應(yīng)單獨(dú)的訓(xùn)練樣本。在官方教程提供的數(shù)據(jù)集中,每一行對應(yīng)單個(gè)人,并且表格列包含各種統(tǒng)計(jì)特征。

我們先來用這些特征預(yù)測一下某個(gè)人的收入是否超過 5 萬美元,相關(guān)信息記錄在該表的 class 列中。

性能超过人类炼丹师,AutoGluon 低调开源

然后進(jìn)行訓(xùn)練:

  1. dir = 'agModels-predictClass' # specifies folder where to store trained modelspredictor = task.fit(train_data=train_data, label=label_column, output_directory=dir) 

加載測試集并測試:

  1. test_data = task.Dataset(file_path='https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')y_test = test_data[label_column] # values to predicttest_data_nolab = test_data.drop(labels=[label_column],axis=1) # delete label column to prove we're not cheatingprint(test_data_nolab.head()) 

圖像分類

和表格預(yù)測任務(wù)類似,AutoGluon 可以自動對圖像進(jìn)行分類,并使用 GPU 進(jìn)行訓(xùn)練。

首先加載圖像分類 api:

  1. import autogluon as agfrom autogluon import ImageClassification as task 

然后只需要短短幾行代碼就可以構(gòu)建一個(gè)圖像分類器(數(shù)據(jù)集為教程自帶數(shù)據(jù)集):

  1. classifier = task.fit(dataset,epochs=10,ngpus_per_trial=1,verbose=False

打印訓(xùn)練結(jié)果中最好的:

  1. print('Top-1 val acc: %.3f' % classifier.results['best_reward']) 

對單一圖像進(jìn)行測試,這里的 ag.get_gpu_count() 用于檢測是否有 GPU,如有則大于 0。

  1. # skip this if training FashionMNIST on CPU.if ag.get_gpu_count() > 0: image = 'data/test/BabyShirt/BabyShirt_323.jpg' ind, prob = classifier.predict(image)print('The input picture is classified as [%s], with probability %.2f.' % (dataset.init().classes[ind.asscalar()], prob.asscalar())) 

在測試集上測試并打印結(jié)果:

  1. test_acc = classifier.evaluate(test_dataset)print('Top-1 test acc: %.3f' % test_acc) 

神經(jīng)架構(gòu)搜索

對于 AutoML 的框架來說,神經(jīng)架構(gòu)搜索是很重要的一個(gè)應(yīng)用。近來,流行的 NAS 方法,如 ENAS 和 ProxylessNAS 都通過構(gòu)建一個(gè)超網(wǎng)絡(luò)(supernet)并在不同的架構(gòu)之間共享權(quán)重,從而加速搜索速度。

性能超过人类炼丹师,AutoGluon 低调开源

ProxylessNAS 架構(gòu)。

AutoGluon 也提供了相應(yīng)的功能。

以「為硬件設(shè)備搜索合適的神經(jīng)網(wǎng)絡(luò)架構(gòu)」為例:

首先,導(dǎo)入相關(guān) api。

  1. import autogluon as agimport mxnet as mximport mxnet.gluon.nn as nn 

然后使用 MXNet 框架構(gòu)建一個(gè) CNN 的基礎(chǔ)架構(gòu):

  1. class Identity(mx.gluon.HybridBlock): def hybrid_forward(self, F, x): return xclass ConvBNReLU(mx.gluon.HybridBlock): def __init__(self, in_channels, channels, kernel, stride): super().__init__() padding = (kernel - 1) // 2 self.conv = nn.Conv2D(channels, kernel, stride, padding, in_channels=in_channels) self.bn = nn.BatchNorm(in_channels=channels) self.relu = nn.Activation('relu')    def hybrid_forward(self, F, x):    return self.relu(self.bn(self.conv(x))) 

構(gòu)建一個(gè) ENAS 單元用于架構(gòu)搜索:

  1. from autogluon.contrib.enas import *  
  2. @enas_unit()class ResUnit(mx.gluon.HybridBlock): def __init__(self, in_channels, channels, hidden_channels, kernel, stride): super().__init__() self.conv1 = ConvBNReLU(in_channels, hidden_channels, kernel, stride) self.conv2 = ConvBNReLU(hidden_channels, channels, kernel, 1if in_channels == channels and stride == 1self.shortcut = Identity()   else:    self.shortcut = nn.Conv2D(channels, 1, stride, in_channels=in_channels)      def hybrid_forward(self, F, x):    return self.conv2(self.conv1(x)) + self.shortcut(x) 

使用序列代碼塊(Sequential Block)創(chuàng)建 ENAS 網(wǎng)絡(luò)。

  1. mynet = ENAS_Sequential( ResUnit(18, hidden_channels=ag.space.Categorical(48), kernel=ag.space.Categorical(35), stride=2), ResUnit(88, hidden_channels=8, kernel=ag.space.Categorical(35), stride=2), ResUnit(816, hidden_channels=8, kernel=ag.space.Categorical(35), stride=2), ResUnit(1616, hidden_channels=8, kernel=ag.space.Categorical(35), stride=1, with_zero=True), ResUnit(1616, hidden_channels=8, kernel=ag.space.Categorical(35), stride=1, with_zero=True), nn.GlobalAvgPool2D(), nn.Flatten(), nn.Activation('relu'), nn.Dense(10, in_units=16),) 
  2.  
  3. mynet.initialize()#mynet.graph 

定義獎(jiǎng)勵(lì)函數(shù):

  1. reward_fn = *lambda* metric, net: metric * ((net.avg_latency / net.latency) ** 0.1

最后開始訓(xùn)練即可:

  1. scheduler = ENAS_Scheduler(mynet, train_set='mnist',reward_fn=reward_fn, batch_size=128, num_gpus=1,warmup_epochs=0, epochs=1, controller_lr=3e-3,plot_frequency=10, update_arch_frequency=5)scheduler.run() 

AutoGluon 使用怎么樣

目前 AutoGluon 網(wǎng)站已經(jīng)有眾多教程了,開發(fā)者能用它快速處理各種結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)。對于資深開發(fā)者,AutoGluon 還提供了一系列定制化的指南,我們能學(xué)會如何使用 AutoGluon 的 API 自動提升預(yù)測性能。

當(dāng)然,由于 AutoGluon 目前仍在完善中,有些開發(fā)者表示,目前 AutoGluon 文檔主要包含了核心流程,還有一些額外的工具沒有詳細(xì)介紹。

在知乎評論中,很多開發(fā)者表示 AutoGluon 在視覺任務(wù)上的效果很好,甚至如果采用 AutoGluon 自帶的 YOLOV3(mobilenet1.0 backbone),它的效果還要優(yōu)于手動調(diào)參的 FasterRCNN(resnet50 backbone)。

這是非常令人驚訝的,畢竟 YOLOV3 是一種單階段的檢測器,它更擅長推理速度。而 FasterRCNN 這種二階段檢測器,雖然推理速度沒那么快,但效果一般要更好。更不用說 AutoGluon 采用的骨干網(wǎng)絡(luò)只是 MobileNet 1.0,它的表達(dá)能力遠(yuǎn)沒有 ResNet 50 強(qiáng)。綜合這兩種因素,AutoGluon 超過手動效果,就顯得非常令人驚訝了。

之前李沐就曾表示 AutoGluon 的使用代價(jià)差不多是單次訓(xùn)練的 15 倍,所以在 15 次嘗試中,我們還真不一定能找到超越 AutoGluon 的整套超參。不過也有開發(fā)者認(rèn)為要是有一個(gè)比較好的搜索空間,隨機(jī)搜索 15 次也能找到比較好的超參。李沐說:「AutoGluon 15 次 Search 的結(jié)果差不多類似于 Random Search 30 次,但前提是 Search Space 構(gòu)造的比較好,不要太大與太小?!?/p>

目前很多開發(fā)者與研究者都已經(jīng)在嘗試 AutoGluon 的效果,有些簡單調(diào)參工作既然機(jī)器做得更好,那么為什么不交給它們呢?算法工程師該做的,應(yīng)該是理解業(yè)務(wù)與數(shù)據(jù),并作出新的調(diào)整與創(chuàng)新。

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2014-05-04 13:39:15

人臉識別算法

2023-10-04 20:27:02

2022-01-06 15:30:45

谷歌開發(fā)GPU

2018-09-14 16:04:45

Facebook 開發(fā)工具

2018-01-13 22:49:12

阿里巴巴人工智能機(jī)器閱讀

2017-08-09 16:32:40

人工智能深度學(xué)習(xí)機(jī)器人

2022-05-05 09:10:00

AI芯片設(shè)計(jì)

2023-07-02 14:47:26

AI速通效率

2024-11-29 14:10:00

神經(jīng)網(wǎng)絡(luò)AI

2024-04-26 11:37:18

OpenAI人工智能奧特曼

2022-02-22 16:33:58

深度學(xué)習(xí)人工智能模型

2021-08-12 22:00:51

人工智能AI

2018-06-29 09:10:51

區(qū)塊鏈數(shù)字貨幣比特幣

2021-12-26 23:04:34

機(jī)器人人工智能技術(shù)

2019-10-21 07:41:40

機(jī)器人人工智能系統(tǒng)

2017-05-26 16:42:06

2024-04-01 07:00:00

模型AI

2012-07-04 09:13:43

Google云計(jì)算

2025-08-04 14:15:14

AI代碼模型

2024-03-06 13:58:00

測評模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號