Azure AI 介紹

甚麼是AI?簡單來說,AI(artificial intelligence) — 人工智慧是可以模仿人類的行為與能力。AI比單一人類強大的地方在於: 它吸收資料量體與永不停止工作(如果一直有電力)。現行我們常會聽到的幾個能具有甚至超越人類能力的關鍵詞彙有:

  • 機器學習(Machine learning):這是AI的基礎,我們(人類)教電腦模型依據資料進行預測並做做出結論。基本上機器學習使用數學與統計來建立可預測未知值的模型。
  • 異常偵測(Anomaly detection):從系統中自動偵測異常或錯誤
  • 電腦視覺(Computer vision):從圖片與影像中辨識物體
  • 自然語言處理(Natural language processing):電腦可以了解人類使用的語言並解讀是甚麼意思,如現在的ChatGPT解讀人類對話的語義非常強大。

機器學習的運作原理

基本上,只要資料是以電子形式存在的。資料科學家都可以把資料丟進去做為訓練資料(Data Input),再使用資料模型(Processsing)根據訓練資料中的各項資料的關係進行預測與推論(Output)

例如我們要教電腦辨識花卉的品種,過程如下:

  1. 我們有一組花卉樣本的圖片。
  2. 我們告訴電腦這些樣本花卉資料的各種花卉各有甚麼樣的特徵,並且給這些特徵予以標籤。
  3. 使用一種演算法處理有標籤的資料,這個演算法可以找到樣本特徵與花卉品種之間的關係
  4. 將演算法的結果封裝在模型中。
  5. 當我們把丟入新的花卉圖片給電腦看時,模型可以識別正確的物種標籤。

而Azure則在其雲端平台上提供的機器學習的SaaS服務,讓我們可以建立/管理機器學習的演算法模型。Azure機器學習服務提供了一下的功能與能力:

異常偵測的運作原理

這一類的案例我們最常聽到的可能是信用卡的交易異常與機器的損壞。銀行如何在每天大量的正常交易中,找出不正常的詐欺交易。或者是現行電動車的盛行,如何透過IoT的方式收集車子各項設備的監測資料找出可能即將損壞的設備,進而提早做出反應。

這一類的場景都稱為異常偵測 — 電腦基於長期的連續資料進行分析並辨識異常異常偵測的過程如下(以汽車為例):

  1. 汽車中的IoT設備收集各項設備的資料,例如發動機轉速、剎車溫度等
  2. 訓練異常檢測模型以了解監控測量值隨時間的預期波動。
  3. 如果測量值發生在正常預期範圍之外,模型會報告異常情況,該異常情況回提醒車主做出相對的回應。

而Azure則在其雲端平台上提供API(application programming interface)的方式讓我們的程式可以使用Azure的異常偵測服務。更多的Azure異常偵測服務資訊請查閱微軟的網站

電腦視覺的原理

這是教會電腦辨識影像與圖片。通常這類辨識作業會分為:

  • 影像分類:辨認這個影像是車輛或人或是某種動物
  • 物件偵測:辨認一個影像中,有哪些物體。可能裡面會有公車、小客車與行人這幾種物體。
  • 語意分割:語義分割是一種先進的機器學習技術,其中影像中的各個像素(pixels)根據它們所屬的對象進行分類。 例如,交通監控系統可能會在交通影像上疊加“遮罩”層(mask layer),以使用特定顏色突顯不同的車輛。(如下示意圖)
  • 影像分析:這是將機器學習模型與影像分析技術相結合的技術,是從影像中提取資訊,這樣可以對影像貼上進行分類的“標籤”,甚至是總結影像中顯示的場景的描述性標題,例如電腦看完影像會說:是一個媽媽在牽著小朋友。
  • 臉部偵測、分析與辨識:臉部偵測是一種特殊形式的物件偵測,可找出影像中的人臉。 這可與分類和臉部幾何分析技術結合,根據其臉部特徵來辨識個人。
  • OCR(光學字元辨識): 用來偵測和讀取影像中文字的技術

Azure 提供下列認知服務(cognitive services)來協助建立電腦視覺解決方案:

自然語言處理(Natural language processing)的原理

