diff --git a/docs/_config.yml b/docs/_config.yml index 26dc63798..26aef573a 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -733,6 +733,11 @@ bn: - path: bn/week02/02-1.md - path: bn/week02/02-2.md - path: bn/week02/02-3.md + - path: bn/week06/06.md + sections: + - path: bn/week06/06-1.md + - path: bn/week06/06-2.md + - path: bn/week06/06-3.md - path: bn/week11/11.md sections: - path: bn/week11/11-1.md diff --git a/docs/bn/week06/06-1.md b/docs/bn/week06/06-1.md new file mode 100644 index 000000000..2a6e4f542 --- /dev/null +++ b/docs/bn/week06/06-1.md @@ -0,0 +1,186 @@ +--- +lang-ref: ch.06-1 +lecturer: Yann LeCun +title: কনভলিউশনাল নেটওয়ার্কের বিভিন্ন প্রয়োগ +authors: Shiqing Li, Chenqin Yang, Yakun Wang, Jimin Tan +date: 2 Mar 2020 +lang: bn +translation-date: 15 Feb 2021 +translator: Mahbuba Tasmin +--- + + + + + + + +## [জিপ কোড সনাক্তকরণ](https://www.youtube.com/watch?v=ycbMGyCPzvE&t=43s) +পূর্ববর্তী লেকচারে আমরা দেখিয়েছি কনভলিউশন নিউরাল নেটওয়ার্ক কিভাবে সংখ্যা সনাক্ত করতে পারে, তবে প্রশ্ন থেকে যায় কিভাবে মডেলটি প্রতিটি সংখ্যাকে আলাদা করে বাছাই করে এবং পার্শ্ববর্তী সংখ্যাগুলোতে বিচ্ছিন্ন ভুল সনাক্তকরণ থেকে বিরত থাকে। পরবর্তী ধাপে লক্ষ্য থাকবে সমাপতিত/অসমাপতিত কিংবা পৃথক অবজেক্ট সনাক্তকরণ এবং নন-ম্যাক্সিমাম সাপ্রেশন (এন এম এস) এর সাধারণ পন্থা ব্যবহার করা। আলোচনার প্রেক্ষাপট অনুযায়ী যেহেতু ইনপুট হচ্ছে একটি পৃথক সংখ্যা সমূহের ধারা, সংগৃহীত কৌশলটি কয়েকটি কনভলিউশনাল নিউরাল নেটওয়ার্ক ট্রেইনিং এবং পরবর্তীতে কনভলিউশনাল নেটওয়ার্ক কর্তৃক সৃষ্ট অধিকাংশ সঠিক সনাক্তকরণ মত কিংবা সর্বোচ্চ সনাক্তকরণ অঙ্ক অনুযায়ী নিরীক্ষণীয় সংখ্যাটি বাছাই করবে। + + + + + + +### কনভলিউশনাল নিউরাল নেটওয়ার্ক দ্বারা সনাক্তকরণ +এই পর্বে আমরা দেখাব পাঁচটি পৃথক জিপ কোড সনাক্তকরণের কার্যক্রম। আলোচিত পদ্ধতিতে প্রতিটি সংখ্যা আলাদা করে বাছাই করার ব্যাপারে কোন পূর্ববর্তী নির্দেশনা দেয়া হয়নি। এটির লক্ষ্য হচ্ছে পাঁচটি নিরীক্ষণীয় সংখ্যা অবশ্যই নির্ধারণ করা।আলোচ্য কৌশলটি ( চিত্র ১) চারটি বিভিন্ন আকারের কনভলিউশনাল নেটওয়ার্ক দ্বারা গঠিত, প্রতিটি নেটওয়ার্ক থেকে একটি পৃথক আউটপুটের সমষ্টি তৈরি হবে। সংগৃহীত আউটপুট গুলো ম্যাট্রিক্সের মাধ্যমে উপস্থাপিত হয়েছে। বিভিন্ন মডেল থেকে আসা চারটি আউটপুট ম্যাট্রিক্স তৈরি হয়েছে মডেলের শেষ স্তরের বিভিন্ন প্রস্থের কার্নেল থেকে। প্রতিটি আউটপুটে ১০টি সারি রয়েছে, যা ০ থেকে ৯ পর্যন্ত ১০টি শ্রেণীকে উপস্থাপন করছে। প্রতিটি আউটপুট ম্যাট্রিক্সের বৃহত্তর সাদা বর্গটি সম্পর্কিত সংখ্যা শ্রেণীর সর্বোচ্চ অঙ্ক উপস্থাপন করে। এই চারটি আউটপুট সারিতে অবস্থিত কার্নেল সমূহের আনুভূমিক আকৃতি যথাক্রমে ৫,৪,৩ এবং ২ আকারের। কার্নেলের আকৃতির পরিমাপ নির্ধারণ করে ইনপুটের ওপর সংশ্লিষ্ট মডেলের নিরীক্ষণ পরিধির প্রস্থ। পরবর্তীতে মডেলটি উক্ত নিরীক্ষণ পরিধির আওতায় সংখ্যাগরিষ্ঠ ভোটের ভিত্তিতে সর্বোচ্চ ফলাফল অঙ্কের সাথে সংশ্লিষ্ট শ্রেণিটি নির্ধারণ করে। প্রয়োজনীয় তথ্য বের করে আনতে মনে রাখতে হবে যে সব অক্ষরের সংযুক্তি সম্ভবপর নয়। অতএব, ত্রুটি সংশোধন পূর্বক ইনপুটের সীমাবদ্ধতাকে অতিক্রম করে কার্যকর ভাবে নিশ্চিত করে যে আউটপুট গুলো সত্যিকার অর্থে জিপ কোডকে উপস্থাপন করছে। + +
+
+চিত্র ১: জিপ কোড সনাক্তকরণে প্রয়োগকৃত একাধিক ক্লাসিফায়ার +
+ + + + + +অক্ষরের ক্রম নিশ্চিত করতে গৃহীত কৌশলটি শর্টেস্ট পাথ এলগোরিদম ব্যবহার করবে। যেহেতু আমাদের দেয়া হয়েছে বিভিন্ন পরিসরে সাজানো সম্ভাব্য অক্ষরসমূহ এবং সর্বমোট নিরীক্ষণীয় সংখ্যার সমষ্টি, আলোচ্য প্রেক্ষাপটে আমাদের সম্ভবপর পন্থা হতে পারে সংখ্যা গঠন করা এবং একের অধিক সংখ্যার মধ্যবর্তী পরিবর্তনের ক্ষেত্রে সর্বনিম্ন পরিব্যয় গণ্না করা । কৌশলের অবলম্বিত পথটি নিম্নবর্তী বাম ঘর থেকে উপরের ডান ঘর পর্যন্ত অবিচ্ছিন্ন ভাবে চলমান হতে হবে । এবং পথটি শুধুমাত্র বাম থেকে ডানের এবং উপরে থেকে নিচের গতিবিধি ধারণ করতে পারবে। এখানে উল্লেখ্য থাকে যে, যদি একই সংখ্যা উপর্যুপরি পুনরাবৃত্তি ঘটে, সেক্ষেত্রে গৃহীত এলগোরিদমটির পুনরাবৃত্ত সংখ্যাকে একটি একক সংখ্যাকে সনাক্তকরণ থেকে পার্থক্য করতে পারা উচিত। + + + + + + +## [মুখাবয়ব সনাক্তকরণ](https://www.youtube.com/watch?v=ycbMGyCPzvE&t=1241s) +কনভলিউশনাল নিউরাল নেটওয়ার্ক সনাক্তকরণের কাজসমূহ ভালো ভাবে সম্পাদন করতে পারে এবং মুখাবয়ব সনাক্তকরণ এর আওতার বাইরে নয়। কাজটি সম্পন্ন করার জন্য আমরা মুখমণ্ডল সহ এবং মুখমণ্ডল ছাড়া স্থিরচিত্রের একটি ডেটাসেট সংগ্রহ করেছি, যেটার ওপর আমরা কনভলিউশনাল নেট ট্রেইন করব একটি নিরীক্ষণ পরিধি দিয়ে যার আয়তন হবে 30 $\times$ 30 পিক্সেলস এবং নেটওয়ার্কটিকে প্রশ্ন করা হবে পরীক্ষণিয় স্থিরচিত্রে মুখাবয়ব আছে কি নেই এর উত্তর দিতে। একবার ট্রেইনিং সম্পন্ন করার পর আমরা মডেলটিকে নতুন স্থিরচিত্রের উপর প্রয়োগ করব এবং যদি একটি 30 $\times$ 30 পিক্সেল পরিধির মধ্যে মুখাবয়বের উপস্থিতি থাকে সেক্ষেত্রে কনভলিউশনাল নেটটি সংশ্লিষ্ট স্থানে আউটপুটটিকে চিহ্নিত করে দিবে। তবে, এখানে দুটো সমস্যা আছেঃ + + + + +- **ফলস পজিটিভস**:একটি স্থিরচিত্রের টুকরো অংশের মাঝে মুখাবয়বের চেয়ে ভিন্ন কয়েক ধরণের অবজেক্ট প্রতীয়মান হতে পারে। মডেল ট্রেইনিং ধাপে এই সব ধরণের ভিন্ন অবজেক্ট গুলো নিরীক্ষণের আওতার বাইরে থেকে যেতে পারে ( সব ধরণের বলতে অমুখাবয়ব সম্পর্কিত চিত্রের অংশ গুলো দ্বারা গঠিত একটি সম্পূর্ণ সেট)। কাজেই টেস্টিং ধাপে এসে মডেল এর আউটপুট ফলস পজিটিভ দ্বারা অনেকাংশে প্রভাবিত হতে পারে। উদাহরণ স্বরূপ বলা যায় যে, যদি নেটওয়ার্কটি এমন চিত্র সমূহ দ্বারা ট্রেইনড না হয় যেখানে হাতের উপস্থিতি আছে, মডেলটি ত্বকের বর্ণের উপর ভিত্তি করে মুখাবয়ব চিহ্নিত করতে পারে এবং ত্রুটিপূর্ণ শ্রেণীবিভাগের মাধ্যমে চিত্রে হাতের উপস্থিতিকে মুখের সম্যক বলে চিহ্নিত করতে পারে। ভুল চিহ্নিতকরণের মধ্য দিয়ে ফলস পজিটিভস বৃদ্ধি পেতে পারে। + + + +- **বিভিন্ন আকারের মুখাবয়বঃ** সকল মুখের ছবি 30 $\times$ 30 পিক্সেলস নাও হতে পারে, সেক্ষেত্রে বিভিন্ন আকারের মুখের ছবি চিহ্নিত হতে না পারে। একটি উপায়ে এই সমস্যাটি উত্তরণ করা যেতে পারে, সেটি হচ্ছে একই চিত্রের বহু স্কেলের সংস্করণ বের করে। প্রকৃত ডিটেক্টরটি 30 $\times$ 30 পিক্সেলসের মুখাবয়ব চিহ্নিত করতে পারবে। মডেলটি আসল চিত্রে অপেক্ষাকৃত ছোট আকারের মুখ চিহ্নিত করতে পারবে যদি আনুপাতিক $\sqrt 2$ গুণক পরিমাণ আসল চিত্রে পরিবর্তন প্রয়োগ করা হয়, যাতে করে 30 $\times$ 30 পিক্সেলস প্রয়োগের পরবর্তীতে আনুমানিক 20 $\times$ 20 পিক্সেলসে পরিবর্তিত হয়ে যায়। বড় আকারের মুখ চিহ্নিত করতে আমরা চিত্রের আকার ছোট করে ফেলতে পারি। এই পদ্ধতিটি প্রয়োগ সহজ, যেহেতু প্রয়োগের অর্ধেক অ্যালগোরিদমিক ব্যয় অপরিবর্তিত আসল চিত্রের প্রস্তুতিকরণে পিছে যায়। বাকি সব নেটওয়ার্কের সম্মিলিত প্রয়োগ খরচ অপরিবর্তিত আসল নন-স্কেলড চিত্রের প্রক্রিয়ার খরচের সমান। নেটওয়ার্কের আকার আসল চিত্রের এক পাশের আকারের চতুর্গুন পরিমাণ, সেহেতু একটি চিত্রকে যদি $\sqrt 2$ গুণক পরিমাণ স্কেল ডাউন করা হয়, প্রয়োজনীয় নেটওয়ার্কের আয়তন দাঁড়াবে আসল নেটওয়ার্কের আকারের তুলনায় দ্বিগুণ ছোট।তাহলে সর্বমোট খরচ দাঁড়ায় $1+1/2+1/4+1/8+1/16…$, যা কিনা ২। একটি বহু স্কেলের মডেল প্রয়োগ করলে কম্পিউটেশনাল খরচ কেবল দ্বিগুণ হবে। + + +### একটি বহু-স্কেল যুক্ত মুখাবয়ব চিহ্নিতকরণ পদ্ধতি +
+
+চিত্র ২: মুখাবয়ব চিহ্নিতকরণ (ফেস ডিটেকশন) পদ্ধতি +
+ + + + ৩ নং চিত্রে প্রদর্শিত মানচিত্রে বিভিন্ন ফেস ডিটেক্টরের স্কোর দেখানো হয়েছে। এই ফেস ডিটেক্টরটি 20 $\times$ 20 পিক্সেলস আকারের মুখ চিনতে পারে। সূক্ষ্ম সংস্করণে ( স্কেল ৩) অনেক গুলো ভালো ফলাফল আছে কিন্তু কোন নির্ধারক ফলাফল নেই। স্কেলিং গুণক যখন স্কেল-৬ এ পৌঁছে, আরো বেশি গুচ্ছকৃত সাদা অংশ দৃশ্যমান হয়। সেগুলো নির্দেশ করে চিহ্নিত মুখাবয়বের ফলাফল। এরপর আমরা নন-ম্যাক্সিমাম সাপ্রেশন প্রয়োগ করে মুখের সর্বশেষ অবস্থান চিহ্নিত করি। + + +
+
+চিত্র ৩:বিভিন্ন স্কেলিং গুণিতকের জন্য ফেস ডিটেক্টরের ফলাফল +
+ + + +### নন-ম্যাক্সিমাম সাপ্রেশন + + +প্রতিটি সর্বোচ্চ ফলাফলের ক্ষেত্রের জন্য আশা করা যায় যে সেখানে একটি মুখ আছে সম্ভবত। যদি একাধিক মুখাবয়ব প্রথম চিহ্নিত মুখের খুব কাছের অংশে পাওয়া যায়, এর মানে দাঁড়ায় যে কেবল মাত্র একটি চিহ্নিত অংশ সঠিকভাবে গণ্য করতে হবে এবং বাকি গুলো ভুল চিহ্নিতকরণের ফলাফল। নন-ম্যাক্সিমাম সাপ্রেশন দিয়ে আমরা অধিক্রমিত বাউন্ডিং বক্সের সর্বোচ্চ ফলাফল গ্রহণ করি এবং বাকি গুলো অপসারণ করি। চূড়ান্ত ফলাফল হবে সর্বাপেক্ষা অনুকূল স্থানে অবস্থিত একটি একক বাউন্ডিং বক্স। + + + +### নেগেটিভ মাইনিং + + +শেষ অনুচ্ছেদে আমরা আলোচনা করেছি যে কিভাবে টেস্টিং পিরিয়ডে মডেল অধিক সংখ্যক ফলস পজিটিভস নিরীক্ষার মুখোমুখি হতে পারে, যেহেতু নন-ফেস অবজেক্টের বিভিন্ন প্রকারে মুখাবয়বের সাথে সাদৃশ্য থাকতে পারে। কোন ট্রেইনিং সেট সব রকম সম্ভাবনার নন-ফেস অবজেক্ট অন্তর্ভুক্ত করবেনা যেগুলো দেখতে চেহারার মত। আমরা এই সমস্যা নিরসনে নেগেটিভ মাইনিং ব্যবহার করতে পারি। নেগেটিভ মাইনিং প্রক্রিয়াতে, আমরা নন-ফেস ক্ষুদ্র অংশ গুলোর দ্বারা একটি নেগেটিভ ডেটাসেট প্রস্তুত করি, যেগুলো মডেল ভুলক্রমে মুখাবয়ব হিসেবে চিহ্নিত করেছে। মডেলটিকে এমন সব জ্ঞাত ইনপুটের উপর চালানো হয়েছে যেগুলোতে জ্ঞাতসারে নন-ফেস অংশ আছে এবং ডেটা সংগ্রহে এই পদ্ধতি গ্রহণ করা হয়েছে। এরপর ডিটেক্টরটি পুনরায় ট্রেইন করা হয়েছে নেগেটিভ ডেটাসেট ব্যবহার করে। আমরা এই পদ্ধতি পুনরাবৃত্তি করতে পারি, যাতে করে ফলস পজিটিভের বিপরীতে মডেলের সঠিক নির্ধারণ ক্ষমতা বৃদ্ধি পায়। + + + +## সেমান্টিক সেগমেন্টেশন + + সেমান্টিক সেগমেন্টেশন একটি ইনপুট চিত্রের প্রতিটি পিক্সেলে ভিন্ন ভিন্ন শ্রেণী নির্দিষ্ট করে দেয় । + + +### [দীর্ঘ পরিসর ব্যাপী অভিযোজিত রোবট ভিশনের ক্ষেত্রে CNN](https://www.youtube.com/watch?v=ycbMGyCPzvE&t=1669s) + + +এই প্রজেক্টের উদ্দেশ্য ছিল ইনপুট চিত্রের থেকে বিশেষ অংশ গুলো লেবেল করে দেয়া, যাতে করে একটি রোবট রাস্তা এবং প্রতিবন্ধক আলাদা করে চিনতে পারে। নিচের চিত্রে, সবুজ অংশ গুলোতে রোবটটি গাড়ি চালাতে পারবে, এবং লাল অংশের মধ্যে আছে লম্বা ঘাসের ন্যায় প্রতিবন্ধক। এই করণীয় কাজের উদ্দেশ্যে নেটওয়ার্ক ট্রেইন করার জন্য আমরা ইনপুট চিত্রের একটি অংশকে গাড়ি চালনার উপযুক্ত কিনা (সবুজ কিংবা লাল) হাতে করে লেবেল করে দিয়েছি। এরপর আমরা কনভলিউশনাল নেটওয়ার্ক লেবেল করা চিত্রের ওপর ট্রেইন করি এবং নেটওয়ার্কটিকে চিত্রের লেবেল করা অংশের রঙ অনুমান করতে বলি। + +
+
+ +চিত্র ৪:দীর্ঘ পরিসর ব্যাপী অভিযোজিত রোবট ভিশনের ক্ষেত্রে CNN (DARPA LAGR প্রোগ্রাম ২০০৫-২০০৮) +
+ + +এখানে অনুমানের জন্য পাঁচটি শ্রেণী রয়েছে: +১ . গাঢ় সবুজ ২. সবুজ ৩. নীল বেগুনি (পার্পল) ঃ পদচিহ্ন অন্তরায় ৪ . লাল প্রতিবন্ধক ৫ . গাঢ় লাল ( অবশ্যম্ভাবী প্রতিবন্ধক) + + + + +**স্টেরিও লেবেলগুলো** + (চিত্র 4, কলাম 2) চিত্রগুলি রোবোটের ৪টি ক্যামেরার দ্বারা ক্যাপচার করা হয়েছে, যা ২টি স্টেরিও দর্শন জোড়ায় বিভক্ত করা হয়েছে। স্টেরিও জুটির ক্যামেরাগুলির মধ্যে পরিচিত দূরত্বগুলি ব্যবহার করে, ত্রিমাত্রিক স্পেসে প্রতিটি পিক্সেলের অবস্থানগুলি তখন স্টেরিও জোড়ায় উভয় ক্যামেরায় প্রদর্শিত পিক্সেলের মধ্যে আপেক্ষিক দূরত্বগুলি পরিমাপ করে অনুমান করা হয়। আমাদের মস্তিস্কে যে প্রক্রিয়ায় জিনিসগুলি দেখি তার দূরত্ব নির্ধারণ করতে একই প্রক্রিয়া অনুসরণ করা হয় । আনুমানিক অবস্থান তথ্য ব্যবহার করে, একটি সমতল ভূমির সাথে ফিট করে এবং তারপরে পিক্সেলগুলি সবুজ হিসাবে লেবেলযুক্ত হয় যদি তারা মাটির কাছাকাছি থাকে এবং সেগুলি উপরে থাকে তবে লাল হয়। + + + +* **কনভলিউশনাল নেটের সীমাবদ্ধতা এবং অনুপ্রেরণা**: স্টেরিও ভিশনটি কেবল ১০ মিটার পর্যন্ত কাজ করে এবং একটি রোবট চালনা করার জন্য দীর্ঘ-পরিসরের দৃষ্টি প্রয়োজন। একটি কনভনেট যদিও সঠিকভাবে প্রশিক্ষিত হয় তবে অনেক বেশি দূরত্বে অবজেক্টগুলি সনাক্ত করতে সক্ষম। + +
+
+ +চিত্র ৫: দূরত্ব-স্বাভাবিককরণের চিত্রের জন্য স্কেল-ইনভেরিয়েন্ট পিরামিড +
+ + +* **মডেল ইনপুট হিসাবে পরিবেশন করা**: গুরুত্বপূর্ণ প্রাক-প্রক্রিয়াকরণের মধ্যে দূরত্ব-স্বাভাবিককরণের চিত্রগুলির একটি স্কেল-ইনভেরিয়েন্ট পিরামিড তৈরি করা রয়েছে (চিত্র ৫ )। এটি যখন আমরা একাধিক স্কেলের মুখগুলি সনাক্ত করার চেষ্টা করেছি তখন আমরা এই লেকচারটির আগে যা করেছি তার অনুরূপ। + + + +**মডেল আউটপুট ** (চিত্র ৪ , কলাম 3) + +মডেলটি **দিগন্ত পর্যন্ত** চিত্রটিতে প্রতিটি পিক্সেলের জন্য একটি লেবেল আউটপুট দেয়। এগুলি একটি একাধিক-স্কেলের কনভলিউশনাল নেটওয়ার্কের শ্রেণিবদ্ধ আউটপুট। + + +* **মডেল কীভাবে অভিযোজিত হয়ে ওঠে**: রোবটগুলির স্টেরিও লেবেলগুলিতে অবিচ্ছিন্ন অ্যাক্সেস রয়েছে যা নেটওয়ার্কটিকে পুনরায় প্রশিক্ষণের অনুমতি দেয় এবং এটির মধ্যে নতুন পরিবেশের সাথে খাপ খায়। দয়া করে নোট করুন যে কেবলমাত্র নেটওয়ার্কের শেষ স্তরটিকে পুনরায় প্রশিক্ষণ দেওয়া হবে। পূর্ববর্তী স্তরগুলি ল্যাবে প্রশিক্ষিত এবং স্থায়ী হয়। + +**সিস্টেমের কর্মক্ষমতা** + +কোনো প্রতিবন্ধকের অন্যপাশে কোনো জিপিএস সমন্বয় পাওয়ার চেষ্টা করার সময়, রোবটটি বেশ দূর থেকে প্রতিবন্ধকটি "দেখেছিল " এবং এটি এড়ানোর জন্য একটি রুটের পরিকল্পনা করেছিল। এটি করার উপায় করে দিয়েছে ৫০-১০০ মিটার দূরে সিএনএন দ্বারা অবজেক্ট সনাক্তকরণ প্রক্রিয়া । + + + +**সীমাবদ্ধতা** + +২০০০ এর দশকে, গণনার সংস্থানগুলি সীমাবদ্ধ ছিল। রোবট প্রতি সেকেন্ডে প্রায় 1 ফ্রেম প্রক্রিয়া করতে সক্ষম হয়েছিল, যার অর্থ এটি প্রতিক্রিয়া জানাতে সক্ষম হওয়ার আগে পুরো এক সেকেন্ডের জন্য কোনও ব্যক্তিকে সনাক্ত করতে সক্ষম হবে না যিনি পুরো দ্বিতীয় সেকেন্ডে রোবটের পথে চলেছেন । এই সীমাবদ্ধতার সমাধান হল **কম দামের ভিজ্যুয়াল ওডোমেট্রি মডেল**। এটি নিউরাল নেটওয়ার্কগুলির উপর ভিত্তি করে নয়, ~ 2.5 m এর দর্শন রয়েছে তবে দ্রুত প্রতিক্রিয়া দেখায়। + + + +### দৃশ্য বিশ্লেষণ এবং লেবেলিং + +এই কার্যক্রমে, মডেলটি প্রতিটি পিক্সেলের জন্য একটি বস্তুর বিভাগ (বিল্ডিং, গাড়ি, আকাশ, ইত্যাদি) আউটপুট দেয়। মডেলের কাঠামোটি বহু-স্কেল মাত্রায় গঠিত (চিত্র 6)। + + +
+
+ +চিত্র ৬: বহু-স্কেল CNN দ্বারা দৃশ্য বিশ্লেষণ +
+ + +লক্ষ্য করুন যে আমরা যদি সিএনএন-এর একটি আউটপুট ইনপুটটিতে প্রজেক্ট করি তবে এটি ল্যাপ্লাসিয়ান পিরামিডের নিচে মূল চিত্রের $46\times46$ আকারের একটি ইনপুট উইন্ডোটির সাথে মিল প্রদর্শন করে । এর অর্থ আমরা **কেন্দ্রীয় পিক্সেলের বিভাগ নির্ধারণ করতে $46\times46$ পিক্সেলের প্রসঙ্গটি ব্যবহার করছি**। + + +তবে, কখনও কখনও বৃহত্তর অবজেক্টের জন্য বিভাগ নির্ধারণের জন্য এই প্রসঙ্গের আকারটি যথেষ্ট নয়। + + + + + + +**মাল্টিস্কেল পদ্ধতিটি অতিরিক্ত উদ্ধারকৃত চিত্রগুলি ইনপুট হিসাবে সরবরাহ করে একটি বিস্তৃত দৃষ্টি সক্ষম করে।** নিম্নরূপ পদক্ষেপ অনুসরণ করা হয়: + +১. একই চিত্রটি নিন, এটি ২ এবং ২ এর ফ্যাক্টর দ্বারা আলাদা ভাবে সংকুচিত করুন। + +২ . এই দুটি অতিরিক্ত পুনরুদ্ধার করা চিত্র **একই কনভনেট**(একই ওজন, একই কার্নেল) যোগান দেয়া হয় এবং আমরা স্তর-২ বৈশিষ্ট্যের আরও দুটি সেট পাই। + +৩ . এই বৈশিষ্ট্যগুলিকে **প্রবর্ধন** করুন যাতে তাদের মূল চিত্রের স্তর 2 বৈশিষ্ট্যগুলির সমান আকার থাকে। + +৪ . তিনটি সেট (আপস্যাম্পলড) বৈশিষ্ট্য একসাথে **স্ট্যাক** করুন এবং সেগুলোকে একটি শ্রেণি নিরীক্ষণে যোগান দিন । + + +এখন কন্টেন্টের বৃহত্তম কার্যকর আকার, যা পুনরায় আকারিত চিত্রের ১/৪ থেকে আসে, তা হচ্ছে $184\times 184\, (46\times 4=184)$ । + + +**পারফরম্যান্স**: কোনও পোস্ট-প্রসেসিং এবং ফ্রেম-বাই-ফ্রেম চালিত না করে, মডেলটি স্ট্যান্ডার্ড হার্ডওয়্যারেও খুব দ্রুত চলে । এটির পরিবর্তে ছোট আকারের প্রশিক্ষণের ডেটা রয়েছে (2k ~ 3k ), তবে ফলাফল এখনও রেকর্ড-ব্রেকিং। diff --git a/docs/bn/week06/06-2.md b/docs/bn/week06/06-2.md new file mode 100644 index 000000000..251d4a8f4 --- /dev/null +++ b/docs/bn/week06/06-2.md @@ -0,0 +1,314 @@ +--- +lang-ref: ch.06-2 +lecturer: Yann LeCun +title: RNNs, GRUs, LSTMs, Attention, Seq2Seq, এবং Memory Networks +authors: Jiayao Liu, Jialing Xu, Zhengyang Bian, Christina Dominguez +date: 2 March 2020 +lang: bn +translation-date: 8 Mar 2021 +translator: Mahbuba Tasmin +--- + + + +## [ডিপ লার্নিং আর্কিটেকচার](https://www.youtube.com/watch?v=ycbMGyCPzvE&t=2620s) + +ডিপ লার্নিং এর আওতায় , বিভিন্ন কার্যকারিতা উপলব্ধি করার জন্য বিভিন্ন মডিউল রয়েছে। ডিপ লার্নিং এর দক্ষতার মধ্যে নির্দিষ্ট কাজগুলি সম্পন্ন করার জন্য আর্কিটেকচার ডিজাইন করা জড়িত। আগের দিনগুলিতে কম্পিউটারকে নির্দেশনা দেওয়ার জন্য অ্যালগরিদমের সাথে প্রোগ্রাম লেখার অনুরূপ, ডিপ লার্নিং একটি জটিল ক্রিয়াকে ফাংশনাল মডিউলগুলির (সম্ভবত গতিশীল) একটি গ্রাফের মধ্যে হ্রাস করে, যার ক্রিয়াগুলি মডেলের শেখার মাধ্যমে চূড়ান্ত হয়। + +কনভলিউশনাল নেটওয়ার্কগুলির সাথে আমরা যা দেখেছি, তার মতো নেটওয়ার্ক আর্কিটেকচার গুরুত্বপূর্ণ। + + +## রিকারেন্ট নেটওয়ার্ক সমূহ + +কনভলিউশনাল নিউরাল নেটওয়ার্কে মডিউলগুলির মধ্যে গ্রাফ বা আন্তঃসংযোগগুলির লুপগুলি থাকতে পারে না। মডিউলগুলির মধ্যে কমপক্ষে একটি আংশিক ক্রম বিদ্যমান রয়েছে যেমন আমরা আউটপুটগুলো গণনা করলে ইনপুটগুলি পাওয়া যায়। + +চিত্র ১ -এ দেখানো হয়েছে, রিকারেন্ট নিউরাল নেটওয়ার্কগুলিতে লুপ রয়েছে। +
+
+ +চিত্র ১: রোল সহকারে রিকারেন্ট নিউরাল নেটওয়ার্ক +
+ + + - $x(t)$ : ইনপুট যা সময়ের সাথে সাথে পরিবর্তিত হয় + + - $\text{Enc}(x(t))$: এনকোডার যা ইনপুটটির প্রতিনিধিত্ব করে + + - $h(t)$: ইনপুটের একটি প্রতিরুপ + + - $w$: প্রশিক্ষণযোগ্য পরামিতি (প্যারামিটার) + + - $z(t-1)$: পূর্ববর্তী হিডেন স্টেট, যা পূর্ববর্তী সময়ের ধাপের আউটপুট + + - $z(t)$: বর্তমান হিডেন স্টেট + + - $g$: একটি ফাংশন যা হতে পারে একটি জটিল নিউরাল নেটওয়ার্ক; ইনপুটগুলির মধ্যে একটি হল $z(t -1)$ যা পূর্ববর্তী সময় ধাপের আউটপুট + + - $\text{Dec}(z(t))$: ডিকোডার যা একটি আউটপুট উত্পন্ন করে + + + +## রিকারেন্ট নেটওয়ার্ক: লুপটি আনরোল করুন + + +সময়মতো লুপটি আনরোল করুন। ইনপুটটি একটি ক্রম $x_1, x_2, ..., x_T$ অনুসরণ করে। +
+ " +
+ +চিত্র ২: আনরোলড লুপের সাথে রিকারেন্ট নেটওয়ার্কগুলো +
+ + +চিত্র ২ -এ ইনপুটটি $x_1, x_2, x_3$ । + + +সময় t = 0 চলাকালীন সময়, ইনপুট $x(0)$ টিকে এনকোডারকে দেওয়া হয় এবং এটি $h(x(0))=\text{Enc}(x(0))$ কে উপস্থাপন করে এবং তারপরে এটি G কে পাস করে হিডেন স্টেট $z(0)= G (h_0, z ', w)$ কে উদ্ভূত করতে। সময় $t=0$ এ, $G$ এ $z’$ আদ্যক্ষর $0$ হিসেবে কিংবা যথেচ্ছাভাবে আরম্ভ করা যেতে পারে । একটি আউটপুট উৎপন্ন করতে $z(0)$ কে পাস করা হয় ডিকোডারে এবং পরবর্তী সময় ধাপেও পাস করা হয়। + +যেহেতু এই নেটওয়ার্কটিতে কোনও লুপ নেই, এবং আমরা ব্যাক প্রোপাগেশন বাস্তবায়ন করতে পারি। + +চিত্র-২ এ একটি নির্দিষ্ট বৈশিষ্ট্যযুক্ত একটি নিয়মিত নেটওয়ার্ক দেখায়: প্রতিটি ব্লক একই পরিমাণ গুরুত্ব বহন করে। তিনটি এনকোডার, ডিকোডার এবং G ফাংশনগুলির যথাক্রমে বিভিন্ন সময় ধাপে একই গুরুত্ব বহন করে। + +BPTT : সময়ের সাথে ব্যাকপ্রপ। দুর্ভাগ্যক্রমে, BPTT naive-RNN এর সাথে এত ভাল কাজ করে না। + +RNN এর সাথে সম্পর্কিত সমস্যাগুলোঃ + + +১. বিলীয়মান গ্র্যাডিয়েন্ট + - দীর্ঘ ক্রমে, গ্র্যাডিয়েন্টগুলি প্রতি সময়ধাপে ওয়েট ম্যাট্রিক্স (পক্ষান্তরিত) দ্বারা গুণিত হয়। ওয়েট ম্যাট্রিক্সে যদি ছোট মান থাকে তবে গ্র্যাডিয়েন্টের নর্মটি তাৎপর্যপূর্ণভাবে ক্রমান্বয়ে ছোট হতে থাকে। + +২. এক্সপ্লোডিং গ্র্যাডিয়েন্ট + - যদি একটি বড় ওয়েট ম্যাট্রিক্স থাকে এবং পুনরাবৃত্ত স্তরগুলোর নন-লিনিয়ারিটি বৈশিষ্ট্য পরিপৃক্ত (স্যাচুরেটিং) না হয় তবে গ্র্যাডিয়েন্টগুলি এক্সপ্লোড হবে। ওয়েটস গুলো আপডেটের ধাপে বিভক্ত হবে। গ্র্যাডিয়েন্ট-ডিসেন্ট কাজের জন্য আমাদের একটি ছোট লার্নিং রেট ব্যবহার করতে হতে পারে। + + + + + + + +RNN ব্যবহার করার একটি কারণ হচ্ছে অতীতের তথ্য মনে রাখার সুবিধা। যাইহোক, সাধারণ একটি RNN কোন কৌশল ছাড়া অনেক আগের তথ্য মুখস্থ করতে ব্যর্থ হতে পারে। + + +বিলীয়মান গ্র্যাডিয়েন্ট সমস্যা সম্পর্কিত একটি উদাহরণ: + + +ইনপুটটি হল একটি সি প্রোগ্রাম থেকে নেয়া অংশসমূহ। সিস্টেমটি এটি বলবে যে এটি একটি গঠনগত ভাবে সঠিক প্রোগ্রাম কিনা। একটি সঠিক সংগঠিত প্রোগ্রামে ব্রেসসমূহ (ধনুর্বন্ধনী) এবং বন্ধনীগুলির একটি বৈধ সংখ্যক হওয়া উচিত। সুতরাং, নেটওয়ার্কটিকে মনে রাখতে হবে যে সেখানে পরীক্ষণীয় কতগুলো খালি বন্ধনী এবং ব্রেস আছে এবং আমরা সেসব গুলোকে বন্ধ করেছি কিনা। নেটওয়ার্ককে একটি কাউন্টারের মতো লুকানো স্টেটে এই জাতীয় তথ্য সংরক্ষণ করতে হয়। তবে গ্র্যাডিয়েন্টগুলো বিলীয়মান হওয়ার কারণে নেটওয়ার্কটি একটি দীর্ঘ প্রোগ্রামে এ জাতীয় তথ্য সংরক্ষণ করতে ব্যর্থ হবে। + + + +## RNN এর কৌশলগুলোঃ + + +- ক্লিপিং গ্র্যাডিয়েন্ট: (এক্সপ্লোডিং গ্র্যাডিয়েন্ট এড়ানো) + গ্র্যাডিয়েন্টগুলি যখন খুব বড় হয়ে যায় তখন স্কোয়াশ করুন। + +- সূচনা ( ডান বলপার্কে সূচনা করে এক্সপ্লোডিং/বিলীন হওয়া এড়ানো) + মডেলের নর্ম কিছু পরিমাণে অক্ষুণ্ণ রাখতে ওয়েট ম্যাট্রিক্স গুলো সূচনা করুন । উদাহরণস্বরূপ, সমকোণীয় সূচনাটি ওয়েট ম্যাট্রিক্সকে এলোমেলো ধরণের অর্থোগোনাল ম্যাট্রিক্স হিসাবে আরম্ভ করে। + + + + + + + + + +## গুণক মডিউল + +গুণগত মডিউলগুলিতে কেবল ইনপুটগুলোর একটি ওয়েটেড সাম গণনা করার পরিবর্তে, আমরা ইনপুটগুলির গুণফল গুলো গণনা করি এবং তারপরে ওয়েটেড সাম গণনা করি। + + +ধরুন $x \in {R}^{n\times1}$, $W \in {R}^{m \times n}$, $U \in {R}^{m \times n \times d}$ and $z \in {R}^{d\times1}$. এখানে U একটি টেনসর। + +$$ +w_{ij} = u_{ij}^\top z = +\begin{pmatrix} +u_{ij1} & u_{ij2} & \cdots &u_{ijd}\\ +\end{pmatrix} +\begin{pmatrix} +z_1\\ +z_2\\ +\vdots\\ +z_d\\ +\end{pmatrix} = \sum_ku_{ijk}z_k +$$ + +$$ +s = +\begin{pmatrix} +s_1\\ +s_2\\ +\vdots\\ +s_m\\ +\end{pmatrix} = Wx = \begin{pmatrix} +w_{11} & w_{12} & \cdots &w_{1n}\\ +w_{21} & w_{22} & \cdots &w_{2n}\\ +\vdots\\ +w_{m1} & w_{m2} & \cdots &w_{mn} +\end{pmatrix} +\begin{pmatrix} +x_1\\ +x_2\\ +\vdots\\ +x_n\\ +\end{pmatrix} +$$ + + +যেখানে $s_i = w_{i}^\top x = \sum_j w_{ij}x_j$। + + +সিস্টেমের আউটপুট হল ইনপুট এবং ওয়েটগুলোর একটি সর্বোত্তম ওয়েটেড সামের যোগফল। ওয়েট গুলো স্বয়ং ওয়েট এবং ইনপুটের ওয়েটেড সাম। + +হাইপারনেটওয়ার্ক আর্কিটেকচার: ওয়েটগুলো অন্য একটি নেটওয়ার্ক দ্বারা গণনা করা হয়। + + +## অ্যাটেনশন + +$x_1$ এবং $x_2$ ভেক্টর, $w_1$ এবং $w_2$ সফটম্যাক্সের পরে স্কেলারসমূহ যেখানে $w_1 + w_2 = 1$, এবং $w_1$ এবং $w_2$ রয়েছে 0 এবং 1 এর মধ্যে। + +$w_1x_1 + w_2x_2$ হল $x_1$ এবং $x_2$ এর ওয়েটেড সাম, $w_1$ এবং $w_2$ এর সহগ দ্বারা ওয়েটকৃত। + +$W_1$ এবং $w_2$ এর আপেক্ষিক আকার পরিবর্তন করে আমরা $w_1x_1 + w_2x_2$ এর আউটপুট $x_1$ বা $x_2$ অথবা $x_1$ এবং $x_2$ এর কিছু লিনিয়ার সংমিশ্রণে পরিবর্তন করতে পারি। + +ইনপুটগুলোতে একাধিক $x$ ভেক্টর থাকতে পারে ($x_1$ এবং $x_2$ এর চেয়ে বেশি)। সিস্টেমটি একটি উপযুক্ত সংমিশ্রণটি চয়ন করবে, যার পছন্দটি অন্য ভেরিয়েবল z দ্বারা নির্ধারিত হবে। একটি অ্যাটেনশন পদ্ধতি নিউরাল নেটওয়ার্কটিকে নির্দিষ্ট ইনপুটগুলোতে মনোযোগ নিবদ্ধ করতে এবং অন্যদের উপেক্ষা করার অনুমতি দেয়। + + +ট্রান্সফরমার আর্কিটেকচার বা অন্যান্য ধরণের অ্যাটেনশন পদ্ধতি ব্যবহার করে এমন NLP প্রক্রিয়াগুলোতে অ্যাটেনশন ক্রমশ গুরুত্বপূর্ণ হয়ে উঠছে। + + +ওয়েটসমূহ ডেটা থেকে স্বতন্ত্র কারণ Z ডেটা থেকে স্বতন্ত্র। + + +## [গেটেড রিকারেন্ট ইউনিটসমূহ (GRU)](https://www.youtube.com/watch?v=ycbMGyCPzvE&t=3549s) + +উপরে উল্লিখিত বর্ণ্নামতে, RNN -এ বিলীয়মান/এক্সপ্লোডিং গ্র্যাডিয়েন্টের সমস্যা বিদ্যমান এবং দীর্ঘ সময় স্টেটসমূহ মনে রাখতে অপারগ। GRU, [Cho, 2014](https://arxiv.org/abs/1406.1078), এই সমস্যাগুলো সমাধান করতে চেষ্টা করা গুণক মডিউলগুলির একটি অ্যাপ্লিকেশন। এটি মেমরির সাথে রিকারেন্ট নেটের একটি উদাহরণ (অন্যটি LSTM)। একটি GRU ইউনিটের কাঠামো নীচে প্রদর্শিত হবে: + +
+
+ +চিত্র ৩: গেটেড রিকারেন্ট ইউনিট +
+ +$$ +\begin{array}{l} +z_t = \sigma_g(W_zx_t + U_zh_{t-1} + b_z)\\ +r_t = \sigma_g(W_rx_t + U_rh_{t-1} + b_r)\\ +h_t = z_t\odot h_{t-1} + (1- z_t)\odot\phi_h(W_hx_t + U_h(r_t\odot h_{t-1}) + b_h) +\end{array} +$$ + + +যেখানে $\odot$ উপাদান অনুসারে গুণ (Hadamard গুণফল) বোঝায়, $x_t$ ইনপুট ভেক্টর, $h_t$ আউটপুট ভেক্টর, $z_t$ আপডেট গেট ভেক্টর, $r_t$ রিসেট গেট ভেক্টর, $\phi_h$ একটি হাইপারবোলিক tanh এবং $W$, $U$, $b$ নেটওয়ার্কের শেখার প্যারামিটার । + +সুনির্দিষ্টভাবে বলতে গেলে, $z_t$ হল একটি গেটিং ভেক্টর যা নির্ধারণ করে যে অতীতের তথ্যগুলির কতটা ভবিষ্যতে পাঠাতে হবে। এটি দুটি লিনিয়ার স্তর এবং একটি ইনপুট $x_t$ এর উপর আপতিত বায়াসের সমষ্টি এবং পূর্ববর্তী স্টেট $h_{t-1}$ এর জন্য একটি সিগময়েড ফাংশন প্রয়োগ করে। সিগময়েড প্রয়োগের ফলে $z_t$ এর সহগ 0 এবং 1 এর মধ্যে অবস্থিত। চূড়ান্ত আউটপুট স্টেট $h_t$ হল $h_{t-1}$ এবং $\phi_h(W_hx_t + U_h(r_t\odot h_{t-1}) + b_h)$ এর উত্তল সংমিশ্রণ $z_t$ এর মাধ্যমে। যদি সহগটি 1 হয়, বর্তমান ইউনিট আউটপুটটি পূর্ববর্তী স্টেটের কেবল একটি অনুলিপি এবং ইনপুটটিকে উপেক্ষা করে (এটি পূর্বনির্ধারিত আচরণ)। যদি এটির চেয়ে কম হয়, তবে এটি ইনপুট থেকে কিছু নতুন তথ্য গ্রহণ করে। + +রিসেট গেট $r_t$ অতীতের তথ্যকে কতটা ভুলে যেতে হবে তার সিদ্ধান্ত নিতে ব্যবহৃত হয়। নতুন মেমরি কনটেন্টে $\phi_h(W_hx_t + U_h(r_t\odot h_{t-1}) + b_h)$, যদি $r_t$ এর সহগ 0 হয় তবে এটি অতীতের কোনও তথ্যই সঞ্চয় করে না। যদি একই সময়ে $z_t$ এর মান 0 হয়, তবে সিস্টেমটি পুরোপুরি পুনরায় সেট করা হয় যেহেতু $h_t$ কেবল ইনপুটকে দেখবে। + + +## LSTM (লং শর্ট - টার্ম মেমরি) + +GRU আসলে LSTM এর একটি সরলিকৃত সংস্করণ যা অনেক আগে প্রকাশিত হয়েছিল, [Hochreiter, Schmidhuber, 1997](https://www.bioinf.jku.at/publications/older/2604.pdf)। অতীত তথ্য সংরক্ষণের জন্য মেমরি সেল তৈরি করার পাশাপাশি, LSTM লক্ষ্য করে RNN গুলোতে দীর্ঘমেয়াদী মেমরির হ্রাসের সমস্যাগুলি সমাধান করতে। LSTM এর কাঠামো নিচে প্রদর্শিত হয়েছে: + +
+
+ +চিত্র ৪: LSTM +
+ +$$ +\begin{array}{l} +f_t = \sigma_g(W_fx_t + U_fh_{t-1} + b_f)\\ +i_t = \sigma_g(W_ix_t + U_ih_{t-1} + b_i)\\ +o_t = \sigma_o(W_ox_t + U_oh_{t-1} + b_o)\\ +c_t = f_t\odot c_{t-1} + i_t\odot \tanh(W_cx_t + U_ch_{t-1} + b_c)\\ +h_t = o_t \odot\tanh(c_t) +\end{array} +$$ + + +যেখানে $\odot$ উপাদান অনুসারে গুণনকে বোঝায়, $x_t\mathbb{R}^a$ LSTM ইউনিটের একটি ইনপুট ভেক্টর,$f_t\in\mathbb{R}^h$ হল ফরগেট গেটের অ্যাক্টিভেশন ভেক্টর ,$i_t\in\mathbb{R}^h$ হল ইনপুট/আপডেট গেটের অ্যাক্টিভেশন ভেক্টর, $o_t\in\mathbb{R}^h$ আউটপুট গেটের অ্যাক্টিভেশন ভেক্টর, $h_t\in\mathbb{R}^h$ হিডেন স্টেট ভেক্টর (আউটপুট নামেও পরিচিত), $c_t\in\mathbb{R}^h$ হল সেল স্টেট ভেক্টর। + + +একটি LSTM ইউনিট সেল স্টেট $c_t$ ব্যবহার করে ইউনিটের মাধ্যমে তথ্য জানায়। এটি গেটস নামক স্ট্রাকচারের মাধ্যমে কীভাবে সেল স্টেট থেকে তথ্য সংরক্ষণ বা অপসারণ করা হয় তা নিয়ন্ত্রণ করে। ফরগেট গেট $f_t$ বর্তমান ইনপুট এবং পূর্ববর্তী হিডেন স্টেট দেখে নির্ধারণ করে যে আমরা পূর্ববর্তী সেল স্টেটের $c_{t-1}$ থেকে কতটা তথ্য রাখতে চাই এবং $c_{t-1}$ এর সহগ হিসাবে 0 এবং 1 এর মধ্যে একটি সংখ্যা তৈরি করে। $\tanh(W_cx_t + U_ch_{t-1} + b_c)$ একটি নতুন প্রার্থীকে সেল স্টেট আপডেট করার জন্য গণনা করে এবং ফরগেট গেটের মতো ইনপুট গেট $i_t$ সিদ্ধান্ত নেয় যে আপডেটটি কতটা প্রয়োগ করা হবে। শেষ অবধি, আউটপুট $h_t$ সেল স্টেট $c_t$ এর উপর ভিত্তি করে তৈরি করা হবে তবে $\tanh$ এর মাধ্যমে আউটপুট গেট $o_t$ দ্বারা ফিল্টার করে দেওয়া হবে । + + +যদিও LSTM NLPতে ব্যাপকভাবে ব্যবহৃত হয়, তবে তাদের জনপ্রিয়তা হ্রাস পাচ্ছে। উদাহরণস্বরূপ, স্পিচ রিকগনিশন অস্থায়ী সিএনএন ব্যবহারের দিকে এগিয়ে চলেছে, এবং NLP ট্রান্সফর্মারগুলো ব্যবহার করার দিকে এগিয়ে চলেছে। + + +## সিকোয়েন্স -টু - সিকোয়েন্স মডেল + +[Sutskever NIPS 2014](https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf) দ্বারা প্রস্তাবিত পদ্ধতিটির কর্মক্ষমতা হচ্ছে ক্লাসিক পদ্ধতির সাথে তুলনাযোগ্য প্রথম নিউরাল মেশিন অনুবাদ সিস্টেম। এটি একটি এনকোডার-ডিকোডার আর্কিটেকচার ব্যবহার করে যেখানে এনকোডার এবং ডিকোডার উভয়ই বহু-স্তরযুক্ত LSTM । +
+
+ +চিত্র ৫: সিক-টু-সিক +
+ + +চিত্রের প্রতিটি ঘর একটি LSTM। এনকোডার (বাম দিকের অংশ) এর জন্য, সময় পদক্ষেপের সংখ্যা অনুবাদ করা বাক্যটির দৈর্ঘ্যের সমান হয়। প্রতিটি পদক্ষেপে, LSTM এর একটি স্ট্যাক রয়েছে (কাগজের চার স্তর) যেখানে পূর্ববর্তী LSTM এর হিডেন স্টেট পরবর্তী একটিকে দেওয়া হয়। শেষ বারের পদক্ষেপের শেষ স্তরটি একটি ভেক্টর আউটপুট দেয় যা পুরো বাক্যটির অর্থ উপস্থাপন করে, যা পরে অন্য একটি মাল্টি-লেয়ার LSTM(ডিকোডার) এ দেয়া হয়, যা লক্ষ্যকৃত ভাষায় শব্দ তৈরি করে। ডিকোডারে, পাঠ্যটি অনুক্রমিক ফ্যাশনে উত্পন্ন হয়। প্রতিটি পদক্ষেপে একটি শব্দ তৈরি হয়, যা পরের বারের ধাপে ইনপুট হিসাবে দেওয়া হয়। + + +এই আর্কিটেকচারটি দুটি উপায়ে পরিপূর্ণ নয়: প্রথমত, বাক্যটির পুরো অর্থ এনকোডার এবং ডিকোডারের মধ্যে হিডেন স্টেটে ছড়িয়ে দিতে হবে। দ্বিতীয়ত, LSTM প্রকৃতপক্ষে প্রায় 20 টিরও বেশি শব্দের জন্য তথ্য সংরক্ষণ করে না। এই সমস্যার সমাধানটিকে Bi-LSTM বলা হয়, যা দুটি LSTM বিপরীত দিকে চালিত করে। Bi-LSTM -এর অর্থ দুটি ভেক্টরগুলোতে এনকোড করা থাকে, একটি বাম থেকে ডানে LSTM চালিয়ে আর অন্যটি ডান থেকে বামে উত্পন্ন হয়। এটি খুব বেশি তথ্য না হারিয়ে বাক্যটির দৈর্ঘ্য দ্বিগুণ করার সুযোগ তৈরি করে। + + + +## অ্যাটেনশনের সাথে সিক-টু-সিক + + +উপরোক্ত পদ্ধতির সাফল্য স্বল্পস্থায়ী ছিল। [Bahdanau, Cho, Bengio](https://arxiv.org/abs/1409.0473) এর অন্য একটি পেপার পরামর্শ দিয়েছে যে একটি বিশাল নেটওয়ার্কে পুরো বাক্যটির অর্থ একটি ভেক্টর হিসাবে চেপে রাখার পরিবর্তে এটি আরও অর্থপূর্ণ হবে যদি প্রতিবারের পদক্ষেপে আমরা কেবলমাত্র সমান অর্থের সাথে মূল ভাষার প্রাসঙ্গিক অবস্থানগুলিতে মনোযোগ নিবদ্ধ করি,অর্থাৎ অ্যাটেনশন পদ্ধতি ব্যবহার করি। +
+
+ +চিত্র ৬: অ্যাটেনশনের সাথে সিক-টু-সিক +
+ + +অ্যাটেনশনে, প্রতিটি ধাপে বর্তমান শব্দটি তৈরি করতে, প্রথমে আমাদের সিদ্ধান্ত নেওয়া দরকার যে ইনপুট বাক্যে শব্দের কী কী হিডেন উপস্থাপনাতে গুরুত্ব দেয়া উচিত। মূলত, একটি নেটওয়ার্ক স্কোর করতে শিখবে যে প্রতিটি এনকোডযুক্ত ইনপুট ডিকোডারের বর্তমান আউটপুটটির সাথে কতটা ভাল মেলে। এই স্কোরগুলি একটি সফটম্যাক্স দ্বারা নর্মালাইয করা হয়, তারপরে সহগগুলি বিভিন্ন সময় পদক্ষেপে এনকোডারে লুকানো রাজ্যের একটি ওয়েটেড সাম গণনা করতে ব্যবহৃত হয়। ওয়েট সামঞ্জস্য করার মাধ্যমে, সিস্টেম ফোকাস করার জন্য ইনপুটগুলির ক্ষেত্রটি সমন্বয় করতে করতে পারে। এই প্রক্রিয়াটির বিশেষত্বটি হল সহগ গণ্নার জন্য ব্যবহৃত নেটওয়ার্কটি ব্যাক-প্রোপাগেশনের মাধ্যমে প্রশিক্ষণ দেওয়া যেতে পারে। এগুলি হাতে তৈরি করার দরকার নেই! + +অ্যাটেনশন পদ্ধতি সম্পূর্ণরূপে নিউরাল মেশিন অনুবাদকে রূপান্তরিত করে। পরবর্তীতে, গুগল একটি প্রবন্ধ প্রকাশ করেছে [*Attention Is All You Need*](https://arxiv.org/abs/1706.03762), এবং তারা ট্রান্সফর্মার রেখেছিল, যেখানে প্রতিটি স্তর এবং নিউরনের সমষ্টি অ্যাটেনশন প্রয়োগ করেছে। + + +## [মেমরি নেটওয়ার্ক](https://www.youtube.com/watch?v=ycbMGyCPzvE&t=4575s) + + +মেমোরি নেটওয়ার্কগুলি ফেসবুকে এমন কাজ থেকে শুরু হয়েছে যা ২০১৪ সালে [Antoine Bordes](https://arxiv.org/abs/1410.3916) এবং [Sainbayar Sukhbaatar](https://arxiv.org/abs/1503.08895) দ্বারা ২০১৫ সালে শুরু হয়েছিল । + +একটি মেমরি নেটওয়ার্কের ধারণাটি হল আপনার মস্তিষ্কে দুটি গুরুত্বপূর্ণ অংশ রয়েছে: একটি হল ** কর্টেক্স **, যেখানে আপনার দীর্ঘমেয়াদী স্মৃতি রয়েছে। ** হিপ্পোক্যাম্পাস ** নামে পরিচিত নিউরনের একটি পৃথক অংশ রয়েছে যা কর্টেক্সের প্রায় সর্বত্র তাড়িত-বার্তাবহ প্রেরণ করে। হিপ্পোক্যাম্পাসটি স্বল্পমেয়াদী মেমরির জন্য ব্যবহার করা হয় বলে মনে করা হয়, তুলনামূলকভাবে স্বল্প সময়ের জন্য জিনিসগুলি স্মরণে রাখে । প্রচলিত তত্ত্বটি হ'ল আপনি যখন ঘুমাবেন, হিপ্পোক্যাম্পাসের সীমিত ক্ষমতা থাকার কারণে হিপ্পোক্যাম্পাস থেকে কর্টেক্সে প্রচুর পরিমাণে স্থানান্তরিত হয় দীর্ঘমেয়াদী স্মৃতিতে দৃঢ়তর হওয়ার জন্য। + +একটি মেমরি নেটওয়ার্কের জন্য, নেটওয়ার্কে একটি ইনপুট রয়েছে, $x$ (এটিকে মেমরির একটি ঠিকানা হিসাবে মনে করুন), এবং এই $x$ টিকে একটি ডট গুণফলের মাধ্যমে $k_1, k_2, k_3, \cdots$ ("keys") ভেক্টরগুলির সাথে তুলনা করুন । এগুলি একটি সফটম্যাক্সের মারফত রেখে, আপনি যা পান তা হল সংখ্যার অ্যারে (array) বিন্যাস যাদের সমষ্টিগত মান হয় ১। এবং অন্যান্য ভেক্টরগুলির একটি সেট রয়েছে $v_1, v_2, v_3, \cdots$ ("মান")। সফটম্যাক্স থেকে স্কেলারগুলির সাহায্যে এই ভেক্টরগুলিকে গুণ করুন এবং এই ভেক্টরগুলি যোগ করুন (অ্যাটেনশন ব্যবস্থার সাথে সাদৃশ্যটি নোট করুন) , যার পরিপ্রেক্ষিতে আপনাকে ফলাফল দেয়। + +
+
+ +চিত্র ৭:মেমরি নেটওয়ার্ক +
+ + +কী গুলির মধ্যে একটি যদি (*e.g.* $k_i$) হুবহু $x$ এর সাথে মিলে যায়, তবে এই কী-টির সাথে যুক্ত সহগ একটির খুব কাছাকাছি থাকবে। সুতরাং সিস্টেমের আউটপুটটি মূলত $v_i$ হবে। + +এটি ** অ্যাড্রেসেবল এসোসিয়েটিভ মেমরি **। সহযোগী মেমোরিটি হল যদি আপনার ইনপুট কোনও কী-টির সাথে মেলে, আপনি * সেই * মানটি পাবেন। এবং এটি নিজের একটি সফট ডিফারেন্সিয়াল সংস্করণ, যা আপনাকে গ্র্যাডিয়েন্ট বংশোদ্ভূত মাধ্যমে ভেক্টরগুলিকে ব্যাকপ্রোপাগেট করতে এবং পরিবর্তন করতে দেয়। + +লেখকরা যা করেছিলেন তা হল একটি সিস্টেমকে বাক্যগুলির ক্রম অনুসারে একটি গল্প বলেছিলেন। বাক্যগুলি ভেক্টরগুলিতে একটি নিউরাল নেট দ্বারা চালিত হয়ে এনকোড করা হয় যা পূর্বে ট্রেইন করা হয়নি। বাক্যগুলি এই ধরণের মেমরিতে ফিরে আসে। আপনি যখন সিস্টেমে কোনও প্রশ্ন জিজ্ঞাসা করেন, আপনি প্রশ্নটি এনকোড করে নিউরাল নেট এর ইনপুট হিসাবে রাখেন, নিউরাল নেট মেমরিতে একটি $x$ উত্পাদন করে এবং মেমরিটি একটি মান দেয়। + +এই মানটি, নেটওয়ার্কের পূর্বের অবস্থার সাথে একসাথে, মেমরিটিকে পুনরায় অ্যাক্সেস করতে ব্যবহৃত হয়। এবং আপনি আপনার প্রশ্নের উত্তর তৈরি করতে এই পুরো নেটওয়ার্কটিকে প্রশিক্ষণ দিন। ব্যাপক প্রশিক্ষণের পরে, এই মডেলটি আসলে গল্পগুলি সঞ্চয় করতে এবং প্রশ্নের উত্তর দিতে শেখে। +$$ +\alpha_i = k_i^\top x \\ +c = \text{softmax}(\alpha) \\ +s = \sum_i c_i v_i +$$ + + +মেমোরি নেটওয়ার্কে, একটি নিউরাল নেট রয়েছে যা একটি ইনপুট নেয় এবং তারপরে মেমরির জন্য একটি ঠিকানা তৈরি করে, নেটওয়ার্কে ফিরে আসার মান পায়, চালিয়ে যায় এবং অবশেষে একটি আউটপুট তৈরি করে। এটি অনেকটা কম্পিউটারের মতো, যেহেতু এখানে একটি সিপিইউ এবং পড়া এবং লেখার জন্য একটি বাহ্যিক মেমরি রয়েছে। +
+ +
+ + +চিত্র ৮: মেমরি নেটওয়ার্ক এবং কম্পিউটারের তুলনা (ছবি কৃতজ্ঞতা Khan Acadamy) +
+ + +এমন লোকেরা আছেন যারা কল্পনা করেন যে আপনি এটির বাইরে ** পার্থক্যযোগ্য কম্পিউটার ** তৈরি করতে পারবেন। এর একটি উদাহরণ হ'ল ডিপমাইন্ডের [Neural Touring Machine](https://arxiv.org/abs/1410.5401), যা ফেসবুকের পেপারটি arXivতে প্রকাশিত হওয়ার তিন দিন পরে প্রকাশ করা হয়েছিল। + +ধারণাটি হল কী-গুলির সাথে ইনপুটগুলি তুলনা করা, সহগ তৈরি করা এবং মানগুলি উত্পাদন করা - যা মূলত ট্রান্সফর্মারের কাজ। একটি ট্রান্সফর্মার মূলত একটি নিউরাল নেট যেখানে প্রতিটি নিউরনের গ্রুপ এই নেটওয়ার্কগুলির মধ্যে একটি। diff --git a/docs/bn/week06/06-3.md b/docs/bn/week06/06-3.md new file mode 100644 index 000000000..f7d8f4999 --- /dev/null +++ b/docs/bn/week06/06-3.md @@ -0,0 +1,400 @@ +--- +lang-ref: ch.06-3 +title: RNN এবং LSTM মডেলের আর্কিটেকচার +lecturer: Alfredo Canziani +authors: Zhengyuan Ding, Biao Huang, Lin Jiang, Nhung Le +date: 3 Mar 2020 +lang: bn +translation-date: 11 Mar 2021 +translator: Mahbuba Tasmin +--- + + +## [সার্বিক পরিদর্শন](https://www.youtube.com/watch?v=8cAffg2jaT0&t=21s) + + + +আরএনএন হল এক ধরণের আর্কিটেকচার যা আমরা ব্যবহার করতে পারি ডেটা সিক্যুয়েন্সগুলি নিয়ে কাজ করতে। ক্রম কি? সিএনএন পাঠ থেকে আমরা শিখেছি যে ডোমেনের উপর নির্ভর করে একটি সংকেত 1D, 2D বা 3D হতে পারে। আপনি কী থেকে ম্যাপিং করছেন এবং আপনি কী ম্যাপিং করছেন তা দ্বারা ডোমেনটি সংজ্ঞায়িত করা হয়। অনুক্রমিক ডেটা হ্যান্ডলিং মূলত 1D ডেটা নিয়ে কাজ করে যেহেতু ডোমেনটি অস্থায়ী অক্ষ হয়। তবুও, আপনি 2 ডি ডেটা ব্যবহার করতে আরএনএন ব্যবহার করতে পারেন, যেখানে আপনার দুটি দিক রয়েছে। + +### ভ্যানিলা *বনাম.* রিকারেন্ট এনএন + + + +চিত্র-১ হল তিনটি স্তর সহ একটি ভ্যানিলা নিউরাল নেটওয়ার্কের ডায়াগ্রাম। "ভ্যানিলা" একটি আমেরিকান শব্দ যার অর্থ সমতল। গোলাপী বুদ্বুদ হল ইনপুট ভেক্টর X, এর মাঝখানে সবুজ রঙের মধ্যে হিডেন লেয়ার এবং চূড়ান্ত নীল স্তরটি আউটপুট। ডানদিকের ডিজিটাল ইলেকট্রনিক্স থেকে একটি উদাহরণ ব্যবহার করে, এটি একটি যৌথ যুক্তির মতো, যেখানে বর্তমান আউটপুট কেবলমাত্র বর্তমান ইনপুটটির উপর নির্ভর করে। +
+
+ +চিত্র ১ঃ ভ্যানিলা আর্কিটেকচার +
+ + +ভ্যানিলা নিউরাল নেটওয়ার্কের বিপরীতে, রিকারেন্ট নিউরাল নেটওয়ার্কগুলিতে বর্তমান আউটপুট কেবল বর্তমান ইনপুটের উপর নির্ভর করে না, চিত্র 2-তে প্রদর্শিত সিস্টেমের অবস্থার উপরও নির্ভর করে, এটি ডিজিটাল ইলেক্ট্রনিক্সের অনুক্রমিক যুক্তির মতো, যেখানে আউটপুটটিও একটি "ফ্লিপ-ফ্লপ" (ডিজিটাল ইলেকট্রনিক্সের একটি বেসিক মেমরি ইউনিট) এর উপর নির্ভর করে। সুতরাং এখানে মূল পার্থক্যটি হল ভ্যানিলা নিউরাল নেটওয়ার্কের আউটপুট কেবলমাত্র বর্তমান ইনপুটের উপর নির্ভর করে, যখন RNN এর একটি সিস্টেমের অবস্থার উপরও নির্ভর করে। +
+
+ +চিত্র ২ঃ আরএনএন আর্কিটেকচার +
+ +
+
+ +চিত্র ৩ঃ প্রাথমিক এনএন আর্কিটেকচার +
+ + +ইয়ান এর ডায়াগ্রামে এই আকৃতি গুলোকে নিউরনের মধ্যে যুক্ত করা হয় যাতে করে একটি টেনসর এবং অন্যটির মধ্যে একটি ম্যাপিং উপস্থাপন করা হয় (একটি ভেক্টর থেকে অন্য ভেক্টরে)। উদাহরণস্বরূপ, চিত্র ৩-এ, ইনপুট ভেক্টর X এই অতিরিক্ত আইটেমটির মাধ্যমে হিডেন উপস্থাপনা h- এর জন্য মানচিত্র তৈরি করবে । এই আইটেমটি আসলে একটি অ্যাফাইন ট্রান্সফরমেশন * অর্থাত্ * ঘূর্ণন প্লাস বিকৃতি। তারপরে অন্য রূপান্তরের মাধ্যমে আমরা হিডেন লেয়ার থেকে চূড়ান্ত আউটপুটটিতে পৌঁছে যাই। একইভাবে, আরএনএন ডায়াগ্রামে নিউরনের মধ্যে একই অতিরিক্ত আইটেম থাকতে পারে। + +
+
+ +চিত্র ৪ঃ ইয়ানের আরএনএন আর্কিটেকচার +
+ + + +### চার ধরণের আরএনএন আর্কিটেকচার এবং উদাহরণ + + +প্রথম কেসটি সিকোয়েন্সের ভেক্টর। ইনপুটটি একটি বুদবুদ এবং তারপরে এই সবুজ বুদবুদ হিসাবে বর্ণিত সিস্টেমের অভ্যন্তরীণ অবস্থার বিবর্তন হবে। সিস্টেমের অবস্থা যেমন বিকশিত হয় ততবার প্রতিটি ধাপে একটি নির্দিষ্ট আউটপুট আসবে। +
+
+ +চিত্র ৫ঃ ভেক্টর টু সিকোয়েন্স +
+ + +এই ধরণের আর্কিটেকচারের উদাহরণ হল ইনপুটটি একটি চিত্র হিসাবে থাকে তবে আউটপুটটি শব্দের অনুক্রম হবে যা ইনপুট চিত্রের ইংরেজী বিবরণ উপস্থাপন করে। চিত্র-৬ ব্যবহার করে ব্যাখ্যা করার জন্য, এখানে প্রতিটি নীল বুদ্বুদ ইংরেজি শব্দের অভিধানে একটি সূচক হতে পারে। উদাহরণস্বরূপ, যদি আউটপুটটি এই বাক্যটি হয় "এটি হলুদ স্কুল বাস"। আপনি প্রথমে "এটি" শব্দের সূচি টি পান এবং তারপরে "হয়" শব্দের সূচি পেতে পারেন ইত্যাদি । এই নেটওয়ার্কের কিছু ফলাফল নীচে দেখানো হয়েছে। উদাহরণস্বরূপ, প্রথম কলামে শেষ চিত্রটি সম্পর্কিত বিবরণটি হ'ল "একটি শুকনো ঘাসের ক্ষেত পেরিয়ে হাতির একটি পাল হাঁটছে", যা খুব ভালভাবে পরিশ্রুত। তারপরে দ্বিতীয় কলামে, প্রথম চিত্রটি "দুটি কুকুর ঘাসে খেলবে" ", যখন এটিতে আসলে তিনটি কুকুর আছে। শেষ কলামে আরও বেশি ভুল উদাহরণ রয়েছে যেমন "একটি পার্কিংয়ের জায়গায় একটি হলুদ স্কুল বাস"। সাধারণভাবে, এই ফলাফলগুলি দেখায় যে এই নেটওয়ার্কটি বেশ মারাত্মকভাবে ব্যর্থ হতে পারে এবং কখনও কখনও ভাল সম্পাদন করতে পারে। এটি এমন একটি প্রেক্ষাপট যেখানে একটি ইনপুট ভেক্টর থেকে, যা একটি চিত্রের প্রতিনিধিত্ব করে, প্রতীকগুলির অনুক্রম হয়, যা উদাহরণস্বরূপ অক্ষর বা শব্দের জন্য ইংরেজি বাক্যগুলি তৈরি করে। এই ধরণের আর্কিটেকচারকে অটোরেগ্রেসিভ নেটওয়ার্ক বলা হয়। একটি অটোরেগ্রেসিভ নেটওয়ার্ক এমন একটি নেটওয়ার্ক যাতে পূর্ববর্তী আউটপুটটিকে ইনপুট হিসাবে ব্যবহার করার পরিপ্রেক্ষিতে এমন একটি আউটপুট দেয়। + +
+
+ +চিত্র ৬ঃ ভেক্টর টূ সিকোয়েন্স উদাহরণঃ ছবি থেকে পাঠ্য +
+ + +দ্বিতীয় প্রকারটি একটি চূড়ান্ত ভেক্টরের ক্রম। এই নেটওয়ার্কটি প্রতীকগুলির ক্রমকে ব্যবহার করতে থাকে এবং কেবল শেষে একটি চূড়ান্ত আউটপুট দেয়। পাইথনের ব্যাখ্যার জন্য এর একটি অ্যাপ্লিকেশনটি নেটওয়ার্কটি ব্যবহার করতে পারে। উদাহরণস্বরূপ, ইনপুটটি পাইথন প্রোগ্রামের এই লাইনগুলি। + +
+
+ +চিত্র ৭ঃ সিকোয়েন্স টু ভেক্টর +
+ +
+
+ +চিত্র ৮ঃ পাইথন কোডের ইনপুট লাইনস +
+ + +তারপরে নেটওয়ার্ক এই প্রোগ্রামটির সঠিক সমাধানটি আউটপুট করতে সক্ষম হবে। এর মতো আরও জটিল প্রোগ্রাম: +
+
+ +চিত্র ৯ঃ অপেক্ষাকৃত পূর্ণ ক্ষেত্রের পাইথন কোডের ইনপুট লাইনস +
+ + +তারপরে আউটপুটটি ১২১৮৪ হওয়া উচিত। এই দুটি উদাহরণ প্রদর্শিত হয় যে আপনি এই ধরণের অপারেশন করতে নিউরাল নেটওয়ার্ককে প্রশিক্ষণ দিতে পারেন। আমাদের কেবল একটি চিহ্নের ক্রম ব্যবহার করতে হবে এবং একটি নির্দিষ্ট মান হিসাবে চূড়ান্ত আউটপুট প্রয়োগ করতে হবে। + +তৃতীয়টি ভেক্টর থেকে সিক্যুয়েন্সের ক্রম, চিত্র -১০ এ দেখানো হয়েছে। এই আর্কিটেকচারটি ভাষা অনুবাদ সম্পাদনের মানক উপায় হিসাবে ব্যবহৃত হত। আপনি এখানে গোলাপীতে দেখানো প্রতীকগুলির ক্রম দিয়ে শুরু করুন । তারপরে সবকিছু এই চূড়ান্ত-h এ সংশ্লেষিত হয়ে যায় যা একটি ধারণার প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, আমরা ইনপুট হিসাবে একটি বাক্য পেতে পারি এবং এটি একটি ভেক্টরে সাময়িকভাবে চেপে ধরতে পারি, যা অর্থ এবং বার্তাটি উপস্থাপন করে যা প্রেরণ করতে পারে। তারপরে যেকোন উপস্থাপনায় এই অর্থটি পাওয়ার পরে, নেটওয়ার্ক এটিকে আবার আলাদা ভাষায় তালিকাভুক্ত করে। উদাহরণস্বরূপ, "আজ আমি খুব খুশি" ইংরেজি শব্দের অনুক্রমে ইতালীয় বা চীনা অনুবাদ করা যেতে পারে। সাধারণভাবে, নেটওয়ার্ক ইনপুট হিসাবে এক ধরণের এনকোডিং পায় এবং এগুলি সংকীর্ণ উপস্থাপনায় রূপান্তরিত করে। অবশেষে, এটি একই সংকোচিত সংস্করণে ডিকোডিং সম্পাদন করে। +সাম্প্রতিক সময়ে আমরা ট্রান্সফরমারগুলির মতো নেটওয়ার্ক দেখেছি, যা আমরা পরবর্তী পাঠে কভার করব, ভাষা অনুবাদ কার্যগুলিতে এই পদ্ধতিটিকে ছাড়িয়ে যাবে। এই ধরণের আর্কিটেকচারটি প্রায় দুই বছর আগে (2018) স্টেট অফ দ্য আর্ট হিসাবে ব্যবহৃত হত। + +
+
+ +চিত্র ১০ঃ সিকোয়েন্স টু ভেক্টর টু সিকোয়েন্স +
+ + +আপনি যদি সুপ্ত স্পেসের উপর একটি পিসিএ করেন, আপনাকে শব্দার্থবিজ্ঞানের (সেমান্টিকস) দ্বারা শব্দগুলি এই গ্রাফের মতো দেখানো হবে। + +
+
+ +চিত্র ১১ঃ পিসিএ পরবর্তী সেমান্টিকস দ্বারা গুচ্ছকৃত শব্রি +
+ + +আমরা যদি জুম করি তবে আমরা দেখতে পাব যে একই অবস্থানটিতে জানুয়ারি এবং নভেম্বর এর মতো সমস্ত মাস রয়েছে। +
+
+--> +চিত্র ১২ঃ শব্দ গুচ্ছে জুম করে দেখা +
+ + +আপনি যদি কোনও আলাদা অঞ্চলে মনোনিবেশ করেন তবে আপনি "কয়েক দিন আগে" "পরের কয়েক মাস" ইত্যাদির মত বাক্যাংশ পান +
+
+ +চিত্র ১৩ঃ অন্য অঞ্চলের শব্দ গুচ্ছ +
+ + +এই উদাহরণগুলি থেকে আমরা দেখতে পাচ্ছি যে বিভিন্ন অবস্থানের কিছু নির্দিষ্ট সাধারণ অর্থ থাকবে। + + +চিত্র -১৪ দেখায় যে কীভাবে এই ধরণের নেটওয়ার্ক প্রশিক্ষণ দেওয়ার মাধ্যমে কিছু শব্দার্থবিজ্ঞানের বৈশিষ্ট্য দেখা যায়। এক্ষেত্রে উদাহরণ রূপে আপনি দেখতে পাচ্ছেন যে একজন ভেক্টর পুরুষকে মহিলার সাথে এবং আরেকজন রাজা ও রানির সাথে সংযুক্ত করছেন, যার অর্থ মহিলা বিয়োগ পুরুষ রানী বিয়োগের রাজার সমান হতে চলেছে। আপনি এই এমবেডিং স্পেসে একই দূরত্বটি পাবেন যা পুরুষ-মহিলার মতো ক্ষেত্রে প্রযোজ্য। আরেকটি উদাহরণ হবে হাঁটছে থেকে হেঁটেছিল এবং সাঁতার করছে থেকে সাঁতার করেছিল। আপনি সর্বদা এই রকম শব্দের নির্দিষ্ট রৈখিক রূপান্তর একরকম শব্দ থেকে অন্য শব্দে কিংবা দেশ থেকে রাজধানীতে প্রয়োগ করতে পারেন। + +
+
+ +চিত্র ১৪ঃ ট্রেইনিং কালে বাছাইকৃত সেমান্টিকস বৈশিষ্ট্য +
+ + +চতুর্থ এবং চূড়ান্ত কেসটি সিকোয়েন্সের ক্রম। এই ইনপুটটিতে আপনি ইনপুট ব্যবহার শুরু করার সাথে সাথে নেটওয়ার্ক আউটপুট উত্পন্ন করতে শুরু করে। এই ধরণের আর্কিটেকচারের উদাহরণ T9, আপনি যদি কোনও নোকিয়া ফোন ব্যবহার করে থাকেন, তবে আপনি টাইপ করার সাথে সাথে লেখ্যর পরামর্শ পেয়েছিলেন । অন্য উদাহরণটি হচ্ছে বক্তব্য থেকে শিরোনাম থেকে বক্তব্য। একটি দুর্দান্ত উদাহরণ হলেন এই আরএনএন-রাইটার। আপনি যখন "শনির আংটি জ্বলজ্বল করার সময়" টাইপ করা শুরু করেন, এটি উল্লেখিত "দু'জন একে অপরের দিকে তাকাতে" পরামর্শ দেয়। এই নেটওয়ার্কটি কিছু বিজ্ঞান ভিত্তিক উপন্যাসে প্রশিক্ষিত হয়েছিল যাতে আপনি কেবল কিছু টাইপ করতে পারেন এবং আপনাকে একটি বই লিখতে সহায়তা করার জন্য পরামর্শ দেওয়ার সুযোগ দেয়। আরও একটি উদাহরণ চিত্র-১৬ এ প্রদর্শিত হয়েছে। আপনি শীর্ষ প্রম্পটটি ইনপুট করুন এবং তারপরে এই নেটওয়ার্কটি বাকিটি সম্পূর্ণ করার চেষ্টা করবে। +
+
+ +চিত্র ১৫ঃ সিকোয়েন্স টূ সিকোয়েন্স +
+ +
+
+ +চিত্র ১৬ঃ সিকোয়েন্স টূ সিকোয়েন্স মডেলের টেক্সট অটো-কমপ্লিশন মডেল +
+ +## [সময়ের সাথে ব্যাক-প্রোপাগেশন](https://www.youtube.com/watch?v=8cAffg2jaT0&t=855s) + + + +### মডেল আর্কিটেকচার + + +আরএনএনকে প্রশিক্ষণের জন্য, সময়ের সাথে ব্যাক-প্রোপাগেশন (বিপিটিটি) অবশ্যই ব্যবহার করতে হবে। আরএনএন এর মডেল আর্কিটেকচারটি নীচের চিত্রে দেওয়া হয়েছে। বাম নকশাটি লুপের উপস্থাপনা ব্যবহার করে যখন ডান চিত্রটি সময়ের সাথে সাথে একটি সারিতে লুপটি প্রকাশ করে। +
+
+ +চিত্র ১৭ঃ সময়ের সাথে ব্যাক-প্রোপাগেশন +
+ + +হিডেন উপস্থাপনা বর্ণিত হয় নিম্নরূপে + +$$ +\begin{aligned} +\begin{cases} +h[t]&= g(W_{h}\begin{bmatrix} +x[t] \\ +h[t-1] +\end{bmatrix} ++b_h) \\ +h[0]&\dot=\ \boldsymbol{0},\ W_h\dot=\left[ W_{hx} W_{hh}\right] \\ +\hat{y}[t]&= g(W_yh[t]+b_y) +\end{cases} +\end{aligned} +$$ + + +প্রথম সমীকরণটি ইনপুটটির স্ট্যাক সংস্করণের ঘূর্ণনের উপর প্রয়োগ করা একটি নন -লিনিয়ার ফাংশন নির্দেশ করে যেখানে হিডেন স্তরের পূর্ববর্তী কনফিগারেশন সংযুক্ত করা হয়। শুরুতে, $h[0]$ সেট করা আছে 0 মান হিসেবে। সমীকরণটি সহজ করার জন্য, $W_h$ কে দুটি পৃথক ম্যাট্রিক হিসাবে লেখা যায়, $\left[ W_{hx}\ W_{hh}\right]$, এভাবে কখনও কখনও রূপান্তর হিসাবে বলা যেতে পারে । + +$$ +W_{hx}\cdot x[t]+W_{hh}\cdot h[t-1] +$$ + + +যা ইনপুটটির স্ট্যাক উপস্থাপনার সাথে মিলে যায়। + + + +$y[t]$ চূড়ান্ত রোটেশনের সময় গণনা করা হয় এবং তারপরে আমরা ত্রুটিটিকে আগের সময়ের ধাপে ব্যাকপ্রোপাগেট করতে চেইন বিধিটি ব্যবহার করতে পারি। + + +### ভাষা মডেলিংয়ে ব্যাচ-ইফিকেশন + + +প্রতীকগুলির ক্রম নিয়ে কাজ করার সময়, আমরা লেখ্যটি বিভিন্ন আকারে দলভুক্ত করতে পারি। উদাহরণস্বরূপ, নিম্নলিখিত চিত্রটিতে প্রদর্শিত ক্রমগুলির সাথে কাজ করার সময়, ব্যাচ-ইফিকেশন প্রথমে প্রয়োগ করা যেতে পারে, যেখানে সময় ডোমেনটি উল্লম্বভাবে সংরক্ষণ করা হয়। এই ক্ষেত্রে, ব্যাচের আকার ৪ এ সেট করা আছে। +
+
+ +চিত্র ১৮ঃ ব্যাচ-ইফিকেশন +
+ + +বিপিটিটি পিরিয়ড $T$ ৩ এ সেট করা থাকলে, আরএনএন-এর জন্য প্রথম ইনপুট $x[1: T]$ এবং আউটপুট $y[1: T]$ হিসাবে নির্ধারিত হয়। + +$$ +\begin{aligned} +x[1:T] &= \begin{bmatrix} +a & g & m & s \\ +b & h & n & t \\ +c & i & o & u \\ +\end{bmatrix} \\ +y[1:T] &= \begin{bmatrix} +b & h & n & t \\ +c & i & o & u \\ +d & j & p & v +\end{bmatrix} +\end{aligned} +$$ + + +প্রথম ব্যাচে আরএনএন করার সময়, প্রথমত, আমরা আরএনএন-তে $x[1] = [a\ g\ m\ s]$ ব্যবহার করি এবং আউটপুটকে $y[1] = [b\ h\ n\ t]$ হতে বাধ্য করি। $x[2]$ থেকে +$y[2]$ কে আরএনএন দ্বারা পূর্বাভাসে সহায়তা করার জন্য হিডেন উপস্থাপনা $h[1]$ টিকে পরবর্তী সময় ধাপে প্রেরণ করা হবে। $x[T]$ এবং $y[T]$ এর চূড়ান্ত সেটে +$h[T-1]$ প্রেরণের পরে, আমরা $h[T]$ এবং $h[0]$ উভয়ের জন্য গ্র্যাডিয়েন্ট প্রোপাগেশন প্রক্রিয়াটি কেটে দিলাম যাতে করে গ্র্যাডিয়েন্ট গুলো অসম্পূর্ণভাবে প্রোপাগেট করবে না (.detach () in Pytorch) । পুরো প্রক্রিয়াটি নীচের চিত্রে দেখানো হয়েছে। +
+
+ +চিত্র ১৯ঃ ব্যাচ-ইফিকেশন +
+ + +## ভ্যানিশিং এবং এক্সপ্লোডিং গ্র্যাডিয়েন্ট + + + +### সমস্যা +
+
+ +চিত্র ২০ঃ বিলীয়মান সমস্যা +
+ + +উপরের চিত্রটি একটি সাধারণ আরএনএন আর্কিটেকচার। আরএনএন-এ পূর্ববর্তী পদক্ষেপগুলির উপর রোটেশন করার জন্য, আমরা ম্যাট্রিক্স ব্যবহার করি, যা উপরের মডেলটিতে অনুভূমিক তীর হিসাবে বিবেচিত হতে পারে। যেহেতু ম্যাট্রিকগুলি আউটপুটগুলির আকার পরিবর্তন করতে পারে, নির্বাচিত নির্ধারক যদি 1 এর চেয়ে বড় হয় তবে গ্র্যাডিয়েন্ট সময়ের সাথে সাথে উত্থিত হয় এবং গ্র্যাডিয়েন্ট এক্সপ্লোশন ঘটায়। তুলনামূলকভাবে বলতে গেলে, আমরা যে আইজেন ভ্যালু টি নির্বাচন করি তা যদি 0 এর কাছাকাছি ছোট হয় তবে প্রোপাগেশন প্রক্রিয়াটি গ্র্যাডিয়েন্টগুলি সঙ্কুচিত করবে এবং গ্র্যাডিয়েন্ট বিলুপ্ত হয়ে যাবে। + +সাধারণ আরএনএনগুলিতে, গ্র্যাডিয়েন্টগুলি সমস্ত সম্ভাব্য তীরগুলির মধ্য দিয়ে প্রোপাগেট করা হবে, যা গ্র্যাডিয়েন্টগুলি বিলুপ্ত বা এক্সপ্লোশনের একটি বৃহৎ সুযোগ তৈরি করে। উদাহরণস্বরূপ, সময় ধাপ ১-এর গ্র্যাডিয়েন্টটি বড়, যা উজ্জ্বল রঙ দ্বারা নির্দেশিত। যখন এটি একটি আবর্তনের মধ্য দিয়ে যায়, গ্র্যাডিয়েন্টটি অনেকগুলি সঙ্কুচিত হয় এবং সময়-৩ এ এটি শেষ হয়। + + +### সমাধান + +গ্র্যাডিয়েন্টগুলি এক্সপ্লোড হওয়া বা বিলীন হওয়া থেকে রক্ষা করার জন্য একটি আদর্শ হল সংযোগগুলি এড়িয়ে যাওয়া (স্কিপ কানেকশন)। এটি পূরণ করতে, একাধিক নেটওয়ার্ক ব্যবহার করা যেতে পারে। +
+
+ +চিত্র ২১ঃ স্কিপ কানেকশন +
+ + +উপরের ক্ষেত্রে, আমরা মূল নেটওয়ার্কটি ৪টি নেটওয়ার্কে বিভক্ত করি। উদাহরণস্বরূপ প্রথম নেটওয়ার্ক নিন। এটি সময় ধাপ ১-এ ইনপুট থেকে একটি মান গ্রহণ করে এবং আউটপুটটিকে হিডেন লেয়ারের প্রথম মধ্যবর্তী স্টেটে প্রেরণ করে। স্টেটটিতে আরও ৩টি নেটওয়ার্ক রয়েছে যেখানে $\circ$s\গ্র্যাডিয়েন্ট গুলোকে কাজ করার সুযোগ দেয় যখন $-$s প্রোপাগেশনে বাধা দেয় । যেমন একটি কৌশলকে গেটেড রিকারেন্ট নেটওয়ার্ক বলা হয়। + +এলএসটিএম হল একটি প্রচলিত গেটেড আরএনএন এবং নিম্নলিখিত বিভাগে বিস্তারিতভাবে চালু করা হয়েছে। + +## [লং শর্ট-টার্ম মেমরি](https://www.youtube.com/watch?v=8cAffg2jaT0&t=1838s) + +### মডেল আর্কিটেকচার + + +নীচে একটি এলএসটিএম প্রকাশের সমীকরণ রয়েছে। ইনপুট গেটটি হলুদ বাক্স দ্বারা হাইলাইট করা হয়েছে, এটি একটি অ্যাফাইন ট্রান্সফর্মেশন হবে। এই ইনপুট রূপান্তরটি গুণমান হবে $c[t]$, যা আমাদের প্রার্থী গেট। +
+
+ +চিত্র ২২ঃ এলএসটিএম আর্কিটেকচার +
+ + +ডোন্ট ফরগেট গেটটি সেল মেমরির আগের মানটি $c[t-1]$ গুণ করে চলেছে। $c[t]$ সেলের মোট মান হচ্ছে ইনপুট গেট এবং ডোন্ট ফরগেট গেটের সমষ্টি। চূড়ান্ত হিডেন উপস্থাপনা হল আউটপুট গেট $o[t]$ এবং $c[t]$ সেলের হাইপারবোলিক ট্যানজেন্ট সংস্করণ এর মধ্যে উপাদান অনুসারে গুণ,যাতে করে জিনিসগুলি আবদ্ধ থাকে । পরিশেষে, প্রার্থীর গেট $\tilde{c}[t]$ কেবল একটি রিকারেন্ট নেট। সুতরাং আমাদের কাছে আউটপুট নিয়ন্ত্রণ করার জন্য একটি $o[t]$ আছে , ডোন্ট ফরগেট গেটটি নিয়ন্ত্রণের জন্য একটি $f[t]$ এবং ইনপুট গেটটি নিয়ন্ত্রণের জন্য একটি $i[t]$ রয়েছে। মেমরি এবং গেটগুলির মধ্যে এই সমস্ত কার্যকলাপ হল গুণ মূলক কার্যপ্রণালী । $i[t]$, $f[t]$ এবং $o[t]$ সবগুলো হল সিগময়েড, ০ থেকে ১-এ চলেছে। অতএব, শূন্য দ্বারা গুণ করলে, আপনার একটি ক্লোজড গেট থাকে। যখন এক দ্বারা গুণ করা হচ্ছে , আপনার একটি ওপেন গেট আছে। + +কিভাবে আমরা আউটপুট বন্ধ করব? ধরা যাক আমাদের বেগুনি রঙের অভ্যন্তরীণ উপস্থাপনা রয়েছে $th$ এবং আউটপুট গেটে একটি শূন্য রেখেছি। তারপরে আউটপুট শূন্য হবে কোন কিছুর দ্বারা গুণ করলে এবং আমরা একটি শূন্য পাই। যদি আমরা একটি আউটপুট গেটে রাখি তবে আমরা বেগুনি উপস্থাপনার সমান মান পাব। +
+
+ +চিত্র ২৩ঃ এলএসটিএম আর্কিটেকচার - আউটপুট অন +
+ +
+
+ +চিত্র ২৪ঃ এলএসটিএম আর্কিটেকচার - আউটপুট অফ +
+ + +একইভাবে, আমরা মেমরি নিয়ন্ত্রণ করতে পারি। উদাহরণস্বরূপ, আমরা $f[t]$ এবং $i[t]$ জিরো থাকার মাধ্যমে এটি পুনরায় সেট করতে পারি। গুণ এবং যোগের পরে, আমাদের মেমরির ভিতরে একটি শূন্য রয়েছে। অন্যথায়, আমরা এখনও অভ্যন্তরীণ উপস্থাপনা $th$-কে শূন্য করে মেমরিটি রাখতে পারি তবে $f[t]$ এ রাখতে পারি একটি ১ রেখে। সুতরাং, যোগফলটি $c[t-1]$ পায় এবং এটি প্রেরণ করেই চলে। অবশেষে, আমরা এমনটি লিখতে পারি যে আমরা ইনপুট গেটে একটি ১ পেতে পারি, গুণটি বেগুনি হয়ে যায়, তারপর ডোন্ট ফরগেট গেটে একটি শূন্য সেট করুন যাতে এটি আসলে ভুলে যায়। +
+
+ +চিত্র ২৫ঃ মেমরি সেল দৃশ্যায়ন +
+ +
+
+ +চিত্র ২৬ঃ এলএসটিএম আর্কিটেকচার - রিসেট মেমরি +
+ +
+
+ +চিত্র ২৭ঃ এলএসটিএম আর্কিটেকচার - কিপ মেমরি +
+ +
+
+ +চিত্র ২৮ঃ এলএসটিএম আর্কিটেকচার - রাইট মেমরি +
+ + + +## নোটবুকের উদাহরণ সমূহ + + + +### সিকোয়েন্স শ্রেণিবিন্যাস + + +লক্ষ্যটি হচ্ছে ক্রম শ্রেণিবদ্ধ করা। উপাদান এবং লক্ষ্যগুলি স্থানীয়ভাবে প্রতিনিধিত্ব করা হয় (কেবলমাত্র একটি শূন্য বিটযুক্ত ইনপুট ভেক্টর)। ক্রমটি **শু**রু হয় একটি `B` দিয়ে , **শে**ষ হয় একটি `E` দিয়ে ("ট্রিগার প্রতীক") এবং অন্যথায় সেট `{a, b, c, d}` থেকে এলোমেলোভাবে নির্বাচিত প্রতীকগুলি নিয়ে গঠিত হয় শুধুমাত্র $t_1$ এবং $t_2$ পজিশনে দুটি উপাদান `X` বা `Y`ছাড়া । `ডিফিকাল্টি লেভেল.হার্ড` এর ক্ষেত্রে , অনুক্রমের দৈর্ঘ্যটি এলোমেলোভাবে ১০০ এবং ১১০ এর মধ্যে বেছে নেওয়া হয়েছে, $t_1$ এলোমেলোভাবে ১০ এবং ২০ এর মধ্যে এবং $t_2$ এলোমেলোভাবে ৫০ এবং ৬০ এর মধ্যে নির্বাচিত হয়। ৪টি ক্রম শ্রেণি রয়েছে `Q`,`R`,`S`,এবং `U` যা `X` এবং` Y` এর অস্থায়ী আদেশের উপর নির্ভর করে ।বিধিগুলি হ'ল: `X, X -> Q`; `X, Y -> R`; `Y, X -> S`; `Y, Y -> U`। + +১)। ডেটাসেট এক্সপ্লোরেশন + + +ডেটা জেনারেটর থেকে রিটার্ন টাইপটি দৈর্ঘ্য ২ এর একটি টাপল। টাপলটির প্রথম আইটেম হচ্ছে $(32,9,8)$ আকারের একাধিক ক্রমের একটি ব্যাচ । এই ডেটাটি নেটওয়ার্কে ব্যবহার করা হবে। প্রতিটি সারিতে আটটি পৃথক চিহ্ন রয়েছে (`X`,` Y`, `a`,` b`, `c`,` d`, `B`,` E`)। প্রতিটি সারি একটি ওয়ান-হট ভেক্টর। সারিগুলির একটি ক্রম প্রতীকগুলির ক্রমকে উপস্থাপন করে। প্রথম সমস্ত -শূন্য সারিটি প্যাডিং। যখন সিকোয়েন্সের দৈর্ঘ্য ব্যাচের সর্বোচ্চ দৈর্ঘ্যের চেয়ে কম হয় আমরা প্যাডিং ব্যবহার করি। টাপলে থাকা দ্বিতীয় আইটেমটি হল $(32, 4)$ আকৃতির শ্রেণি লেবেলের সাথে সম্পর্কিত ব্যাচ , যেহেতু আমাদের ৪টি শ্রেণি (`Q`, `R`, `S`, এবং `U`) রয়েছে । প্রথম অনুক্রমটি হল: `BbXcXcbE` । তারপরে এর ডিকোডেড শ্রেণীর লেবেলটি হল $[1, 0, 0, 0 ]$ , যা ` Q` এর সাথে সম্পর্কিত। + +
+
+ +চিত্র ২৯ঃ ইনপুট ভেক্টর উদাহরণ +
+ + + +২)। সংজ্ঞায়িত মডেল এবং ট্রেইনিং + + +একটি সাধারণ রিকারেন্ট নেটওয়ার্ক তৈরি করুন, একটি এলএসটিএম, এবং ১০ ইপোকের জন্য প্রশিক্ষণ দিন। ট্রেইনিং লুপে আমাদের সর্বদা পাঁচটি ধাপ সন্ধান করা উচিত: + + * মডেলের ফরোয়ার্ড পাস সম্পাদন করুন + + * লস গণনা করুন + + * গ্র্যাডিয়েন্ট ক্যাশ শূন্য করুন + + * প্যারামিটারগুলির সাথে ক্ষতির আংশিক ডেরাইভেটিভ গণনা করার জন্য ব্যাকপ্রোপাগেট করুন + + * গ্র্যাডিয়েন্টের বিপরীত দিকে পদক্ষেপ + +
+
+ +চিত্র ৩০ঃ সাধারণ RNN *বনাম.* LSTM - ১০ ইপোক +
+ + +তুলনামূলক সহজ স্তরের কাঠিন্য মোকাবেলায়, আরএনএন ৫০% নির্ভুলতা পায় যখন এলএসটিএম ১০০% সঠিক ফলাফল পায় ১০ ইপোকের পরে । তবে এলএসটিএমের আরএনএন এর চেয়ে চারগুণ বেশি ওয়েটরয়েছে এবং এর দুটি হিডেন লেয়ার রয়েছে, সুতরাং এটি একটি উপযুক্ত তুলনা নয়। ১০০ ইপোকের পরে, আরএনএনও ১০০% নির্ভুলতা পায়, এলএসটিএম এর চেয়ে বেশি ট্রেইনিং নিতে সময় নেয়। +
+
+ +চিত্র ৩১ঃ সাধারণ RNN *বনাম.* LSTM - ১০০ ইপোক +
+ + +যদি আমরা ট্রেইনিং এর অংশটির (দীর্ঘতর ক্রম ব্যবহার করে) কাঠিন্য বাড়িয়ে তুলি তবে আমরা দেখতে পাব যে এলএসটিএম কাজ চালিয়ে যাচ্ছে যখন আরএনএন ব্যর্থ হবে। +
+
+ +চিত্র ৩২ঃ হিডেন স্টেটের মানের দৃশ্যায়ন +
+ + +উপরের দৃশ্যায়নটি এলএসটিএম-এ সময়ের সাথে হিডেন স্টেটের মান অঙ্কন করছে। আমরা হাইপারবোলিক ট্যানজেন্টের মাধ্যমে ইনপুটগুলি প্রেরণ করব, যেমন যদি ইনপুটটি $-2.5$ এর নীচে হয় তবে এটি $-1$ এ ম্যাপ করা হবে এবং এটি যদি $2.5$ এর উপরে হয় তবে এটি ম্যাপ করা হবে $1$ । সুতরাং এই ক্ষেত্রে, আমরা `X`(চিত্রের পঞ্চম সারিতে) বাছাই করা নির্দিষ্ট হিডেন লেয়ারটি দেখতে পাচ্ছি এবং তারপরে এটি অন্য `X` না পাওয়া পর্যন্ত এটি লাল হয়ে যায় । সুতরাং, ঘরের পঞ্চম হিডেন ইউনিটটি `X`পর্যবেক্ষণ করে ট্রিগার করা হয় এবং অন্য `X'` দেখে স্থির হয়ে যায় এটি আমাদের ক্রম শ্রেণিটি চিনতে সহায়তা করে। + + +### সিগন্যাল প্রতিধ্বনি + +সিগন্যাল এন-স্টেপগুলি প্রতিধ্বনিত করা বহু-বহু-সংখ্যক কাজের সামঞ্জস্য বিধান করার একটি উদাহরণ। উদাহরণস্বরূপ, প্রথম ইনপুট ক্রমটি হল `"1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 ..."` , এবং প্রথম লক্ষ্য ক্রমটি `"0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 ... "` । এই ক্ষেত্রে, আউটপুট তিন ধাপ পরে হয়। সুতরাং আমাদের তথ্য রাখতে প্রয়োজন একটি স্বল্প সময়ের সক্রিয় মেমরি। ভাষা মডেলটিতে, এটি এমন কিছু বলে যা ইতিমধ্যে বলা হয়নি। + + +আমরা পুরো ক্রমটি নেটওয়ার্কে প্রেরণ করার আগে এবং চূড়ান্ত লক্ষ্যটিকে কিছু হতে বাধ্য করার আগে, আমাদের দীর্ঘ ক্রমটি সামান্য খণ্ডে কাটাতে হবে। নতুন খণ্ডকে ব্যবহার করার সময়, আমাদের পরবর্তী গোটা অংশটি যুক্ত করার সময় হিডেন স্টেটের উপর নজর রাখতে হবে এবং এটি অভ্যন্তরীণ অবস্থায় ইনপুট হিসাবে প্রেরণ করতে হবে। এলএসটিএম-এ আপনি যতক্ষণ আপনার পর্যাপ্ত ধারণক্ষমতা রাখেন ততক্ষণ মেমরি দীর্ঘকাল ধরে রাখতে পারেন। আরএনএন-এ, আপনি একটি নির্দিষ্ট দৈর্ঘ্যে পৌঁছানোর পরে, অতীতে কী ঘটেছিল তা ভুলে যেতে শুরু করে। diff --git a/docs/bn/week06/06.md b/docs/bn/week06/06.md new file mode 100644 index 000000000..80aab23f2 --- /dev/null +++ b/docs/bn/week06/06.md @@ -0,0 +1,23 @@ +--- +lang-ref: ch.06 +title: সপ্তাহ ৬ +lang: bn +translation-date: 17 Jan 2021 +translator: Mahbuba Tasmin +--- + + +## লেকচার প্রথম ভাগ + +আমরা কনভলিউশনাল নিউরাল নেটওয়ার্কের তিনটি প্রয়োগ পদ্ধতি আলোচনা করেছি। অঙ্ক সনাক্তকরণ এবং পাঁচ অঙ্কের জিপ কোড সনাক্তকরণ দিয়ে শুরু করেছি । অবজেক্ট ডিটেকশনে আমরা আলোচনা করেছি কিভাবে মুখাবয়ব সনাক্তকরণে বহু-স্কেল সংযুক্ত কাঠামো ব্যবহার করা যায়। লেকচারটি শেষ হয়েছে কিভাবে কনভলিউশনাল নেট সেমান্টিক সেগমেন্টেশনে ব্যবহৃত হয়,রোবটিক ভিশন সিস্টেমের সাথে সম্পর্কিত এবং শহুরে পরিবেশে অবজেক্ট সেগমেন্টেশনের বাস্তব উদাহরণ দেখানো হয়েছে + + +## লেকচার দ্বিতীয় ভাগ + +এই পর্বে আমরা রিকারেন্ট নিউরাল নেটওয়ার্কস, সম্পর্কিত সমস্যা গুলো এবং সমাধানের সাধারণ কৌশলগুলি অনুসন্ধান করেছি। পরবর্তীতে আমরা কয়েক প্রকারে মডিউল পর্যালোচনা করেছি যেগুলো ব্যবহৃত হয় রিকারেন্ট মডেল সম্পর্কিত সমস্যা গুলো সমাধানে ( এরমধ্যে অন্তর্গত রয়েছে অ্যাটেনশন, জিআরইউ ( গেটেড রিকারেন্ট ইউনিট), এলএসটিএম ( লং শর্ট টার্ম মেমরি) এবং সিকুয়েন্স-টু-সিকুয়েন্স)। + + + +## প্রাক্টিক্যাল কোর্সওয়ার্ক + +ভ্যানিলা আরএনএন এবং এলএসটিএম মডেলের কাঠামো নিয়ে আলোচনা করেছি এবং দুটোর কর্ম ক্ষমতা পর্যালোচনা করেছি। আরএনএন এর সুবিধা সমূহ এলএসটিএম গ্রহণ করে, একই সাথে দীর্ঘ সময়ের জন্য তথ্য সংরক্ষণের উদ্দেশ্যে ‘মেমরি সেল’ সংযুক্ত করে আরএনএন এর দুর্বল দিক সংশোধন করে। এলএসটিএম মডেল উল্লেখযোগ্যভাবে আরএনএন এর চেয়ে ভালোভাবে সম্পাদন করে।