長文提醒,包含一點情緒性用詞,個人主觀想法多,專有名詞多
前情提要
成大推甄連備取都沒有之後錄取台大測量組,並成為trouble maker & sorry maker?!
大四時其實也修不少碩班的課了,但是好像台大都不能抵,只能重新修24學分…
大二時期,我的平差被曾宏正老師當掉,大三時靠專題躲了一年,大四再修平差時也是低空飛過,驚險畢業(歷史總是驚人的相似~)。
來到台大,看大家都有修韓老師的平差,想說就修一下,沒想到還是跟坐隔壁的王小姐一起(再度)考不及格,這個例子說明平差分數具有空間相關性,坐在213研究室門口的是分數冷區。
韓老師上課講得算是很快,直接、間接、條件、Unify等模型都有講,這個課麻煩的是作業,要自己設計網形然後用不同模型解算,非線性模型收斂不了的話,不知道從哪本書裡面提到的"apparent bouncing"就出來扛了。這門課也是我與Matlab最後的邂逅,之後就沒再用過了。
期末專案是給同學自由發揮,我選擇一個跟傳統測量完全沒關係的主題 – 使用間接觀測平差對影像去模糊。沒辦法,我就是喜歡亂搞。這個項目的核心想法很簡單,假設模糊的像素跟正常像素之間可以用一個簡單的線性式建立關係(y = ax + b之類的),影像有那麼多的像素,代表有那麼多的觀測量(多餘觀測搞定啦~),我甚至只要拿一小部分的模糊像素建立關係後,就可以修正整張影像其他模糊區域。反正最後我就是拿下面這張300x300的"心肥意冷"來做,90000個觀測量夠多了吧,Matlab矩陣reshape變成一維後又是簡單的間接平差搞定,最後做出來去模糊化可以達到99%,甚至只要33%左右的觀測量就可以達到!!!
李老師的VR/AR會提到一些攝影測量和電腦視覺的基礎理論,之後會有三個比較主要的主題: 環景、Unity和期末專案。雖然都是小組作業,但是我看有時候也不是每個人都有做每次作業(我每次都有做,愛拚才會贏)。Unity就是看一個Youtuber的教學,用C#寫一個方塊滑行遊戲。環景部分就是手機拍一拍照,放到一個軟體跑,跑完就結束。AR部分好像全班就兩組有做出來,因為開發條件比較嚴苛(IOS要有開發者帳號、Android的系統版本不能太低,不然SDK會失效)。AR部分就借用王小姐的Pixel手機成功讓一個印度老哥製作的老鷹模型出現相機裡面,另外一組好像也是用那個老鷹,但是我有加一個出現特效,所以我覺得我贏了
第一次使用QGIS是在大三,洪榮宏老師開設很硬的GIS實作的第一次作業 – 那瑪夏社區在88風災前後的土地使用變遷。當時好像是ArcGIS暫時用不到所以用QGIS在SPOT衛星上數化河床之類的鬼東西。來自NCDR的蘇老師會教QGIS基本操作跟一些防災應用,由於GIS軟體的基本功能大學都會的差不多了,換個介面很快能上手。期中考用自己的筆電考,也是給個兩大題數個小題,都是出圖。記得要帶充電線,不然中途沒電就尷尬了,有GIS的底還是不一樣,我看有人發現沒給SHP檔只給CSV就愣在那邊(後來老師還是有給她提示~)。期末的時候蘇老師還有帶全班去NCDR校外教學,拿一些紀念品回來(資料夾、錢包、POKER CARD…)。期末報告也是跟防災主題有關就可以,靠學長輕鬆Carry~
以上段落是修課學生視角,以下是課程助教視角。我碩二上就擔任這堂課的助教,我發現QGIS版本真的不太穩定,而且Mac和Windows又有一些差異。去年使用的是3.16版本,今年使用的是3.22,有一些功能直接壞掉,很麻煩。其次是老師是用Mac,計中電腦或同學電腦大多為Windows(畢竟工學院…),所以有些按鍵畫面選像不同。SAGA & GRASS等套件功能也是有些支援以前的3.16,3.22就死去。可能是大家發現這堂課不會太硬又高分,所以多了很多同學來修,要去跟計中換教室,讓我知道計中有一個工程師很混,媽的。想進去測試一下軟體,下午2點就給我搞消失,等1個小時還沒回來…,打工同學也跟我說可以先回去了,他大概又跑去哪混了。這堂課助教不需要批改作業,只要開好設備、Google Meet、作業區跟統計期末報告的順序就行,但是多數時候,我還是會多數時間留到6點解答問題(5:20下課),最後關冷氣門窗離開。這堂課我覺得所有測量組的研究生都應該修,畢竟台大這邊沒有辦法輕易拿到ArcGIS,所以…。
這堂課的開課老師是陳俊杉教授,但是真正上課的是張慈慰博士(Aires)。這堂課名稱是科學計算平台,但是主要就是教Linux系統的操作,從指令、防火牆、登入、建立使用者、Bash Script,TCP/UDP協議等有稍微提到。這堂課的受眾是想要使用AI中心的伺服器進行Training / Simulation的研究生,因為上面的系統是Linux,大多數土木系的人大學沒學過這些。基本的Linux指令我在大學就有學過,在修這堂課之前那個系統操作我也自己摸會了,所以這堂課基本上就是增加一些使用Linux的經驗。期末考就是一個小時上機考,給一個root帳號,建立50個使用者帳號,並把登入密碼取消,使用RSA密鑰登入,建立一些防火牆規則(允許特定port連線、拒絕某些port訪問等)、修改DNS SERVER…。印象中好像沒有人被當拉,還記得有一個作業是需求評估,反正就是根據需求,列出應該添購的電腦設備,這個大概是比較實用的東西。Bash 語法真的有點艱澀,畢竟還是python script方便
台大蔡老師的SAR跟成大蔡老師的SAR真的是差蠻多的。大四時,有修過成大的SAR,當下覺得數學公式很多,程式作業搞一個鳥叫調頻(chirp signal),後面又在SAR影像的Focusing,Row進行FFT,Column也要進行FFT,之後搞一搞才能成像。但是至少知道SAR的一些特性,側視、Multi-looking、Layover…。我印象深刻的是成大SAR期中考都是名詞解釋,可以帶小抄,但是期中考前要查60、70個專有名詞,每個解釋又都有3、4行英文,真的查到手斷掉(分工合作
蘇老師在下學期會開用Python做GIS的課,這堂課的人數跟QGIS相比會少很多。主要使用Geopandas、Rasterio、Xarray,分別處理vector data、raster data和NetCDF。對我來講比較新的東西是NeCDF格式,以前沒用過,但是跟Tensor差不多,就多張二維資訊加上三維時間。這堂課的期中考就比較難了(雖然我是覺得還好),要先request一個json檔,取出一些要用的資料,再做後面的分析,向是找一些最南最北的站、畫分層圖、加上底圖之類的。NetCDF考題則是要分析颱風動向、畫風向標、找特定站點的風速時間序列等等。
期末就是自己一組了,我原本的想法是該搞一搞NLP領域了,畢竟影像都弄那麼久了,想說換換口味。一開始題目是社群資訊應用於防災,就是去FB/PTT/DCARD蒐集跟災難有關的訊息,看有沒有辦法做一些應用,但是結果是太難。比較成氣候的是推特(Twitter or 改名後的X),可是資料要錢,其他不用錢的資料大多沒有原始的坐標,只能靠NLP抽取關鍵字再想辦法定位,太過複雜。所以我又走回老路了,但是我這次想要結合新學到的NetCDF,因此我決定搞一個颱風動向預測,使用NetCDF的時間風速變化圖,用Conv-LSTM做預測。首先,這個想法有結合新東西,其次Conv-LSTM只聽過沒用過。還好會用AI中心系統,不然Conv-LSTM根本超難Train。此外,我也在這時發現NetCDF網站有流量限制,無法下載超過2GB的檔案,所以要多次下載,因此我就寫了一個script來節省時間。搞定動態後還缺少一點感覺,所以我就clone一個repo,增加訓練資料再改點別的,train一個颱風風速預測的CNN模型來收尾。
碩二下當助教時,期末已經改成多人一組了。NetCDF也改到期中後才教,速度有放緩一些。由於python套件經常有版本衝突,所以建議要用全新的虛擬環境來裝上課用到的套件。助教依然不用改作業,但是可能需要留意老師上課是否有給出一些並未清楚解釋的範例,像是有個IOT空氣盒子,他每次request只給100筆,其他資料在其中一個next_url欄位,這樣就要用迴圈解決,老師上課這個例子就提到而已,所以得幫忙提供範例程式給同學準備期中考(有人來問這個會不會考…)。總體來說,這堂課推薦給對程式跟GIS結合有興趣的人。
這堂課是電機和統計大數據學程的必修課,修課人數蠻多的,但外系去修的其實不多。老師是香港人,講普通話會有點口音,習慣一下就好。最佳化從統計機率、線性規劃開始,之後講到線代的PCA、SVD等矩陣分解,最後才是啟發式最佳化方法,包含爬山、退火、基因、蟻群、粒子等比較經典的算法。期中考是好幾頁的選擇題、計算題跟最後的程式題。題數比較多,前面有些計算我都寫一半,後面要INVERSE就放棄了,最後的程式題是老師出的最佳化題目,大意是你是一個安保公司的設計師,要幫一個美術館設計安保人員站位,有一些條件,像是每個房間都要至少有一個人看著、一人看多間房安全分數會下降…。房間有20個左右,我使用GA解,但是光是前面的列出每個站點可能的組合就沒時間了,最後我就只能大概寫一寫之後要幹嘛…。大家好像都是跟我一樣情況,根本寫不完整個程式,老師後來才說寫pseudo code就可以
先說結論,這堂課不推薦給非理學院的同學。這堂課太多理論了,對於工學院學生來說,看不到到底如何應用,會有點躁。作業就兩個,其中一個就雷達的基本配備的名詞解釋,另外一個就比較抽象了。給定一些雷達的參數,希望算一下造成一定RCS(雷達散射截面),水滴的最大尺寸是多大。這題的公式橫跨好幾頁ppt,又跳來跳去,直接矇逼,最後只好靠科技輔助,修修改改交出去。期末報告我們組報了一篇Deep Learning應用在天氣雷達的文章,老師說Nice Try,看來對外系同學還是友善的。這堂課蠻多大氣系的博士或碩士會去修,有時候真的難懂他們到底在說什麼,只能灰溜溜的下課,哈哈。
這堂就是兩年來修過最硬的課,沒有之一。修課人數也直接少到剩下個位數,上課教室也是被分配到一個邊疆地帶(新生大樓5F的角落)。這次課程就不會再講基礎的東西,變成從啟發式算法開始,爬山、GA、SA複習之後,就開始講演化策略(CO-EVOLUTION)、競爭演化、合作演化等等。最後現代最佳化主要是講NSGA2跟CMA-ES,這兩個都是很多頁PPT才能講完pseudo code,這邊我就要抱怨一下,老師的pseudo code都是用R寫的,看上去真的有點詭異。這學期比較專注在算法實現的細節了,像是簡單的爬山算法也可以加入一些自適應的法則(1/5 rule)來挑選子代。好消息是這堂課沒有作業,但是期中跟期末project直接給一個月寫(你就知道難度了
升碩二的暑假去NCDR實習,組別是資訊組。不過實習不是蘇老師來帶,是另外兩位老師。這次給的主題依然是要結合社群資料和防災,反正最後就是看台鐵東部的一些小站,看要不要廢站,廢站理由就可以跟防災扯上一些關係。我負責的是Google Map的評論爬蟲(中心有Dcard/Ptt但沒有Google的)和爬完之後的NLP文字趨勢分析。評論爬蟲的部分有點麻煩,因為每次都只能撈100筆,之後要用一定規律更改url才能繼續撈,但是Map有反爬蟲機制,所以我又設置隨機停止幾秒並且更換HTTP Header,從Chrome換Safari換Firefox,不然一下就爬不動了。NLP部分是使用LDA,原理到現在都不是太懂,但是有做出來一些文字雲,大 guy 就4這樣。整體來說,我覺得NCDR實習比較偏向給大學生的,碩士生來可能就比較學不到太多。
主要教授GMT繪圖,反正就是可以出很精美的地圖。但是這也是問題所在,我今天是圖出了,有表達到就可以(工學院思維),但是這堂課老師直接講目的是要出很精美的地圖,這也代表要花很多時間搞一張圖,這就直接勸退我了。老師人感覺不錯,但就是課程不太符合我的想像而已。
以上這些華美的言詞都不是重點,重點是這兩年的過程,還有你的態度。
–- 肥貓貓 2023.08.11