NLP主要的作業為:

  • 分析和解讀文件、email及其他資料來源中的文字。
  • 解譯人類說話,並合成語音回應(像是Amazon的語音助理Echo)。
  • 自動翻譯不同語言的說話或文字。
  • 解譯命令並判斷適當的動作。

Azure 提供以下認知服務來建立自然語言處理解決方案:

俗話說東西有一好就沒有兩好,雖然AI有這麼多少處。不過使用上也有一些挑戰與風險是AI的開發人員會遇到的:

針對以上六項的風險與挑戰,微軟也提出了一些解決方法。

  1. 公平性:也就是讓電腦去除人類的"偏見"。Azure 機器學習能夠解譯模型,並針對資料每項特徵如何影響模型預測的程度進行量化。 這項功能可協助資料科學家和開發人員識別及緩和模型中的偏見。
  2. 可靠性與安全性: AI 系統應該以安全可靠的方式執行。 如果是關乎人命的AI 為基礎的軟體應用程式(如自駕系統或醫療系統)開發必須遵守嚴格測試和部署管理程序,以確保其如預期般運作再上線。
  3. 隱私性與安全性:AI 系統應該安全並尊重隱私。 因為我們會餵大量的資料給AI,所以到底要不要餵個資給AI就需要考慮,不餵,模型可能會有問題,餵了,可能有洩漏個資的疑慮。 即使模型經過定型,而且系統仍在生產環境中,也必須考慮隱私權和安全性。 當系統使用新資料進行預測或採取動作時,根據資料所做的資料和決策都可能受限於隱私權或安全性考慮。
  4. 包容性:AI 系統應該賦予所有人權力,且讓人們參與。 AI 應該造福社會的每一份子,無論其身體能力、性別、性傾向、種族或其他因素。以上是微軟的說法,本文作者不予評論(就是大家自己想)。
  5. 透明度:AI 系統應該是可以理解的。 使用者應該充分了解系統的用途、其運作方式,以及可能預期的限制。以上是微軟的說法,本文作者也不予評論(就是大家自己想)。
  6. 權責:使用者應該對 AI 系統負責。 以 AI 為基礎的解決方案設計人員和開發人員應該在治理和組織準則的架構中工作,以確保解決方案符合清楚定義的道德和法律標準。以上還是微軟的說法,最後的"道德和法律標準",本文作者也不予評論(就是大家自己想)。

Azure的自動化機器學習

本節我們將介紹機器學習(以下簡稱ML)流程、Azure ML的能力還有使用Azure Machine Learning studio來訓練與部署預測模型。

如我們上面提到的:ML是一種使用數學與統計來建立可預測未知值的模型的技術。我們以U-Bike為例,U-Bike可以根據他的自行車租借歷史資料來預測租借需求來調度每個租借站的車輛。

為了達成這個目的,U-Bike就需要建立一個ML模型。該公司從歷史資料中(星期幾、天氣狀況、是否為節日等)相關資訊做為資料輸入,並預測未來的租借資料作為輸出。

在數學上,我們可將ML視為一種定義函式的方法 (讓我們將其稱為 f),該函式在一或多個「特徵」 (我們稱其為 x) 上運算來計算預測的「標籤」 (y),如下所示:

f(x) = y

在這個自行車租借範例中,指定日期 (星期幾、天氣等) 的詳細資料是「特徵」 (x)、該日的租借數目是「標籤」 (y),而根據當天的資訊計算租借數目的函式 (f) 則封裝在機器學習模型中。

f 函式對 x 執行以計算 y 的特定運算取決於許多因素,包括我們所嘗試建立模型的類型,以及用來將模型定型的特定演算法。 此外,在大部分的情況下,將機器學習模型定型所使用的資料需要先進行一些預先處理(也就是資料整理或清洗,不然就會garbage in garbage out了),才可以執行模型定型。

ML的類型

ML一般來說有兩種,監督式和非監督式。 監督式ML是我們要對訓練樣本資料(餵給電腦)下標籤。 監督式ML包括回歸(Regression)和分類(Classification)兩種。

  • 回歸:用於預測連續值(continuous value); 例如價格、銷售總額或其他一些衡量標準。
  • 分類:用於分類標籤; 二元分類標籤的一個例子是有心臟病或沒有; 多元類標籤的一個範例是將風險分為高/中/低

