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://blog.gcp.expert/gcs-notification-tutorial-3-cloud-pub-sub/
人不易判斷
判斷的量太大
醫療相關可以做篩選與過濾
https://quickdraw.withgoogle.com/
機器學習是提供資料讓其學習,而非我們告訴其特徵去過濾
給予一堆貓的照片,告訴他這是貓
而不是告訴機器,貓的特性是什麼
非結構性資料轉換為向量的數位資料
autoML試跑(不需要大資料)
AutoML Vision
https://blog.gcp.expert/cloud-automl-vision-quick-start/
運算與儲存分離,仰賴底層服務架構完整
準備資料、處理資料才是最耗時間的部份
三種方式訓練模型
瞭解問題選擇試用的工具來作業
說說我在泳池裡看到的一些奇聞軼事。
我們單位某一次同事去參加活動,跟了 Showgirl 合照,還傳照片到群組裡炫耀,在這之後不知道為什麼,只要有人出遊,我們大夥就會嚷嚷著要分享比基尼女郎的照片。可能我們的組成宅男多了點,所以這惡趣味感覺也跟著低級了一些。
此後我每次下班要去游泳,我都會跟同事開玩笑說我要去看比基尼女郎了。
一開始我是去 AA 運動中心游泳,但 AA 運動中心規定多,連我穿什麼樣的泳褲都要規定,這一點我跟市政府抗議了多次,雖然最終解除了泳褲的限制,但這件事始終讓我超級不爽,所以 BB 運動中心營業後,我就改去 BB 游泳。
說來有趣,BB 游泳池還真的有比基尼女郎,我一直以來的疑問,就是穿這樣的衣服游泳,難道不怕穿幫或是不方便嗎?沒有性別歧視的意思,就單純只是宅男未開化的死板想法。話說回來,穿比基尼的游起來根本都海放我,由此可知我的性別刻板印象有多僵化了,這一點我反省。
某天我的生日,照例還是先去游泳池游了一公里。我每天都固定至少游一公里,花費的時間都是半小時左右。游完我就趕回家吃飯,基本上是目標導向,也鮮少使用泳池裡的其他設施(水療、烤箱、蒸汽室)。
下班時我開玩笑說,我又要來去看比基尼。結果我昨天去泳池,卻看到兒童池裡有媽媽穿內衣下水?咦?這是允許的嗎?今天跟同事聊到這件事,同事阿樂說我會不會看錯了衣服?野原欣之助在旁邊補了一句:難道你以為他沒看過內衣嗎?
我還順便虧了太平陳柏霖,之前去 AA 運動中心,他每回穿自行車的車褲下水都沒事,我穿迪卡儂買的泳褲卻不行下水。
回到家跟老婆說了這件事,老婆還幫我查了一下有沒有後扣式比基尼。但我可以保證,那就是貨真價實的內衣啊!!!昨天我是顧著趕緊游完回家吃蛋糕,下回我一定努力的確認一下。
另外我已經有六次發現男性泳者的泳褲破洞,我第一次發現時非常疑惑,一直想說為什麼花紋會在菊花處的位置,等到我搞清楚那是泳褲破洞,已經來迴游了好幾趟了。
自從發現泳褲那個位置破洞,泳者自己不會知道之後,我立馬買了新的泳褲,所以現在我一共有八件泳褲,就是擔心我自己也成了菊花曝光者。
前五次我發現破洞後,都會趕緊通知泳者。大家的反應其實都是一致的,一來尷尬,二來會跟我道謝,然後就趕緊上岸去沖洗換裝離開泳池。
但是第六次,也就是幾週前,我跟那位泳者說他的褲子破洞時,他先用手確認了一下,然後就一直感謝我,因為他不知道褲子破了。
我以為他也會趕緊上岸,但結果並不是。他又繼續游下去,但因為他剛剛用手去確認了一下破洞的位置,結果那個洞就變得更大,很剛剛好就在菊花處,然後我就看著菊花不斷的綻放......
本來我們那個泳道有三位女泳者,在菊花熱烈綻放之後,她們就默默的轉移到隔壁泳道去了。看來應該是我感謝他,因為他的豪放讓我游的很奔放(因為泳道只剩我們兩位)。
再來,有次我在 AA 的大泳池裡發現了疑似便便的東西(大約十公分長)。這讓我非常困擾,我不知道該不該去確認那是不是便便?反正就是個長條狀,但已經抹在了泳道上。我一直以為便便都會浮起來,但似乎又不是這樣。但重點是,為什麼泳池裡會有便便?
之後我又仔細的觀察了幾次,發現靠近兩端的地方,都會有沙子,有時候那些沉沙的樣子,看起來的確像便便。但我始終無法確認,那一天我看到的,到底是黃金還是沙子?這一直都是個謎啊?
鏡頭轉到男性更衣室。有一回在 AA 游泳時我把雨衣跟雨套,放到了一個付費的置物櫃裡,但卻忘了付費鎖上。等到我游完要拿雨衣,怎麼都找不到。我以為雨衣被幹走了,最後去調監視畫面。
調監視畫面其實不容易,本來應該要報案後才能調,但泳池人員可能覺得只是個雨衣,所以就帶我進辦公室去看畫面。看到畫面時超驚訝,因為很多人沒穿衣服走來走去,監視器通通都看的見,還是大螢幕高清版......所以這告訴我們,還是要注意一下監視器的角度跟位置,不然全都露。
雨衣跟雨套最後發現根本是烏龍,我看到畫面裡我自己塞到櫃子,然後我就去做別的事了......等到我游完,怎麼都找不到,因為我以為我放在公開的位置裡。總之,超尷尬......
另外 BB 泳池的更衣室,也有奇特景象。男性更衣室裡,大概放置了五把公用吹風機。我以為吹風機應該是用來吹頭髮,但是多數的泳者,不是拿吹風機吹腳,不然就是吹自己的弟弟,也有吹內褲跟襪子的,就是很少看到吹頭髮,我都懷疑是不是我的基礎認知有問題?
所以,看到這一幕之後,我就再也不用公共提供的吹風機,因為真的太噁了......
淋浴室裡,我常會遇到爸爸帶著小孩沖澡。這週我聽到隔壁的爸爸跟他的小孩說,趕快尿啊!趕快尿啊!你不是要尿尿......然後我就看到黃黃的水(果真是童子尿),從隔板下方流到我的腳邊......淋浴室裡不是有標語不要在裡面大小便嗎?最後我不甘示弱的,也......
以上,就是我在泳池裡的所見所聞。
2019/7/30 更新
今天在游泳池第七次提醒了其他人,但似乎是做錯了......
夏天泳池裡的人越來越多,週日晚上去游時,還很高興每一水道都只有兩個人,所以我挑了快速水道也湊成了兩位。我在游的時候,發現岸上有個人超級假掰,一直在泳池邊做暖身,那個暖身超級專業。
其中有個姿勢是拉伸大腿,他老兄把大腿往泳道方向拉伸,就是做出一個七字型的姿勢,因為我做不到,所以我就在心裡碎唸,是以為自己是梁朝偉在演色戒嗎?我大概都游了七百公尺,他的暖身才做完。當時水道只剩我一人。
接著我就看他很瀟灑的跳水入池,我游三趟的時間他可以游四到五趟,因為是在快速水道,他比我快多了,所以我只要看到他很接近我,就會在岸邊停下來讓他水花四濺的翻身而去。
他的實力真的堅強,翻轉蹬腿後可以快速的漂(他身體都沒動哦!)將近八公尺遠,才開始繼續滑水游泳,超厲害的。好吧!雖然一直被海放,但人家這麼厲害,跟他同一道也算是與有榮焉。
撲梗撲太久了,今天跟週日不同,泳道裡滿滿的人,每一道都超過八位。後來我又選了快速水道,反正快速水道都不快速了。游不到四百公尺,迎面衝來一位身材姣好非常有料的比基尼女郎,你知道的,在泳池裡每個人都帶上了泳帽跟蛙鏡,我也只能這樣形容這位比基尼女郎。
跟之前遇到的比基尼不太一樣,這一位的技術明顯有待加強,自由式有點零零落落,加上不知道泳池的規矩,整個水道就她逆向,中間還會給你停下來用走的。後來可能發現我們這一道通通都是男的,且每一位都來者不善,她游了兩趟,就轉移去了隔壁水道。
我大概游了九百公尺左右時,就看到這位小姐從隔壁道游過,但我好像看到了不太該看到的東西。因為很不確定,所以我很認真的觀察了一下,好吧!是她的捏捏整個露出來了,因為我游的比較快,所以也沒多想,只是好奇她都沒有感覺嗎?(話說他們那一道也很壞,我不相信沒人注意到,竟然都沒有好心人提醒她)
因為在隔壁道,加上我游比較快,所以並沒有多事去做什麼。但等我游了來回一趟,發現她站在隔壁道的岸邊喘氣,整個半邊露光光,我猶豫了大概兩秒,最後也在岸邊停了下來,我跟她打了招呼,她看起來很疑惑,又有點緊張,可能不知道我要幹嘛吧!
我一時詞窮,不知該說什麼好,然後一直比手畫腳,最後說出了一句,小姐你趕快轉身面壁,你的「衣服」露出來了。我實在不好意思直接跟她說,她整個胸部都掉出來了,只好吐出這一句。
當時她可能也嚇傻了,完全沒動作,既不轉身也沒做任何事,我兩就很尷尬的對看了一眼。我真的也很尷尬,趕緊裝做沒事就游走了。但是我們那個泳道的其他泳者,每一個跟我對眼的,我都可以感覺到殺氣。 我想,我是不是做錯了什麼......
因為殺氣太重,加上我覺得很尷尬,所以等確認比基尼女郎衣服喬好後,我就上岸了,今天我只游了一公里......本來我是要游兩倍的啊!
剛剛跟老婆分享了這件事,老婆說我趕緊走是對的,免得發生了男性更衣室裡的群毆案件。
這是我們頭一次造訪黃金海岸,選擇住宿的地點時,遷思回慮,考慮了好多層面,簡言之一切都跟預算有關。
開會的地點,是在 Surfers Paradise Marriott Resort & Spa。Marriott(萬豪)是個大型連鎖飯店集團,這間 Marriott Resort & Spa 位在衝浪者天堂的最北邊,雖然不靠近沙灘,但飯店自己有人造沙灘,在封閉的環境下也挺安全的,只可惜它是一般飯店,並不是公寓式酒店,所以一開始就被我們屏除在外。
我們之所以選擇公寓式酒店,有幾個原因:首先,公寓式酒店可以選擇兩房間以上的房型,雖說許多飯店也有連通房設計,但通常訂一間公寓,會比訂飯店的兩間房間便宜,加上多了起居空間(客廳、餐廳),所以如果可以選公寓,我們都會先看公寓式酒店。
距離上回到訪布里斯本,已經過了六個年頭。
2012 年前往 Brisbane 時,我們是下榻在 Quay West Suites Brisbane(目前更名為 The Sebel Quay West Brisbane),當時小孩年紀還小,所以訂了一臥室房型的公寓,再請飯店多放一個嬰兒床。
六年後,兩小都讀國小了,依照澳洲多數飯店的規定,必須要選兩間房,或是兩臥室的公寓,因此出發前花了點時間尋找酒店的資訊。