曾竑勳
理工學院
資訊工程學系
這次參與NeuroGolf 2026競賽,對我來說是一個跟以往很不一樣的學習經驗,一開始看到題目的時候,我原本以為這只是一個普通的AI影像辨識競賽,所以最前面的方向幾乎都放在深度學習模型上面,像是PyTorch模型訓練、CNN架構設計、ONNX模型輸出以及Kaggle提交流程等等,希望能透過神經網路直接學習每個task中的圖形轉換規則,實際開始做之後,我建立了一套完整流程,包含讀取四百個task資料、將grid轉成one hot tensor、訓練Tiny CNN、輸出ONNX模型,以及自動生成submission.zip提交到Kaggle排行榜,這個過程中也接觸到很多平常課堂比較少真正碰到的技術細節,像是ONNX export、onnxruntime、模型版本相容性、Kaggle notebook環境設定、套件依賴問題以及opset版本差異等等,尤其在處理ONNX模型的時候,常常會遇到shape不一致、套件缺失、export失敗、模型無法轉換等問題,因此必須一直重新檢查每個節點的input與output,也讓我第一次真正理解模型從訓練到部署之間其實還有很多細節需要處理,而不是只有模型能夠train成功就代表完成了。
不過真正讓我印象最深的,其實是後來慢慢發現這個競賽本質上並不是單純依靠CNN就能解決的問題,因為很多task的資料量其實非常少,有些甚至只有幾組example,所以一般深度學習模型幾乎不可能真正學到穩定的泛化能力,我第一次成功提交時雖然順利輸出了四百個ONNX模型,但最後排行榜分數卻直接是零分,那個當下其實蠻震撼的,因為代表模型雖然可以執行,但根本沒有真正理解task中的規則,後來我開始重新研究ARC類型問題,才發現這類題目其實更偏向規則推理,而不是傳統大量資料訓練,因此我後來慢慢改變方向,不再只依賴深度學習,而是開始研究heuristic與symbolic reasoning的做法,嘗試從圖形本身的變化規律去分析input與output之間的關係,我開始設計rotation、flip、transpose以及color mapping等heuristic transformation,再透過train、test與arc gen資料去驗證規則是否成立,這個過程讓我學到很多以前完全沒有碰過的思考方式,因為以前做AI比較像是把資料丟給模型,希望模型自己學會規律,但這次比較像是在自己設計一個規則引擎,必須真的去觀察圖形之間發生了什麼變化。
像是有些task看起來很複雜,但實際上只是左右翻轉後再做顏色替換,有些則是旋轉後再補齊對稱圖形,如果用CNN硬學其實效果很差,但用heuristic反而可以很穩定地解出來,真正開始有成就感的時候,是heuristic版本第一次跑出一百三十九分左右的成績,雖然這個分數在排行榜上並不算高,但對我來說其實意義很大,因為代表方向終於正確了,至少不再像前面一樣花很多時間結果卻只有零分,之後我又開始嘗試加入crop、resize、dynamic transformation等功能,希望規則越多就能解更多題,不過很有趣的是,後來分數反而掉到八十幾分、一百出頭左右,那時候其實蠻挫折的,因為感覺自己明明做了更多事情,但結果卻變差,不過也因為這樣,我才真正理解ARC類型問題很重要的一個觀念,就是少做比做錯更重要,如果規則判斷錯誤,整個task可能直接完全失敗,所以很多時候保守策略反而更穩定,這種感覺跟一般機器學習真的很不一樣,因為不是模型越大、規則越多就一定越強,而是要知道什麼時候該套規則、什麼時候應該fallback。
除了技術面之外,我覺得這次最大的突破其實是自己在解決問題的邏輯跟面對挫折的能力都有很大的進步,因為整個開發過程真的非常容易卡關,從最一開始的Kaggle notebook路徑問題、onnxscript套件缺失、ONNX export失敗,到後面的規則誤判、private set泛化失敗,每一步都可能讓前面的成果直接失效,有時候只是少裝一個套件,就會讓四百個task全部輸出失敗,有時候只是多加一條規則,原本有分的版本就會直接掉分,這種反覆失敗與重新測試的過程其實很消耗耐心,但也因為這樣,我覺得自己在debug能力以及問題分析能力上真的進步很多,我開始習慣先確認錯誤來源,再慢慢縮小問題範圍,而不是像以前一樣一看到錯誤就整個重做,同時我也開始比較能接受失敗這件事情,因為這種競賽本來就不是一次就能成功,很多時候都是不斷測試、修改、重新提交之後,才慢慢找到真正有效的方法。
這次NeuroGolf 2026帶給我的收穫其實不只是排行榜分數,而是讓我對AI有了跟以前完全不同的理解,以前我會覺得AI幾乎等於深度學習,好像只要模型夠大、資料夠多,就能解決問題,但這次做完之後,我開始發現有些問題其實更偏向規則推理、搜尋與symbolic reasoning,真正厲害的人不一定是模型做最大的人,而是最懂得如何分析transformation、最懂得如何設計heuristic與rule engine的人,這次經驗也讓我第一次真正接觸到ARC solver engineering這種方向,甚至開始理解為什麼很多研究會把推理能力與AGI放在一起討論,雖然目前的分數距離真正高排名還有一段距離,但至少我已經從完全不懂ARC類型問題,到能夠自己設計heuristic solver、分析圖形規則、驗證transformation以及成功生成ONNX submission,我覺得這對我來說其實已經是一個很大的進步。