開始使用 Amazon Machine Learning

建立免費帳戶

獲得 12 個月的 AWS 免費方案,同時享受 AWS 的基本支援功能,包括全年無休的客戶服務、支援論壇等等。

請注意,AWS 免費方案目前尚未提供 Amazon Machine Learning

問:什麼是 Amazon Machine Learning?

Amazon Machine Learning 是一種機器服務,可讓您輕鬆建置預測應用程式,包括詐騙偵測、需求預報和點擊預測。Amazon Machine Learning 使用強大的演算法,透過找出現有資料的模式協助建立機器學習模型,然後使用這些模式對新出現的資料進行預測。AWS 管理主控台和 API 提供資料和模型視覺化工具,同時提供精靈,引導您完成建立機器學習模型、測量模型品質以及微調預測結果的程序,以符合應用程式要求。模型建立之後,您可以使用簡單的 API 以取得應用程式的預測結果,無須實作自訂的預測產生碼或管理任何基礎設施。Amazon Machine Learning 具有很高的可擴展性,可以產生數十億則預測結果,並以極高的輸送量即時運用這些結果。使用 Amazon Machine Learning 無需設定費,只需按使用量付費,因此可先從小規模開始,再視應用程式的發展情況進行擴展。

問:Amazon Machine Learning 可用來做什麼?

Amazon Machine Learning 可用來建立各種預測應用程式。例如,您可以使用 Amazon Machine Learning 來協助建置應用程式,使其具有各種功能,包括可疑交易標記、詐騙訂單偵測、需求預報、內容個人化、使用者活動預測、評論過濾、社交媒體監聽、任意文字分析以及項目推薦等。

問:什麼是機器學習?

機器學習 (ML) 是一種可協助您使用歷史資料做出明智商業決策的技術。機器學習演算法可以找出資料中的模式,並利用這些模式來建構數學模型。然後您可以使用這些模型對未來的資料進行預測。例如,您可以讓機器學習對成功的歷史交易和失敗的歷史交易範例進行分析來偵測詐騙交易。

問:如何開始使用 Amazon Machine Learning?

開始使用 Amazon Machine Learning 的最佳方式就是按照 Amazon Machine Learning Developer Guide 中的 Tutorial 部分進行操作。該教學將引導您從範例資料集建立機器學習模型、對建立的模型進行評估,以及將其用於產生預測的整個過程。在學習完教學中的內容後,您可以使用 Amazon Machine Learning 建立自己的機器學習模型。有關更多資訊,請參閱 Amazon Machine Learning Developer GuideAmazon Machine Learning API 參考

問:什麼是訓練資料?

訓練資料可用來建立機器學習模型。它由過去的已知資料點組成。您可以使用 Amazon Machine Learning 找出這些資料的模式,再利用找到的模式來建置機器學習模型。

問:什麼是目標屬性?

目標屬性是訓練資料中的一項特殊屬性,訓練資料包含 Amazon Machine Learning 嘗試預測的資訊。例如,假設您想建置一個模型,用來預測交易是否為詐騙行為。如果交易最終被銀行拒絕,則您的訓練資料中會包含目標屬性為 “1” 的過去交易中繼資料;反之,如果銀行接受了交易,則包含目標屬性為 “0”。您可以使用 Amazon Machine Learning 找出將目標屬性連接到交易中繼資料 (所有其他屬性) 的模式。如果沒有目標屬性存在,您也可以使用根據這些模式產生的機器學習模型來進行預測。在此範例中,則表示在得知銀行是否拒絕交易之前,根據其中繼資料預測交易是否是詐騙行為。

問:Amazon Machine Learning 使用什麼演算法產生模型?

Amazon Machine Learning 目前使用產業標準的邏輯回歸演算法產生模型。

問:哪些 AWS 區域提供 Amazon Machine Learning?

支援 Amazon Machine Learning AWS 區域的清單,請參閱所有 AWS 全球基礎設施的 AWS 區域表。有關更多資訊,請參閱 AWS 一般參考中的區域和終端節點

問:Amazon Machine Learning 的服務可用性如何?

Amazon Machine Learning 的設計可提供高可用性。沒有維護時段或計劃停機時間。適用於模型訓練、評估和批次預測的 API 在經過驗證的高可用性 Amazon 資料中心執行,相關的服務堆疊會在每個 AWS 區域的三個設施中進行複寫設定,以提供容錯能力,防止伺服器故障或可用區域中斷等狀況導致的損失。

問:Amazon Machine Learning 有哪些安全措施?

