2024年8月8日 星期四

溫故知新--Essential C++


個人在大學時期就拜讀過候捷大師譯的兩本書,《 C++  Primer 中文版》、《Essential C++ 》。如果你是新手想要學,個人認為可先以《Essential C++ 》作為第一本導入門教材的確不錯,因為它只有200多頁,書沒有太厚,至少你不會覺得讀完遙遙無期,但仍然給了你C++語言的正確觀念! 現在很多的C++書都是C語言的翻版而已,加了一點 class 和繼承,就以爲是OO,其實還差得很遠。

很多人只是用了C++ compiler , 但程式內容和 C 沒有什麼兩樣,也看不出 OO 的設計精神!  把 printf 改用 cout 不等同於會 C++




《Essential C++ 》你可以深入了解:



• Generic programming and the Standard Template Library (STL)
• Object-based programming and class design
• Object-oriented programming and the design of class hierarchies
• Function and class template design and use
• Exception handling and Run-Time Type Identification



2024年8月3日 星期六

iPAS 機器學習工程師參考樣題解說




更多補充說明 :

1.) 神經網路加入Embedding 層的用意? 
將輸入的 sparse vector 轉換成高維度的 dense vector,如此的 dense vector可能可以表現資料更多元的特徵。

2.) 模型效能評估為何使用RMSLE (Root Mean Square Logarithmic Error)  而不是MSE  ? 

因為當資料數據 y 本身差異很大時, 決定MSE 的大小其實都是由數值很大的 y 所主導, 對於數值很小的 y 就顯得微不足道。  故若想要觀察每一筆資料預測的誤差不要被某一筆數量級較大的y所主導,可以使用RMSLE.


因為RMSLE 先取 log  再計算MSE.。 由於取log 會使數值 scale 變小, 因此即使存在某些 y 很大, 對MSE 的影響也會相對變小。

另外,也可以用MAPE, 尤其當每筆資料數據 y 都是很大的情況,用MSE 計算都將超大,故用平均絕對百分比誤差反而是一個比較能看出預測和標準答案的誤差率。

 



Read More: