科展
科展,旨在「激發學生對科學研習之興趣與獨立研究之潛能」
前情提要
為什麼要參加科展其實沒辦法選擇,在我們學校特別是我們班,做科展是必然的過程,只不過每個人所放上的心力也不盡相同,其也與所選的組別以及個人的特質及目標有關。
Path To Glory
全國科展的階段其實很明確也簡單,就是
校內 → 區域 → 全國 ( → 國際科展)
我原本的安排
我在高中前其實沒有想清楚到底要用什麼方式升學,換句話說就是跟大家一樣預期要考學測,直到我到了開學後接觸到了競程,於是一上就開始慢慢地練了一些,但主要重心還是放在段考上面,啊上學期也沒有科展,所以這個安排的結果也明顯地反映到了我一上的學期總成績就還行,特別是與下學期比較過後。
資訊組?
高一後就選了資訊組,我原本的第二選擇是物理組,但資訊組沒有那麼多人搶,因此也順利加入了,啊可以說進去之後我就「比較」吃香,因為以前加上每週都會加強程式能力,所以在這部分比較沒啥壓力,不過在專題部分…就沒有太明顯的差距(吧?)。但是,最重要最關鍵的就是:我們學校資訊組重點放在 研究 而非 競程 ,所以不誇張的說專題老師注重的比例大概是 9 : 1 吧,我的競程也注定無法在學校得到太多的加強。
時間快轉到第一次段考後的大活動:書報,簡單來說就是我們要找一個主題去報告相關文獻和探討,然後會有學長和老師 電你 和你「討論」,那這個活動也很好地反映出了每個人最基本的實力,關於基礎理論還有探究研究等等的,我也在這次大概了分析出了我接下來研究的隊友選擇,當然,結果也證實我的選擇是對的。
緣起
育秀盃 !?
在做完書報以後,我記得老師們就會問說要不要轉組之類的,但是資訊組永遠是最抽象的,沒有人要動,也因此我們的專題老師馬上跟我們說有一個專題競賽:育秀杯創意獎,我們也把它視為專題唯一的目標,就是嘗試看看我們高一可以走多遠!我們資訊組也一分為兩組分別做有興趣的專題。
選題…
「萬事起頭難」 這種話每個人都聽過了,但我覺得真正的原因其實是時機不對,做了這麼久的專題還有一些有的沒的小專案,整理出的重點就是,想題目真正開始有頭緒的時候往往都不是你思考了很久以後分析出來的,而是突然在某個 moment 蹦出來的(一切都建立在 老師沒有直接給你一個主題,並且是你們自己想 的基礎上)。回正題,因為上一次做專題是在國小的時候做科展,而且那時候因為時間壓力十分小並且有兩個老師花很大的心力陪我們準備。所以我已經總共 3 年整沒有做類似的事情了,經歷了大約兩到三周的想題歷程,我們歷經了非常多次的撞牆經驗,也就是有人提出來某個主題,可能第一關:組內討論 就過不了了,更不用談跟老師講這個主題,而更多的是我們提出了主題以後被老師要求再討輪新的,就這麼來來回回直到…某一次我們在上AI人才培育課程的時候,突然就想到了:現在AI圖片這麼氾濫,不如我們弄個辨識AI圖片的專題/系統 唄,然後老師的態度就明顯和以前那些 idea 不同:
原本那些主題:

後來的主題:

