你用機器學習做過哪些有趣的事兒?

如題,我所知道有用機器學習訓練Flappy Bird,做一個能用自己的口吻陪女朋友聊天的機器人,預測誰會請自己吃飯等

不知道有過相關經歷的同學都用機器學習做過哪些有趣的事兒?


幾年前還在做信息檢索的時候,寫了篇sigir論文。

是根據觸摸屏手勢來判斷搜索結果的搜索質量。

在手機上用搜索的時候,如果發現搜索結果不太好,一般大家都會很快的翻下去,

但是一旦看到一些有意思的內容,大家就會用multitouch來放大部分頁面內容。

通過這個行為特點,可以反過來訓練模型預測哪些搜索結果質量比較高。

而且根據大家的瀏覽時間的熱點圖,也可以預測出重要部分。

本來還有一部分想做,想根據大家按下手機屏幕的壓力,來判斷有沒有search frustration,後來就改行了。。。


(1)

兩年多前(2013),我在北京某研究院實習的時候做人臉動畫的retargeting,就是給個攝像頭,我做什麼表情,那個卡通形象就跟我做一樣的表情,並且做到實時同步。

這個問題是比較困難的,視頻輸入有很多因素會影響關鍵點追蹤的結果,比如光照,攝像頭遠近,而且每個人的臉都不一樣啊,親。當時為了先做一個prototype,我貢獻出自己的臉,通過收集自己臉的各種表情視頻,設計並訓練得到了一個retargeting的模型,自己用起來精度很高,體驗極佳。哈哈哈,可是做為產品,必須得面向終端各種人的臉,所以問題本身還是非常困難的。

最後貼視頻地址。。。。嗷嗷嗷啊 好害羞

Single Camera Markless Facial Retargeting

後來為了收集更多人的臉,我找了諸多工作多年的同事,發現他們由於在電腦前工作時間太長,已經成面癱了。。。於是我mentor好心又給我找來很多實習生(還有妹子)做數據收集。但是由於他們不像我整天玩那個程序,並不知道怎麼做表情能讓追蹤器有較高精度,數據質量堪憂,他們的結果都不如我的好= = 而且我似乎把一些hyper-parameter tune成對自己的臉效果最佳,總之還是有很多艱辛的。

不過這個項目最後還是發布產品了,哈哈哈,雖然有點坑。

哦 對了 此類技術現在很多公司都在做了,但是兩年前的時候還是比較少見的

(2)

有一天,我想知道那些設計師是怎麼搭配顏色的,為什麼有些顏色搭配就比另外一些好看呢?我看了很多做設計的素材,裡面提出了一些顏色搭配的rule-of-thumb。但是這些材料也提到,不存在絕對的rule,更需要的是人的靈感。於是我就想,能不能用機器學習的方法來學習這個呢?我在網上搜了搜,還真有人做過類似的工作(跟adobe合作的)。他的思路是用矩陣分解,我當時的思路是用auto-encoder的每種變體。於是我花了很大的功夫設計這個學習演算法

anyway,最後我失敗了。機器學習後產生的顏色搭配似乎並不好看。。。

但是我不會放棄這個想法,對於這種高噪音數據,一定有什麼辦法能做到更好。

(3)

說到不務正業,還有一個玩神經網路的故事。我在大概一年多前就開始自己實現一個神經網路的庫,而當時實現這個庫的初衷並不是要實現什麼工業界學術界常用的神經網路演算法而是為了填補我的腦洞。

有一天我突然想,神經網路也可以有分形結構(就是遞歸自相似結構),換句話說我們可以在一個非常複雜的神經網路中指定一些參數共享的子模塊,從而使得一個網路的節點在指數增長的同時,它的參數規模卻只是線性增長的。為了實現這樣一個神經網路,顯然已有的框架已經很難方便的實現這個結構了,所以我就照著這個初衷開始設計functional style的neural network library,用的語言是scala。

最終,用我實現的庫,實現一個分形結構的神經網路,只要不到10行

class FractalNeuralNetwork (val depth: Int, val a: Operationable)
extends Operationable {
val b = a.create()
val inputDimension = (scala.math.pow(2, depth) * a.inputDimension).toInt
val outputDimension = a.outputDimension
def create() = if (depth == 0) {
a.create()
} else {
((a + b) ** new FractalNeuralNetwork(depth-1, b ++ a)).create()
}
}

