元智大學資管系第二十六屆實習成果展-ZS
學習
Learn
技術面
Technical side
Python
在這部分我主要學習存取讀取檔案、資料運算處理、資料視覺化,因為Python有各式各樣的套件使整體程式碼可以縮短許多,所以除了研究以前學過的C++/C#程式概念如何在Python上實行外,更快、更精簡的利用Python語法完成工作更是這次學習的目的。
Machine Learning
這兩個學期,我學到了大量有關類神經網路、機器學習相關知識,除了平常上課會用到以外,在日常生活中有些科技網站的新聞報導也可以看到很多相關的AI資訊,以前看不太懂的東西,經過學習後我比較能理解報導中說明的架構,所以在日常生活中,我偶爾也會想想自己碰到的日常問題,哪些是能夠透過AI解決的。
除了上謝老師的課程中有教到機器學習,在大三下的課程中,越來越多課程用到資料分析,當我學會用AI後,越來越多東西都可以用AI來輔助我預測、判斷這些資料,比如在資訊管理系統二的課程中,小組報告裡我們就有用到AI模型分析車禍中有死亡或是無死亡,兩種結果進行預測,雖然沒看似很準確,實際上卻因為死亡資料那邊有些不夠多,使得資料準確度看似完美,實際用起來可能沒那麼準確,但我們還是很高興自己所學的部分可以用上!
Transformers
Transformers是深度學習的模型,有了這些架構的出現,不少學者進行改善架構,像是由Transformers衍伸出來的BERT、GPT架構,這些東西在謝老師上課時都多少有提過,而我對這技術的注意力機制(self-attention)運行模式特別有興趣,於是我在暑期時也自己去找影片,在自己的Python環境試著訓練自己撰寫的模型,雖然沒有到很準確,但是這份經驗我覺得蠻可貴的,畢竟是自己研究而來,而不是別人給予的。
AlphaPose/PoseNet、CNN
PoseNet是TensorFlow.js的機器學習模型,透過輸入圖片,通過Convolutional Neural Network(CNN)解析,最後透過演算法解碼姿勢、姿勢信度得分、取得關鍵點位置……等,了解CNN構造後使我更清楚PoseNet運作方法。
最開始運行高爾夫專案採取AlphaPose抓取人體骨架,然而因專案需運行於網頁上,則改採PoseNet進行,兩者的辨識效果皆非常良好。
Dynamic Time Warping(DTW)動態時間規整演算法
這項技術常常運用於語音辨識方面,解決了各種時序長短不一但內容相同的資料問題。在高爾夫專案中,許多人的揮桿動作時間皆不相同,要做比較必定需要先將時序長度統一,這正是這項技術運用於本項專案之處。
餘弦相似度
經由計算兩個向量間的夾角餘弦值,依此得知兩者間的相似性。透過這種方式計算出來的數字將介於-1至1之間。在資料蒐集時採取選擇性質一致的揮桿影片,揮桿動作基本上不會有相反方向,故計算出來的值僅會介於0至1,透過乘以100%更清楚了解各個揮桿者與標準揮桿者之間的動作差異。
Javascript/HTML
當我大一學完網頁相關的課程後,僅了解了基礎HTML與Javascript的用法,不過實際需求總與課程內容不盡相同。在學習如何應用TensorFlow.js之前必定得先熟悉HTML與Javascript各式各樣語法,經過這次專案開發,我最大的收穫便是「箭頭函數、Promise、async函數」,了解這幾項功能後,使函數定義與應用更加明確,亦更加方便,開發速度更加提升。但是對於Javascript中同步執行的特性是我還需要更加深入了解的部分。
非技術面
Non-technical side
溝通技巧
請教他人時,如何簡潔、明確表達自己不明白之處非常重要,同時需要準備些自己已經預先查詢過的相關資訊,使得對方不會覺得自己只是懶得上網搜尋;或是與他人討論時,如何更準確表明自己的立場、想法。這些溝通技巧在我製作專題期間都間接成長不少,不過還是有許多進步空間。
撰寫比賽說明文案、論文
在完成專題雛形後,投稿比賽時,如何以正式的文字說明,一直都是各學生的重要課題,在我撰寫時論文有不少攏詞贅字出現,抑或是過度描述當一事件而導致主題方向有些不正,透過這次的經驗以及老師與同伴提點,我發現自己的錯誤並且修正,這讓我更清楚一個論文該有的架構與撰寫方式。
時間安排
進行校內專題的學生因為不須特地通勤而省下不少時間,如何利用這多出來的時間精進自身能力也變得相當重要,而未定義目標漫無目的搜尋資料並不會給自己太大的幫助,如何與自己對話,找到想了解的目標,並且細分各項步驟一一完成,這是我自己在這段時間摸索出自己能夠接受的自學模式。而太多事情想學,如何區分緩急輕重是我還需更加強的部分。