পুনরাবৃত্ত বনাম রিকার্সিভ নিউরাল নেটওয়ার্ক: এনএলপির জন্য কোনটি ভাল?


48

এখানে পুনরাবৃত্ত নিউরাল নেটওয়ার্ক এবং রিকার্সিভ নিউরাল নেটওয়ার্ক রয়েছে। দুটিই সাধারণত একই সংক্ষিপ্ত বিবরণ দ্বারা চিহ্নিত করা হয়: আরএনএন। উইকিপিডিয়া অনুসারে , পুনরাবৃত্তি হওয়া এনএন আসলে পুনরাবৃত্ত এনএন, তবে আমি আসলে ব্যাখ্যাটি বুঝতে পারি না।

তদুপরি, প্রাকৃতিক ভাষা প্রসেসিংয়ের জন্য কোনটি ভাল (উদাহরণ বা তাই সহ) খুঁজে পাচ্ছি বলে মনে হয় না। আসল বিষয়টি হ'ল, যদিও সকার তার টিউটোরিয়ালে এনএলপির জন্য রিকার্সিভ এনএন ব্যবহার করে , আমি পুনরাবৃত্তাকার নিউরাল নেটওয়ার্কগুলির একটি ভাল প্রয়োগ খুঁজে পাচ্ছি না এবং যখন আমি গুগলে অনুসন্ধান করি, বেশিরভাগ উত্তর পুনরাবৃত্ত এনএন সম্পর্কে।

তদুপরি, অন্য কোনও ডিএনএন রয়েছে যা এনএলপির জন্য আরও ভাল প্রযোজ্য, বা এটি এনএলপি কাজের উপর নির্ভর করে? গভীর বিশ্বাসের জাল বা স্ট্যাকড অটোরকোডারগুলি? (এনএলপিতে কনভনেটগুলির জন্য আমি কোনও বিশেষ ব্যবহার খুঁজে পাচ্ছি না এবং বেশিরভাগ বাস্তবায়নগুলি মেশিনের দৃষ্টি নিয়েই রয়েছে)।

পরিশেষে, আমি পাইথন বা মতলব / অক্টাভের চেয়ে সি ++ (এটির জিপিইউ সমর্থন থাকলে আরও ভাল) বা স্কালা (এটির স্পার্ক সমর্থন থাকলে আরও ভাল) এর জন্য ডিএনএন বাস্তবায়নকে আমি সত্যিই পছন্দ করব।

আমি ডিপলাইনিং ৪ জে চেষ্টা করেছি, তবে এটি ধ্রুবক বিকাশের অধীনে রয়েছে এবং ডকুমেন্টেশনটি কিছুটা পুরানো এবং আমি এটি কার্যকর করে দেখছি না। খুব খারাপ কারণ এটিতে "ব্ল্যাক বক্স" রয়েছে যেমন কাজ করার মতো পদ্ধতি, অনেকটা বিজ্ঞান-শিখার মতো বা ওয়েকার মতো, যা আমি সত্যিই চাই।

উত্তর:


42

সময়ের সাথে সাথে পুনরাবৃত্তি হচ্ছে নিউরাল নেটওয়ার্কগুলি। উদাহরণস্বরূপ যদি আপনার ক্রম থাকে

x = ['এইচ', 'ই', 'এল', 'এল']

এই ক্রমটি একটি একক নিউরনে খাওয়ানো হয় যার নিজের সাথে একটি সংযোগ রয়েছে।

সময় ধাপ 0 এ, 'h' অক্ষরটি ইনপুট হিসাবে দেওয়া হয় time সময় ধাপ 1, 'e' ইনপুট হিসাবে দেওয়া হয়। সময়ের সাথে সাথে উদ্ঘাটন করা নেটওয়ার্কটি এর মতো দেখতে পাবেন।

RNN

একটি পুনরাবৃত্তির নেটওয়ার্ক কেবল একটি পুনরাবৃত্ত নেটওয়ার্কের সাধারণীকরণ। একটি পুনরাবৃত্ত নেটওয়ার্কে ওজনগুলি ক্রমের দৈর্ঘ্যের সাথে ভাগ করা হয় (এবং মাত্রা স্থির থাকে) কারণ আপনি যখন ট্রেনের সময় দেখেছেন তার সাথে বিভিন্ন দৈর্ঘ্যের পরীক্ষার সময় একটি সিক্যুয়েন্সের মুখোমুখি হয় তখন আপনি অবস্থান নির্ভর ওজনকে কীভাবে মোকাবেলা করবেন? । পুনরাবৃত্তির নেটওয়ার্কে একই কারণে প্রতিটি নোডে ওজনগুলি ভাগ করা হয় (এবং মাত্রাটি স্থির থাকে)।

এর অর্থ হ'ল সমস্ত ডাব্লু_এক্স ঘন্টা ওজন সমান (ভাগ করা) হবে এবং তাই ডাব্লু_এইচ ওজনও হবে। এটি কেবল কারণ এটি একটি একক নিউরন যা সময়মতো প্রকাশিত হয়েছিল।

