參加編程之美2016決賽是一種什麼樣的體驗?

微軟在2016年5月24號到5月27號舉行編程決賽


經(yun)驗(qi)+團(dui)隊(you)合(kai)作(rui)拿到了本次BOP2016的冠軍,下面是剛剛寫完的記實新聞稿,我這個理工男的文筆就僅限於這種流水賬了,zz。

-------------------------

Rocky

楊劍飛

2016年5月31日

團隊 創新 力量

微軟「編程之美」2016挑戰賽全國總決賽有感

風雨交加,日夜兼程,隨著火車到站的轟鳴聲,我睡眼惺忪地爬起了起來,拉開車廂的窗帘,清晨的陽光肆意地揮灑在我的臉上,洗刷了從廣州遠道而來的一路的疲憊。我趕忙叫起兩個隊友,「抵達上海,準備出發!」

忘了自我介紹,我叫楊劍飛,是中山大學數據與計算機科學學院2012級的學生,在即將離校的最後一年攜兩名學弟高逸斌、王欽令人驚喜地首次打進了由教育部、微軟與IEEE聯合舉辦的「編程之美」挑戰賽的全國總決賽,對我而言這是本科最後一戰,也是最有含金量的一戰,因為一個多月後我就將結束本科之旅踏上出國的旅程,去追尋博士與科研的夢想。

到達高檔而愜意的指定酒店後,我們稍作整頓便開始做比賽的日程的規劃,比賽將於第二天上午公布賽題,第三天上午提交並答辯,現場編程時間只有12小時,我們通過分析往年題目推測出微軟提供的API應該會用得到,所以我們決定在賽題公布前先有針對性地把可能用到的API介面寫好,佔據時間上的主動。當晚我們與所有參賽人員聚餐,並在team building中與來自山東大學主修工業設計的殷錕同學組隊,隊名美曰「多啦A夢隊」。

(最右是我)

經過一晚的休息,各支隊伍已經容光煥發地集結在微軟上海紫竹園區的會議室中,等待題目的宣布與比賽的開始。本次比賽除了種子團隊外,還有來自密歇根大學與英屬哥倫比亞大學前來中國交流的同學組成的外卡隊。隨著大屏幕上倒計時的開啟,賽題也通過郵件發到了各支隊的手中:第一題是「語音搜圖」的智能電子相框,即通過一段語音在圖片庫中找到想要的圖片,屬於內容較為限定形式比較開放的半開放題目;第二題是「學術搜索可視化」,即將學術搜索擴展並可視化,屬於內容與形式都開放的題目,我們感到比較難以駕馭;第三題是外卡隊專題「數字金融犯罪偵查」,即利用比特幣區的大數據分析找到金融犯罪的銀行賬戶。經過頭腦風暴與激烈討論,我們從應用場景、可發揮程度和技術實現度對題目進行評價,並慎重決定決定選擇第一題,也是更多隊認為複雜的一題。

選題過後,作為隊長我首先與三名隊員進行技術討論,確定了此題在我們技術範圍內可以找到的應用點和創新點——匹配演算法與手勢識別的融入,之後迅速分配任務,明確每個人的職責,王欽負責前端和手勢識別部分的構建,高逸斌負責後台伺服器的邏輯和每個API介面的書寫,美女設計師負責將想法可視化並提供網頁前端的美工切片,我負責核心演算法的模型訓練和圖片數據集的預處理,並充當產品經理的角色統籌決策。

按照我們的系統設計流程,語音作為原始輸入後通過微軟語音識別介面轉化為文字,之後我們使用一個官方提供的LUIS語義理解模型將文字轉化為語義,這時我們就找到了語音指令當中的命令和特徵標籤,比如「找到上海拍攝的下雨的圖片」中「找到圖片」是命令而「上海」、「下雨」是特徵標籤。這裡的特徵標籤會與圖片庫中每張圖片的特徵標籤做對比匹配,從而找到準確的匹配圖片。除了隊友們負責的如何更友好的呈現外,我在演算法上要做的主要工作就是匹配演算法和圖片的預處理。