立馬就高大上了很多,有木有;然後用這個東西跑了幾個標準數據集,發現似乎並沒有什麼卵用。


我外公一直認為彩票有規律,我怎麼也說服不了他,他還讓我幫他分析預測。。。無奈之下,寫了個基於neural network的程序,用往期數據預測下期的中獎號。。。當然,跑出來的結果誤差可想而知。。。train出來的模型在cross-validation set的預測結果和隨機生成的數組沒有顯著差異。。。


謝邀。

多數專業學者認為有趣的事情,業外人士其實並不能感受到有趣。

我以為,真正的有趣必然是你深深陷入了其中,或者你了解世界上的一切奧妙,試圖探求世界的本質,或者你天馬行空,又勇氣可嘉,能用最好的技術去實現最美好的事。

Google最近的兩篇Paper我都以為可以用「有趣」來形容。

2014年的一篇Paper 「 Show and Tell : A Neural Image Caption Generator 」,名噪一時的「看圖說話」,通過給模型一幅圖像,模型返回一句對圖像的描述。Computer Vision和Language Model的結合,使得原本想對枯燥的個體識別工作,轉化成了結構性的個體識別,並且通過Language Model來構建更好的結果表述。多領域的結合,得以讓更有趣的產品出現。

2015年的一篇Paper 「 A Recurrent Neural Network For Image Generation 」,以圖生圖的模型。不同於之前應用深度神經網路來進行圖像的Classification、Detection、Tracking等正向工作,本論文試圖通過訓練一個圖像模型,並以此模型為基礎,反向來產生圖像。

我相信,一個真正Perfect(有趣)的模型,絕不會僅僅局限於處理正向問題。

另一方面,Microsoft最近推出了兩款產品——Skype Translator和Oxford Project,也多少可以稱之為「有趣」。Skype Translator實時語音翻譯服務,真真正正是我這樣的聽力渣的福音。我以為,它是等同於Google 「Wi-Fi熱氣球」的偉大產品。Oxford Project(Microsoft Project Oxford Home)則是一個可以讓許多沒有條件構建大型機器學習模型的個人/公司,更方便快捷的來構建自己「有趣」的人工智慧產品,提供了包括Speech、Computer Vision和Language Model的多個介面。

以及 @李沐@Naiyan Wang 學長等人的DMLC,開源的分散式機器學習庫。時代不同了,我們無法再僅僅使用LibSVM這類偉大的產品來構建我們足夠Powerful的模型了。單機時代正在過去,分散式時代正在到來。在分散式時代,個人從無到有構建分散式模型是很困難的。這促進了新時代「輪子」的構建。而如果一個「輪子」能讓千萬人受益,我想,這足夠「有趣」。

另外,等我的機器人項目有實際性的工作成果產生了,再來補充答案吧。

^_^


根據購物記錄推薦婚介對象……=_=然而跑出來的結果不太好……


反爬蟲...效果還不錯


讀研的時候無聊,做了個寫絕句的東西:

http://www.weibo.com/u/2639068417

其實大家都懂這貨簡單無比,不過偶爾寫個

垂楊何處亦自悲,夜吟金陵有輕雷。

應悲臨江雙飛翼,嗟余金樽汲井回。

這樣的也是蠻驚喜的能感覺到它有才無用的失落真是哈哈哈。後來這號貌似被盜了,一直在轉廣告,改密碼也無用,新浪的那個什麼key就這麼耐用么都不需要刷新的么

我得去刪廣告了


通過歷史數據的機器學習,預測一段時間之後城市道路的擁堵情況,然後進行預測智能規劃路徑


學機器學習這事,本身就挺有趣的。


對問題中的第二個例子很感興趣!


我在圖像處理課設上面用opencv類庫開發人臉識別的應用。


帶深度學習的ai放在網路遊戲中

一定會發生什麼事

起初他會學會移動,然後攻擊防禦

說不定見得人類玩家多了還會學會說話

。。。機器學會了通過遊戲認識人類社會

。。。。。。

也許。。。


推薦閱讀:

为什么泊松分布可以应用在推荐系统上?
這個讓一張圖用另外一張圖的筆觸重新演繹出來的軟體是怎麼實現的?
梯度下降演算法中的初始值和收斂條件怎樣理解?
如何評價google 開源的TensorFlow Serving?
在集成電路設計領域(數字,模擬),人工智慧有無可能取代人類?

TAG:數據挖掘 | 編程 | 機器學習 | 模式識別 | 計算機科學 |