原创 Deeplearning4j 實戰(5):基於多層感知機的Mnist壓縮以及在Spark實現

在上一篇博客中,我們用基於RBM的的Deep AutoEncoder對Mnist數據集進行壓縮,應該說取得了不錯的效果。這裏,我們將神經網絡這塊替換成傳統的全連接的前饋神經網絡對Mnist數據集進行壓縮,看看兩者的效果有什麼異同。整個代碼

原创 Deeplearning4j 實戰(4):Deep AutoEncoder進行Mnist壓縮的Spark實現

圖像壓縮,在圖像的檢索、圖像傳輸等領域都有着廣泛的應用。事實上,圖像的壓縮,我覺得也可以算是一種圖像特徵的提取方法。如果從這個角度來看的話,那麼在理論上利用這些壓縮後的數據去做圖像的分類,圖像的檢索也是可以的。圖像壓縮的算法有很多種,這裏

原创 Deeplearning4j 實戰(2):Deeplearning4j 手寫體數字識別Spark實現

在前兩天的博客中,我們用Deeplearning4j做了Mnist數據集的分類。算是第一個深度學習的應用。像Mnist數據集這樣圖片尺寸不大,而且是黑白的開源圖片集在本地完成訓練是可以的,畢竟我們用了Lenet這樣相對簡單的網絡結構,而且

原创 Deeplearning4j 實戰 (10):遷移學習--ImageNet比賽預訓練網絡VGG16分類花卉圖片

在最新發布的Deeplearning4j 0.8.0的版本中,開始支持深度神經網絡的遷移學習模型。嚴格來說,這種遷移的方式是一種模型遷移。在具體操作的時候,將一個預先訓練好的神經網絡,用新數據集重新訓練網絡中的一小部分,從而完成在新數據集

原创 DeepLearning4j實戰(7):手寫體數字識別GPU實現與性能比較

在之前的博客中已經用單機、Spark分佈式兩種訓練的方式對深度神經網絡進行訓練,但其實DeepLearning4j也是支持多GPU訓練的。這篇文章我就總結下用GPU來對DNN/CNN進行訓練和評估過程。並且我會給出CPU、GPU和多卡GP

原创 Deeplearning4j 實戰(6):基於LSTM的文本情感識別及其Spark實現

在做機器學習的各種應用中,文本分類是比較典型的一種。比如,微博的分類,電商中商品評價的好壞分類,新聞的分類等等。同時,文本作爲一種重要的特徵,也在CTR預估,推薦等應用中起着作用。就文本分類這個應用而言,通常的做法是基於詞袋模型和詞向量模

原创 Deeplearning4j 實戰(8) : Keras爲媒介導入Tensorflow/Theano等其他深度學習庫的模型

在之前的幾篇博客中,我直接通過Deeplearning4j進行建模、訓練以及評估預測。但在實際使用中,各個團隊未必都會將Deeplearning4j作爲首選的開源庫。這樣一來,模型的複用就變得非常困難,無形中增加了重複勞動的成本。雖然我們

原创 Deeplearning4j 實戰 (11):基於Nd4j的線性迴歸模型的實現

Nd4j是Deeplearning4j生態圈中用於張量計算的一個子項目,其中張量的常見運算(標量的加減乘除,張量間的加減乘除以及Hadmard乘積等)都通過JavaCPP技術在off-heap memory上進行計算,可以選擇的後臺計算框

原创 Deeplearning4j 實戰 (9):強化學習 -- Cartpole任務的訓練和效果測試

在之前的博客中,我用Deeplearning4j構建深度神經網絡來解決監督、無監督的機器學習問題。但除了這兩類問題外,強化學習也是機器學習中一個重要的分支,並且Deeplearning4j的子項目--Rl4j提供了對部分強化學習算法的支持

原创 Deeplearning4j 實戰(3):簡介Nd4j中JavaCPP技術的應用

Deeplearning4j中張量的計算是由一個叫Nd4j的庫來完成的。它類似於python中的numpy,對高維向量的計算有比較好的支持。並且,爲了提高運算的性能,很多計算任務是通過調用C++來完成的。具體來說,底層C++運行張量計算可

原创 NLPIR(ICTCLAS2015)分詞工具Java開發簡介

分詞往往是自然語言處理的第一步。在分詞的基礎上,我們可以進行關鍵字的提取、搜索、糾錯等應用。在理論上,分詞可以採用的方法有很多,最經典的辦法莫過於HMM模型、CRF及其它語言模型如Bigram、Trigram等。NLPIR(又名:ICTC

原创 詞袋模型和詞向量模型

在自然語言處理和文本分析的問題中,詞袋(Bag of Words, BOW)和詞向量(Word Embedding)是兩種最常用的模型。更準確地說,詞向量只能表徵單個詞,如果要表示文本,需要做一些額外的處理。下面就簡單聊一下兩種模型的應用

原创 Deeplearning4j 實戰(1):Deeplearning4j 手寫體數字識別

     最近這幾年,深度學習很火,包括自己在內的很多對機器學習還是一知半解的小白也開始用深度學習做些應用。由於小白的等級不高,算法自己寫不出來,所以就用了開源庫。Deep Learning的開源庫有多,如果以語言來劃分的話,就有pyt

原创 NLP常用術語解析

自然語言處理,後者用英文稱爲:Natural Language Processing(NLP)包含一系列相對專業的術語,比如:命名實體識別、詞性標註等。剛開始做NLP的時候,往往會搞不清這些術語的具體含義,尤其是看一些會議、期刊的論文的時

原创 log4j異步日誌的配置和測試

日誌可以幫助我們分析故障原因,做些數據挖掘的工作。最簡單的日誌方法,就是自己寫個寫文件的方法,在需要打日誌的時候調用下,但是這顯然不可能在實際工程上用。還有個問題,就是頻繁地打日誌,會增加磁盤I/O,使得系統性能下降。這裏用log4j這個