然後我就把育秀盃初賽(我們有報兩組)需要的東西處理了一下並且繳交了上去,資料如下:
育秀杯初賽也就先告了一個段落
校內初賽
寒假不見了
依照時間序繼續下去,在 12 月左右我們交完了所需的資料,一直到了育秀盃決賽以前我們都暫時沒有什麼太重要的事情要處理,就先弄課業。
終於,寒假開始了但並沒有把放假視為耍廢和休息,反而是更完整的大段時間拿來卷競程以及弄科展,我們從 1/16 就正式開始了漫長 疲累 又爆肝科展之旅,但基本上 2 月以前就是在弄一大堆理論基礎類的東西,並沒有什麼實作和實驗,並且那段時間也因為各種原因:主要是分工不明確 + 沒概念怎麼做,進度特別慢。
支線任務
前面有提到我們有去參加某個 AI 實驗室的什麼培育計劃,就是每週五上個課,重點是老師和我們說有一個叫做「扶輪盃」的比賽,學校會補助我們各種經費,讓我們去南港比賽,重點是得名有獎金,也因此接觸到並且參與了這個莫名其妙的比賽,講重點的話就是我們最後有得到了好像 23000 的獎金,也首開紀錄地為我們這個作品的獎金池添增了不少。也是第一次報告 + 問答 + 有人看到我們的小小作品(當初還啥都不是)
回到校內科展,在過年前,也用 Colab 爆肝地把最最最初的實驗做完了,回想當時真的是挺累的,還因此在除夕那一週根本沒休多少,然後就生大病了 for a whole week ,也是我第一次感受到自己能力好像負荷不住,也深深影響到了我們後面各個階段的分工。
開學後,把報告書和簡報搞一搞後就參加了 校內科展初賽 。細節的話應該不太重要,因為花中校內評審太抽象了……
我們幸運的過了校內初選,成功有參加東區科展的資格,當初因為其實校內也有很強的作品,原本預估只有 50% 可能會過。
之後補一些校內資料吧…
東區科展
在經過校內科展的輕微折磨過後,我們學校取兩組資訊,我這組也僥倖撐到東區,雖然開心是歸開心,但殊不知 噩夢才剛要開始呢。
打掉重練!?
東區科展的比賽時間是 4/27 號 報告書要在 4月7號 交出來,而我們 3/6號 才得知我們賽進晉級,which means 我們只有整整一個月要把我們 校內那一坨 變成 上得了檯面的東西,因為如此一來我們才可以可能進全國 ⇒ 進而明年不用做專題 ⇒ 明年才可以準備競程。但是問題就在於說我們的研究和實驗必須整個打掉重練,等於說重新做一個新專題,我們馬上就著手進行,而且因為做科展的關係,可以狂請公假 + 不用第一次段考,當時的計劃。第一步就是要重新想和搞架構,架構是最重要的部分,其實只要確認完以後後面就只剩一些實作的部分而已,比較簡單一點。而好巧不巧在這緊要關頭呢,我們其中一組員去參加了日本交流,也代表說我們要剩下兩個在這一週努力拼出我們的系統以及研究架構,我是不知道這對你或是其他電神來說是不是一件困難的事情啦,但對於我們倆來說是沒有任何經驗的(校內那個不算 那個太水了),於是乎我們便利用了這幾天有公假的節數中衝刺看看能不能搞出個像樣的東西,結果不意外的是弄了出來了。經過三四天的爬文獻加上驗證加上討論以後,我們終於有了個架構圖以及各個實驗之流程,但當我們準備開始實驗時又碰到了一個難關…
資料集…
眾所皆知啊,資料集的大小 數量 量級 深深影響了你的研究,模型的可信度以及準確率等等,校內的時候我們大約只有用網路上找的迷你資料集大約5*5000張圖片左右吧,遠遠不足以達到一個像樣的研究所需的數量,因此我開始踏上了尋找超巨資料集的路,瘋狂搜索我們需要的圖片。在經過好幾天的爬文以及scratch人家開源的研究和資料以後,終於找到了當時最適合我們的選項:Genimage,首先其有200萬張以上的圖片並且每張都是要麼512x512不然就1024x1024的(如果數字很奇怪那可能是我記錯)接下來就有一個非常實際的問題,我們三個人有兩個是MacBook Air 根本不可能訓練、存這些圖片,那麼很明顯剩下兩個選項:租主機、用第三位同學的電腦,這其實讓我們考慮了挺久但是是後面的事情了,在確認完資料集以後呢,我們就先毫不猶豫的載在剛剛說可以用的那台電腦上了,但「毫不猶豫」是指決定的當下,真正思考過的人應該會發現一件很重要的事:Who the fxxk可以裝那麼多照片啊?我們又不是無限儲存空間,也就是說當我們全部按下下載那些zip檔時跑出來的數字把我們自己都嚇哭了「10hr」「1day」都是實際又跑出來過的時長,我們就緊急兩人討論,對 別忘了我們那時候才兩個人虧麻了,討論結果是先把它們全暫停,因為即使我們下載下來了時間客服了 空間也克服不了,所以這個時間點我們開始意識到設備的不足問題,我們頓時想起老師之前建議我們可以用線上主機,於是現在又跑出兩條路讓我們走:減量在自己電腦跑、不減量或是不要減太多然後租主機跑…這其實困擾我們蠻久的,因為這兩個是差很多的,會層層影響後面的各種實驗和決定。但最後基於財力不足以及財力不足等原因呢,決定還是請同學把電腦裡面的東西清一清然後灌爆他的電腦,真的是灌爆,具體來說就是重複以下流程until我們資料足夠豐富:下載整個zip檔案、解壓縮、刪掉75%圖片,並且留下該留下的那些圖片種類。最後留下了大概200000張,我其實忘記怎麼算了但就是這個數字。資料集的部分也比校內科展的時候安心了非常多,到這裡也差不多準備好了需要的資源了。
可以注意到準備東區科展真的是我們最耗精力和時間的階段,光篇幅就差了很多偏偏這可能還不到我們東區前做的事情的20%…。
架構…
我們當初在比完校內科展以後就發現,架構的設計是遠重要於後續的實驗以及結果整理等等的,也就是說在作東區的時候應該以架構為重,因此我們就在同一週下載資料集的同時設計我們下一階段的研究架構以及實驗順序的設計,我們也大致上的弄出了一個看起來還不錯的模式也就是 訓練模型 → 測試模型 → 整理結果 我們也開始沿用這個順序把程式和實驗搞出來並且開始一個一個跑,但因為資料集分配的問題還有程式有一堆bug因此導致我們的進度其實沒有很順,我們一直重新跑最前面機器學習的那一個code也就是最久的一個,巔峰時期我們一天可能會寫寫改改,改完以後跑一遍(一次就是兩小時起跳),結果出來後再重複,因為會有奇怪的地方,總共跑個兩三次,這時候就會發現我們的主機是用本地的,所以勢必要放在教室或是研究室跑,原本我們也是開始實驗以後讓他在研究室跑兩節課再跑過去看,但因為研究室太遠了最後最忙的時期我們甚至是放在上課的時候跑,他黑屏的時候還要上課到一半點一下(我也不知道為什麼不用咖啡因),就真的蠻累的,不過在架構好不容易敲定以後以及模型訓練好了後(大概就是一整個禮拜一天請個兩三節公假+晚上留下來+回家繼續跑)也差不多是要開始整理結果以及文書處理階段了