五個月時間,運用全球領先的資訊技術,激發團隊潛力,

創造未來生活!

YTP團隊安排台大教授群來指導及協助,這群少年圖靈激盪出令人驚豔的成果!

 

Young Turing Program 少年圖靈計畫的第二階段,邀請從「程式挑戰營」脫穎而出的優秀隊伍,經歷不到五個多月的時間,跟著台大指導教授和YTP業界輔導員,透過討論訓練並學習相關技術所需的資料及問題諮詢,一起完成製作程式專題,為了貼近產業界的需求,專題領域分為三大類,分別是Big Data、AI/Deep Learning、FinTech /Blockchain。

Young Turing Program少年圖靈計畫 第二階段專題成果發表:

「T毛可以吃泡芙嗎」是由建國中學高三同學組成的團隊DSC00037

以Deep Learning為出發,實作題目為 Sorting Hat Based on Learning Techniques:在輸入某人口述個人特性及偏好,利用機器學習等技術,找出此人特徵並分析,概念為模仿奇幻小說中的分類帽進行挑選的過程。

緣起:為什麼選這個主題?The Sorting Hat

一開始找題目的時候我們也是苦無靈感,很多東西大家都做過了,玩不出什麼新花樣,後來在指導老師的建議下我們決定朝「音訊」方向著手──針對一段語音輸入做一些有趣的事。但是要做什麼呢?我們很快想到了聊天機器人,然後我們(不知道為什麼)就想到了電影《哈利波特》中的分類帽(Sorting Hat)也是跟新生魔法師們聊天來決定他們所屬的學院,那麼我們能不能透過讓使用者輸入一段語音──有點像是自我介紹,但同時又像是在聊天──來判斷使用者是屬於哪一類群(例如哈利波特中的四個學院)?於是,我們踏上了成為魔法師之路……