匹配演算法決定了找到圖像的準確率,我敏銳地想到了Word2Vec演算法,這個演算法是將詞語轉化為數學向量的一種演算法,在K維的向量空間中,詞語的語義信息更多地被提取了出來,從而可以度量兩個詞語間的相似程度,比如「動物」和「狗」,「牛排」和「刀叉」的相似度高,那麼我們就可以更加精確而廣泛地找到圖片。

圖片預處理地目的則在於給圖片貼特徵標籤,那麼我們直接通過微軟認知服務提供的圖像識別介面,將圖片識別出的置信度大於0.5的物品作為標籤加到json形式下的資料庫中,並手動添加具體人物與時間地點信息。

經過一白天的努力,我們基本完成了每個部分的原生代碼構建,在回酒店的車上我們商討了如何結合併決定整夜奮戰!負責前後端的兩個學弟在努力地調試和對接,直到凌晨4點才完工,而我的模型依然在訓練中,我在提前寫好測試代碼後也昏昏入睡,同房間的其它隊同學也沒有回來睡覺,直接去附近的上海交通大學閔行校區通宵編程去了,壓力襲來,我們一張一弛,有條不紊。

第二天清晨,驚喜地看到模型訓練結束,成功載入並查詢相近詞成功後,我興奮地去找只睡了3個小時的學弟,將演算法融入後布置了上午的任務,將Web前端的滑鼠操作全部改成基於手勢識別的操作!為了完成比賽所需的答辯文檔與PPT,我轉頭投入到另一個問題中,如何更好更快地將我們的idea呈現給參觀人員與大賽評委。

首先,我們給作品起名為「Percepicture」意為感知的圖片,通過語音與手勢靈活智能地尋找和操控圖片,緊接著設計師殷錕將她設計的系統流程圖和用戶UI圖展示給我看,設計圖美觀而詳細地介紹了整個流程,我急忙配圖書寫了簡潔的介紹文檔:

「基於Web前端和Python伺服器所構建的「Percepicture」語音搜圖系統,通過微軟認知服務中的語音識別API和語言理解智能服務(LUIS)API將用戶的語音通過理解、轉化得到用戶的意圖。而圖片庫中的圖片則是經過圖像識別API進行預處理,將圖片的特徵信息提取出來。當系統將用戶意圖與圖片庫中的圖片特徵進行匹配就可以得到用戶想要的圖片了。在關鍵詞匹配的演算法方面,同學們創新地使用了word2vec深度學習模型。他們對圖片的標籤語料進行訓練並把詞語映射到高維向量空間中,將詞語匹配過程轉化成數學向量相似度計算。在當今的大數據時代,這既擴展了搜索的廣度又加深了搜索的深度,從而提高了搜索的準確率。在UI方面,為了使交互更加友好同時符合展覽應用場景,系統中植入了基於手勢識別的體感操作,整個系統可以通過語音和體感兩種方式進行控制,大大增強了趣味性和互動性。」

在跟美女設計師說明了ppt的製作順序後,我急忙趕去學弟們一側錄製demo視頻,視頻中要測試和體現我們所說的一切功能,並讓評委老師感覺到生動和有趣。

緊張的編程階段結束後,即將迎來的是demo展示會,我們隊隊員為了準備好demo不出bug甚至沒有去吃午飯。demo展示中每個隊伍一個展板一張桌子,來自微軟的員工和外界媒體評審來一一參觀,在此期間我還驚喜地遇到了去年在台灣大學參加HackNTU認識的廖教授,原來這次的外卡題就是廖老親自出的題目。demo展示環節中,我們也走訪參觀了其它隊伍的作品,來自北大、北郵、上交、復旦等各大學校的選手都嘗試用不同的解決辦法進行技術攻堅,遇到難題時相互啟發找到了突破方案。而來自台灣大學的創意賽選手則非常擅於展示和表達,也給人留下深刻的印象;來自江南大學的創意賽選手在短時間內理解了作品別後的演算法並做了清晰地闡述和表達,讓人佩服……

