我的實驗室叫做 AI Application and Integration Lab,就是 AI 的各種應用以及整合。目前的方向是電腦視覺或是跟影像有關的比較多,再來有些是屬於醫學影像,另外也有關於像醫療大數據以及訊號處理的方面。
這些都需要用到 AI 相關的像是 machine learning 或 deep learning 的技術,有各式各樣的應用,包括在電腦視覺這邊有很多,醫療這邊現在也是非常蓬勃發展,需要做各種分析、預測和系統的整合。我這邊的研究課題算是稍微廣一些,並不是專門在一個課題,但是都跟 AI 相關技術的應用有關。
寄 email 給我,隨時都歡迎。
我覺得系上基本的課程有修過,像數學就是線性代數跟機率比較重要,那像基本的演算法技巧也都是相關的,如果是系統方面的整合會牽涉到一些軟體的系統。每一個課題需要的不太一樣,有的課題如果有像 machine learning 或是 deep learning 的相關知識會更好,但是也沒有要到非常深入,不一定要專門修過課,有一些基本的知識就可以了。
我通常都會指定研究主題,但如果學生有想做的課題想要跟我討論也很歡迎。目前來找我的都是我這邊講有什麼樣的題目,然後他們選一個感興趣的就直接做。因為我是比較新的老師,還沒有收過很多專題生,所以目前是這樣。但如果自己有想法,我也很歡迎討論,讓我了解一下,也可以給一些建議。
我們有每兩週一次的 seminar,一次大概兩個小時,時間固定在禮拜五晚上,學長姐會報 paper、講一些相關的研究的東西,專題生也會輪到要進行報告。做研究的部分,私下也會有些討論,不過也不會每一步都是現在做 step 1、現在做 step 2 這樣詳細接受命令再行動,有時候你需要自己有 self-motivation,在這個課題上發掘一些狀況後,自己慢慢有經驗可以判斷再來怎麼走下去,來達成最終的目標。也不是全部都要靠自己,但是會需要有這種自我學習探索的部分。
專題生設定的目標通常會比較短一點、比較容易達成,也可能有些難度,就是希望在這個目標上盡量達到比較好的完成度,做出比較好的貢獻。每個題目不太一樣,接觸了題目以後自然會了解要達到什麼樣的目標,這個目標可能有難有易,就是在一學期的時間盡量可以做到某個地步。
這個問題很難回答,你現在問我一週花多少時間在某個課題上,我自己也沒辦法回答。我覺得很多時候我們在做事情不是這樣的模式,有時候是潛移默化的時間,比如說吃飯、走路的時候正好想到就把它想一想。那如果說排定去看論文或寫 code 的時間,有的課題如果你本身就蠻熟悉的,感覺就像 homework 一樣,或是有的時候做下去發現出現什麼問題,要再重新思考。
這種比較 self-motivation 的東西,我覺得很難用一個時間來衡量。當你做這件事情覺得有動機而且想要把它做好的時候,你自然就會找時間去做。我們這邊的要求也沒有說要盡善盡美,畢竟是大學部開始接觸研究的專題,你可以看自己學到多少,先不用想說一定要有這種時間的估計,接觸看看就會知道。但是我覺得這個 load 應該接近一門中等的課跟重的課之間。
我這邊的研究課題是蠻廣泛的,我在系上開的課是「三維電腦視覺與深度學習應用」和「數位訊號處理導論」,那我的研究跟這兩邊都是部分相關,不完全都是這些東西。在三維電腦視覺的部分,它特別著重於三度空間,比如說拿到影像要計算出物體的距離、遠近和三維的形狀的推論,或者說你有 RGB-D 的攝影機,可以進一步做一些分類、影像分割或是辨認對齊等等,這是我的一些題目的方向。
一般二維的電腦視覺也跟機器學習、深度學習有廣泛的結合,比如說我們有做 image retrieval 或 visual search 要怎樣藉由 continual learning 來做得更好,continual learning 就是讓模型持續學習但不會忘記以前學過的任務。與此同時,我們也有做 neural architecture search,就是我們希望一個深度學習的模型可以給定資料以後,自動幫你找到最適合的模型的架構,而不需要人工給定這個架構再來學習。
也有做影像的風格轉換、多視角的影像,醫療大數據這邊我們在智慧急診有用台大醫院的急診數據資料庫來做一些推論。
這些 AI 的應用非常廣泛,比如說在訊號這邊我們最近有一個業界的合作,要用新的方式叫拉曼光譜,拉曼光譜會看成一個一維的訊號,橫軸相當於是波數或頻率,縱軸是頻率的強度,不同細菌會有不同拉曼光譜的反應,希望取代目前病理偵測的質譜儀。
這些病理檢測的系統也跟 machine learning 結合,比如說最近幾年手持超音波的儀器非常蓬勃發展,開始進入醫療的系統,它跟醫生的平板或手機可以直接結合,讓 AI 模型診斷的結果可以做到 real time 在平板上看到。這些都包含了很多演算法層面或系統層面的結合,有各種包含影像和醫療儀器的不同訊號來源,這邊有非常多的課題,很希望而且需要各位同學有興趣的話可以一起參與。
目前我的專題生有一位是接觸到 NAS (neural architecture search),那個比較大型,有一位是接觸到拉曼光譜,那個比較小型。目前最大型的應該是智慧急診的數據資料庫,這個有很多老師一起做,我在裡面負責協助一塊是判斷病人問診以後可不可以離開,離開以後他會不會三天內又跑回來,代表你現在不應該讓他離開,要從一些過去的資料來做一個回溯性的模型。
現在要在現場做一個決策支援的系統,這個就非常地大,牽涉到很多整合的部分。有時候最大的問題反而不是在 machine learning,而是比如說有一大堆的表單,當初這些表單設計不是為了要做智慧推論的學習用的,那在表單裡面要拿什麼才是有用的,這些會有不少是蠻有苦工的部分,要真的接觸才會發現有很多的問題,並不是表面上看起來的那個樣子。這些在平常的 seminar 會聽到,如果有興趣真的來接觸這種很大型的整合也很歡迎,這個比較花功夫,需要划水一段時間。
我覺得專題是培養接觸新的 topic 跟綜合解決問題的能力。因為這個問題通常都是你沒見過的、比較未知的,是要去探索的,不像念教科書是有系統的一門知識這樣念下來,已經是 well-established、整理好的學問。也不一定在學術界,在業界也會有這樣的問題。
你現在要解決這個問題,首先要了解這個世界上有沒有人解決過相關的問題,你就要有去蒐集資料或找出相關的文獻的能力。有時候第一次搜尋 keyword 發現好像是這些有關,後來又發現這 keyword 好像不太足夠,還有什麼重要的 keyword,要慢慢接觸才會發現。
因為現在是搜尋的時代,你有 keyword 就有一個起點,但是有時候你的 knowledge 還沒有到說知道要用什麼 keyword。那這跟以前不一樣,在我們大學或碩士的那個年代,就算有 keyword 要找東西還是非常麻煩。我不確定這個方法有或是沒有,要到圖書館一直翻,過好幾年才領悟到好像已經有了,但是我們念的一些文獻也以為沒有。現在這個時代就越來越不是這樣,有很多熱心的人都在寫自己整理的各種 knowledge,你很容易找到有什麼樣相關的資料,但是你要發掘那個 keyword。
再來是說已經有的方法能不能解決我現在面對的問題,還是要再做一些修改,或者說原來這些方法並沒有做得很好,我可能要再整合不同類別的方法才會改得更好一點,或者說原來的方法效果已經很好了,那速度上還可不可以再改進,這都是可以一直詢問自己的問題。你在面對這些比較未知的問題的時候,有時候這種 performance index 跟 achievement 中間會變動,最後達成讓這個東西真的有更進一步,或者說原來這個問題還沒有人好好解過,但是運用現成的知識做整合後可以解得不錯。
我覺得在醫療上會有這種需求,有時候一個問題用現在AI的方法去做效果可能不錯,只是還沒有人在這樣的訊號、情境或病徵上這樣做過,當然這種機會越來越少,但是也需要有人去做。通常預測的問題會比直接判斷的問題來得難,直接判斷的問題像是有一張醫學影像要找出腫瘤位置,通常一位資深醫生看到這張影像以後也可以判斷,我們訓練的標註或 ground truth 就是由資深醫生給的,模型就是 follow 這樣來訓練,通常也做得不錯。
更困難的是預測,預測是在病徵還沒有發生的時候,看病人比較早期的一些影像或資料,就要預測未來會不會發生,我們有回溯性的資料知道未來會發生。這時候醫生可能也不見得在早期就能判斷出來,但是希望經過大數據可以做一個判斷。
我剛才舉的這些例子都是要應用所學過的一些方法、知識、演算法或模型,發揮綜合的思考力,去想要怎麼做可以把這些事情做到比較好,所以我覺得專題可以培養這種解題能力。
那還有另外一個更難的是問問題的能力,因為問一個好的、有意義的問題也很難,問題問得對的時候可能會改變人類未來的進展,解這個問題就非常有意義。天馬行空的問題可以問很多,比如說永遠做不到或現在很難做到的問題,但目前意義可能不大;覺得有希望做得到,但是現在好像還沒有看到,這種問問題的能力也很重要。但我想專題是解決比較現成的問題,比較偏向解決問題的能力。
我覺得大二有興趣可以開始接觸,大一我會覺得早了一點,大三可能是最適合的時間,大四當然可以,大四對於未來的發展要做一個決定,修專題也蠻適合的。如果是研究的問題或實際上會碰到的課題,有時候沒有像專門的教科書整理好,所以念這些文獻跟念教科書的方式不太一樣。文獻有一大堆東西要念,如果每一篇都像念教科書這樣鉅細靡遺,那你會念不完,我們不希望見樹不見林。
而且一篇論文也不像教科書那麼 well-organized,它有時候是強調這篇論文跟人家有什麼不同、做了什麼貢獻,所以有些基本的部分不會再一直講。
所以念論文變得是橫向要 overall 念得廣,可能每篇都念一點點,大概懂百分之十到二十,知道它好像是為了在一個脈絡下改進什麼東西,然後在這裡面找到某幾篇比較值得深入鑽研,那也不是像教科書那樣念到百分之百,有時候論文也不見得沒錯,搞不好還有一點小錯誤要自己 debug,所以有幾篇可能念到百分之七十、八十,最相關的可能念到百分之九十以上。
所以在解題的時候去搜尋文獻跟探索可能的方法,這樣的步驟跟看教科書這樣按部就班一章一章看下來不太一樣。不過這跟目前的網路時代比較像,現在網路時代大家在搜尋各種 knowledge 或是培養自己的各種觀念或見解,其實都是用剛剛講的步驟,平行建立很多觀念。我想你們這個時代是用網路成長的一代,所以你們可能很早就掌握了這些,跟我們那個時候不太一樣,我覺得你們現在的解題能力應該會比我們那時候更好。我的意思是這跟接觸教科書這種 organized 的東西不太一樣,那大二如果有興趣就可以修。
我覺得如果還沒有一個大概的興趣但是又想修專題,那就聽聽現成有的一些題目,看有沒有興趣。如果現在沒有特別覺得什麼題目比較好,那就反過來讓自己廣一點,什麼題目都可以。有時候大家互相聽別人報告的時候,覺得這個題目好像跟我不太有關係,但是千萬不要覺得沒有關係,也許過個半年以後忽然繞一個彎發現原來跟自己有關係。
很多解題或是 machine learning、deep learning 相關的技巧很多時候都是共通的,所以有時候一個經驗可以 apply 到別的題目上面。在一些課題裡面,你發現有些文獻很有貢獻,但是仔細去考察會發現它的貢獻都是從別的領域來的,因為有一些想法要參考別的方向,橫向打過來,如果一直在同樣的思路下鑽研是想不到的,這種其實是屢見不鮮的。所以如果沒有什麼特別的興趣,那就當作什麼都有興趣就好了。
興趣不合就要早點講,我覺得都可以換,有時候同一個 group 裡面可能還有其它課題你比較有興趣。以研究生來講也有更換指導教授的例子,雖然我沒有碰過這種 case,這時候要注意到在一些貢獻上會牽涉到倫理的問題,原來在做的題目換到別的實驗室時就不要再繼續做同樣的題目,不過這個通常在研究生才比較會發生。
想要做專題時可以盡早思考,找合適的老師聊一聊。