Microsoft 的 IoT 世界觀:建立「你的」物聯網

隨著愈來愈多人談論創客(maker)精神,以及巨量資料的議題,物聯網(Internet of Things,以下簡稱 IoT)的題材也跟著熱門起來 —— 這些可以寫程式控制的硬體、裝置,在接上網路之後,除了可以將裝置上蒐集的資料往某個地方(也許是所謂的 “cloud")傳遞儲存之外,這些裝置設備可能還會透過網路接收到一些「訊息」來調整它的運作邏輯。試想家中的空調設備若也是一個連接網路的設備,它蒐集了你使用空調的各種數據,往一個智慧系統傳送,接著這個智慧系統建立了一個預測你習慣的模型,根據這樣的模型把預測什麼時候要調高調低溫度的「訊息」送回給空調設備,如此一來,空調設備的自動調節運作也許會更符合你的使用習慣(當然你還是可以手動調整)。 在上面的例子,我們看到了有設備(物,things)以及網路傳輸(網,internet),再加上資料及智慧系統,建造出一種理想的物聯網情境應用,而在這些情境應用中,最重要的部份其實就是處理資料以及從資料中學習的智慧系統。Microsoft 希望與客戶或合作夥伴的合作方式,並不一定要跳脫原本的核心事業,刻意地去做一個新的裝置或設備,而是能在原本的核心事業中加入 IoT 的思維,不論前端的設備用什麼樣的平台或技術打造,都可以結合 Microsoft 的智慧系統來提升效率、啟發創新以及協助商業轉型。 接下來,我們可以來探討 Microsoft Azure 上的服務如何來幫助各行各業導入 IoT 思維。 提升效率 如果不是從頭開始,要在既有的各種設備上蒐集資料、或是加上網路傳輸的功能,首先就要處理眾多異質平台,以及設備數量(直接影響資料數量)等等的問題,但是透過 Azure Event Hubs 的服務,不論前端是什麼樣的設備,透過官方提供的 SDK、或是照著 AMQP 或 HTTPS 的方式進行傳輸,都可以很輕易地將資料傳輸到雲端,更重要的是,Azure Event Hubs 天生就是為了處理即時巨量資料所設計的服務基礎所設計,所以也不必煩惱短時間湧入的大量資料要如何處理的問題。這些問題解決了,也將更容易及輕鬆實現蒐集巨量資料的目標,並且這些都可以是自動化操作,不必擔心後端蒐集資料的平台無法處理的問題。 除了能處理大量的即時資料之外,Azure 上的 Storage 或是 HDInsight 服務上的 HBase 因為有異地備援的特性,可以安全地儲存這些珍貴的資料,而且 Azure HDInsight 就是完整移植了 Apache Hadoop 的生態系,所以處理巨量資料操作的問題也解決了,當這個系統已經幫助您建構好眾多的基礎建設時,效率還不提升嗎? 啟發創新 如果辛辛苦苦蒐集了一大堆的資料,結果必須要隔一段時間才能分析或是操作資料,那反應就比其它的競爭對手或是合作夥伴慢了幾拍,更別提資料的來源可能還有好幾個,那還談什麼創新呢?所以 Azure Stream Analytics 服務以及基於上述提到的 Azure HDInsight…


從 Azure Machine Learning 開始進入機器學習

什麼是機器學習? Machine Learning(機器學習)不是什麼新技術,至少我在十幾年前(遠目)在大學時修這門課是就已經是發展一段時間的領域,而用最簡單的說法來解釋「機器學習」,就是讓機器擁有學習能力,能夠建立自己的「智慧」,進而在真實世界中進行推論(預測)、分類或是分群等動作,當然,就像我們人類學習一樣,要嘛是讀書破萬卷,要嘛是從師長口中、生活當中得到經驗,然後把這些內容、經驗歸納出自己的智慧,機器要學習也需要大量的資料才能進行學習,而之所以最近會成為一個熱門的話題,自然也是因為資通訊的發達後,人們開始想從大量資料(Big Data)中找出商業智慧或是利用這些資產來建立智慧,於是爭相開始討論機器學習。 具體來說,到底機器學習的是什麼呢?科學家們將學習的模型分成幾種類型,以上圖為例,它是一種學習「分類」(classification) 的問題,透過合適的學習方法(學習演算法)建立起來的模型,就像圖中的虛線一樣,能夠判斷哪些資料是哪一個類別。以現實生活來舉例,郵件伺服器可以透過機器學習來學會判斷一封信是否為垃圾郵件,學習的資料就是過往大量的郵件,以及導師(例如你手動標記哪些信是垃圾信)標記哪些信是垃圾信,讓郵件伺服器愈來愈有能力主動地判斷一封新信件是否為垃圾郵件,這就是機器學習的應用之一。所以我們可以知道,機器學習是讓機器(當然包含軟體)有能力對於未來的事物或情境採取行動的方式。 Azure Machine Learning Azure machine learning overview from Lin-Chieh Shangkuan Azure 機器學習(Azure ML)是 Microsoft Azure 平台上其中一個服務,這個服務為想要進行機器學習的開發團隊,提供了處理大數據的基礎建設、機器學習的演算法、硬體運算資源、以及將模型變成 Web Service 等服務,讓開發團隊可以專注在資料的蒐集、要解決的問題、判斷要「學習」什麼問題,其它運算的工作就讓 Azure 機器學習這個平台來完成。在這個服務下,不管你的資料放在哪裡(放在 Azure 上或不在 Azure 上),都可以拉進 Azure ML 來進行學習的工作,這裡我們以實際的操作來做說明。 上圖是 Azure Machine Learning Studio 的首頁,可以看到一些影片介紹,如果想要立刻免費體驗 Azure ML(是的,有免費方案),可以點右上角的 Sign In 連結,使用 Microsoft 帳號(也就是之前的 Windows Live ID、MSN 帳號等)登入,就會進入 Azure ML Studio 的操作畫面(或是你要稱它為實驗室也可以):…