隨之而來的是封閉答辯,評委老師在看過每個隊的實物demo後,又經過我們簡潔有力的ppt展示和清楚明了的demo視頻展示,對我們隊伍和作品給出了高度的評價。到那時,我們忐忑不安的心已經安定了下來,作品已經按照我們的idea完工,答辯也順利結束,結果對我們來說只是外界的認同與否,而我們內心對順利結束編程和成功團隊合作的欣喜更為重要,我們喜笑顏開地與其它隊侃起了大山,聊到了這兩天比賽發生的種種囧事大家笑得很開心,幾個山東人湊到了一起侃起了家鄉侃起了看似久遠的高考往事……

「所以我們揭曉本次微軟編程之美2016挑戰賽的冠軍是——多啦A夢隊!」隨著主持人在頒獎晚宴上隆重宣布,我們隊驚喜地跳了起來,24小時的編程順利結束是我們內心的欣喜,而大賽組委會老師和同學們的認可更讓我們感到開心!我們通過創新的設計、明確的分工、不懈的編程和細緻的合作創造了團隊的力量,贏得了比賽,贏得了前往美國微軟總部遊學的機會!頒獎後我們隊四人還在上海灘演了一把許文強與馮程程,大家在歡聲笑語中結束了整個比賽。

(最左是我,傲嬌不抬頭!啊哈哈哈哈哈)

返程的高鐵上,天空又淅淅瀝瀝下起了小雨,而我們的心情卻如陽光燦爛,短短的三天時間裡,我們完成了一個創新的項目,熔煉了一個成功的團隊,認識了一撥兒志同道合的朋友,值!

看著窗外快速掠過的上海,我們只能揮手說再見,但對於這段珍貴而勞累的比賽記憶,it never fades away!Lucky to meet you guys!See you around!

有幸與兩位編程之美創始人合影

(微軟亞洲研究院學術合作中國區經理 馬歆、微軟工程院研發經理 鄒欣)

兄弟們,後會有期!


參加的hackathon里最棒的一次。

作為一隻大三出國黨,一直處於忙的要死要活的狀態,複賽時候本來沒有什麼時間,並且覺得做了也沒有希望進入決賽,於是準備放棄了。後來在一隻大二隊友的熱情下還是在截止的那一周周末寫完了,沒想到壓線進了決賽,非常非常的幸運。

決賽整個流程處理的非常流暢,畢竟是微軟主辦的活動,跟平時學生辦的活動還是不能比的。無論從環境、伙食、講座以及demo環節,都是目前以來最棒的體驗。再說說人,從參賽選手到工作人員都是非常有趣和有愛的。微軟的員工都非常非常親民,綜合素質非常好,能和參賽選手侃大山,能演講,能處理各種事務,也完全沒有一點點架子,這讓本來一根筋打算讀PhD的我有點想早點進入這樣的公司工作了。

另外一點讓我印象很深刻的是微軟對於女性特別的好,每次拍照都是男生蹲在前面,整個決賽的男女比例也很平衡,另外最後有專門一個額外的大獎頒給冠軍隊伍的女生。這是我讓我感到非常舒服的一點,雖然每次蹲著拍照都很累。

順便調侃一下,微軟的傳統就是讓人猜數量級么,從國斌哥到後面講區塊鏈的老師,每次問的問題都是大家猜猜XXX有多少?我每次都不忍吐槽這我們怎麼會知道。。。

最後聊聊關於自己的兩個特別的經歷。第一個是第一天晚上的猜數字博弈論遊戲,我們隊幸運的獲得了第一名,答案是8.39,我們是8.33。當時我們是這樣想的,按正常概率來說,不管別人選什麼數字,期望的平均數是50,因此最後的答案期望應該為50*0.618=30.9左右,因此絕大多數人都不可能往高的猜,這樣猜中的概率會很低,所以平均值應該更小。但是大家應該基本都考慮了這一點,所以最終的結果應該會很小,並且大家都猜的很小,比如大家應該很多組會選2個1-10之間的數,然後1個10-20之間的數。所以我們決定把整個答案往上提升一下然後猜個稍微大一點的數,我們選了一個100,一共45個數,一個100可以把最終結果提升1點幾。再選了一個5.2和8.33,基本也是靠猜測和蒙,沒想到最終正好蒙對了。

