iT邦幫忙

DAY 9
0

Google Developers Machine Learning 學習系列 第 9

【Day 09】How Google does Machine Leaning (How Google does ML -2)

前言

今天為了解釋"如何解釋最陡梯度\梯度下降法(steepest\ gradient desent), 透過沿著梯度反方向能讓目標函數值下降?"這項問題,花了三小時打了快兩千字,如果有人有興趣可能後面講到相關內容可以補充一下。

主題

2.1 The secret sauce(上)

https://ithelp.ithome.com.tw/upload/images/20190910/20120188ie5VER598M.png
機器學習的獨門祕方是什麼呢? Google給出了根據他們經驗裡,常常會誤入的10大陷阱!
其實我不太懂為什麼十大陷阱,結果有些項目條列出來卻是正確(而非用反面敘述),或許是為了對抗不看影片只看圖片就快轉的人?

1. ML requires just as much software infrastructure

這句話是肯定的,機器學習需要非常多的軟體基礎建設,像是提到爛的"自動化資料流",光是這部分就很麻煩了,傳遞方式、資料的格式化等,另外,在機器學習模型上,建構、優化、穩定度等,都需要許多軟硬體的基礎建設去支持,因此,還是需要編寫大量的"傳統"程式。

2. No data collected yet

還未收集資料,Google的建議:你還是先把資料準備好再來見我!這邊所謂的還為蒐集資料,包括了資料持續的被儲存在從未有人會去使用的磁碟中,像是工廠機台的log檔案之類的,這些東西會遠比想像中的還樣"髒",原因很多:一開始生產資料的源頭不穩定,可能是人為產生的資料,或是程式產生但當初寫程式的人沒有把這些資訊有系統的規格化;也可能是產出後,各種因素導致資料缺漏等,因此,在準備好第一桶資料集之前,先別急著搞一堆ML模型。

3. Assume the data is ready for use

"我的資料已經夠啦!",在這資料就像是黃金的時代,覺得自己資料已經足夠的人,肯定不了解其價值,連歐盟都考慮針對使用\購買\販賣資料的行為進行課稅了,千萬不要因為幾TB的資料就感到滿足!
認真來說,儘管有巨量的資料,但經過處理後往往剩下來可用的會減少好幾成,而且隨著時間資料的變化性也會增加,因此,持續蒐集資料建構清理過的資料集是非常重要的!

4. Keep humans in the loop

"讓人類持續介入在機器學習流程的迴圈中!",這件事情究竟是肯定的還是否定的呢?
答案是
.
.
.
肯定的!正如同傳統程式設計需要人不斷維護、更新,機器學習的產品也是需要維護更新的,儘管這件事情似乎與前面期望的自動化、智慧化稍有牴觸,然而,過去google就發生過把黑人標註成黑猩猩的案例、某公司利用機器學習算法進行面試篩選卻會有性別歧視等,由於機器學習演算法仍然某層面而言是反映出資料內的趨勢,因此,在資料蒐集的過程中,人為偏誤(資料產生過程、資料蒐集過程、資料清理過程)都可能會導致訓練出不符合期待的模型,這時候適時的讓人類介入去修改流程中的問題就非常重要。

5. Product launch focused on the ML algorithm

這項比較偏商業模式的思考,如果發表的產品主要專注於ML演算法上,會導致什麼問題呢?
1.用戶並不care到底用了什麼東西,他們只想要獲得好的使用體驗
2.當使用的介面完全用ML機制代替,而用戶沒有操作的空間,那麼將會錯失很多蒐集用戶偏好資訊的機會,進而無法讓機器學習模型繼續更新變好,這樣的交互迭代是非常重要的。


上一篇
【Day 08】How Google does Machine Leaning (How Google does ML -1)
下一篇
【Day 10】How Google does Machine Leaning (How Google does ML -3)
系列文
Google Developers Machine Learning 學習20

尚未有邦友留言

立即登入留言