Amazon Machine Learning 確保機器學習模型和其他系統成品在傳輸和靜止狀態下全部經過加密。對 Amazon Machine Learning API 和主控台發出的請求,都在安全 (SSL) 連線中進行。您可以使用 AWS Identity and Access Management (AWS IAM) 控制可存取特定 Amazon Machine Learning 動作和資源的 IAM 使用者。

回到頁首 >>

問:我的資料存放在何處?

您可以使用 Amazon Machine Learning 讀取三個資料存放區中的資料:(a) Amazon S3 中的一或多個檔案、(b) Amazon Redshift 查詢的結果,或是 (c) 在執行 MySQL 引擎的資料庫中執行 Amazon Relational Database Service (RDS) 查詢的結果。其他產品中的資料通常可以在 Amazon S3 中匯出為 CSV 檔,供 Amazon Machine Learning 使用。有關設定許可讓 Amazon Machine Learning 存取支援的資料存放區的詳細說明,請參閱 Amazon Machine Learning Developer Guide

問:對於可用於訓練的資料集是否有大小限制?

Amazon Machine Learning 用來訓練模型的資料集最大不可超過 100 GB。

問:如何得知我的資料是否有錯誤?

您可以使用 Amazon Machine Learning 來偵測資料格式化錯誤。Amazon Machine Learning 服務主控台具有資料洞察功能,可協助您發現深藏於資料中的錯誤,例如,空的欄位或者包含非預期值的欄位。如果這兩種資料錯誤的數量不多,Amazon Machine Learning 仍然可以訓練機器學習模型並產生準確的預測結果,即使發現一些無效或不正確的資料,請求一樣可以成功。

問:如果資料不完整或遺漏了一些資訊,該怎麼辦?

最好始終確保資料盡可能保持完整性和準確性。不過 Amazon Machine Learning 的演算法可以允許存在少量不完整或遺漏的資訊,而不對模型品質產生負面影響;但是隨著錯誤數量的增加,產生的模型品質也會隨之降低。當因故障而中斷處理的記錄數量大於 10,000 或達到資料集全部記錄量的 10% (以先到者為準),則 Amazon Machine Learning 會停止處理您的模型訓練請求。

若要修正不完整或遺漏的資訊,您需要返回主資料來源,然後修正該來源中的資料,或者將發現的包含不完整或遺漏的資訊從用於訓練 Amazon Machine Learning 模型的資料集排除。例如,您發現 Amazon Redshift 表中的一些列包含無效的值,則可以修改用於為 Amazon Machine Learning 選擇資料的查詢,以排除這些列。

問:如何得知模型是否產生準確的預測結果?

Amazon Machine Learning 包含強大的模型評估功能。您可以使用 Amazon Machine Learning 運算任何模型的產業標準評估指標,以協助您了解這些模型的預測品質。您還可以使用 Amazon Machine Learning 來確保模型評估的公平性,方法是將一部分用於評估目的的訓練資料從中去除,確保模型永遠不會使用之前訓練時已經出現過的資料點進行評估。Amazon Machine Learning 服務主控台提供強大且易於使用的工具,協助您發現和了解模型評估的結果。

問:如果模型提供的結果不符合我的要求,該怎麼進行調整?

提高模型品質最好的方法是在訓練中增加資料量並提高資料品質。增加更多觀察結果、新增其他資訊類型 (功能) 以及轉換資料以優化學習過程 (功能設計),這些都是改善模型預測準確度最好的方法。您可以使用 Amazon Machine Learning 建立許多原型模型,還可以使用 Amazon Machine Learning 內建的資料處理器來進行一些常見類型的功能設計,整個過程極為簡單,如同在內建的「方法」語言中編輯一行文字。此外,當您建立指向資料的新資料來源物件時,Amazon Machine Learning 還可以根據資料自動建立建議的資料轉換方法,該方法會根據資料內容自動進行優化。

Amazon Machine Learning 還提供多種參數用於調校學習過程:(a) 模型目標大小、(b) 對資料執行操作的次數,以及 (c) 應用於模型的規則化類型和數量。Amazon Machine Learning 的預設設定適用於真實世界中的許多機器學習任務,但是您也可以視需要使用服務主控台或 API 對其進行調整。

最後,對於模型調校最重要的一點是,需考量應用程式如何解釋機器學習模型產生的預測結果,以及如何以最佳的方式使其與企業目標保持一致。Amazon Machine Learning 可協助您調整二進位分類模型的解釋分界點,讓您在面對經過訓練的模型可能犯的各種錯誤時,找到最合適的平衡點。例如,一些應用程式對誤報的容錯度比較高,但是非常不希望有漏報的錯誤,Amazon Machine Learning 服務主控台可協助您調整分界點以符合此類要求。有關更多資訊,請參閱 Amazon Machine Learning Developer Guide 中的 Evaluating ML Models

