2018年6月27日 星期三

AI學習心得、未來學習目標及後續應用


學習心得
已學習之AI課程包含(按照學習先後順序排列):「人工智慧關鍵技術開發」、「人工智慧TensorFlow應用設計」、「OpenCV影像處理與電腦視覺應用」以及「人工智慧自然語言處理」。
上述課程皆由資策會開授,課程內容偏重「深度學習」之概念及操作方法,對於「機器學習」幾乎沒有提及。

上述課程學習順序相當重要,正好是由淺而深的安排。
l  「人工智慧關鍵技術開發」廣泛地簡介深度學習基礎之概念、流程及實作方法,但較少著墨高階的深度學習模型/應用(如:自然語言處理)。
這堂課有助於初學者認識深度學習的全貌,但上完課後仍較難用深度學習實作分析自己的資料。
l  「人工智慧TensorFlow應用設計」教如何以Python的程式語言執行TensorFlow之深度學習模型,包含:全接網路 (Fully-connected Neural Network)、卷積神經網絡 (Convolutional Neural Network) 長短期記憶網路(Long Short-Term Memory Network)
這堂課後即可用上述的深度學習模型分析自己的資料,但課程中例子以圖片處理為主,因此若要套用到數值資料(如:病歷資料),則須在課後自己上網找資料才能類化應用。
l  OpenCV影像處理與電腦視覺應用」介紹以Python的程式語言執行OpenCV,以處理(剪輯、標記、存取、旋轉以及色彩變化等)圖片或影片,經處理後的影像資訊方可進行深度學習或機器學習。OpenCV是當今影像處理程式之主流,因為OpenCV具備免費、可接受多種程式語言以及功能強大等優點。
這堂課後已具備基礎的影像處理技術,可將影像資料整理/準備好(如同煮飯前先洗菜切菜的步驟),以執行後續之深度學習或機器學習。
l  「人工智慧自然語言處理」介紹用Python的程式語言執行TensorFlow以進行基礎的自然語言處理模型。
課程後應可使用自己的文字資料建立「翻譯機」以及「句子中的語意擷取」,但「聊天機器人」短期間內無法建立。

AI課程補充說明:
1.     選擇Python程式語言的理由:上述課程都是使用Python程式語言撰寫程式,但Python並非唯一可以執行深度/機器學習之程式語言。我選擇Python是因為目前Python語言可在各大深度/機器學習平台(如:TensorFlowKerasAzure)使用,對於未來跨平台的串聯應用提供良好的基礎。
因此在上述課程前,如果可以先學習Python(或有Python基礎),將可更快吸收且上手分析資料。
2.     選擇TensorFlow深度學習平台的理由:TensorFlow是免費平台,且網路上可參考的語法資源豐富,幾乎所有的深度學習模型都可以在網路上找到,且已被應用於各種領域(如:科技及醫療),因此TensorFlow應是目前彈性最大的深度學習平台。
3.     課程的小缺點:深度學習的很多模型都很複雜(如:影像處理的卷積神經網絡及自然語言處理),需花費大量的時間(以天為單位計算)及高規格的硬體設備,因此無法於課程中實作。

未來學習目標/可能執行的計畫
1.     機器學習:機器學習的理論基礎可上coursera之線上課程「人工智慧:機器學習與理論基礎」,實務操作上可用Python的機器學習套件 (scikit-learn)
機器學習可能執行的計畫:比較不同機器學習模型應用於病歷資料預測之效能。(scikit-learn(https://www.coursera.org/learn/ai2)
2.     電腦視覺:影片的電腦視覺分析(目前只掌握圖片的電腦視覺分析方法),未來可在雪梨大學之研究室進修。
影片的電腦視覺分析應用:中風病人動作、平衡及行走智慧影像評估。
3.     自然語言處理:目前缺乏大量且有label的復健相關領域語言資料,因此短時間內難以實作自然語言處理的深度學習模型。
自然語言處理的應用:智慧SDM行為檢核系統,從醫病溝通的文字檔中,找出醫病溝通之關鍵句,並加以標示出來。做法上,目前可先把醫病溝通的錄音檔轉文字後,蒐集文字檔中的「SDM關鍵句」並將句子的意圖(如:說明病人主要問題及詢問治療目標)標示/分類好,等句子蒐集到夠大的量(如:1千句),即可試著建立初步的「智慧SDM行為檢核系統」
4.     病歷資料分析:參考文獻中是否有類似的病歷資料分析/預測模型,並試著建立相同的模型,檢驗是否能預測的更準確(相較於現在嘗試的淺層類神經網路模型)。