第二個經歷是demo環節給我們投了7票的一個妹子,我們一共只有8票,但那一個人就給了我們7票。我們在可視化上面做了大量的工作,並且可視化是我們整個系統的核心。那位女生跟我說她覺得我們能這麼認真的研究可視化非常不容易,這點也肯定了我們的工作,讓我也很感動。之後我也教了她我們的可視化都是如何做的,希望對她以後能有用吧~

最後的最後,隊友們都很呆萌,自己還有很多需要進步和努力的,雖然沒有拿到什麼名次,但是這會是畢生難忘的一次經歷,感謝微軟,感謝編程之美!


第一次參加哈克松比賽,不請自答一波 2333。雖然題主問的是決賽的體驗,但是趁著這個回答,本人還是想把整個參賽的過程記錄一下。

初賽的時候是在code hunt平台進行的,之前沒有接觸過這種從輸出逆推代碼的過程,因此提前一周在平台上進行練習。最終初賽的話貌似是拿下了30多分吧,RANK 100+,第一天想退出微軟賬號登陸,結果不小心手殘點了刪除,第二天又比了一次。

複賽是基於微軟學術API做一個路徑搜索的題目。分析了一下題目和評分標準,1 主要是要能夠把路徑找全 2 要能在保證1的前提下,不斷優化響應的時間,能夠快速的返回查詢結果。 這裡非常幸運的是微軟的最終評測用例的計算量都比較大,因此我們之前做的很多優化工作都起到了很好的效果。最終複賽排名是第4名。

當時接到進決賽的電話,心情很激動。比賽地點是上海(我發現上海真是我的福地呀,本科的時候有一個比賽也在上海,取得了不錯的成績),由於實驗室還要上班打卡,因此不能多提前一些時間到現場,我們是簽到結束前30分鐘吧,才到的酒店(從北京)。到了酒店真的覺得微軟好土豪啊,住得特別好(然並卵好嗎。。因為比賽開始後根本沒機會睡覺 2333)決賽是這樣的形式:編程賽選出15支隊伍(3人一隊),創意賽選出15個選手(一共60個人)然後到了上海後,創意賽的人再加入編程賽的隊伍,構成4人一個隊的參賽組合。之前我們沒有聯繫好創意賽的人,但是又一件特別幸運的事情發生了!我回到房間後,遇到了和我同住的舍友,當時見到她,覺得她真的好美。和她聊了一會後,得知她是創意賽的妹子,然後我就把她拉進了我們的隊裡面(哈哈哈,利用性別優勢,拉了一個大美女入坑)。當天晚上主辦方帶我們去吃了墨西哥餐。啊,不得不提的是那天我終於見到了傳說中圈內顏值最高的島娘妹子~晚上到了微軟的office,然後我們開始猜數字環節,每個隊伍從(0~100)選3個數字,然後所有隊的平均數字再乘0。618,最接近的那個隊伍優先選第二天的決賽題目(因為一共有2題可選)。我們選的是8。88 答案是8。39 我們是第三接近的,所以我們完全有主動權去選擇題目。賽題一是智能電子相冊,賽題二是學術搜索分析與可視化。我們分析題目後,覺得題目二複賽的時候已經涉及到了一部分學術搜索的內容,會比較熟悉,因此我們選擇了賽題二。第二天開題之後就開始了26個小時的編程馬拉松。整個比賽的過程下來,不得不說這是我團隊合作過最舒心最開心的一次。真的很感謝微軟是這種形式的比賽,讓我有機會和ui交互設計的妹子進行合作,我才知道原來不同專業的人可以碰撞出這麼多奇妙的火花。再次感謝我們的設計師妹子,太喜歡你啦!

