如何開始使用Java機(jī)器學(xué)習(xí)
開始Java機(jī)器學(xué)習(xí)的***工具是什么?
這個(gè)問題已經(jīng)有一段時(shí)間了,但最近這些日子幾乎每個(gè)人都在談?wù)撊斯ぶ悄芎蜋C(jī)器學(xué)習(xí)。這已經(jīng)不再是一個(gè)保留給科學(xué)家和研究者的秘密,而是幾乎實(shí)現(xiàn)于每一項(xiàng)新興技術(shù)中。
在下面的章節(jié)中,我們會(huì)做一個(gè)java的機(jī)器學(xué)習(xí)的主要框架的快速概述,并證明Java機(jī)器學(xué)習(xí)是多么容易上手,不需要你另起爐灶或者從頭開始創(chuàng)建算法。
人類的人工智能
人工智能在一段時(shí)間以來是一個(gè)廣泛并且炫酷的領(lǐng)域,但總是感覺有點(diǎn)難以觸及,是特別為科學(xué)家所做。如果你想創(chuàng)造一個(gè)人工智能系統(tǒng),你必須實(shí)現(xiàn)你自己的核心算法,并且訓(xùn)練它們能識(shí)別模式,理解圖像并且處理自然語言。
最近關(guān)于這領(lǐng)域的演變使得其對(duì)于非研究者能更容易觸及。你現(xiàn)在能容易觸及到相關(guān)算法和工具。你不需要知道你正在做什么,但是能很輕松的提升你應(yīng)用的機(jī)器學(xué)習(xí)能力。
讓機(jī)器運(yùn)轉(zhuǎn)
為了更簡單的闡述,我們決定選出3個(gè)項(xiàng)目幫助你開始:
1.Deeplearning4J (DL4J) –開源,分布式,JVM的商業(yè)深度學(xué)習(xí)lib庫
2. BID Data Project –能夠運(yùn)行快速、大規(guī)模的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的模式集合
3. Neuroph –面向?qū)ο蟮纳窠?jīng)網(wǎng)絡(luò)
順便說一下, 我們最近發(fā)布了另外一些吸引我們注意的有趣的開源GitHub庫. 下載.
DL4J – 深度學(xué)習(xí)
DL4J是一個(gè)能幫助你配置多層神經(jīng)網(wǎng)絡(luò)的工具。它為JVM提供了深度學(xué)習(xí)且伴隨快速原型設(shè)計(jì)和大規(guī)模定制,同時(shí)注重比配置更多的約定。
這個(gè)工具是為了幫助已經(jīng)擁有創(chuàng)建和使用神經(jīng)網(wǎng)絡(luò)的理論,但不想親自實(shí)現(xiàn)算法的那些人。你可以在海量數(shù)據(jù)上解決特定問題和自定義神經(jīng)網(wǎng)絡(luò)屬性。
DL4J 是由Java語言編寫的,可以兼容任何JVM語言比如 Clojure, Scala, ,Kotlin,并且可以與Hadoop和Spark集成。
可能的使用案例包括評(píng)價(jià)或推薦系統(tǒng)如(CRM,adtech, churn prevention),預(yù)測分析甚至欺詐檢測。如果你要尋找真實(shí)的案例,你可以下載 Rapidminer. 這是使用DL4J的開源平臺(tái),用來為用戶簡化預(yù)測分析過程。
創(chuàng)建一個(gè)新的神經(jīng)網(wǎng)絡(luò)如同創(chuàng)建一個(gè)新項(xiàng)目一樣容易。
BID Data Project (大數(shù)據(jù)項(xiàng)目)
大數(shù)據(jù)項(xiàng)目是由那些需要處理大量數(shù)據(jù)并且對(duì)性能敏感的人創(chuàng)建的。 UC Berkeley項(xiàng)目是由許多硬件、軟件和設(shè)計(jì)模式集合而成,能在上使用快速、大規(guī)模的數(shù)據(jù)挖掘。
***個(gè)庫是 BIDMach,在單節(jié)點(diǎn)或集群上的常規(guī)機(jī)器學(xué)習(xí)問題都有記錄。你可以使用這個(gè)庫管理數(shù)據(jù)源,在CPU或者GPU上優(yōu)化、分配數(shù)據(jù)。
BidMach 里面包括許多流行的機(jī)器學(xué)習(xí)算法,他們團(tuán)隊(duì)正致力于開發(fā)分布式神經(jīng)網(wǎng)絡(luò)、圖形算法和其他模型
其他兩個(gè)庫分別是BIDMat和 BIDParse。BIDMat是關(guān)注與數(shù)據(jù)挖掘的快速數(shù)學(xué)矩陣庫,BIDParse是GPU加速的自然語言解析。大數(shù)據(jù)項(xiàng)目的其他類庫還包括可視化工具,能夠支持在Spark甚至在安卓運(yùn)行的類庫。
BIDMach基準(zhǔn)比其他解決方案持續(xù)表現(xiàn)出更好的結(jié)果。甚至將其在單一機(jī)器上的運(yùn)行與其他方案在大集群上的運(yùn)行相比也是如此。在這里可以找到一個(gè)完整的基準(zhǔn)列表。
Neuroph
neuroph是用來開發(fā)常用的神經(jīng)網(wǎng)絡(luò)構(gòu)架的輕量級(jí)java框架。該框架提供了一個(gè)java庫以及一個(gè)GUI工具(稱為easyNeurons),你可以用它來在java項(xiàng)目中創(chuàng)建和訓(xùn)練自己的神經(jīng)網(wǎng)絡(luò)。
Neuroph包含一個(gè)開源的java類庫和少量對(duì)應(yīng)基本神經(jīng)網(wǎng)絡(luò)概念的基類。對(duì)于剛開始使用神經(jīng)網(wǎng)絡(luò),或者想知道它們?nèi)绾喂ぷ鞯娜藖碚f,Neuroph是個(gè)非常好的墊腳石。
你可以嘗試Neuroph的在線演示,看看它是怎么運(yùn)行的。提示:界面看起來很舊且過時(shí),但你可以用它來創(chuàng)建美妙的東西。它還得過2013的 Duke’s Choice的獎(jiǎng)項(xiàng)。
網(wǎng)絡(luò)視圖
其他項(xiàng)目如何呢?
萬一以上三個(gè)項(xiàng)目不是你所需要的,你想為你的項(xiàng)目尋找一些不同的,也沒關(guān)系。如果你在GitHub上搜索“機(jī)器學(xué)習(xí)”,將有1506個(gè)Java資源讓你找到合適的工具。
舉個(gè)例子, Airbnb中有個(gè)有趣的項(xiàng)目是aerosolve,一個(gè)設(shè)計(jì)成具有人類友好性的機(jī)器學(xué)習(xí)庫。
開始學(xué)習(xí)一項(xiàng)新的技術(shù)很麻煩,如果您期望得到一些幫助,確保你已經(jīng)下載了Takipi的錯(cuò)誤分析工具。
***的思考
每隔幾年就會(huì)有些關(guān)于人工智能的新聲音。這一次,它伴隨著機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘,神經(jīng)網(wǎng)絡(luò)等等的強(qiáng)化來了,我們都很支持。這些類庫開源的事實(shí)意味著這些信息和能力正待價(jià)而沽,而你所有所做的是思考擁有這個(gè)能力可以做成什么。
如果你知道其他有趣的項(xiàng)目或者你認(rèn)為我們漏掉點(diǎn)什么,我們期待在下面的評(píng)論里見到它們。