機器週期 – – 機器怎麼樣

【新智元導讀】在機器學習深入工業界時,實際操作並沒有想象中那麼簡單。要部署任何專案,都需要經過完整的生命週期,而這個週期對於開發機器學習模型至關重要。此文深入全面總結了從零開始到正式上線過程中的所有步驟,並總結了各個步驟的常用工具。

在這個「人人AI」的時代,很多人都會或多或少接觸過機器學習(ML)。

似乎每一家需要資料的公司,都在嘗試利用人工智慧和機器學習來分析他們的業務並提供自動化解決方案。

「《財富》的商業洞察板塊(Fortune Business Insights)預計,到2027年,機器學習的市值將達到1170億美元。」

機器學習的火爆,使得許多沒有相關背景的新手也紛紛跨入該行業。當然,這本身確實是一件好事,然而,我們也需要明白,將機器學習專案整合到實際生產環境中,其實遠沒有想象的那麼容易。

圖:Algorithmia公司基於750家企業得出的2020企業ML使用狀態影象

「Algorithmia公司經過調查表示:55%從事機器學習模型的企業尚未將其投入生產」

在這裡可以一提的是,Algorithmia是一家提供簡化機器學習的平臺的創業公司,它在2017年6月已經從谷歌那裡完成了一項價值1050萬美元的a輪融資。

許多人似乎認為,如果有了訓練模型所需的資料和計算資源,實現機器學習專案是相當簡單的。

但是,其實這是大錯特錯的——

這種假設很可能會導致在沒有部署模型的情況下,消耗大量的時間和金錢成本。

圖:機器學習生命週期的樸素假設

在本文中,我們將深入詳細地討論機器學習專案的生命週期實際上是什麼樣子的,以及週期內每個階段可以用到的一些工具。
沒有那麼簡單:機器學習生命週期一覽
在現實中,機器學習專案並不簡單,它是一個在改進資料、模型和評估之間迴圈往復的過程,並且永遠不會真正完成。

這個迴圈對於開發機器學習模型至關重要,因為它側重於使用模型結果和評估來細化資料集。此外,高質量的資料集是訓練高質量模型最可靠的方法。

這個迴圈的迭代速度,決定了你需要花費的成本。幸運的是,有一些工具可以幫助你在不犧牲質量的情況下,加速這個迴圈。

圖:機器學習生命週期的一個真例項子

與任何系統非常相似,即使是已經部署的機器學習模型,也需要不斷的被監控、維護和更新。我們不能只是部署一個模型,然後忘記它,期望它在接下來的時間裡,像在測試集上一樣,在現實世界中有著很好的表現。

部署在現實世界環境中的機器學習模型需要被更新——因為我們會發現模型中的偏差,或者新增新的資料來源,或者需要額外的功能等等。

而這些都會將整個專案帶回到資料、模型和評估週期中。

下一節,我們將深入探討機器學習生命週期的每個階段,並重點介紹各個階段可以用到的當下流行的工具。
階段一:資料部分

圖:機器學習週期的資料部分

雖然大家的最終目標是一個高質量的模型,但訓練一個好的模型的關鍵之一,在於傳遞給它的資料的數量。

機器學習生命週期中,資料方面的相關步驟是:

1、資料收集
第一步,是在不管最終的資料質量的情況下,先收集儘可能多的原始資料。在這部分原始資料中,只有一小部分資料會被註釋,這也是大部分成本的來源。

而當模型效能出現問題時,根據需要新增大量資料是很有用的。

下面是常用的公共資料集列表:
https://medium.com/towards-artificial-intelligence/best-datasets-for-machine-learning-data-science-computer-vision-nlp-ai-c9541058cf4f

2、定義註釋模式
這個環節,是生命週期裡資料階段最重要的部分之一,而它卻經常被忽視。

如果構造了不良的註釋模式,那麼會出現不明確的類和邊緣案例,從而使訓練模型變得更加困難。

例如,目標檢測模型的效能很大程度上取決於大小、定位、方向和截斷等屬性。因此,在註釋期間將目標大小、密度和遮擋等屬性囊括其中,有助於模型可以學習到資料中的關鍵資訊。