26個小時過後,就是在展板展示階段,我們一一給媒體、其他參賽選手介紹我們的學術搜索引擎。接下來就是答辯,答辯是兩個賽題分開進行第一輪答辯,然後每個賽題選出2支隊,一共4支隊進行第二輪答辯,爭奪1、2、3名。當第一輪答辯完的時候,妹子和我說,我們應該能進第二輪,但是還是好緊張呀,畢竟8進2。當工作人員進來念到"第六組"的時候,我和妹子抱了一下,太激動了。第二輪答辯只有5分鐘,評委問的問題也比第一輪要苛刻很多,我針對他們的問題進行了一一的回答,自我感覺答得還是比較滿意的。

晚宴才公布最終的結果,晚宴我們和馬歆姐姐坐在一起,感覺她非常和藹、親切。但是在公布結果前真的無心吃飯啊!!當念到第二名是我們的時候,真的當場淚奔了 555555 激動+不容易吧。後來summer姐過來和我們說希望能夠繼續把我們的作品維護下去。總之算是比較圓滿了,都是隊友的神助攻才取得這樣的成績,感謝主辦方讓我們感受到團隊合作是一種編程之美!

總結下來就是整個比賽,主辦方讓參賽者吃好,喝好,住好,細心解答我們各種問題,讓參賽者非常享受這個過程。給他們一百個贊!


能夠參加決賽我自己感覺還是蠻幸運的,雖然是持外卡加入,哈哈哈哈哈。

話說中美組隊去玩一個比賽以前真的沒有過!這種體驗絕對棒棒噠~

我們隊的小夥伴有幾個本來就是我的好朋友,有好基友(雖然基友為了女朋友把我拋棄啦),還有不斷開拓技能樹的產品經理李老師(經此一役絕壁要尊稱李老師,感謝她教我做人,嘿嘿嘿),當然還有傳說中的外國友人,ash絕對我男神啊,特別能開玩笑,學中文也學的很快,這個印度裔的純正美國人,信奉印度教,不吃豬肉、牛肉什麼的,還不怎麼吃水果,感覺還是沒有信仰好,哈哈哈。還有Alyssa,加拿大的女孩,笑起來很甜,畫起海報來絕對不含糊,還能coding,寫的一首好代碼,感覺老外的綜合素質好高~

還有自己的英語真的很渣,和老外只能簡單的侃幾句,好基友和老外隨便聊天啊,如果自己的英語好點,跟他們溝通我的想法,也許我們就不至於只能拿到excellent的鼓勵獎了。。。


去年參加過一次編程之美,複賽的時候就結束了=。=

今年呢,初賽很輕鬆就過了(因為做幾道題就過了),複賽呢是團隊賽,是利用微軟認知服務(Microsoft Cognitive Services)中的微軟學術搜索API進行相關的演算法編程工作,由於隊友和我在那段時間都要考試,最後只取得50左右的成績,也結束了=。=

因為今年的賽制的關係,加上了創意賽,我當時做了個創意賽作品,結合微軟認知服務的一個智能家居服務的demo視頻,很幸運的是這個被選中了~於是乎我就進了決賽。

Day 1: 一大早上就趕飛機,5點就起床了,上午我就到達了上海,然後一番磁懸浮+地鐵+出租到達了閔行(hang,我來之前老讀xing)區。當然比賽是報銷來回住宿,市內解決交通費,吃喝住全包的,酒店是上海閔行飯店,條件很不錯的~

之後就是簽到的環節,很貼心的還給了點零食還有比賽的衣服和胸卡

吐槽一下,把我學校的英文名拼錯了=。=明明是Dalian Neusoft University of Information

下午我就和之前聯繫好的編程賽選手會和了,簡單的討論下第二天比賽的準備情況~

晚上就是到微軟紫竹園區,進行破冰組隊的一個活動,由國斌哥主持

然後晚上和隊友繼續討論了一下第二天要怎麼辦,然後就回去睡覺了

---------------------------------------------------------------------------------------------------------------

Day 2:

一早上就到達了會場,可以看出這邊的園區還是很漂亮的,前台有個顯示器會顯示室內室外PM2.5,室內的一直控制在10左右,可以看出微軟對員工還是很關心的~