এটি একটি পুনরাবৃত্তাকার নিউরাল নেটওয়ার্কের মতো দেখায়। রিকার্সিভ নিউরাল নেটওয়ার্ক

একে কেন পুনরাবৃত্তাকার নিউরাল নেটওয়ার্ক বলা হয় এটি দেখতে খুব সহজ। প্রতিটি পিতামাতার নোডের বাচ্চারা কেবল সেই নোডের অনুরূপ নোড।

আপনি যে নিউরাল নেটওয়ার্কটি ব্যবহার করতে চান তা আপনার ব্যবহারের উপর নির্ভর করে। ইন Karpathy এর ব্লগ , তিনি একটি সময়ে অক্ষর এক উৎপাদিত তাই একটি পৌনঃপুনিক স্নায়ুর নেটওয়ার্ক ভাল হয়।

তবে আপনি যদি কোনও পার্স গাছ বানাতে চান তবে পুনরাবৃত্তাকার নিউরাল নেটওয়ার্ক ব্যবহার করা আরও ভাল কারণ এটি আরও উন্নত শ্রেণিবদ্ধ উপস্থাপনা তৈরি করতে সহায়তা করে।

আপনি যদি সি ++ এ ডিপ লার্নিং করতে চান তবে CUDA ব্যবহার করুন। এটির একটি দুর্দান্ত ব্যবহারকারীর বেস রয়েছে এবং এটি দ্রুত। আমি সে সম্পর্কে আরও জানি না তাই আরও মন্তব্য করতে পারি না।

পাইথনে থিয়ানো হ'ল সর্বোত্তম বিকল্প কারণ এটি স্বয়ংক্রিয় পার্থক্য সরবরাহ করে, যার অর্থ আপনি যখন বড়, বিশ্রী NN গঠন করছেন তখন আপনাকে হাতে গ্রেডিয়েন্টগুলি খুঁজে পেতে হবে না। থিয়ানো আপনার জন্য এটি স্বয়ংক্রিয়ভাবে করে। এই বৈশিষ্ট্যটির অভাব Torch7 দ্বারা রয়েছে।

পাইথন কোডটি সি র‌্যাপারগুলি সরবরাহ করে এবং জিপিইউগুলিতে প্রয়োগ করা যেতে পারে বলে থায়ানো খুব দ্রুত। এটিতে একটি দুর্দান্ত ব্যবহারকারী বেস রয়েছে যা নতুন কিছু শেখার সময় এটি অত্যন্ত গুরুত্বপূর্ণ।


11

বড় পুনরাবৃত্ত নিউরাল নেটওয়ার্কগুলি সম্ভবত এনএলপির জন্য সবচেয়ে শক্তিশালী মডেল হিসাবে বিবেচিত হয়। রিকারেন্ট নিউরাল নেটওয়ার্কস এবং ক্যারেক্টার লেভেল মডেলিংয়ের বিষয়ে এ। কার্পাথির লেখা একটি দুর্দান্ত নিবন্ধ http://karpathy.github.io/2015/05/21/rnn-e تاثیرতা / এ উপলব্ধ

গভীর শিক্ষার জন্য প্রচুর গ্রন্থাগার চেষ্টা করে (থিয়ানো, ক্যাফে ইত্যাদি)। আমি দৃ Tor়ভাবে Torch7 ব্যবহারটি সুপারিশ করব যা এনএনগুলির জন্য অত্যাধুনিক সরঞ্জাম হিসাবে বিবেচিত হয় এবং এটি এনওয়াইউ, ফেসবুক এআই এবং গুগল ডিপমাইন্ড সমর্থন করে। টর্চ 7 লুয়া ভিত্তিক এবং এমন অনেকগুলি উদাহরণ রয়েছে যা আপনি সহজেই পরিচিত হতে পারেন। গিথুবে প্রচুর কোড পাওয়া যাবে, একটি ভাল সূচনা হবে https://github.com/wojzaremba/lstm

শেষ অবধি লুয়ার সৌন্দর্য হ'ল লুয়াজিআইটি খুব সহজেই জাভা, পাইথন, মতলব ইত্যাদিতে ইনজেকশন দেওয়া যায় can


2
কার্পতির ব্লগটি পড়ার পরামর্শ দিন। আরএনএন বোঝার ক্ষেত্রে সত্যই ap
SolessChong

1

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

RNN


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

নিউরাল নেটওয়ার্কগুলি পুনরাবৃত্তি করুন


[ দ্রষ্টব্য ]:

এলএসটিএম এবং জিআরইউ ভুলে যাওয়া গেট সহ দুটি বর্ধিত আরএনএন প্রকার যা এনএলপিতে অত্যন্ত সাধারণ common

LSTM

এলএসটিএম এবং জিআরইউ


এলএসটিএম-সেল সূত্র:

এখানে চিত্র বর্ণনা লিখুন

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