(Picture originated from The Sorting Hat by sahinduezguen

 

實作:做出一頂分類帽!The Sorting Hat (2)

要幫使用者分類,我們要先了解所有類群間的差異性,再將這些差異用一些特徵(features)表示,最後只要從使用者輸入的文本中萃取出與特徵相關的字,判斷哪個類群所含特徵與這些字最符合,就能夠分類了。

以《哈利波特》中學院分類為例,霍格華茲的學生都很勇敢、而史萊哲林的學生個個陰險狡猾,這些「勇敢」、「狡猾」、「機智」等等都是各學院的特徵。從網路上公信力夠高的網站(Harry Potter Wiki)查到四個學院各自擁有的特徵,作為我們分類的標準,再將使用者的文本與之比對即可。

但是問題來了,要如何實作「比對文本與特徵」呢?我們使用 google 的 word2vec ,這個套件可以透過將文本中的字轉換為向量空間,所以我們把 Harry Potter Wiki 的內容全部丟進去, train 出一個完全是哈利波特世界的字的 model ,所以接下來我們只要把使用者說的內容拆成單字,丟進去與每個學院的每個特徵形容詞取距離,在針對各學院間特徵直取平均,看哪個學院的平均距離最短就是解答了對吧?

(Picture originated from http://harrypotter.wikia.com/wiki/Gryffindor

挑戰及如何解決:專案期間遇到什麼困難,怎麼突破?

事情當然沒有那麼簡單,我們遇到的問題大致可以分成以下幾點:

  1. 詞性問題
  2. 中性字
  3. 單一學院中特徵間差異

詞性問題The Sorting Hat (4)

大家都知道在英文中,brave 跟 bravery 之間的差別──形容詞與名詞,雖然兩個字都是指「勇敢」,但在向量空間中這兩個字會距離很遠,因為同詞性的字才會聚集在一起,所以我們把名詞和形容詞都當成特徵來算距
離。但是這樣會導致使用者中針對同一類特徵(如brave、bravery)之距離不同而且差異不小,這個問題我們會在第三點說明。

中性字:

我們發現使用者說的文本中,幾乎百分之八十的字與各學院的距離沒有太大的差異,例如我說 ” I am a brave boy. “這段話除了 brave 以外的字跟各學院的距離幾乎一樣,我們把這種對分類判斷影響不大的字稱做「中性字」。但是如果放著中性字不管還是會對結果造成影響:原因是我們發現即使是中性字也會與某一特定學院(Slytherin)是最接近的,可能 A 這個字跟 Slytherin 距離0.001而與其他學院距離0.000999,乍看之下影響不大,但由於使用者是在與分類帽聊天,輸入的單字量其實足夠大到超過正常字(相對於中性字)造成的影響。

解決這個問題的辦法是,利用標準差把中性字篩掉,如果我們發現某個字與所有特徵字距離的標準差小於一定值,表示他跟所有字的距離差不多,那就判定為中性字。

單一學院中特徵間差異:The Sorting Hat (3)

第一點有提到這個問題,用個簡單的例子說明:courageous 和 brave都是勇敢的意思,所以使用者說到 courageous 時我們會判斷他是屬於葛來分多的特徵字。但是由於要解決詞性問題,當我們使特徵字具有多種詞性(這裡是形容詞與名詞),就會造成 courageous 雖然跟 brave 距離很近但可能跟 bravery 很遠,遠到我們在做學院特徵字平均時影響過大而造成誤判。

在這種情況我們改良我們取距離的方法──選取各學院中特徵值最短的距離,而非平均距離,這樣能夠避免向量空間中特徵分布不均造成的偏差。

發展:接下來如何讓這個專案持續?想要做到什麼?

解決完上述問題我們終於勉勉強強做出一頂分類帽,但是又不是每個人都想成為魔法師,那我們做這個有什麼用呢?

其實回到一開始的問題,分類帽充其量就是在分類,所以舉凡生活中的分類問題我們都可以用這套方法來實作。像是市面上又有所謂的「投資風險屬性調查問卷」給投資者填寫,以利了解自己是屬於風險型或保守型,這種問卷型的調查分類方式就可以改為我們的「聊天分類」,除了不用看一堆密密麻麻的字勾選自己是哪一種人,或是在對某項事情的1~10評分中猶豫到底要寫6還是7,聊天分類可以以更直觀的方式提供使用者分類功能,而更可以根據使用者的反饋來持續改進聊天分類系統,再加上銀行推出的 chatbot 諮詢服務(http://www.ithome.com.tw/news/112450),讓金融業更簡便而精確地幫助使用者選擇投資風險類別。

DSC00035TFcis 是由台南一中學長學弟組成的團隊

運用區塊鏈的技術,設計出具有監督功能的慈善募捐平台。本研究利用支援於區塊鏈上執行程式碼之以太坊系統來設法將區塊鏈的這種特性使用於公認具有資料透明度過低問題的慈善募款方面,以期達到改善社會現存之勸募平台之目的。除此以外,也使用智能合約來設計一套支援需捐獻者投票通過以同意交易的系統來將監督的權利歸還給捐獻者。同時也利用網頁前端程式語言設計一套能夠使大眾簡便進行操作之介面,以此將改進過的勸募平台推廣至社會。

緣起

隨著傳播媒體的逐漸發展,社會上層的黑暗面也逐漸地被新聞媒體揭露於世人眼中。縱使我們並不知道這些轟動一時的聳動事件是真是假,但是在如此的社會氛圍之中,所能做的與必須做的也只有瞪大眼睛注意這些問題,並且努力改進這個社會。

在這些眾多事件之中,吸引到我們注意的其中一系列的新聞就是在2014到2015年左右關於某些慈善機構疑似利用民眾的愛心善款來進行炒地皮的操作。當時這則新聞在臺灣可說是鬧得掀天揭地,許多名嘴們都為了這個而吵得不可開交。而雖然我們無法親自對這系列新聞查證,但是這些也引起了我們的思考:難道我們捐獻者都不可能有辦法知道我們的善心究竟被用到哪了嗎?

接觸新技術-區塊鏈

新興的區塊鏈技術具有去中心化及資料無法被竄改的特性,在需要資料透明的領域非常適用,尤其是在金融領域方面因為貨幣貴重的特性而特別有優勢。

因為區塊鏈技術對我們來說是從未接觸的,所以要花許多時間閱讀相關文獻與聽專業的老師上課。在這之中,要學習solidity語言才能夠撰寫智能合約,也要學習web3 API 與一些像是Meteor的框架才能夠將網站給做好。

最後我們成功地做出一個簡易的網站 http://donate.csie.org/。之後希望能夠放上以太坊公有鏈,才較能夠達到安全;以及跟銀行合作,以達到新台幣轉換為資訊流且能夠身分認證,以下為網站的一些截圖:

TFS
TFS2

學園孤鳥是由高雄中學與新竹實驗中學兩校同學組成的聯隊

基於Reinforcement Learning的遊戲AI開發強化
1.以Lollipop起手,嘗試讓電腦透過人工智慧在Lollipop這個遊戲上玩得比人好
2.將研究經驗與成果移轉至其他遊戲
3.考慮更廣泛的Machine Learning方法應用至遊戲AI上

緣起:為什麼選擇研究AI ?

Machine learning和big data這兩年的蓬勃發展,宣告了AI+時代的來臨。基於對AI開發的高度興趣,我們挑選了機器學習的其中一分支領域:強化學習(Reinforcement Learning);以開發出general的遊戲AI為目標,學園孤鳥便起飛了。

開發強化學習AI需要的基礎知識相當多,從機器學習基礎一路學到強化學習的各種方法,要耗費相當多的心力;開始開發後遇到AI效能上的瓶頸,又需要重新研究和嘗試各種方法的實作,大幅降低了開發的進度。雖然我們的執行力不斷受到挑戰,但是在不斷調整適應之後,仍然成功的做出了不錯的成果。

我們的終極目標是能夠將QWOP玩得相當好的AI,為了達到這個目標仍然要持續進行開發。最後希望能讓大家看見機械手臂流暢的按著鍵盤玩著QWOP的光景。

AI