গভীর শিক্ষার জন্য গ্রন্থাগারগুলি


56

আমি ভাবছিলাম যে নিউরাল নেটওয়ার্কগুলি গভীর শেখার জন্য সেখানে কোনও ভাল আর লাইব্রেরি আছে কিনা? আমি সেখানে জানি nnet, neuralnetএবং RSNNS, কিন্তু এই কেউই গভীর শেখার পদ্ধতি বাস্তবায়ন বলে মনে হচ্ছে।

আমি বিশেষত তদারকি করা শেখার পরে নিরীক্ষণ করা এবং সহ-অভিযোজন রোধে ড্রপআউট ব্যবহার করে বিশেষত আগ্রহী ।

/ সম্পাদনা: কয়েক বছর পরে, আমি h20 গভীর শেখার প্যাকেজটি খুব সু- নকশিত এবং সহজেই ইনস্টল করতে পেলাম । আমি এমএক্সনেট প্যাকেজটিও ভালবাসি , যা ইনস্টল করা (সামান্য) কঠিন তবে কোভনেটগুলির মতো জিনিসগুলিকে সমর্থন করে, জিপিইউতে চালিত হয়, এবং সত্যিই দ্রুত।


1
সম্পর্কিত: stats.stackexchange.com/questions/40598/… এই পদ্ধতিগুলি আমার জ্ঞানের কাছে আর (প্রকাশ্যে) আর এ উপলব্ধ নয়
মোমো

@ মোমো: লিঙ্কটির জন্য ধন্যবাদ। এমন কোনও পাবলিক সি, সি ++, বা ফরট্রান কোড রয়েছে যা আর থেকে কলযোগ্য হতে পারে?
জ্যাচ

4
সিইভি লাইব্রেরি বা ইবলার্ন পরীক্ষা করে দেখুন (আরও এখানে ডিপলাইনিং.না.সফ্টওয়্যার_লিঙ্কস ) পাইথন লিবস আর এর একটি ভাল বিকল্প হতে পারে
মোমো


এখানে আর দ্বারা বাস্তবায়ন দেখুন ।
প্যাট্রিক

উত্তর:


19

ওপেনসোর্স h2o.deepLearning () আর এ deeplearning h2o.ai এখানে একটি লেখার আপ থেকে জন্য প্যাকেজ http://www.r-bloggers.com/things-to-try-after-user-part-1-deep-learning- সঙ্গে-H2O /

এবং কোড: 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

"ডার্চ" নামে একটি প্যাকেজ রয়েছে

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

CRAN এর উদ্ধৃতি:

ডার্ক: গভীর আর্কিটেকচার এবং সীমাবদ্ধ-বলজম্যান-মেশিনগুলির জন্য প্যাকেজ

ডার্ক প্যাকেজটি জিই হিন্টন এবং আরআর সালখুটদিনভের কোডের ভিত্তিতে তৈরি করা হয়েছে (গভীর বিশ্বাসের জালগুলির জন্য মতলব কোডের অধীন উপলব্ধ: শেষ পরিদর্শন: ০১.০৮.২০১.2013)। এই প্যাকেজটি অনেক স্তর (গভীর আর্কিটেকচার) সহ নিউরাল নেটওয়ার্ক তৈরি করার জন্য এবং "গভীর বিশ্বাসের জালগুলির জন্য একটি দ্রুত শিখনের অ্যালগরিদম" (জিই হিন্টন, এস ওসিন্ডো, ওয়াইডাব্লু তে)) এবং "মাত্রিকতা হ্রাস করার জন্য প্রকাশনাগুলি দ্বারা প্রবর্তিত পদ্ধতিটি দিয়ে তাদের প্রশিক্ষণের জন্য package নিউরাল নেটওয়ার্কগুলির সাথে ডেটা "" (জিই হিন্টন, আরআর সালখুদ্দিনভ)) এই পদ্ধতিতে জিই হিন্টন (২০০২) দ্বারা প্রকাশিত বিপরীতমুখী বিভাজন পদ্ধতিটি সহ প্রাক প্রশিক্ষণ এবং ব্যাকপ্রোপেজেশন বা কনজুগেট গ্রেডিয়েন্টের মতো সাধারণ পরিচিত প্রশিক্ষণ অ্যালগরিদমগুলির সাথে সূক্ষ্ম সুরকরণ অন্তর্ভুক্ত রয়েছে।


