गहन शिक्षण के लिए पुस्तकालय


56

मैं सोच रहा था कि वहाँ कोई अच्छा आर पुस्तकालयों वहाँ गहरी सीखने तंत्रिका नेटवर्क के लिए है? मैं वहाँ पता nnet, neuralnetहै, और RSNNSहै, लेकिन इनमें से कोई भी गहरी शिक्षण विधियों को लागू करने लगते हैं।

मैं विशेष रूप से पर्यवेक्षित सीखने के बाद अनपरावीकृत में रुचि रखता हूं, और सह-अनुकूलन को रोकने के लिए ड्रॉपआउट का उपयोग कर रहा हूं ।

/ संपादित करें: कुछ वर्षों के बाद, मैंने h20 डीप लर्निंग पैकेज को बहुत अच्छी तरह से डिज़ाइन किया है और स्थापित करना आसान है। मुझे mxnet पैकेज भी पसंद है , जो (थोड़ा) स्थापित करने के लिए कठिन है, लेकिन कोवनेट जैसी चीजों का समर्थन करता है, जीपीयू पर चलता है, और वास्तव में तेज है।


1
संबंधित: आंकड़े.stackexchange.com/questions/40598/… ये तरीके मेरे ज्ञान के लिए नहीं हैं (सार्वजनिक रूप से) आर में उपलब्ध नहीं हैं
मोमो

@ मोमो: लिंक के लिए धन्यवाद। क्या कोई सार्वजनिक C, C ++, या फोरट्रान कोड है जो R से कॉल करने योग्य हो सकता है?
Zach

4
CUV लाइब्रेरी या Eblearn की जाँच करें (अधिक यहाँ deeplearning.net/software_links ) पायथन के काम आर। के लिए एक अच्छा विकल्प हो सकता है
मोमो

यह भी देखें didericksen.github.io/deeplearning-r-h2o
morpheus

यहाँ आर द्वारा कार्यान्वित देखें ।
पेट्रीक

जवाबों:


19

OpenSource h2o.deepLearning () h2o.ai से R में deeplearning के लिए पैकेज है। यहाँ एक लेखन है http://www.r-bloggers.com/things-to-try-after-user-part-1-deep-learning- साथ-एच 2 ओ /

और कोड: https://gist.github.com/woobe/3e728e02f6cc03ab86d8#file-link_data-r

######## *Convert Breast Cancer data into H2O*
dat <- BreastCancer[, -1]  # remove the ID column
dat_h2o <- as.h2o(localH2O, dat, key = 'dat')

######## *Import MNIST CSV as H2O*
dat_h2o <- h2o.importFile(localH2O, path = ".../mnist_train.csv")

######## *Using the DNN model for predictions*
h2o_yhat_test <- h2o.predict(model, test_h2o)

######## *Converting H2O format into data frame*
df_yhat_test <- as.data.frame(h2o_yhat_test)

######## Start a local cluster with 2GB RAM
library(h2o)
localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE, 
                    Xmx = '2g') 
########Execute deeplearning

model <- h2o.deeplearning( x = 2:785,  # column numbers for predictors
               y = 1,   # column number for label
               data = train_h2o, # data in H2O format
               activation = "TanhWithDropout", # or 'Tanh'
               input_dropout_ratio = 0.2, # % of inputs dropout
               hidden_dropout_ratios = c(0.5,0.5,0.5), # % for nodes dropout
               balance_classes = TRUE, 
               hidden = c(50,50,50), # three layers of 50 nodes
               epochs = 100) # max. no. of epochs

19

एक पैकेज है जिसे "darch" कहा जाता है

http://cran.um.ac.ir/web/packages/darch/index.html

CRAN का उद्धरण:

darch: डीप आर्किटेक्चर और रिस्ट्रिक्टेड-बोलजमैन-मशीनों के लिए पैकेज

Darch पैकेज का निर्माण GE Hinton और RR Salakhutdinov के कोड के आधार पर किया गया है (गहरे विश्वास के जाल के लिए मतलाब संहिता के तहत उपलब्ध: अंतिम यात्रा: 01.08.2013)। यह पैकेज कई परतों (गहरे आर्किटेक्चर) के साथ तंत्रिका नेटवर्क उत्पन्न करने के लिए है और उन्हें प्रकाशनों द्वारा प्रस्तुत विधि के साथ प्रशिक्षित किया गया है "गहरी विश्वास जाल के लिए एक तेजी से सीखने का एल्गोरिथ्म" (जीई हिंटन, एस। ऑसिंडेरो, वाईडब्ल्यू तेह) और "आयामी को कम करना"। तंत्रिका नेटवर्क के साथ डेटा "(GE Hinton, RR Salakhutdinov)। इस विधि में जीई हिंटन (2002) द्वारा विरोधाभासी विचलन विधि के प्रकाशन के साथ एक पूर्व प्रशिक्षण और बैकप्रॉपगेशन या संयुग्म ढाल जैसे सामान्य ज्ञात प्रशिक्षण एल्गोरिदम के साथ एक ठीक ट्यूनिंग शामिल है।


