自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度學(xué)習(xí)真的可以零基礎(chǔ)入門嗎?

人工智能 深度學(xué)習(xí)
如果你想進入這一領(lǐng)域,你應(yīng)該首先學(xué)習(xí) Python。盡管這一領(lǐng)域還支持其它很多語言,但 Python 是應(yīng)用范圍最廣而且最簡單的一個。

[[203908]]

有人如是問

  1. 深度學(xué)習(xí)——我該從哪里開始呢?
  2. TensorFlow 是現(xiàn)在最流行的吧?
  3. 我聽說 Caffe 很常用,但會不會太難了?

TensorFlow

對于那些聽說過深度學(xué)習(xí)但還沒有太過專門深入的人來說,TensorFlow 是他們最喜歡的深度學(xué)習(xí)框架,但在這里我要澄清一些事實。

在 TensorFlow 的官網(wǎng)上,它被定義為「一個用于機器智能的開源軟件庫」,但我覺得應(yīng)該這么定義:TensorFlow 是一個使用數(shù)據(jù)流圖(data flow graphs)進行數(shù)值計算的開源軟件庫。在這里,他們沒有將 TensorFlow 包含在「深度學(xué)習(xí)框架」范圍內(nèi),而是和 Theano 一起被包含在「圖編譯器(graph compilers)」類別中。

