「所謂的“抽象”,是從具體的對象上,需要聚焦的重要部分,單獨抓出來。」
「Abstract的tract部分,既有“抽出 extract”也有"減去 subtract"的函數;而 Abstract 的
ab 部分,就是遠離,也就是遠離要抽象的那個具體的對象。」
「所謂的“模型”,是為了“說明”現實世界時,簡化後的表現。」
「"模型 Model"與"模組 Module",兩者的語源都是拉丁語的 modulus。」
「Model-View-Controller對應著"編程 Programming", “表現”, "操作"的關鍵部分。」
「"模式 Pattern",則是在"抽象"與"模型"下能被看見的世界。」
「"設計模式 Design Pattern",則是你希望透過模式來看見的世界。」
以上這段討論,摘錄自日本作者西尾泰和[1]的著書,
《エンジニアの知的生産術 - 効率的に学び、整理し、アウトプットする》[2]的第29-36頁,
引發我對數學模型,統計模型,演算法模型的深度思考。
由於我的研究領域是統計機器學習與資料科學,
幾乎是時時刻刻都在與「模型 Model」打交道。
我在大學時期就讀台大數學系,所以掌握了大量的數學模型,
幫助我看懂各種運算背後的本質。
而碩士時期就讀台大數學系應用數學所,進一步掌握了各種統計模型,
幫助我看懂各種數據背後的本質。
到了博士時期就讀美國普渡大學統計學習,研究統計機器學習,
進一步掌握了各種演算法模型,
幫助我看懂各種自動化決策的本質。
而透過自學「編程 Programming」,
我也瞭解到「數據結構 Data Structure」,「設計模式 Design Pattern」等概念。
但之前沒有特別與我所熟悉的數學模型,統計模型,演算法模型連起來想。
今天讀到西尾泰和這個描述,
從「抽象 Abstract」講到「模型 Model」再串連到「模式 Pattern」,
給我一種一氣貫通,醍醐灌頂的感覺,非常棒。
對比現代的「數據基礎建設 Data Infrastructure」中,
裡面也有很多「機器學習工程 Machine Learning Engineering」,
人類對「工具 Tools」的鍛造,讓我們的人類文明生生不息。
Reference
[1] http://nhiro.org/ja.html
[2] https://scrapbox.io/nishio/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E7%9F%A5%E7%9A%84%E7%94%9F%E7%94%A3%E8%A1%93_%E8%91%97%E8%80%85%E5%85%AC%E5%BC%8F%E3%83%9A%E3%83%BC%E3%82%B8