IT技術(shù)小屋

          秋風(fēng)秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks

          2014年6月13日 #

          本文介紹了包括 Python、Java、Haskell等在內(nèi)的一系列編程語言的深度學(xué)習(xí)庫。

          Python
          • Theano是一種用于使用數(shù)列來定義和評估數(shù)學(xué)表達的 Python 庫。它可以讓 Python 中深度學(xué)習(xí)算法的編寫更為簡單。很多其他的庫是以 Theano 為基礎(chǔ)開發(fā)的。
          • Caffe是一種以表達清晰、高速和模塊化為理念建立起來的深度學(xué)習(xí)框架。它是由伯克利視覺和學(xué)習(xí)中心(BVLC)和網(wǎng)上社區(qū)貢獻者共同開發(fā)的。谷歌的 DeepDream 人工智能圖像處理程序正是建立在 Caffe 框架之上。這個框架是一個 BSD 許可的帶有 Python 接口的 C++庫。
          • nolearn包含大量其他神經(jīng)網(wǎng)絡(luò)庫中的包裝器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些機器學(xué)習(xí)的實用模塊。
          • Genism是一個部署在 Python 編程語言中的深度學(xué)習(xí)工具包,用于通過高效的算法處理大型文本集。
          • Chainer連接深度學(xué)習(xí)中的算法與實現(xiàn),它強勁、靈活而敏銳,是一種用于深度學(xué)習(xí)的靈活的框架。
          • deepnet是一種基于 GPU 的深度學(xué)習(xí)算法的 Python 實現(xiàn),比如:前饋神經(jīng)網(wǎng)絡(luò)、受限玻爾茲曼機、深度信念網(wǎng)絡(luò)、自編碼器、深度玻爾茲曼機和卷積神經(jīng)網(wǎng)絡(luò)。
          • Hebel是一個在 Python 中用于帶有神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)的庫,它通過 PyCUDA 使用帶有 CUDA 的 GPU 加速。它可實現(xiàn)大多數(shù)目前最重要的神經(jīng)網(wǎng)絡(luò)模型,提供了多種不同的激活函數(shù)和訓(xùn)練方式,如動量,Nesterov 動量,退出(dropout)和 前期停止(early stopping)。
          • CXXNET是一種快速,簡明的分布式深度學(xué)習(xí)框架,它以 MShadow 為基礎(chǔ)。它是輕量級可擴展的 C++/CUDA 神經(jīng)網(wǎng)絡(luò)工具包,同時擁有友好的 Python/Matlab 界面,可供機器學(xué)習(xí)的訓(xùn)練和預(yù)測使用。
          • DeepPy是一種建立在 Mumpy 之上的 Python 化的深度學(xué)習(xí)框架。
          • DeepLearning是一個用 C++和 Python 開發(fā)的深度學(xué)習(xí)庫。
          C++
          • eblearn是一個機器學(xué)習(xí)的開源 C++庫,由紐約大學(xué)機器學(xué)習(xí)實驗室的 Yann LeCun 牽頭研發(fā)。尤其是,按照 GUI、演示和教程來部署的帶有基于能量的模型的卷積神經(jīng)網(wǎng)絡(luò)。
          • SINGA被設(shè)計用來進行已有系統(tǒng)中分布式訓(xùn)練算法的普通實現(xiàn)。它由 Apache Software Foundation 提供支持。
          Java
          • N-Dimensional Arrays for Java (ND4J)是一種為 JVM 設(shè)計的科學(xué)計算庫。它們被應(yīng)用在生產(chǎn)環(huán)境中,這就意味著路徑被設(shè)計成可以最小的 RAM 內(nèi)存需求來快速運行。
          • Deeplearning4j是第一個為 Java 和 Scala 編寫的消費級開元分布式深度學(xué)習(xí)庫。它被設(shè)計成在商業(yè)環(huán)境中使用,而非研究工具。
          • Encog是一種先進的機器學(xué)習(xí)框架,支持支持向量機(Support Vector Machines),人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks),基因編程(Genetic Programming),貝葉斯網(wǎng)絡(luò)(Bayesian Networks),隱馬爾科夫模型(Hidden Markov Models)和 遺傳算法(Genetic Algorithms)。
          Lua
          • Torch是一種科學(xué)計算框架,可支持多種計算機學(xué)習(xí)算法。
          Haskell
          • DNNGraph是一個用 Haskell 編寫的深度神經(jīng)網(wǎng)絡(luò)生成 DSL。
          .NET
          • Accord.NET是一種.NET 機器學(xué)習(xí)框架,包含聲音和圖像處理庫,它完全由 C# 編寫。它是一種為開發(fā)生產(chǎn)級的計算機視覺、計算機聽覺、信號處理和統(tǒng)計應(yīng)用而設(shè)計的完整框架。
          R
          • darch包可以用于建立多層神經(jīng)網(wǎng)絡(luò)(深層結(jié)構(gòu))。其中的訓(xùn)練方式包括使用對比發(fā)散法進行提前訓(xùn)練,或使用通常的訓(xùn)練方法(如反向傳播和共軛梯度)進行一些微調(diào)。
          • deepnet實現(xiàn)了一些深度學(xué)習(xí)架構(gòu)和神經(jīng)網(wǎng)絡(luò)算法,包括 BP、RBM、DBN、深度自編碼器等等。

          posted @ 2016-11-13 00:45 Meng Lee 閱讀(455) | 評論 (0)編輯 收藏

          今天,終于有時間靜下心來回顧過去兩年來所做的事情,感慨萬千,一時之間竟不知從何說起。兩年以來,遇到的困難著實不少,但每每遭遇挫折與不順之后,卻往往能柳暗花明,遇到新的轉(zhuǎn)機,讓我真真切切地感受到了功夫不負有心人這句話的含意。

          一、為什么要出國
          其實,之前從來沒有考慮過要出國,更沒有想過能直接出國工作。回想一下,這個決定的做出,多半還是緣于自己骨子里的不安分。我從很大程度上來說是一個閑不住的人,從小學(xué)、中學(xué)、大學(xué)到研究生,我?guī)缀趺刻於加忻鞔_的目標。然而,2013年從公司到事業(yè)單位工作以后,我的生活發(fā)生了巨大地轉(zhuǎn)變。簡單的工作、空洞的公文、無聊的活動占據(jù)了我全部的工作任務(wù)。有段時間幾乎天天寫材料搞活動。領(lǐng)導(dǎo)經(jīng)常夸我材料寫得又快又好,活動也搞得有聲有色,心里感覺很有成就感。然而,時間一長,逐漸發(fā)現(xiàn)那些公文永遠是一個套路,以至于我分門別類,摸索出了幾個萬能模板。而活動則千篇一律,讓人疲于應(yīng)付。我甚至可以看到六十歲退休時我在干什么,于是一陣恐懼感常常會莫名襲來,因為我不安分、不滿足于此。我不能放棄所學(xué)所長,我不能庸庸碌碌在這里度過未來的幾十年,我還有夢想,我還要登高看世界。為了這個,我走過了不平凡的兩年。

          二、如何出國
          對于普通人來說,出國大致有三條路。
          第一條路是申請去國外留學(xué),取得學(xué)位之后以應(yīng)屆畢業(yè)生的身份找工作,然后留在國外生活。這是一條比較穩(wěn)妥、簡便的路,走這條路的人最多。
          第二條路是先進入跨國公司的中國分公司工作一段時間,然后找機會外派到國外總部工作。走這條路的要求比較多,首先要能夠進入比較大的跨國公司工作,其次這個公司愿意將中國員工transfer到國外,同時還要外國總部有部門愿意接收你,所以還是需要一些運氣。但是,如果成功,好處也顯而易見。省去了讀書的時間和學(xué)費,降低了家庭負擔,對于家境一般的人是非常好的選擇。
          第三條路是直接參加外國公司的面試,通過之后直接去國外工作。這條路要求最高,需要通過外國公司嚴格的面試,另外還要能夠成功取得簽證(美國工作簽證就需要抽簽)。因此,走這條路更需要實力、機遇和運氣。
          鑒于第三條路非常難走,為了保證成功,我選擇了同時申請學(xué)校和參加外國公司面試的辦法,這也注定了我將付出更多的艱苦努力。

          三、申請學(xué)校
          申請學(xué)校從準備到最終完成,我大概用了一年時間。其間參加了三次GRE和一次托福考試。回想準備的過程,最大的敵人就是自己,最重要的法寶就是堅持堅持再堅持。記得第一次考GRE沒有取得理想的成績,因為是第一次參加英語考試,心情非常失落。幸虧當時有女朋友(現(xiàn)在的老婆)的鼓勵,我繼續(xù)復(fù)習(xí)沒有放棄。經(jīng)過一個月的復(fù)習(xí),取得了非常不錯的托福成績。記得托福出成績的那天,我緊張得不敢查,點開頁面的那一刻,我都不敢相信居然能有這么不錯的成績。特別是聽力,考試的時候覺得好幾個都沒有聽清楚,最后居然有27分,真是不可思議,可見功夫不負有心人,付出總有回報的。
          有了英語成績之后,就是撰寫申請文書。這方面我完全沒有經(jīng)驗,所有的信息全部是通過一畝三分地論壇獲得的。這個論壇信息非常豐富,基本上所有申請相關(guān)的內(nèi)容都有涉及。我每天都會花一些時間瀏覽別人的帖子,為自己定位選校,找文書靈感等等。非常感謝我的本科和研究生導(dǎo)師,還有蔣志誠為我遞推薦信,沒有你們的幫助,我不可能完成申請工作。
          最后,我申請了美國和加拿大的十五所學(xué)校的計算機專業(yè)的研究生,拿到了CMU、USC和多倫多大學(xué)的offer。其中,CMU的Data Science program應(yīng)該是世界數(shù)一數(shù)二的,錄取率非常低,畢業(yè)后的去向也非常好,大多數(shù)都可以進入美國一流公司工作。多大也是加拿大排名第一的學(xué)校,計算機的就業(yè)也非常好。

          四、Facebook的面試
          參加Facebook的面試也完全是無意的,在Linkedin上收到了Facebook HR的邀請信,于是也沒有怎么準備就做了電面,居然反饋非常好,馬上就給我安排了onsite面試,地點是印度的海得拉巴。但是,始終是沒有做什么準備,而且和谷歌不一樣的是,HR辦事效率實在太高,每一輪間隔都非常短,導(dǎo)致我根本沒有時間熱身一下,連leetcode都沒有做過就匆匆參加面試了,最終沒有如愿通過面試。
          不過,這次面試還是很有收獲。第一次出國,第一次參加美國公司全英文面試,學(xué)到了太多,積累了經(jīng)驗,可以說如果沒有Facebook的失敗,我是不可能進入谷歌的。

          五、Google的面試
          參加谷歌的面試可以說完全是老婆的慫恿。從印度參加完Facebook面試回來之后,我就開始專心于學(xué)校申請了。但是,老婆建議我試試面一下Google。由于Facebook的失利和Google近乎苛刻的面試流程,我開始是抗拒參加的。最后,在老婆的一再要求下,我終于找了一個在谷歌上海工作的師兄做了內(nèi)推。四月底我收到了谷歌北京HR的第一通電話,也正式拉開了我為期一年的面試流程。
          和HR通電話不久,我進行了第一次電話面試。谷歌的電話面試和Facebook差不多,就是面試官打過來,把題目口述并且寫在Google Doc上,然后我把程序?qū)懺贕oogle Doc上。第一次電面的題目不難,但谷歌對代碼效率和清晰度的要求遠遠超出了我的想像。第一輪面得磕磕絆絆,但是幸好面試官是中國人,非常nice,沒有讓我fail。
          于是,我又被要求進行第二次電面。期間由于面試官臨時有事爽約,我等了差不多一個月。但是,也就是這一個月,我努力做了一些準備,雖然面試依舊不是十全十美,但是我還是有驚無險地進入到了onsite面試環(huán)節(jié)。
          雖然可以onsite面試了,但是我依舊對進入谷歌不報任何希望,因為我清楚的知道,谷歌面試實在是太難了,onsite面試的挑戰(zhàn)將遠遠大于電面。因此,我去北京面試完全是想做一次免費旅游。面試前一天還許久不見的萬威夫婦吃飯,聊得很開心,完全沒有把面試放在心上。
          也許是放松的原因,我前一天晚上睡得很好,第二天我精神非常好。
          不過谷歌畢竟是谷歌,面試第一輪一上來就給了我一個下馬威。一個coding題一個設(shè)計題,表面上很簡單,但是做出來總是有這樣那樣的問題,第一輪完了之后我基本打算回家了。
          但是,不知道為什么,從第二輪開始,就越來越順利,coding做得非常好,基本上是一次寫完,沒有涂改,也沒有被面試官找到大的bug。突然之間,隱隱感覺出現(xiàn)了一絲希望。
          四輪過后,我結(jié)束了第一次onsite面試。但是,三天之后,我被告知由于設(shè)計題做得不好,我被要求進行一次加面,地點在上海。于是,我又在上海做了一次面試,只有一個設(shè)計題。我感覺答得還可以,但是心情真的是忐忑不安,特別是接下來的一個禮拜,幾乎是坐立不安。
          記得是一個禮拜之后的禮拜五中午,我正做準備主持下午的道德講堂,突然接到了一個010的電話,我知道是谷歌的電話。接通電話的那一刻,空氣都幾乎要凝固了,當聽到通過HC的消息時,我激動得不能自已。不可能完成的任務(wù)居然完成了,雖然不知道能不能去美國總部工作,但是能進入谷歌已經(jīng)非常不容易了,而且谷歌非常鼓勵transfer去美國工作,因此機會還是很多的。
          然而,讓我沒有想到的是,接下來的team match卻異常艱難,陸陸續(xù)續(xù)幾個team都沒有成功match上。轉(zhuǎn)眼就到了2014年春季,半年的等待讓我對何時進入谷歌非常悲觀,加上申請學(xué)校工作十分繁重,我基本沒有關(guān)注這個事情。
          就在我快要放棄的時候,拿到了美國一個公司的offer,他們答應(yīng)給我辦H1B簽證。于是,我把這個情況告訴了谷歌,要求他們盡快給找到team,不然我就去美國了。結(jié)果谷歌居然在三天之內(nèi)為我match上了英國office的一個team,讓人不得不感嘆還是要offer多才好啊!于是,我又經(jīng)過了近三個月的簽證辦理流程,終于要啟程赴英了。

          回顧兩年來的努力,終于要實現(xiàn)自己的夢想了,感慨萬千。在短短的人生中,能有這一段不尋常的經(jīng)歷,我覺得十分幸運。展望未來,我想讀萬卷書不如行萬里路,未來希望能夠利用在倫敦工作的機會,盡量多去歐洲各國走走,豐富自己的閱歷,開拓自己的眼界。

          最后要感謝老婆一直以來的支持和鼓勵,你一直是我前進的動力;其次要感謝父母的不理解和不支持,你們的反對讓我更加完善了自己的計劃,逼著我找到了一條最好的出路;還要感謝師長和朋友們的幫助,感謝楊老師和沈老師還有蔣志誠不厭其煩地幫我遞推薦信,感謝萬威夫婦多次在北京款待我,沒有你們的美食,我是不可能完成面試的;還有許多幫助過我的人,在這里就不能一一感謝了。
          posted @ 2014-06-13 02:00 Meng Lee 閱讀(1494) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 昔阳县| 威远县| 溆浦县| 镇雄县| 安岳县| 福鼎市| 乌兰察布市| 咸阳市| 黄大仙区| 大安市| 遂宁市| 富民县| 什邡市| 巴中市| 枣阳市| 卫辉市| 定安县| 上犹县| 十堰市| 辽源市| 葵青区| 思茅市| 南陵县| 台南市| 婺源县| 积石山| 南澳县| 天镇县| 东明县| 新绛县| 平阴县| 开江县| 三江| 建平县| 塔城市| 元氏县| 满城县| 开原市| 五峰| 阳高县| 长白|