半年文章總整理
目前為止已經寫了 20 篇文章了。雖然大致是圍繞著人工智慧、軟體設計等等主題寫的,但是各篇文章的難度不一、受眾也不太一樣。所以這篇文章把每篇文章按照領域劃分,並且標上難易度與適合閱讀的人群,讓大家可以更方便的找到需要的東西。
我將所有文章分為五個部分,分別對應五個不同的主題:
- 人工智慧的基礎通識與理論
- AI 與電腦視覺的實際案例研究
- 軟體工程與程式設計
- 超快速 Coding
- 職涯分享
第一部分:人工智慧的基礎通識與理論
人工智慧/機器學習/深度學習 — 它們到底差在哪?
- 難易度:簡單
- 適合閱讀人群:對於人工智能不太理解的一般大眾、學生
本篇文章利用歷史上的幾個著名的例子,分別說明人工智慧/機器學習/深度學習的共同點與差異處。
機器學習任務:監督學習/半監督學習/無監督學習
- 難易度:偏簡單
- 適合閱讀人群:都可,推薦學生、工程師、管理者
本篇文章是一般機器學習課程在初期就會介紹的前導內容。除此之外,本篇文章會特別強調各種學習任務在實務上的使用時機以及各自的挑戰。
AI怎麼畫出梵谷的畫作?簡述GAN的生成原理
- 難易度:中等
- 適合閱讀人群:學生、AI 工程師、AI 求職者
說明對抗學習網路 GAN 的基本原理與應用特性,並且說明訓練 GAN 的時候容易遇到的問題。最後介紹了經典的 CycleGAN 架構。
我們能用 P 圖假裝自己是 2027 的唯一倖存者嗎?
- 難易度:中等偏難
- 適合閱讀人群:AI/CV/影像處理 工程師
介紹 Image/Video Inpainting 的主流方法與應用。並且針對最近很火的 2027 未來人議題探討利用技術作假的可能性。
目標檢測 YOLO v1-v5 全版本差異
- 難易度:難
- 適合閱讀人群:AI 工程師、AI 求職者
整理了目標監測網路 YOLO 的全版本設計差異。YOLO 的版本差異是在 CV+AI 領域常見的面試題,適合在專案中使用過 YOLO 或目標檢測網路、並正在面試階段的人觀看。
第二部分:AI 與電腦視覺的實際案例研究
Google怎麼知道我不是機器人?機器人又要怎麼破解?
- 難易度:偏簡單
- 適合閱讀人群:皆可
本文研究了 Google 的「我不是機器人」的背後原理,以及相關驗證碼技術的歷史演進。其中每個段落也會介紹到電腦如何利用 AI 破解驗證碼技術。
Facebook真的會竊聽我嗎?他怎麼知道我想要什麼?
- 難易度:中等
- 適合閱讀人群:有數學基礎者、學生、ML 工程師
這篇文章會介紹推薦系統的基本原理以及經典演算法,並從演算法的角度解析了 Facebook 的推薦系統原理。推薦系統同時也是我面試 Facebook 時的 ML 設計題,推薦這篇文章給 ML 工程師觀看。
AI裸體生成演算法 — 淺談DeepNude原理
- 難易度:中等偏難
- 適合閱讀人群:AI 工程師、AI 技術主管
本文探討了裸體生成 App DeepNude 的技術原理,並且介紹了背後的可能方案:Conditional GAN 與 CycleGAN 的技術原理。建議閱讀前先對 GAN 有較基礎的知識背景。
Apple 怎麼安全的蒐集我們的隱私?
- 難易度:簡單、中等
- 適合閱讀人群:資訊安全工程師、演算法工程師
本文介紹 Apple 如何運用 Differential Privacy 來解決大數據時代的用戶隱私問題。文章大部分簡單易讀,也沒有深度探討詳細的數學定義。但文中介紹 Apple 演算法的部分較為詳細,需要花一點時間理解。
刷臉支付的技術挑戰與現狀
- 難易度:偏簡單
- 適合閱讀人群:一般大眾、產品設計師、演算法工程師
以刷臉識別的技術為主線,介紹了人臉辨識的兩種定義:Face Identification 與 Face Verification。會透過 Apple 的 FaceID 以及支付寶的刷臉支付技術來說明人臉辨識技術的現實應用於挑戰。
CHIRP — 拍出黑洞照片的視界望遠鏡 EHT 演算法
- 難易度:難
- 適合閱讀人群:天文愛好者、應用物理學生、CV 工程師
據我所知,這是唯一一篇深度介紹黑洞照片原理與演算法的全中文文章。這個題目所需要具備的知識要求比較廣,因此即使用了較淺白的方式來說明,整體的閱讀難度仍然較高。
第三部分:軟體工程與程式設計
DevOps:用工業工程方法解決軟體工程的現實問題
- 難易度:簡單
- 適合閱讀人群:工程師、Tech Lead
透過類比實際的工業生產線以及虛擬的軟體開發流程,讓軟體開發中的問題變得更栩栩如生。工業工程領域已經在生產管理裡面做了很多研究,其中的許多理論與概念都可以延伸到軟體工程裡面,最後集大成者就是 DevOps。
什麼是 MLOps?跟 DevOps 有甚麼區別?
- 難易度:稍難
- 適合閱讀人群:ML 工程師、AI 工程師
MLOps 是基於 DevOps 在機器學習領域的衍生,本篇文章整理了各大科技大廠所定義的 MLOps,以及它們認為 MLOps 應該具備的能力與架構。MLOps 與 DevOps 最大的不同是 ML 的開發目前仍高度的依賴資料集與手工,如何提升 ML 的開發效率是所有 MLOps 共同的目標。
抽象思維 — Functional Programming 提升開發效率的真正原因
- 難易度:中等
- 適合閱讀人群:軟體工程師
抽象思維是軟體設計中最重要的思維能力之一。本文介紹抽象思維是如何影響我們理解問題並且設計軟體架構,並說明我們如何利用抽象思維在產品經理不斷規格變更中持續穩定的產出。
用函數程式設計挑戰用10行寫完狀態機
- 難易度:稍難
- 適合閱讀人群:有接觸過函數程式設計的軟體工程師
介紹函數程式設計 Functional Programming 的核心概念,並且示範如何用 Functional Programming 用 9 行寫完一個通用的狀態機。本篇文章的寫作架構省略了抽象思維的部分,也沒有對語法過於說明,因此不適合初學者或是學生觀看。
Coding 技巧 — Python List的9種 Element-Wise 操作方式與效能實測
- 難易度:簡單
- 適合閱讀人群:學生、工程師
本文在 Python3 + Linux 的環境裡討論 for 迴圈、map、list comprehension 以及其他變形的效能差異。透過裡面的實驗結果,你可以知道每一種寫法的優劣與每一種寫法適合的情景。
第四部分:超快速 Coding
用 10 分鐘搭建萬物識別的 Live Demo
- 難易度:中等
- 適合閱讀人群:AI 相關學生與工程師
介紹 OpenAI 推出的多模態預訓練模型 CLIP 的設計原理與使用方式,包括Self-Supervised Learning、Contrastive Learning、多模態等。文章裡撰寫了連結 Camera 的 Live Demo 程式可以實際體驗效果。
用 MTCNN 挑戰最簡單的 Face Alignment
- 難易度:簡單
- 適合閱讀人群:學生、工程師
利用 Python+MTCNN 來實作簡單的 2D Face Alignment,總共的 code 只有 29 行。文中會大致描述 MTCNN 的設計原理,並詳細說明程式碼裡面的公式由來。
用 MediaPipe 快速搭建 Hand Tracking
- 難易度:中等
- 適合閱讀人群:工程師
介紹 Google 推出的輕量化推理框架 MediaPipe 的使用方式。從 MediaPipe 的基本設計概念出發,並且透過 Hand Tracking 的例子來說明一個好的 Pipeline 如何影響最終的 AI 系統運行效率。
第五部分:職涯分享
如何成為阿里巴巴算法工程師?
- 難易度:簡單
- 適合閱讀人群:學生、演算法工程師
以阿里巴巴算法工程師為例,說明招募的途徑、面試流程,以及如何準備各階段的面試,包括專業面試與 Coding 面試。文末有本團隊的招聘資訊。