而非監督學習就是一開始就不對訓練樣本資料下標籤,而是讓機器自行判斷。在這裡使用的方法是聚集(Clustering)。聚集用於通過將相似資訊分組到標籤組中來決定標籤。

什麼是Azure Machine Learning studio?

就是資料科學家不用建立與管理整個ML的基礎設施,他們只要用就可以了。資料科學家只要準備資料、定型模型、發佈預測性服務,以及監控使用情況。 最重要的是,其可讓資料科學家將許多與定型模型相關聯的耗時工作自動化,藉此提升其效率,而且不用像在地端機房浪費資源一樣。

什麼是 Azure 自動機器學習?

Azure ML包括自動機器學習功能,可以自動平行嘗試多種預處理技術和模型來訓練演算法。 這些自動化功能是基於Azure雲端運算並在眾多演算法中找到效能最佳的監督式ML模型。自動化ML提供了一種通過自動化演算法選擇和超參數調整(hyperparameter tuning)來節省時間和資源的方法。

在 Azure ML中,我們運作的操作稱為jobs。 在開始自動ML運作之前,我們可以為jobs配置多項設置。 運作配置提供了在運行配置中指定訓練腳本、運算目標和 Azure ML 環境並運行training job所需的資訊。

AutoML 流程

一般ML的流程如下:

  1. 準備資料:辨識特徵(feature),整理/清洗以及對資料集下標籤
  2. 訓練模型:通常將資料分為:訓練用及驗證用
  3. 評估效能:比較模型的預測與已知標籤的接近程度
  4. 部署預測模型

在 Azure ML中,用於模型訓練和其他操作的資料通常封裝在一個稱為dataset的物件(object)中。 我們可以在 Azure Machine Learning studio中建立自己的dataset。

自動化ML功能支援監督式學習 ,支援的種類有

  • Classification (預測類別或類別)
  • Regression (預測數值)
  • Time series forecasting (預測未來某個時間點的數值)

在自動ML中,我們可以為主要指標、用於訓練的模型類型、退出條件和併發(concurrency)限制來進行配置。

重要的是,AutoML 會將資料拆成為訓練用和驗證用。 我們可以在運行job之前在設定一些細項。

job完成後,我們可以查看效能最佳的模型。 在這種情況下,我們使用退出條件來停止作業。 因此,作業產生的“最佳”模型可能不是最佳模型,而只是在本此job所允許的時間內找到的最佳模型。

最佳模型是根據我們指定的評估指標(Normalized root mean squared error)決定的。

一種稱為交叉驗證(cross-validation)的技術用於計算評估指標。 使用一部分的資料訓練模型後,剩餘部分用於迭代測試或交叉驗證訓練模型。 該指標是通過將測試的預測值與實際已知值或標籤進行比較來計算的。

預測值和實際值之間的差異稱為殘差(residuals),表示模型中的誤差量。 RMSE(root mean squared error) 的計算方法是對所有測試用例的誤差進行平方,找到這些平方的平均值,然後取平方根。 所有這些意味著這個值越小,模型的預測就越準確。 NRMSE( normalized root mean squared error)標準化了 RMSE 指標,因此它可用於比較具有不同尺度變量的模型。

殘差直方圖(Residual Histogram)顯示殘差值範圍的頻率。 殘差呈現模型無法解釋的預測值和真實值之間的差異,換言之,就是誤差(errors)。 我們應該希望看到最常出現的殘差值聚集在零附近。 而在天平的兩端出現較少錯誤。

下圖Predicted vs. True圖表應顯示對角線趨勢,其中預測值與真實值密切相關。 虛線顯示了一個完美的模型應該如何表現。 模型平均預測值的線越接近虛線,其效能就越好。 折線圖下方的直方圖顯示了真實值的分佈。

選擇效能最好的模型之後,我們可以將模型佈署在 Azure Container Instances (ACI)或Azure Kubernetes Service (AKS)。

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw.

No responses yet