এটা ঠিক সংরক্ষণাগারভুক্ত করা হয়েছে! :-(
পাওয়ার

3
ডার্ক আবার CRAN এ ফিরে এসেছে!
Zach

এই প্যাকেজটির সাথে গভীর বিশ্বাসের নেটওয়ার্কটি প্রশিক্ষণের জন্য এবং তারপরে নতুন ডেটাতে ভবিষ্যদ্বাণী করার জন্য এটির কোনও উদাহরণ খুঁজে পেয়েছেন? আমি এটি ইন্টারফেসটি দেখতে পেয়েছি যা এটি খুব স্ব-স্বজ্ঞাত হিসাবে ব্যবহার করে।
Zach

না আমি নেই। উদাহরণ নেই? তা না হলে আপনি এই সাইটে এগুলি পোস্ট করতে এবং "আপনার নিজের প্রশ্নের উত্তর দিতে" এবং আরও খ্যাতি পয়েন্টগুলি অর্জন করতে পারেন।
শক্তি

1
আমি যদি কিছু পাই তবে সেগুলি পোস্ট করব। এখনও পর্যন্ত ডক্সের কাছে ফিটিং নেটওয়ার্কগুলির কয়েকটি উদাহরণ রয়েছে তবে ভবিষ্যদ্বাণীটির কোনও উদাহরণ নেই। এবং কিছু ফিটিং উদাহরণগুলির মধ্যে বাগ রয়েছে।
জাচ

13

আর ডিপ নেট নেটওয়ার্কের জন্য আরও একটি নতুন প্যাকেজ রয়েছে: ডিপনেট

আমি এটি এখনও ব্যবহার করার চেষ্টা করি নি, তবে এটি ইতিমধ্যে ক্যারেট প্যাকেজে অন্তর্ভুক্ত করা হয়েছে ।


12

আমার নিজের প্রশ্নের উত্তর দিতে, আমি আরবিএমগুলির জন্য আরে একটি ছোট প্যাকেজ লিখেছি: https://github.com/zachmayer/rbm

এই প্যাকেজটি এখনও তীব্র বিকাশের মধ্যে রয়েছে এবং আরবিএম সম্পর্কে আমি খুব কমই জানি, তাই আপনার যে কোনও প্রতিক্রিয়া (এবং অনুরোধগুলি টানুন!) আমি স্বাগত জানাব। আপনি ডিভটোলগুলি ব্যবহার করে প্যাকেজটি ইনস্টল করতে পারেন :

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

কোডটি অ্যান্ড্রু ল্যান্ডগ্রাফের আর এবং অ্যাডউইন চেনের পাইথনে বাস্তবায়নের অনুরূপ, তবে আমি ফাংশনটি বেস আর তে পিসিএ ফাংশনের অনুরূপ বলে লিখেছি এবং স্ট্যাকিংয়ের কার্যকারিতা অন্তর্ভুক্ত করেছি। আমি মনে করি এটি ডার্ক প্যাকেজের চেয়ে কিছুটা বেশি ব্যবহারকারী বান্ধব , যা আমি কীভাবে ব্যবহার করতে পারি তা কখনই বুঝতে পারি না (এটি CRAN থেকে সরানোর আগেও)।

আপনার যদি 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 এসভিডি করার জন্য একটি দুর্দান্ত প্যাকেজ।
জাচ

আপনার নতুন প্যাকেজটি কি "ড্রপআউট" প্রশিক্ষণ সরবরাহ করে?
ডেভিডচিকো.ইট 16'15

@ ডেভিডচিকো.ইট হ্যাঁ, এর জন্য হেল্পফাইলে একবার দেখুন ?rbm। মনে রাখবেন যে rbm গুলি নিরীক্ষণযোগ্য।
Zach

জ্যাচ এটি কি পুনরাবৃত্ত নিউরাল নেটওয়ার্কগুলি অন্তর্ভুক্ত করে? এটি সময় সিরিজের জন্য একটি বড় ক্ষেত্র যা আমি পাইথনে যাওয়ার দিকে চেয়েছিলাম।
লুকানো মার্কভ মডেল

11

আপনি এইচ 2 ও-র ডিপ লার্নিং মডিউলটি চেষ্টা করতে পারেন, এটি বিতরণ করা হয় এবং ড্রপআউট নিয়মিতকরণ এবং অভিযোজিত শিক্ষার হারের মতো অনেক উন্নত কৌশল সরবরাহ করে।

স্লাইডস: http://www.slideshare.net/0xdata/h2o-DPlearning-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

অন্য উত্তর যুক্ত করতে:

এমএক্সনেট আশ্চর্যজনক, এবং আমি এটি পছন্দ করি এটি ইনস্টল করা কিছুটা কঠিন তবে এটি জিপিইউ এবং একাধিক সিপিইউ সমর্থন করে। আপনি যদি আর (বিশেষত চিত্রগুলিতে) তে গভীর শেখার কাজ করতে চলেছেন তবে আমি আপনাকে এমএক্সনেট দিয়ে শুরু করার পরামর্শ দিচ্ছি।


+1, হ্যাঁ এমএক্সনেট সম্পূর্ণরূপে সি ++ / সিইউডিএ দ্বারা প্রয়োগ করা হয়েছে সুতরাং এটি খুব দক্ষ!
প্যাট্রিক

5

যদিও আমি আর এর জন্য কোনও নিবেদিত গভীর শিক্ষাগত পাঠাগারটির মুখোমুখি হই নি, আর-ব্লগারগুলিতে আমি একই ধরণের আলোচনা শুরু করেছি। আরবিএম (সীমাবদ্ধ বল্টজম্যান মেশিন) ব্যবহারের বিষয়ে আলোচনা কেন্দ্রগুলি। নীচের লিঙ্কটি একবার দেখুন -

http://www.r-bloggers.com/restricted-boltzmann-machines-in-r/ ('alandgraf.blogspot.com' থেকে পোস্ট করা)

লেখক আর-তে একটি স্ব-বাস্তবায়িত অ্যালগরিদমকে encapsulate করার জন্য সত্যই একটি ভাল কাজ করেন It এটি অবশ্যই বলা উচিত যে আমি এখনও কোডটির বৈধতা পরীক্ষা করে দেখিনি তবে কমপক্ষে আর-এ প্রদর্শিত শুরু করার জন্য গভীর শিক্ষার এক ঝলক রয়েছে is

আশা করি এটা কাজে লাগবে.


আমি এই কোডটিও দেখেছি - এটির সাথে লিঙ্ক দেওয়ার জন্য ধন্যবাদ। আরবিএমগুলি আর-তে প্রদর্শিত হতে শুরু করে দেখে ভাল লাগছে, তবে আমার কাছে মনে হচ্ছে গভীর শিক্ষার ক্ষেত্রে আর এখনও অজগর থেকে অনেক বছর পিছনে রয়েছে। আমি আধুনিক নিউরাল নেটগুলির জন্য কয়েকটি পূর্ণ বৈশিষ্ট্যযুক্ত লাইব্রেরি দেখতে পছন্দ করব!
Zach

আমি তোমাকে সেখানে শুনছি। আমি কুরসেরায় হিন্টনের নিউরাল নেট কোর্সের আরও গভীরতর প্রত্যাশায় রয়েছি। থানো-র প্ররোচনা আমাকে আবার পাইথনের দিকে ঠেলে দিচ্ছে।
আর্দেন

যথাযথভাবে। থিয়ানো খুব লোভনীয়!
জাচ

দেখে মনে হচ্ছে gpoolools প্যাকেজটি থিওনোতে পাওয়া কিছু জিপিইউ ম্যাট্রিক্স অপারেশন প্রয়োগ করে: cran.r-project.org/web/packages/gputools/index.html
জাচ

@ জ্যাখ আপনার প্রায় প্রয়োজন নেই gputoolsএবং এখানে জিইএমএমকে ত্বরান্বিত করতে লিনাক্সে প্রিলোড ট্রিকটি বিবেচনা করুন
প্যাট্রিক

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.