Digital Cloud OnBoard: 大數據 & 機器學習

心得
模組 1 : Google Cloud Platform 介紹
第一節主要是在介紹 GCP 所提供的服務,包含 Google 在基礎建設上的強處,以及為何 GCP 可以提供可靠的雲端服務。然後本次技術分享課程,主要是針對資料工程的工作項目,後續幾節會說明機器學習的技術跟服務。

如果從沒使用過 GCP 服務的人,或是想要將 Local 端的伺服器服務,轉移到雲端服務的話,可以聽一下這一節的簡單說明。至於已經開始使用 GCP 的人來說,可以聽聽他裡面提到的案例,以及資料與運算分離的方式,尤其是純資料儲存可分為經常存取跟很久或很少存取的,在預算上有不少差異(少用比較便宜)。

另外對大公司的開發團隊來說,它有三層架構連接底層的運算服務跟資源,透過 Projects、Folder、Organization 三層,可以進行權限與工作管理上的劃分。這部份沒聽這堂課時,我只知道有 Projects,不知道還有 Folder 跟 Organization 的方式。

另外有提到將檔案上傳到 GCP 的方式,之前有去聽另外一個研討會,那場就有完整說明如何將本地端主機,轉移到雲端伺服器的作業流程。當然 Google 的說明頁面也會有,只是聽過別人介紹再看說明,理解跟實作會快很多。

另外雲端伺服器的好處,在於拓展性高、可用度高,企業如果使用傳統方式架設服務,勢必一開始就得投入主機、網路設備的硬體資源,而且還需要一個專職的管理者。但云端主機開啟一台虛擬機器,就一分鐘的事。在需要時,可以續速拓展,不需要時馬上關閉,以使用量來計費,這個彈性就不是自己管理主機所能處理的。

十年前,雲端主機的服務還不是那麼普及時,台灣的新創跟美國新創最大差異,就是在IT資源上,美國的環境便利很多,所以也才能造就那麼多網路服務的公司出現。目前雲端服務已經有多種選擇,同時有多加公司提供這類服務,但實際上導入雲端的企業,所佔比例也還不是太高就是。

另外也有提到機器學習應用的樣貌,這跟一般人的理解會有一些落差。花點時間看一下,還蠻值得的。

模組 2 : 推薦 (Recommendations) 與預測 (Predictions) 模型
第二節就正式進入資料分析的實作說明,他有提到最早的大數據框架(2006),是採用 Yahoo 所推出的 Hadoop 框架、MapReduce、Hive、Hbase,簡單說就是分散式運算的框架。

但之後因為移動式設備普及,資料量太大,加上需要即時處理跟運算,Hadoop 在即時分派這些運算工作的效率不佳,另一個 Apache Spark 在處理資料分析的工作,是在記憶體中以實時方式完成分析,所以它的處理效能是 MapReduce 的十倍。Google 透過 Spark 的技術,將資料跟運算分離,所以更能有效的處理即時分析的作業。

GCP 提供了雲端上的 Dataproc 的功能,結合了 Hadoop 跟 Spark,雲端的特性是新增任何資源都很快速,所以工作的組成就有很高的彈性。影片中有描述使用情境跟彈性架構,這部份值得觀看一下,會比較瞭解善用雲端服務的特性,來節省企業的主機架構與運算成本。

另外若本地端已經有 Hadoop 的環境跟作業項目,也可以快速移轉到雲端,基本上是相容的,只需要修改部分程式碼,就可以改在雲端上運作。

中間有提到一部分 Cloud SQL 的介紹,也有提到資料的正規化跟反正規劃的設計。原則上一般的關聯式資料庫,為了節省資料庫資源與空間,都採正規化設計方式。且關聯式資料庫一般都會建立索引,來提升資料查詢的效率。

但以大數據來說,資料本身無結構性,因此通常會採用 NoSQL,它的查詢跟輸出本身就是一致的,所以會使用非正規化的方式來設計,同時在搜尋時會透過機器拓展來增加搜尋效能。我們單位資料工程的面試題目,有一題就是詢問正規化跟非正規化的差異是什麼?以及正規化有哪些規則?(不要有重複群組、去除相依性、刪除不依賴索引的欄位、BCNF)

後半段直接講到 BigQuery 所提供的功能,講解時是使用推薦系統為範例,透過實機操作來做說明。這部份我覺得最重要的就是如何操作的過程,畢竟 GCP 上面服務很多,每個服務又有好多操作項目,自己摸索跟看文件都要花上很多時間。但實際看案例操作,可以依樣畫葫蘆,雖然服務跟功能不同,但系統面大抵上是接近的。

裡面也提到許多機器學習的概念,很可惜 Google 的慣例是不提供簡報,不然有簡報複習起來,會比看影片節省很多時間。

Day - 1 總結
講師 Browny 說有問卷跟小考,但是都沒有看到捏。有填問卷會送精美小禮物,我希望是送 T-Shirt 或 Polo 衫,感覺好像想太多......

明天還有課,就繼續聽下去。

模組3:即時儀表板
本節課程一開始以物聯網的例子當開頭,提到串流資料不斷湧進時,GCP 透過 Pub/Sub 來接收 Topic。然後利用 Dataflow 來處理串流數據的分析工作。這部份的技術,主要是處理大量即時的資料,進行分析代管的服務。所以數據資料處理時,系統會自動調度資源,自動處理擴容,將延遲的時間、處理時間、以及處理成本降到最低。它是利用Apache Beam SDK,這是一個開源的編程模型,用來定義資料處理的管道。

