受到 AlphaGo 的影響,注意到 TensorFlow 強大的功能,所以去年研究所的機器學習改用 Python。任教的過程中,發現學生的學習曲線較高,所以今年改用 Keras。
如何在深淺度之間取得平衡,花了些心思,參考的資料包括一堆教科書、線上課程、論文、新聞和產業工作。
就數學而言,在適當的時機,複習微積分、線性代數、統計學、7-17 反向傳播的推導。
程式碼也是挺有趣的,例如 4-3 節線性迴歸方程式,課本只教 sklearn。想說教一下顯著性,所以用statsmodels.api,沒想到兩種算法竟然出現不同的答案。只好試了第三種 (公式解), 答案和第二種一樣。 之前,不知道花了多少小時,就是找不到原因。這幾天準備要錄影上傳,想說再試一下,再仔細地看了一下官方的規格書,才發現 sklearn 預設的正規化很奇特 (除 l2 norm),和statsmodels.api 的 z 值正規化 (除標準差) 不同。 經過修正後,答案總算一樣了。第五章的隨機梯度演算法 (stochastic gradient algorithm),利用 Python 預設值,單變數線性迴歸竟然發散。
其實,在這之前,已經上過幾次。一改再改,大概數百小時。所以一定要定稿,告一個段落,以便能從事其他事情。
這算是新年新希望。
沒有留言:
張貼留言