2025年1月16日 星期四

AI for Learning Algorithms


甚麼是演算法(Algorithm)

演算法的定義 Algorithm Definition 輸入 Input {數據} 輸出 Output {結果} 1. 有限步驟 Finite Steps 必須在有限時間內完成 2. 明確指令 Precise Instructions 每個步驟都要清楚明確 3. 確定性 Deterministic 相同輸入必定得到相同輸出 4. 有效性 Effectiveness 每個步驟都必須是可執行的 演算法是一個將輸入轉換為輸出的明確步驟集合


為什麼要學演算法


我不是資訊工程系主修,我如何運用AI學習演算法



以下介紹著名的電腦演算法,在AI的協助下,即使不懂程式語言,也可以藉由AI 視覺化求解過程來觀察演算法如何解決一些常見的問題,像是找到兩個地點之間的最短距離,推銷員的最佳拜訪路徑等等。


最大公約數 (GCD, Greatest Common Divisor)



 Tower of Hanoi 





Visualize QuickSort (數字排序最常用的演算法之一)






Visualize Shortest Path (在一個網路中找到兩點之間的最短路徑與距離)






Visualize TSP (Traveling Salesman Problem) by A* search (一個推銷員要拜訪所有客戶城市,每個城市只能拜訪一次,最後要回到出發城市,請為他/她計算最短的拜訪路徑)




Add editing on canvas by click and drop. (在網頁畫布上直接增加刪除城市)

Illustrating AI Vision

YOLOv9 & LLaVA Architecture YOLOv9 Input Image Backbone Detection Object Detection Confidence: 95% LLaVA Vision Encoder LLM Natural Language Output "I see a white cat sitting on a windowsill..." Legend YOLO Components LLaVA Components

AI Vision

 

YOLOv9

YOLO (You Only Look Once) v9 是一個深度學習物件偵測模型系列的最新版本。

主要特點:

  • 比舊版本如 YOLOv8 更快、更準確
  • 改進的主幹網路架構,增加了模型對物體的識別能力
  • 更高效的資源利用,可以在較低配置的設備上運行
  • 更好的小物件偵測能力

應用場景:

  • 即時影像監控和分析
  • 自動駕駛車輛的物件識別
  • 工業生產線的品質檢測
  • 醫學影像分析
  • 智慧零售中的商品識別

這種技術之所以叫「You Only Look Once」,是因為它只需要看一次圖片就能同時:

  1. 定位出物件在圖片中的位置 (用邊界框標示)
  2. 辨識出物件的類別 (例如是人、車、貓等)
  3. 計算出辨識結果的信心分數


LLaVA是一個多模態AI模型,它結合了:

  1. 視覺編碼器(Vision Encoder):
  • 使用Vision Transformer (ViT)架構
  • ViT將圖像分割成小塊(patches)
  • 通過自注意力機制處理這些圖像塊
  • 輸出圖像的向量表示
  1. 大語言模型(LLM):
  • 接收ViT處理後的圖像特徵
  • 將圖像特徵與文本輸入結合
  • 能夠理解圖像內容並用自然語言回應

主要特點:

  • 端到端訓練
  • 可以看圖回答問題
  • 可以描述圖像內容
  • 支援多輪對話
  • 具備視覺推理能力

給它看一張貓的圖片,它不僅能認出這是貓,還能描述貓的顏色、動作、周圍環境等。


Illustrate your X

Multi-Scale Spatial Aggregation: S = Concat([S₁, S₂, ..., Sₖ])W_s Scale 1 (Local) w_ij¹ · R_ij (Local Weights) Scale 2 (Group) w_ij² · R_ij (Group Weights) Scale 3 (Global) w_ij³ · R_ij (Global Weights) Pool_k Operations S₁ S₂ S₃ Concatenation [S₁ | S₂ | S₃] Final Representation (S) Where: S_k = Pool_k(∑ᵢⱼ w_ij^k · R_ij), W_s = Learnable projection matrix