不久前,F(xiàn)acebook為人工智能研究開放了自家的輕量級交互式可視化庫/工具HiPlot。它使機(jī)器學(xué)習(xí)研究人員和數(shù)據(jù)科學(xué)家可以大量使用平行繪圖來分析相關(guān)性并觀察高維數(shù)據(jù)中的模式。
什么是平行圖?
平行圖是將高維或多元數(shù)據(jù)可視化的便捷方法之一。
· 對于n個維度,繪制n條平行線,垂直且等間隔。這些用作軸。
· 每個數(shù)據(jù)點(diǎn)由一條折線表示,在平行軸上具有頂點(diǎn)。
以下是使用ML 101 Iris數(shù)據(jù)集的直觀示例。觀察代表一個數(shù)據(jù)點(diǎn)的藍(lán)色折線,并查看該數(shù)據(jù)點(diǎn)下面的表格記錄。
為什么選擇HiPlot?
機(jī)器學(xué)習(xí)的超參數(shù)調(diào)整
這就是Facebook構(gòu)建HiPlot的目的。
由于神經(jīng)網(wǎng)絡(luò)需要調(diào)整從幾個到數(shù)十個任意位置的超參數(shù),因此可視化分析訓(xùn)練運(yùn)行的能力對于進(jìn)一步微調(diào)和構(gòu)建性能模型至關(guān)重要。
HiPlot:過濾20個“歷元”后獲得的數(shù)據(jù)點(diǎn),然后通過“有效ppl”軸進(jìn)行切片。它表明,更高的學(xué)習(xí)率可以帶來更好的表現(xiàn)。
多元數(shù)據(jù)探索性分析
以探索房屋數(shù)據(jù)這一熟悉場景為例。
· 可以使用HiPlot的交互式繪圖對圖表進(jìn)行過濾和切片,從而快速查看昂貴的屬性是否聚集在特定的郵政編碼或城市內(nèi)。
· 可以分析各種屬性與房價之間的關(guān)系。
由于具有挖掘和分析高維數(shù)據(jù)點(diǎn)的能力,這些圖比靜態(tài)2D熱力圖或相關(guān)系數(shù)表具有更高的透明度和靈活性。
簡單性和可擴(kuò)展性
能夠選擇將HiPlot用作notebook中的python庫或網(wǎng)絡(luò)應(yīng)用程序,就可以馬上開始對其進(jìn)行使用。有了支持自定義解析器、過濾和切片可視化內(nèi)容的可共享URL之類的功能,HiPlot會優(yōu)先考慮靈活性和協(xié)作性,還與Facebook的其他開源AI庫的日志兼容。
入門
安裝
pip install hiplot
安裝后,可以通過兩種方式使用Hiplot。
· 作為Jupyter Notebooks中的python庫
import hiplot as hip
· 通過在終端/ 命令行中啟動Web服務(wù)器,作為Flask Web應(yīng)用程序:
(To launch as localhost)
》》》 hiplot(To enable sharing plot URLs)
》》》 hiplot --host 0.0.0.0
注意:要使用網(wǎng)絡(luò)應(yīng)用程序,必須實現(xiàn)附帶實驗提取器,這將在后文的“高級功能”部分中概述。
Notebook中的日常簡單場景
以下是利用HiPlot分析各種學(xué)習(xí)率,輟學(xué)率和優(yōu)化器如何影響訓(xùn)練損失的日常使用案例。
import hiplot as hip
data = [
{‘dropout’:0.1,
‘learning_rate’: 0.001,
‘optimizer’: ‘SGD’,
‘loss’: 10.0
},
{‘dropout’:0.15,
‘learning_rate’: 0.01,
‘optimizer’: ‘Adam’,
‘loss’: 3.5
},
{‘dropout’:0.3,
‘learning_rate’: 0.1,
‘optimizer’: ‘Adam’,
‘loss’: 4.5
}]hip.Experiment.from_iterable(data).display(force_full_width=True)
圖表及表格呈現(xiàn)如下。
是的,就是這么簡單。
進(jìn)階能力
樹與關(guān)系
看一個示例,這個例子希望通過指定后代關(guān)系來關(guān)聯(lián)相關(guān)數(shù)據(jù)點(diǎn)。由于正在處理高維數(shù)據(jù)點(diǎn),這使得可視化突然變得復(fù)雜。但是HiPlot幫你搞定了。
觀察以下基于人口的訓(xùn)練示例,這是一種遺傳算法,其中可以使用不同的超參數(shù)將訓(xùn)練任務(wù)多次分叉。屬于同一訓(xùn)練代的數(shù)據(jù)點(diǎn)被連接起來。
在上面的示例中,平行圖下方的關(guān)系圖顯示了數(shù)據(jù)點(diǎn)之間的關(guān)系。在關(guān)系圖中,每條折線代表一組連接的數(shù)據(jù)點(diǎn),而折線中的每個頂點(diǎn)代表一個數(shù)據(jù)點(diǎn)。是的,它仍然是交互式的!因此,當(dāng)鼠標(biāo)懸停在關(guān)系圖中的頂點(diǎn)上時,平行圖中將突出顯示相應(yīng)的數(shù)據(jù)點(diǎn)。
下面是生成上面曲線的代碼。關(guān)系隨機(jī)分配,但要點(diǎn)很好把握。
exp = hip.Experiment()
exp.display_data(hip.Displays.XY).update({
‘a(chǎn)xis_x’: ‘generation’,
‘a(chǎn)xis_y’: ‘loss’,
})
for i in range(200):
dp = hip.Datapoint(
uid=str(i),
values={
‘generation’: i,
‘param’: 10 ** random.uniform(-1, 1),
‘loss’: random.uniform(-5, 5)
})
if i 》 10:
from_parent = random.choice(exp.datapoints[-10:])
# Connecting the parent to the child
dp.from_uid = from_parent.uid dp.values[‘loss’] += from_parent.values[‘loss’]
dp.values[‘param’] *= from_parent.values[‘param’]
exp.datapoints.append(dp)
實驗提取器
將實驗提取器視為美化的解析器,允許以可迭代和可繪制的形式提取,轉(zhuǎn)換和加載數(shù)據(jù)。
如打算在網(wǎng)絡(luò)應(yīng)用程序模式下使用HiPlot,則必須實現(xiàn)實驗提取器。如果是在notebook操作,只要對可視化數(shù)據(jù)采用表格形式或可迭代形式,就可不用讀取器。
下面是一個實現(xiàn)實驗提取器的示例。
提取程序:fetch_local_csv_experiment
提取程序前綴:localcsvxp://
目的:從本地文件系統(tǒng)加載CSV數(shù)據(jù)文件以進(jìn)行可視化
import hiplot as hip
deffetch_local_csv_experiment(uri):
# Only apply this fetcher if the URI starts with webxp://
PREFIX=“l(fā)ocalcsvxp://”
ifnot uri.startswith(PREFIX):
# Let other fetchers handle this one
raise hip.ExperimentFetcherDoesntApply()
# Parse out the local file path from the uri
local_path = uri[len(PREFIX):] # Remove the prefix
# Return the hiplot experiment to render
return hip.Experiment.from_csv(local_path)
使用網(wǎng)絡(luò)應(yīng)用程序
一旦實現(xiàn)了如上所述的實驗提取器,就可以啟動網(wǎng)絡(luò)應(yīng)用程序。
在示例中,fetch_local_csv_experiment提取程序(前綴localcsvxp://)存儲在fetchers.py文件中。
可以在終端/命令行中以如下方式啟動HiplotWeb服務(wù)器:
》》》 hiplotfetchers.fetch_local_csv_experiment --host 0.0.0.0
服務(wù)器將在一秒鐘內(nèi)啟動。將URL復(fù)制到Web瀏覽器。
在突出顯示的輸入框中,用以下格式輸入文件路徑:
《fetcher_prefix》《file path》
可以與其他人共享過濾后的視圖的URL。為此,需要使用“--host 0.0.0.0”標(biāo)志啟動Web服務(wù)器。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4717瀏覽量
100029 -
Facebook
+關(guān)注
關(guān)注
3文章
1429瀏覽量
54479 -
人工智能
+關(guān)注
關(guān)注
1787文章
46067瀏覽量
235128
發(fā)布評論請先 登錄
相關(guān)推薦
評論