在結(jié)束了 Udacity 的 Deep Learning 課程(https://www.udacity.com/course/deep-learning–ud730)之后,我的感覺是TensorFlow 是一個非常好的框架,但是卻非常低層。使用 TensorFlow 需要編寫大量的代碼,你必須一遍又一遍地重新發(fā)明輪子。而且我并不是唯一一個這么想的人。

Theano

Theano 是最老牌和最穩(wěn)定的庫之一。據(jù)我所知,深度學(xué)習(xí)庫的開端不是 Caffe 就是 Theano。

和 TensorFlow 類似,Theano 是一個比較低層的庫。也因此它并不適合深度學(xué)習(xí),而更適合數(shù)值計算優(yōu)化。它支持自動的函數(shù)梯度計算,帶有 Python 接口并集成了 Numpy,這使得它從一開始就成為了通用深度學(xué)習(xí)領(lǐng)域最常使用的庫之一。

Keras

「You have just found Keras.」

上面這句話是你打開文檔頁面時看到的第一句話。在起步時就已經(jīng)有了足夠的深度學(xué)習(xí)知識,但我沒有時間自己手動編寫功能,也沒有時間探索和學(xué)習(xí)一個新的庫(截止時間不到 2 個月,而我還有課要上)。然后我發(fā)現(xiàn)了 Keras。

我真的很喜歡 Keras,因為它的句法是相當(dāng)明晰的,它的文檔也非常好(盡管相對較新),而且它支持我已經(jīng)掌握的語言 Python。它的使用非常簡單輕松;我們也能很直觀地了解它的指令、函數(shù)和每個模塊之間的鏈接方式。

Keras 是一個非常高層的庫,可以工作在 Theano 和 TensorFlow(可以配置)之上。另外,Keras 強調(diào)極簡主義——你只需幾行代碼就能構(gòu)建一個神經(jīng)網(wǎng)絡(luò)。

Lasagne

Lasagne 是一個工作在 Theano 之上的庫。它的使命是簡化一點深度學(xué)習(xí)算法之下的復(fù)雜計算,同時也提供了一個更加友好的接口(也是 Python 的)。這是一個老牌的庫,并且很長時間以來它都是一個擴展能力很強的工具;但在我看來,它的發(fā)展速度趕不上 Keras。它們的適用領(lǐng)域都差不多,但 Keras 有更好的文檔、也更完整。

Caffe

Caffe 不只是最老牌的框架之一,而是老牌中的老牌。

在我看來,Caffe 有非常好的特性,但也有一些小缺點。起初的時候它并不是一個通用框架,而僅僅關(guān)注計算機視覺,但它具有非常好的通用性。在我們實驗室的實驗中,CaffeNet 架構(gòu)的訓(xùn)練時間在 Caffe 中比在 Keras 中(使用了 Theano 后端)少 5 倍。Caffe 的缺點是它不夠靈活。如果你想給它來一點新改變,那你就需要使用 C++ 和 CUDA 編程,不過你也可以使用 Python 或 Matlab 接口進行一些小改變。

Caffe 的文檔非常貧乏。你需要花大量時間檢查代碼才能理解它(Xavier 初始化有什么用?Glorot 是什么?)

Caffe 的最大缺點之一是它的安裝。它需要解決大量的依賴包……我曾經(jīng)安裝過 Caffe 兩次,真正痛苦至極。

但要清楚,Caffe 并不是一無是處。在投入了生產(chǎn)的計算機視覺系統(tǒng)的工具上,Caffe 是無可爭議的領(lǐng)導(dǎo)者。它非常穩(wěn)健非常快速。我的建議是:用 Keras 進行實驗和測試,然后遷移到 Caffe 中進行生產(chǎn)。

DSSTNE

DSSTNE 的發(fā)音同 Destiny,是一個酷勁十足的框架卻總是被忽略。為什么?除去其他的因素不談,原因在于這個框架不具有普適性,不是為一般常見任務(wù)所設(shè)計的。DSSTNE 框架只做一件事——推薦系統(tǒng),但把這件事做到了極致。既不是為研究而設(shè)計,也不是為測試 idea 而設(shè)計(來源其官方網(wǎng)站的宣傳語),DSSTNE 框架是為量產(chǎn)而設(shè)計。

我們已在 BEEVA 上做一些實驗測試了,目前我已經(jīng)感覺到這是一個運行非??斓墓ぞ卟⑶夷軌虻玫椒浅:玫倪\行結(jié)果(平均準(zhǔn)確率均值——mAP 很高)。為了達到這一速度,DSSTNE 框架用 GPU 運行,這也是它的弊端之一:不同于篇中分析的其他框架或者庫,這個框架不支持使用者隨意在 CPU 和 GPU 中切換,而這可能會對有些嘗試有用,但我們在 DSSTNE 里做這樣的嘗試時是不被框架所允許的。

還想說明一點,這個框架對編程能力沒有要求。DSSTNE 框架通過其終端的命令行來執(zhí)行相關(guān)操作。

到目前為止,很多我知道也很流行的框架和庫我還沒有用過,我不能給出更多具體的細(xì)節(jié)。

Torch

在這個世界上每天仍有很多戰(zhàn)爭,但是一個優(yōu)秀的「勇士」(西班牙語「Guerrero」)必須熟知哪些戰(zhàn)爭是需要去參加作戰(zhàn)的,哪些是可以選擇不參與的。

Torch 是一個很著名的框架,因巨頭 Facebook 的人工智能研究所用的框架是 Torch,并且在被谷歌收購之前 DeepMind 也是用的 Torch(收購之后 DeepMind 轉(zhuǎn)向了 TensorFlow)。Torch 的編程語言是 Lua,這就是我剛才所談的「戰(zhàn)爭」的具體所指。在目前深度學(xué)習(xí)編程語言絕大部分以 Python 實現(xiàn)為主的大趨勢下,一個以 Lua 為編程語言的框架的最大劣勢莫過于此。我從未用使用過這個語言,如果我想使用 Torch 這個工具,毫無疑問我需要先學(xué)習(xí) Lua 語言然后才能使用 Torch。這固然是一個合理的過程,但就我個人情況來說,我偏向于用 Python、Matlab 或者 C++的實現(xiàn)。

MXNet

mxnet 是一個支持大多數(shù)編程語言的框架之一,包括 Python,R,C++,Julia 等。但我覺得使用 R 語言的開發(fā)者會特別偏愛 mxnet,因為至今為止還是 Python 以不可置疑的態(tài)勢稱霸深度學(xué)習(xí)語言的(Python 與 R 的對決,猜猜我會站哪邊?:-p)

老實說,在此之前我并沒有很關(guān)注 mxnet。但是當(dāng)亞馬遜 AWS 宣布選擇 mxnet 作為其深度學(xué)習(xí) AMI 的庫時觸發(fā)我開始關(guān)注 mxnet。我必須去了解一下。后來我獲知亞馬遜把 mxnet 列為其深度學(xué)習(xí)的參考庫并宣稱其巨大的橫向擴展能力。我感覺到這里面有一些新的改變發(fā)生而且我必須深入了解。這也是為什么我們 2017 的 BEEVA 的技術(shù)測試名單里有 mnxet 的原因。

我對多 GPU 的擴展能力有點疑慮并且我很原意去了解這樣實驗的更多細(xì)節(jié),但目前我還是對 mxnet 持懷疑態(tài)度。

DL4J

我接觸這一庫,是因為它的 documentation。當(dāng)時我正在尋找受限玻爾茲曼機、自編碼器,在 DL4J 中找到了這兩個 documentation。里面的文件很清楚,有理論,有代碼案例。我必須得說 DL4J 的 documentation 簡直是藝術(shù)品,其他庫在記錄代碼的時候需要向它學(xué)習(xí)。

DL4J 背后的公司 Skymind 意識到,雖然在深度學(xué)習(xí)圈內(nèi) Python 是老大,但大部分程序員起自 Java,所以需要找到一個解決方案。DL4J 兼容 JVM,也適用 Java、Clojure 和 Scala,隨著 Scala 的起起落落,它也被很多有潛力的創(chuàng)業(yè)公司使用,所以我還會繼續(xù)緊追這個庫。

此外,Skymind 的 twitter 賬戶非?;钴S,不斷公開最新的科學(xué)論文、案例和教程,及其推薦大家關(guān)注。

Cognitive Toolkit

認(rèn)知工具包(Cognitive Toolkit)之前被大家所知的縮略是 CNTK,但是最近又重命名回歸到 Cognitive Toolkit,很可能是想沾最近微軟認(rèn)知服務(wù)(Microsoft Cognitive services)的光。在公開的基準(zhǔn)測試上的表現(xiàn)來看,這個工具似乎很強勁,支持縱向和橫向的推移。

目前為止,Cognitive Toolkit 似乎不是很流行。我并沒有讀到很多關(guān)于使用這個庫的博客、在線實驗案例或者在 Kaggle 里的相關(guān)評論。但是對我來說,一個背靠微軟研究的框架特別強調(diào)自己的推移能力讓我覺得有些奇怪,畢竟微軟研究團隊可是在語音識別上打破世界紀(jì)錄并逼近人類水準(zhǔn)。

我在查看他們項目百科的一個范例的時候了解到 Cognitive Toolkit 在 Python 上的語法和 Keras 是非常相類似的(Cognitive Toolkit 也支持 C++),這不禁讓我在想(并不是確認(rèn))Keras 才是正確的方式。

如果你想進入這一領(lǐng)域,你應(yīng)該首先學(xué)習(xí) Python。盡管這一領(lǐng)域還支持其它很多語言,但 Python 是應(yīng)用范圍最廣而且最簡單的一個。

如果你是初學(xué)者,使用 Keras,如果不是初學(xué)者,也可以使用它。如果你參加過 Kaggle 比賽,你肯定注意到了 Kaggle 的兩大巨星:Keras 和 XGBoost。

您怎么看待最近關(guān)于深度學(xué)習(xí)的熱潮?

上面提到的這些庫,你中意哪個?為什么?

深度學(xué)習(xí)真的可以零基礎(chǔ)入門嗎? 你怎么看? 

責(zé)任編輯:龐桂玉 來源: 36大數(shù)據(jù)
相關(guān)推薦

2018-08-31 14:51:30

人工智能深度學(xué)習(xí)機器學(xué)習(xí)

2021-03-11 11:50:07

kafka服務(wù)器Java

2021-03-23 17:21:48

Java編程開發(fā)

2019-11-11 14:09:17

Swift數(shù)據(jù)科學(xué)語言

2018-08-24 09:00:00

DevOps持續(xù)集成連續(xù)部署

2022-02-10 16:11:26

EventMysql數(shù)據(jù)庫

2017-10-17 09:08:07

2014-06-04 13:41:35

Swift蘋果iOS

2020-04-28 10:40:54

Python開發(fā)工具

2021-03-31 11:21:36

Java語言編程

2015-10-29 11:35:53

零基礎(chǔ)前端設(shè)計

2024-01-16 08:09:28

PythonMongoDB數(shù)據(jù)存儲

2017-04-05 19:04:09

2021-08-27 07:13:52

UI計算機圖形

2021-03-15 22:56:55

大數(shù)據(jù)技術(shù)高薪

2011-03-03 17:03:04

零缺陷系統(tǒng)

2016-11-25 13:05:18

2022-03-15 09:31:17

ESLint工作原理前端

2017-09-21 15:31:49

2012-02-22 10:33:36

Wi-Fi
點贊
收藏

51CTO技術(shù)棧公眾號