問:是否能將模型從 Amazon Machine Learning 匯出?

否。

問:是否能將現有的模型匯入 Amazon Machine Learning?

否。

問:Amazon Machine Learning 是否需要對資料進行永久複製以建立機器學習模型?

否。Amazon Machine Learning 只需要獲得對資料的讀取權即可對資料進行模式發現和擷取的操作,並將其存放於機器學習模型中。機器學習模型不是資料的副本。當存取 Amazon Redshift 或 Amazon RDS 中存放的資料時,Amazon Machine Learning 會將查詢結果匯出到您選擇的 S3 位置,然後再從 S3 讀取這些結果。您擁有此臨時資料副本的完整擁有權,可以在 Amazon Machine Learning 操作完成後將其移除。

回到頁首 >>

問:模型準備好以後,如何獲得應用程式的預測結果?

使用 Amazon Machine Learning 擷取預測結果有兩種方法:使用批次處理 API 或即時 API。批次處理 API 用於請求大量輸入資料記錄的預測結果,可以離線使用,一次可傳回全部的預測結果。即時 API 用於請求個別輸入資料記錄的預測結果,可立即傳回預測結果。即時 API 可用於高輸送量需求,同時產生多則預測結果以回應並行請求。

任何透過 Amazon Machine Learning 建置的機器學習模型都可以使用批次處理 API 或即時 API,您可以根據應用程式的需求自由選擇。批次處理 API 適合需要處理大量資料記錄的應用程式,而即時 API 則適合互動式 Web、行動和桌面應用程式。

問:Amazon Machine Learning 即時 API 產生預測結果的速度有多快?

大多數即時預測請求傳回回應的時間不會超過 100 毫秒,其速度足以應付互動式 Web、行動或桌面應用程式。即時 API 產生預測結果的準確時間取決於輸入資料記錄的大小,並且與產生預測結果的機器學習模型關聯的資料處理「方法」的複雜程度有關

問:Amazon Machine Learning 支援的並行即時 API 請求的數量是多少?

每個啟用即時預測功能的機器學習模型都會指派一個終端節點 URL。根據預設,從任何即時預測終端節點每秒最多可請求 200 則交易 (TPS)。如果此限制無法滿足您的應用程式需求,請聯絡客戶支援

問:Amazon Machine Learning 傳回批次預測結果的速度有多快?

批次預測 API 的速度很快而且效率很高。傳回批次預測結果所花費的時間取決於下列幾個因素,包括 (a) 輸入資料的大小、(b) 與產生預測結果的機器學習模型關聯的資料處理「方法」的複雜程度,以及 (c) 帳戶中同時執行的其他批次作業 (資料處理、模型訓練、評估及其他批次處理請求) 的數量。根據預設,Amazon Machine Learning 最多可同時執行 5 個批次任務。如果此限制無法滿足您的應用程式需求,請聯絡客戶支援。

問:如何監控預測的執行效能?

監控預測效能主要有兩種方式:(a) 監控批次數量和即時預測的流量,以及 (b) 監控預測模型的品質。

您可以查看 Amazon CloudWatch 指標來監控預測流量,Amazon Machine Learning 會將這些指標發佈到您的 CloudWatch 帳戶。對於在監控期間已接收批次預測結果或即時預測結果的每個機器學習模型 ID 而言,Amazon Machine Learning 將發佈成功產生預測結果的資料記錄的數量,以及因剖析失敗而導致沒有產生任何預測結果的機器學習記錄的數量。

若要隨時間監控機器學習模型的品質,產業最佳實務是定期擷取應用程式提交用於預測之資料記錄的隨機樣本,獲得真實的答案 (也稱為「目標」),然後使用 Amazon Machine Learning 對所產生的資料集建立評估。Amazon Machine Learning 會透過比對目標與正在產生的預測結果,運算出模型品質指標。如果您發現指標的品質在逐漸下降,這可能表示需要利用新的資料點來訓練新的模型,因為原先用於訓練模型的資料已不再符合現實情況。例如,如果使用機器學習模型來偵測詐騙交易,您可能會發現偵測的品質隨時間而逐漸下降,這是因為進行模型訓練時,未知的交易詐騙新方法已經出現。只要利用最新的詐騙交易範例訓練新的機器學習模型,就能阻止這種趨勢的蔓延,讓 Amazon Machine Learning 可以找出能夠識別這些交易的模式。

回到頁首 >>