在利用 Apache Beam、Dataflow 的服務時,還可以利用 TensorFlow 來訓練機器學習的模型,並產生預測的結果。

後面一小部分,提到了 Google Data Studio,簡單說明了透過 Data Studio 將分析數據用視覺化的方式來呈現,但我覺得這部份只有簡單帶過,有點可惜。Data Studio 提供多種資料串接方式,但資料呈現到資訊圖表,有諸多限制,所以我想知道是功能本身上的限制,還是我知道的方式不夠多,但這部份沒提太多。

模組4:利用機器學習來獲得深度見解
這一節裡一開始提到哪些項目,適合來做機器學習的專案:包含人工不易判斷的事物、或者需要判斷的數量遠超過人工處理的能力、以及可以事先透過機器學習來篩選的項目,以上這些都適合導入機器學習的技術。舉出的範例包含了判斷一張空拍照片,裡面出現的白色塊狀是雲?還是積雪?以及一艘貨輪上面貨櫃的數量預估;跟醫療影像透過 AI 先篩選掉不需人工判斷的資料。

接著舉了 Quick Draw 與 AutoDraw 兩個範例,前者是給使用者一個題目,只有二十秒的時間來畫出那個主題,邊下筆的同時,人工智慧就會邊分析你畫的內容,成功的時候就會跳下一題。後者是使用者畫一個圖形,人工智慧會猜測你畫的內容,給你一個圖示。這兩個案例都是機器學習與人工智慧系統的範本。同時也說明這兩個案例處理的方式,簡單來說都需要將非結構性的資料轉為向量的數位資料來處理跟分析。

後半段提到貓的範例,說明機器學習的運作原理,並非是我們給予某個東西的特徵來去學習,而是我們給了大量的資料,告訴機器這是什麼,由機器學習自己去找出關連的因素,這才是機器學習真正的運作模式。所以給了機器學習一堆貓跟手繪貓的資料,告訴它這是貓。那麼有一張一般人辨識不出的貓的局部照片或手繪照片,機器學習一樣可以辨識出來。但我們可能無法得知,機器學習是透過哪個特徵認為它是貓。

這方面也顛覆了我的理解,雖然看了機器學習也有一年以上的時間,但基本的運作原理卻不是很清楚,透過這次說明更清楚知道它運作跟學習的方式。

最後有舉一個雲朵圖形辨識的實例,是透過 AutoML Vision 的功能。GCP 上已經提供了數個機器學習的模組,所以在先期的研究,可以利用 AutoML 的模組來進行,它的優點是只有少量資料還是可以進行機器學習,並給予一個結果。

從這個案例裡,我想到的是,現在的車牌辨識功能,就能夠利用 AutoML 的模組來完成。因為車牌的號碼是固定字型,如果是停車場所需的車牌辨識,在取得每台車的車牌照片時,角度跟方向差異是不大的。因此只要提供一定數量的車牌照片,就能夠訓練出一個系統能有效辨識車牌。同樣簡易的人臉辨識,例如手機的人臉跟機台的人臉辨識,也都可以利用類似的技術來訓練機器做識別。

總結
這邊簡單的歸納了第一天跟第二天的內容,提到 GCP 將運算跟儲存分離,仰賴的完整的底層服務架構。然後進行資料工程作業時,準備資料與處理資料才是最耗時間的部份,GCP 也大力去處理其他區塊所需的資源,讓開發者可以專注在前述的作業裡。

最後提到 GCP 提供了三種層級的AI:pre-built AI(使用已經建立的 Model 還可以透過 API 組合)、Custom Models(AutoML)、TensorFlow(自建ML)。

速記
Notification

Pub/Sub

pipelines

https://technews.tw/2020/03/12/google-launches-cloud-ai-platform-pipelines-in-beta-to-simplify-machine-learning-development/

https://blog.gcp.expert/gcs-notification-tutorial-3-cloud-pub-sub/

人不易判斷

判斷的量太大

醫療相關可以做篩選與過濾

https://quickdraw.withgoogle.com/

https://www.autodraw.com/

機器學習是提供資料讓其學習,而非我們告訴其特徵去過濾

給予一堆貓的照片,告訴他這是貓

而不是告訴機器,貓的特性是什麼

非結構性資料轉換為向量的數位資料

autoML試跑(不需要大資料)

AutoML Vision

https://blog.gcp.expert/cloud-automl-vision-quick-start/

運算與儲存分離,仰賴底層服務架構完整

準備資料、處理資料才是最耗時間的部份

三種方式訓練模型

瞭解問題選擇試用的工具來作業





2020-06-09  -  duncan Email  -  839  -  資訊工程 - 讀者回應

回應管理, Pingbacks:

這篇文章還沒有 回應管理/Pingbacks ...

讀者回應:


你的Email位址將不會顯示在這個站點.

您的URL將被顯示.

允許的XHTML標記: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
Enter this code:
authimage

(換行會被轉換為 <br /> 標記)
(將你的姓名及Email及網址記在Cookie中)
(讓使用者可以直接寫訊息給你(不會顯示你的Email).)

上一篇文章: The Lairds Bothy-紐西蘭皇后鎮住宿下一篇文章: [演講活動心得]你,認識 AI 嗎? - 深入淺出介紹 AI 原理及發展