यह सिर्फ संग्रहीत किया गया है! :-(
शक्ति

3
d CRAN पर वापस आ गया है!
ज़ाच

क्या आपको इस पैकेज के साथ गहन विश्वास नेटवर्क के प्रशिक्षण के लिए और फिर नए डेटा पर भविष्यवाणी करने के लिए इसका उपयोग करने के लिए कोई उदाहरण मिला है? मुझे लगता है कि यह इंटरफ़ेस बहुत अन-सहज होने के लिए उपयोग करता है।
जैच

नहीं, मैंने नहीं किया है। उदाहरण नहीं हैं? यदि नहीं, तो आप उन्हें इस साइट पर पोस्ट कर सकते हैं और "अपने स्वयं के प्रश्न का उत्तर दें" और अधिक प्रतिष्ठा अंक प्राप्त कर सकते हैं।
पावर

1
अगर मुझे कोई मिल जाए तो मैं उन्हें पोस्ट करूँगा। अब तक डॉक्स में फिटिंग नेटवर्क के कुछ उदाहरण हैं, लेकिन भविष्यवाणी के कोई उदाहरण नहीं हैं। और फिटिंग के कुछ उदाहरणों में बग हैं।
जाच

13

R: deepnet में गहरे नेटवर्क के लिए एक और नया पैकेज है

मैंने अभी तक इसका उपयोग करने की कोशिश नहीं की है, लेकिन इसे पहले ही कैरेट पैकेज में शामिल कर लिया गया है।


12

अपने प्रश्न का उत्तर देने के लिए, मैंने RBM के लिए R में एक छोटा पैकेज लिखा: https://github.com/zachmayer/rbm

यह पैकेज अभी भी भारी विकास के अधीन है, और मैं आरबीएम के बारे में बहुत कम जानता हूं, इसलिए मैं आपके पास किसी भी प्रतिक्रिया (और पुल:) का स्वागत करूंगा। आप devtools का उपयोग करके पैकेज स्थापित कर सकते हैं :

devtools:::install_github('zachmayer/rbm')
library(rbm)
?rbm
?rbm_gpu
?stacked_rbm

कोड आर और एडविन चेन के अजगर में एंड्रयू लैंडग्राफ के कार्यान्वयन के समान है , लेकिन मैंने फ़ंक्शन को बेस आर में pca फ़ंक्शन के समान होने और स्टैकिंग के लिए कार्यक्षमता शामिल करने के लिए लिखा था। मुझे लगता है कि यह प्रिंट पैकेज की तुलना में थोड़ा अधिक उपयोगकर्ता के अनुकूल है , जिसे मैं कभी भी समझ नहीं पा रहा था कि कैसे उपयोग करें (सीआरएएन से हटाए जाने से पहले भी)।

यदि आपके पास gputools पैकेज स्थापित है, तो आप rbm_gpu फ़ंक्शन के साथ मैट्रिक्स संचालन के लिए अपने GPU का उपयोग कर सकते हैं। यह चीजों को बहुत गति देता है! इसके अलावा, आरबीएम में अधिकांश कार्य मैट्रिक्स के संचालन के साथ किया जाता है, इसलिए बस एक अच्छा बीएलएएस स्थापित करना, जैसे कि ओपनबीएलएएस भी चीजों को बहुत गति देगा।

जब आप एडविन के उदाहरण डेटासेट पर कोड चलाते हैं तो ऐसा होता है:

set.seed(10)
print('Data from: https://github.com/echen/restricted-boltzmann-machines')
Alice <- c('Harry_Potter' = 1, Avatar = 1, 'LOTR3' = 1, Gladiator = 0, Titanic = 0, Glitter = 0) #Big SF/fantasy fan.
Bob <- c('Harry_Potter' = 1, Avatar = 0, 'LOTR3' = 1, Gladiator = 0, Titanic = 0, Glitter = 0) #SF/fantasy fan, but doesn't like Avatar.
Carol <- c('Harry_Potter' = 1, Avatar = 1, 'LOTR3' = 1, Gladiator = 0, Titanic = 0, Glitter = 0) #Big SF/fantasy fan.
David <- c('Harry_Potter' = 0, Avatar = 0, 'LOTR3' = 1, Gladiator = 1, Titanic = 1, Glitter = 0) #Big Oscar winners fan.
Eric <- c('Harry_Potter' = 0, Avatar = 0, 'LOTR3' = 1, Gladiator = 1, Titanic = 0, Glitter = 0) #Oscar winners fan, except for Titanic.
Fred <- c('Harry_Potter' = 0, Avatar = 0, 'LOTR3' = 1, Gladiator = 1, Titanic = 1, Glitter = 0) #Big Oscar winners fan.
dat <- rbind(Alice, Bob, Carol, David, Eric, Fred)

#Fit a PCA model and an RBM model
PCA <- prcomp(dat, retx=TRUE)
RBM <- rbm_gpu(dat, retx=TRUE, num_hidden=2)

#Examine the 2 models
round(PCA$rotation, 2) #PCA weights
    round(RBM$rotation, 2) #RBM weights

1
यदि आप पीसीए का उपयोग कर रहे हैं, propack.svd()तो svdपैकेज से प्रयास करें ।
बिजली

@ शक्ति: मैं बस तुलना के रूप में पीसीए का उपयोग कर रहा हूं, लेकिन टिप के लिए धन्यवाद। irlba भी svd करने के लिए एक उत्कृष्ट पैकेज है।
ज़ैच

क्या आपका नया पैकेज "ड्रॉपआउट" प्रशिक्षण प्रदान करता है?
DavideChicco.it

@ DavideChicco.it हाँ, के लिए मददगार पर एक नज़र डालें ?rbm। ध्यान दें कि आरबीएम अनिश्चित हैं।
Zach

Zach यह आवर्तक तंत्रिका नेटवर्क को शामिल करता है? यह समय श्रृंखला के लिए एक बड़ा क्षेत्र है जिसे मैं पायथन के लिए आगे बढ़ रहा था।
छिपा मार्कोव मॉडल

11

आप H2O के डीप लर्निंग मॉड्यूल को आज़मा सकते हैं, इसे वितरित किया जाता है और ड्रॉपआउट नियमितिकरण और अनुकूली सीखने की दर जैसी कई उन्नत तकनीकों की पेशकश की जाती है।

स्लाइड्स: http://www.slideshare.net/0xdata/h2o-deeplearning-nextml वीडियो: https://www.youtube.com/watch?v=gAKbAQu900w&feature=youtu.be

ट्यूटोरियल: http://learn.h2o.ai डेटा और लिपियाँ: http://data.h2o.ai

प्रलेखन: http://docs.h2o.ai गिटबुक: http://gitbook.io/@h2o


यदि आप (संपादक) मूल उत्तरदाता के रूप में एक ही व्यक्ति हैं, तो कृपया अपने खातों को मर्ज करें। तब आप अपने स्वयं के पदों को संपादित करने में सक्षम होंगे। आप हमारे सहायता केंद्र में अपने खातों को मर्ज करने के बारे में पता कर सकते हैं ।
गोबर -

6

एक और उत्तर जोड़ने के लिए:

mxnet अद्भुत है, और मुझे यह पसंद है कि इसे स्थापित करना थोड़ा मुश्किल है, लेकिन यह GPU और कई CPU का समर्थन करता है। यदि आप R (विशेष रूप से छवियों पर) में गहरी सीखने जा रहे हैं, तो मैं अत्यधिक अनुशंसा करता हूं कि आप mxnet से शुरुआत करें।


+1, हाँ mxnet पूरी तरह से C ++ / CUDA द्वारा कार्यान्वित किया जाता है, इसलिए यह बहुत ही कुशल है!
पैट्रिक

5

जबकि मुझे R के लिए एक समर्पित गहन शिक्षण पुस्तकालय का सामना नहीं करना पड़ा है, मैं आर-ब्लॉगर्स पर इसी तरह की चर्चा में चला गया हूं। आरबीएम (प्रतिबंधित बोल्ट्ज़मैन मशीन) का उपयोग करने पर चर्चा केंद्र। निम्नलिखित लिंक पर एक नज़र डालें--

http://www.r-bloggers.com/restricted-boltzmann-machines-in-r/ ('alandgraf.blogspot.com' से पुनर्प्रकाशित)

लेखक वास्तव में आर में एक स्व-कार्यान्वित एल्गोरिदम को एनकैप्सुलेट करने का एक बहुत अच्छा काम करता है। यह कहा जाना चाहिए कि मैंने अभी तक कोड की वैधता को कम नहीं किया है, लेकिन कम से कम आर में दिखाने के लिए गहन सीखने की शुरुआत है।

आशा है कि ये आपकी मदद करेगा।


मैंने इस कोड को भी देखा है- इसे लिंक करने के लिए धन्यवाद। आरबीएम को आर में दिखाना शुरू करना अच्छा है, लेकिन मुझे लगता है कि आर गहरे सीखने के मामले में अभी भी अजगर से पीछे है। मैं आधुनिक तंत्रिका जाल के लिए कुछ पूर्ण विशेषताओं वाली लाइब्रेरी देखना पसंद करूंगा!
ज़ैक

मैं तुम्हें वहाँ Zach सुन रहा हूँ। इमेर्टा पर हिंटन के न्यूरल नेट पाठ्यक्रम में गहराई तक जाने के लिए उत्सुक हैं। थीनो का आकर्षण मुझे फिर से पायथन में आगे बढ़ा रहा है।
अर्ध

ठीक ठीक। Theano बहुत आकर्षक है!
जाच

ऐसा लगता है कि gputools पैकेज theaono में पाए जाने वाले कुछ gpu मैट्रिक्स के संचालन को लागू करता है: cran.r-project.org/web/packages/gputools/index.html
Zach

@ आपको लगभग आवश्यकता नहीं है gputoolsऔर GEMM को तेज करने के लिए लिनक्स पर प्रीलोड चाल का उपयोग करने पर विचार करें
पैट्रिक

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.