2019 年 4 月

第 34 卷,第 4 期

[機器學習服務]

良性循環智慧:機器學習的設計模式

藉由Geoff Hulten |2019 年 4 月

使用機器學習服務來建置模型,並將其部署有許多很棒的文章。這些文章是類似的教導程式設計技術,它們提供有價值的核心技能中詳盡。但要超越建置 「 玩具 」 範例中,您需要另一組的技能。在傳統的系統中這些技巧稱為之類的軟體工程軟體架構或設計模式-組織大型軟體系統和小組的人員建置它們,以達到您想要的影響的方法。

本文將介紹一些您必須將機器學習服務新增至您的傳統軟體工程程序時, 考慮的事項包括:

連接到使用者的機器學習服務:這表示若要關閉 [使用者和機器學習服務之間的迴圈。

挑選正確的目標:位址的機器學習服務,以及如何隨著時間演進,了解您系統的哪個部分。

使用 machine learning 實作:您必須以支援長時間執行的機器學習服務為基礎的解決方案,您不需要建置傳統的系統建置系統。

操作機器學習系統:預期一段時間執行的機器學習式系統時的內容。

當然,第一個問題決定當您需要使用機器學習服務。在決策中的一項關鍵因素是您認為您需要先更新應用程式,才能讓它正確的頻率。如果數目少 — 比方說,有五個或 10 次-機器學習服務則可能不正確。但是,如果該數目很大,說每小時,只要系統存在 — 那麼您可能需要機器學習服務。

有四個顯然需要一些更新才能取得適當的情況:

  • 很大的問題:一些問題則大。它們有很多變數和需要處理它們無法完成在單一擷取畫面中的條件。
  • 開放式問題:許多問題缺少單一且固定的解決方案,並需要即時且不斷成長長一段時間的服務。
  • 時間變更的問題:如果有無法預期、 極端或頻繁的方式,變更您的網域,可能值得考慮機器學習服務。
  • 本質上是難題:天氣模擬和預測受益從機器學習服務,但通常只有行之多年的收集訓練資料、 了解問題和開發智慧所花費的心力和困難的問題等語音辨識。

如果您的問題有其中一個屬性,機器學習服務可能是正確的。如果沒有,您可能會比較理想的選擇開始更傳統的方法。如果您可以達到您的目標,與傳統的方法,它通常會更便宜且更簡單。

連接到使用者的機器學習服務

關閉迴圈是系統的關於建立良性循環之間智慧和系統的使用量。Intelligence 變得更好的因為使用者從系統取得更多的權益 (大概是使用多) 和更多使用者使用系統時,它們會產生更多資料,讓智慧更好。

請考慮搜尋引擎。使用者類型的查詢,並取得一些常見問題的解答。如果她找到一個更有用,她按一下它,一定很滿意。但是,搜尋引擎從取得值。 這種互動,太。當使用者按一下的解答時,搜尋引擎會取得以查看哪些頁面回應的查詢中,按了一下,而且可以使用這項資訊來調整並改善。更多的使用者使用此系統,以改善有更多的機會。

但成功封閉的循環並不會意外發生。若要有一個工作中,您必須設計圖形使用者與您的智慧,之間的互動,因此它們會產生有用的定型資料的 UX。良好的互動具有下列屬性:

互動的元件都很清晰且容易連接。良好的互動可使您能夠擷取的內容的使用者和應用程式已在當時的互動,使用者所採取的動作與結果的互動。例如,書籍推薦必須知道什麼叢書使用者擁有,以及多少他們想將這些檔案 (內容);哪些活頁簿已對使用者推薦,而且如果他們購買其中任何 (動作);使用者已中斷與最多購買感到滿意或不 (結果)。

結果應為隱含且直接。良好的體驗可讓您透過觀察使用者使用您的系統自然 (不需要他們提供評等或意見反應) 以隱含方式解譯結果的互動。此外,不會有太多時間或太多多餘互動使用者採取的動作,並取得結果。

有沒有 (或少數) 的偏差。良好的體驗將會了解如何使用者遇到各種可能的結果並不會有系統地或 unconsciously 促使使用者報或過度回報類別的結果。例如,每位使用者將看看其收件匣電子郵件程式,但許多永遠不會將探討其垃圾郵件資料夾。因此垃圾郵件訊息收件匣中的不正確的結果將會報告以高速率比的垃圾郵件資料夾中具有合法的訊息不正確的結果。

不包含意見反應迴圈。從複合錯誤的意見反應,可能會減損封閉的循環。比方說,如果模型可讓您隱藏常用動作的錯誤,使用者將會停止 (因為它會隱藏),請選取該動作,模型可能了解它是由右至隱藏動作 (因為使用者已停止使用它)。若要解決意見反應迴圈,一種體驗應該提供取得隱藏的動作,並考慮一堆隨機模型輸出的替代方式。

這些是機器的某些連線學習服務給使用者的基本概念。機器學習服務幾乎一定會更有效率的 UX 和機器學習服務設計來支援另一個時。如此一來,這也可以讓各種系統會建立任何其他方式費不貲。

挑選正確的目標

使用 machine learning 建置的系統的一個有趣的屬性如下:他們將它們寄送一天執行最差。一旦關閉使用者和模型,您的系統之間的迴圈就會更好的而且更好的一段時間。這表示您可能想要啟動簡單的目標,並朝向更困難的目標,因為您的系統可改善重新平衡。

想像一下設計自發的汽車。您可以使用這直到到達完全完美的然後將它寄。或您可以著手使用更容易的子問題 — 說,避免轉送的衝突。您也可以實際建置避免轉送的衝突,您會建立完全自動化推動的完全相同的汽車 — 所有控制項、 感應器,所有項目。但是您可以設定目標的完整自動化功能,這是非常困難,而是設定減少發生衝突,這更容易管理的目標。

避免衝突很適合自己的權限,因為有些人會購買您的車,並使用它,產生您可以利用機器學習服務來建置更好和更好的模型使用的資料。當您準備好時,您可以設定稍微困難的目標,例如通道下列命令,為使用者提供更多價值,並建立良性循環,因為最後努力自發的車輛。

此程序可能需要幾個月。需要一年。但它幾乎肯定會比嘗試建置自發的汽車,而封閉的循環之間的使用者和您的機器學習服務不便宜。

您通常可以找到您的目標,隨著您的模型取得更好的方式。比方說,垃圾郵件篩選器一開始移動 [垃圾郵件的垃圾郵件資料夾可稍後加以改善刪除徹底的垃圾郵件訊息。和製造缺失偵測系統可能會進行進一步的第一個目標,以檢查的旗標物件和更新版本的捨棄損壞物件會自動為模型改善。

請務必設定您可以現在所建置的模型可達到的目標,以及您可依您的機器學習來達成更多有趣的目標,經過一段時間的程序時,它會很棒。

使用 Machine Learning 實作

建立位址巨量、 開放式、 時間變更的系統或本質艱難問題需要在其存留時間期間的許多更新。成本低廉且安全的系統實作可以進行這些更新,或它們可以使其耗費資源,並有風險。有許多選項讓經過一段時間更有彈性且有效率的機器學習為基礎的系統。常見的優勢包含:

智慧執行階段若要使用您所要做的基本概念,例如實作的執行階段載入並執行模型的機器學習服務,開始右邊體驗的應用程式內容,並提供使用者根據模型的假設。執行階段可以簡單,例如將程式庫連結到您的用戶端,或可能很複雜,支援等項目:

  • 類型的模型所做的變更會經過一段時間,使用從簡單的規則,到更複雜的機器學習服務方法,您進一步了解您的問題。
  • 合併的模型,在服務中,並在後端,用戶端上執行,並允許一段時間的這些位置之間移轉模型根據成本和效能需求。
  • 支援回復時部署發生錯誤,以及快速覆寫特定成本高昂的錯誤,幾乎肯定讓機器學習服務的方法。

智慧管理它們隨著新的模型變得可用,必須擷取並傳遞至需要它們的地方。例如,模型可能,在公司總部的實驗室中建立,但必須在用戶端上執行,在世界各地。或者也許模型執行部分在後端,並在服務中的部分。您可以依賴要執行的所有部署,驗證,產生之模型的人員,並保留所有項目同步,或您也可以建置系統來支援此功能。

智慧遙測機器學習服務的有效遙測系統會收集一段時間建立越來越多更好的模型的資料。智慧實作必須決定要觀察的項目、 範例,以及如何摘要及彙總要啟用智慧建立的資訊,以及如何保留程序中的使用者隱私權。遙測可能非常昂貴,因此通常合理實作允許可調適性的同時控制成本的工具,將會變更的機器學習式系統,存留期間的遙測的需求。

智慧建立環境適用於機器學習式系統才會成功,需要那里極大的協調執行階段、 傳遞、 監視與您的模型建立。比方說,若要產生準確的模型,模型建立者必須要能夠重新建立只會發生什麼情況在執行階段,即使模型建立者的資料來自遙測和執行階段資料是來自應用程式,而在執行時,在實驗室中,執行應用程式的內容。

模型的建立和執行階段之間不相符是常見的錯誤,以及機器學習服務專業人員通常不追蹤這些問題的最佳人員。基於此原因,實作可讓機器學習服務專業人員更有生產力藉由提供一致的智慧建立體驗。

所有這些元件 (執行階段、 智能管理、 智慧遙測和智慧建立) 中,您可以實作的基本概念,並依賴持續調整一段時間的工程投資項目裸機極簡。或者,您可以建立有彈性的項目之非工程師的好用工具讓它們可以重新平衡向新的目標就會運轉,快速安心地,它們不會將任何項目弄亂。

智慧協調流程

智慧協調流程實在有點像 racing 的汽車。整個團隊的人員會建置一輛車、 放所有最新的技術,並取得完全設定每個 aerodynamic wing、 填充、 齒輪-比率,以及引入閥。它們會使有絕佳的機器,可以執行任何其他電腦可以執行的動作。

和其他人則需要的快感、 感受帶播放軌上,有機會贏得 !

智慧 orchestrator 是這些驅動程式。智慧型系統的控制權,並執行究竟是如何使它達到其目標。使用智慧建立和管理系統,可在適當的時間產生正確的智慧,並將它合併最有用的方式。這些設定控制遙測系統,蒐集來改善其模型所需的資料。它們會處理所有錯誤和問題,平衡所有項目,讓應用程式會產生它可以讓使用者,並且為您的商務價值。

權限的相關現在您可能會說: 「 等候,我相信有一天機器學習服務原本應該調整系統在整個生命週期。這是什麼?某些種類的玩笑? 」 不幸的是,[否]。人工智慧和機器學習服務只會您到目前為止。協調流程即將採取這些工具,並將其放在最佳的情況下,因此可能會產生值,反白顯示其優點和補償其缺點 — 同時也回應一段時間變更的項目。可能需要協調流程,因為:

您的目標變更:工作項目時,您稍後更容易了解。您可能知道您一開始,設定錯誤的目標,而且想要調整。反正,也許您的使用者與您的模型之間的封閉式的迴圈結果才會成功,您想要更高版本的目標。

您的使用者變更:新的使用者 (和會讓) 會保留舊的使用者 (且可能流淚),但這些使用者會帶來了新的內容、 新的行為,與新的機會,來調整您的模型。

問題變更:方法和您在過去所做的決策可能不正確的未來。有時候問題可能是簡單 (例如,當所有濫發垃圾郵件者都放假)。在其他時間它可能會很難 (例如附近的假日)。當變更發生問題,是幾乎一律要調整,以達到更好的結果,透過協調流程的機會。

您的模型變更的品質:資料會解除鎖定的可能性。一些最強大的機器學習演算法不是有效的 「 小型 」 的資料,但成為可行的因為使用者前往您的系統,並在您取得龐大的資料。這些類型的變更,就可以解除鎖定各種可能會嘗試新的體驗,或以更積極的目標為目標。

執行您的系統變更的成本:巨量的系統會經常需要平衡成本和值。您可以變更您的經驗或模型中儲存大量金錢,同時只有點給使用者或您的業務。 減少值的方式。

有人嘗試濫用您的系統:不幸的是,網際網路是完整的洞穴。部分要濫用您的服務,因為他們認為的樂趣。大部分會想要濫用掙錢,您的服務 (和您的使用者),或使它更難賺錢。保留未減輕,內容粗俗的文章可以讓您的系統,因此這類 cesspool 垃圾郵件和風險的使用者可以放棄它。

一或多個幾乎肯定會在您的機器學習式系統的生命週期期間發生。藉由學習來識別它們並調整,您可以將這些潛在的問題變成機會。

實作機器學習式系統和協調它們是非常不同的活動。它們需要截然不同的心態。而且這是同時達到成功十分重要。良好的 orchestrator 將會:

  • 是領域專家讓他們了解您的使用者目標憑您系統的企業中。
  • 理解體驗和能夠查看互動,並在有效的採用模型輸出的呈現給使用者的方式。
  • 了解實作讓他們了解如何追蹤問題,而且有一些能夠進行小型的改善。
  • 能夠提問的資料並了解並傳達結果。
  • 認識套用的機器學習服務能夠控制您的模型建立程序,並插入系統的新模型。
  • 取得滿意度進行有效地執行中的一天和每日的系統。

總結

機器學習服務是一個絕佳的工具。但是,充分運用機器學習服務需要更多個建置模型,以及進行幾個預測。它需要新增機器學習技巧,以您用於組織大型軟體系統而建置它們的人員團隊的其他技術。

這篇文章已關閉迴圈智慧系統模式大規模使用機器學習服務提供一個設計模式的簡短概觀。這包括了解當您需要機器學習服務這表示若要關閉 [使用者和機器學習服務; 之間的迴圈如何重新平衡系統來達成更有意義的目標,經過一段時間;何種實作可以讓它更有效率且更安全地調整;當您執行一段時間的系統可能會發生的事項。

人工智慧和機器學習服務改變世界,而且涉及令人興奮的時刻。


Geoff Hulten過 「 建置智慧型系統 」 (intelligentsystem.io/book/)。他為十餘年管理套用的機器學習專案和教授在華盛頓大學的主機層級的機器學習課程。他研究出現在最上層的國際會議、 收到數以千計的引文,並贏得時間 SIGKDD 測試獎具影響力資料採礦研究社群的貢獻,已建立這項測試的時間。

感謝下列 Microsoft 技術專家來檢閱這篇文章:Dr。James McCaffrey