然後就到了公布賽題的階段,總共有兩個題目可選,都是基於微軟認知服務的支持,一個是智能相框,一個是微軟學術搜索(可以做數據可視化等等),我們組選擇了微軟學術搜索這個題

然後就是一天硬戰了。。。這是下半夜在酒店裡,你們見過凌晨四點的上海么!我們見過,因為幾乎一夜沒睡,因為我們隊沒有前端,對於這類需要展示的黑客馬拉松比賽,還是比較慘的,在各位大神的努力下,我們凌晨四點多才成功將可視化前台和後台對接上,東北大學的小夥伴一直在說怎麼辦呢?怎麼辦呢?然後默默的攻克一個又一個問題!

第二天上午我們依然在進行調試,然後中午就開始了Demo階段,由於我們下午被(不幸的)抽中第一個答辯,我們就放棄了Demo展示,準備下午答辯了。

下午就進行了答辯,我們是第一組,感覺還好,但是可能是我們隊比賽理解有偏差,幾個人都是工程師思想,都考慮了我們能實現什麼,沒有多做一些有創意的東西,加上我們幾個美工和前端能力有限,所以=。=恩,重在參與。

晚上到了頒獎環境,同時也是喜聞樂見的和大牛合影的機會!

我們和《編程之美》作者鄒欣老師的合影。

和微軟學術搜索的美女PM Summer姐的合影~ Summer絕對是一個稱職的PM,經常看到凌晨12點還在微軟學術搜索群中回答用戶的疑問和建議。贊!

---------------------------------------------------------------------------------------------------------------

Day 3:

活動的最後一天,來到了上海交通大學密西根學院,評委老師們給大家傳授人生經驗

---------------------------------------------------------------------------------------------------------------

Summary

總結一下,很榮幸能參加這次編程之美的總決賽,讓我學習到很多,長了很多見識,在這幾天中和我的隊友來自東北大學、香港大學和英屬哥倫比亞大學的小夥伴合作的很愉快,大家的都特別努力。同時也要感謝比賽的組織方和承辦方和各位辛辛苦苦的工作人員們,他們真的很棒,有的工作人員甚至深夜還在解答選手的疑問。大讚~

最後附兩張拍的外灘美景~祝編程之美越辦越好~

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

另外也有個小小的建議,希望編程之美不是比賽結束了就結束了,而且可以繼續給選手提供一些資源和少量資金可供我們繼續完善項目,畢竟比賽只有24小時多一點,不可能做出很好的產品或者演算法,如果有更多的時間,我相信一定有更好的項目和產品出現!


哎,比賽一言難盡。

不過住的地方還不錯,比賽嘛……一天能出多少工作量大家也都知道的,所以就是拼腦洞了。

不過和小夥伴們玩的還是非常開心的,兩個美國隊友一進KTV就嗨到崩潰,好吧,我真的很想去美國開個KTV。

下圖為住的住宿條件。


參加了複賽,最後排20+名挺可惜。因為隊友是兩個大一鮮肉,正要忙著準備轉專業考試,所以只能孤軍奮戰,其實最後腦子裡還有很多優化想法沒來得及實現,但是至少我學會了py交易。好吧,其實有t-shirt我已經滿足了,嘻嘻


Orz基本算是個人頭一次參加線下的編程比賽 體驗很不錯。

住的地方很好(鄉下人表示沒住過這麼好的酒店) 吃得也還可以。會務組的工作人員都很nice 有什麼問題解決起來都十分效率。

最最最重要的是隊友們都很強力 配合起來很默契。

祝越辦越好。


推薦閱讀:

除了 Surface pro 3,目前消費市場還有哪個 Win 8 平板可以很好地支持觸控筆?
微軟 new Surface Pro 為什麼不命名為 Surface Pro 5?
win8.1開機後磁碟100%是bug嗎,都這麼久了微軟為什麼還沒有改正?
為什麼升級完windows8.1後字體變虛?
win8的寨板體驗如何?

TAG:微軟Microsoft | 編程 |