下面兩個是有助於這個過程的常用工具:
Matplotlib, Plot – 幫你發現資料中的Plot屬性
Tableu -可以幫助你更好理解資料的分析平臺

3、資料註釋
給資料註釋是一個冗長乏味的過程,每次都要連續數小時地執行相同重複的任務,這也是註釋服務蓬勃發展的原因之一——很多人並不想親手花大量時間在註釋上。

而這樣會導致註釋者可能犯了很多錯誤:雖然大多數註釋公司都會說明最大誤差率(例如2%的最大誤差率),但更大的問題是,如果定義不當的註釋模式,會導致註釋者以不同的方式標記樣本。

然而,註釋公司的團隊很難發現這一點,所以你需要自己檢查。

下面是常用的各種註釋服務:

Scale, Labelbox, Prodigy – 流行的註釋服務
Mechanical Turk – 眾包註釋
CVAT – DIY的計算機視覺註釋
Doccano – NLP專用註釋工具
Centaur Labs -醫療資料標籤服務

4、改進資料集和註釋
在嘗試改進模型效能時,你可能會花費大量的時間。

如果模型正在學習的過程中,但效能卻不佳,那麼罪魁禍首幾乎總是包含偏差和錯誤的訓練資料集,這些偏差和錯誤限制了模型的效能上限。

改進模型通常會涉及到硬樣本挖掘(比如如果模型在資料集A上表現不好,那麼就在訓練資料中新增類似於資料集A的新資料)、根據模型瞭解到的偏差重新平衡資料集,以及更新註釋模式以新增新標籤和改進現有標籤。

下面是常用的改進資料集和註釋的工具:
DAGsHub – 資料集版本控制
FiftyOne – 將資料視覺化並找出錯誤

階段二:模型部分

圖:機器學習生命週期中的模型部分

即使在這個過程中的輸出是「看起來很重要的模型」,但其實,在整個迴圈當中,這部分所需要花費的時間是最少的。

圖:在工業界,花費在資料集上的時間比花在模型上的時間更多

探索現有的預訓練模型

這個環節的目標是用儘可能多的可用資源,給建立模型的過程一個最好的開始。

「遷移學習」是當今深度學習的核心內容:我們可能不會從頭開始建立一個模型,而是對一個已存在的模型進行微調,而該模型是在相關任務上預先訓練好的。

例如,如果你想建立一個口罩檢測模型,那麼你可能會從GitHub下載一個預先訓練好的人臉檢測模型,因為這個人臉檢測模型發展更成熟,更流行,也有更多的前期工作鋪墊。

下面是該環節常用的工具和方法:
FiftyOne model zoo – 使用一行程式碼,即可下載和執行模型
TensorFlow Hub – 訓練過的ML模型倉庫
modelzoo.oo – 為包含了各種任務和庫預先訓練的深度學習模型

構建訓練迴圈
你的資料可能並不會和用來預訓練的資料完全屬於同一型別。

比如,對於影象資料集,在為模型設定訓練pipeline時,需要考慮輸入解析度和物件大小等因素。

此外,你還需要修改模型的輸出結構,以匹配標籤的類和結構。PyTorch lightning就提供了一種簡單的方法,使用這種方法,即可用有限的程式碼擴大模型訓練。

下面是該環節常用的工具:
Scikit Learn – 構建和視覺化經典機器學習系統
PyTorch, PyTorch Lightning, TensorFlow, TRAX – 流行的深度學習Python庫
Sagemaker – 在Sagemaker IDE中建立和訓練機器學習系統

實驗跟蹤
在整個週期內,這一環節可能需要多次迭代。

你最終會訓練出很多不同的模型,所以你需要仔細地跟蹤模型的不同版本,以及訓練時用到的超引數和資料,這將極大地幫助你保持事情的條理性。

在這個過程中,常用的工具有:
Tensorbord,Weights

版權宣告:
作者:Julie Selby
連結:https://sh100k.com/ji-qi-zhou-qi-ji-qi-zen-me-yang/
來源:SH100K – 生活百科
文章版權歸作者所有,未經允許請勿轉載。

THE END
< <上一篇
下一篇>>