|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| RNNPyTorch.ipynb | ||
| RNNTF.ipynb | ||
| assignment.md | ||
README.md
ری کرنٹ نیورل نیٹ ورکس
لیکچر سے پہلے کا کوئز
پچھلے حصوں میں، ہم نے متن کی بھرپور معنوی نمائندگیوں اور ایمبیڈنگز کے اوپر ایک سادہ لکیری کلاسیفائر کا استعمال کیا۔ یہ آرکیٹیکچر جملے میں الفاظ کے مجموعی معنی کو پکڑتا ہے، لیکن یہ الفاظ کی ترتیب کو مدنظر نہیں رکھتا، کیونکہ ایمبیڈنگز پر کی گئی ایگریگیشن آپریشن نے اصل متن سے یہ معلومات ہٹا دی ہے۔ چونکہ یہ ماڈلز الفاظ کی ترتیب کو ماڈل کرنے سے قاصر ہیں، یہ زیادہ پیچیدہ یا مبہم کاموں جیسے کہ متن کی تخلیق یا سوالات کے جوابات دینے کو حل نہیں کر سکتے۔
متن کی ترتیب کے معنی کو سمجھنے کے لیے، ہمیں ایک اور نیورل نیٹ ورک آرکیٹیکچر استعمال کرنے کی ضرورت ہے، جسے ری کرنٹ نیورل نیٹ ورک یا RNN کہا جاتا ہے۔ RNN میں، ہم اپنے جملے کو نیٹ ورک کے ذریعے ایک وقت میں ایک علامت کے ذریعے گزارتے ہیں، اور نیٹ ورک کچھ حالت پیدا کرتا ہے، جسے ہم اگلی علامت کے ساتھ دوبارہ نیٹ ورک میں بھیجتے ہیں۔
تصویر مصنف کی جانب سے
دیے گئے ان پٹ سیکوئنس X0,...,Xn، RNN نیورل نیٹ ورک بلاکس کا ایک سلسلہ بناتا ہے، اور اس سلسلے کو اینڈ ٹو اینڈ بیک پروپیگیشن کے ذریعے تربیت دیتا ہے۔ ہر نیٹ ورک بلاک ایک جوڑی (Xi,Si) کو ان پٹ کے طور پر لیتا ہے، اور نتیجے میں Si+1 پیدا کرتا ہے۔ آخری حالت Sn یا (آؤٹ پٹ Yn) کو نتیجہ پیدا کرنے کے لیے ایک لکیری کلاسیفائر میں بھیجا جاتا ہے۔ تمام نیٹ ورک بلاکس ایک جیسے وزن کا اشتراک کرتے ہیں، اور ایک بیک پروپیگیشن پاس کے ذریعے اینڈ ٹو اینڈ تربیت دی جاتی ہے۔
چونکہ حالت ویکٹرز S0,...,Sn نیٹ ورک کے ذریعے منتقل کیے جاتے ہیں، یہ الفاظ کے درمیان ترتیب وار انحصار سیکھنے کے قابل ہوتا ہے۔ مثال کے طور پر، جب لفظ not سیکوئنس میں کہیں ظاہر ہوتا ہے، تو یہ حالت ویکٹر کے کچھ عناصر کو منفی کرنے کے لیے سیکھ سکتا ہے، جس کے نتیجے میں نفی ہوتی ہے۔
✅ چونکہ اوپر دی گئی تصویر میں تمام RNN بلاکس کے وزن مشترک ہیں، اسی تصویر کو ایک بلاک (دائیں طرف) کے طور پر ظاہر کیا جا سکتا ہے جس میں ایک ری کرنٹ فیڈ بیک لوپ ہوتا ہے، جو نیٹ ورک کی آؤٹ پٹ حالت کو ان پٹ میں واپس بھیجتا ہے۔
RNN سیل کی ساخت
آئیے دیکھتے ہیں کہ ایک سادہ RNN سیل کیسے منظم ہوتا ہے۔ یہ پچھلی حالت Si-1 اور موجودہ علامت Xi کو ان پٹ کے طور پر قبول کرتا ہے، اور آؤٹ پٹ حالت Si پیدا کرنی ہوتی ہے (اور، بعض اوقات، ہم کسی اور آؤٹ پٹ Yi میں بھی دلچسپی رکھتے ہیں، جیسا کہ جنریٹو نیٹ ورکس کے معاملے میں ہوتا ہے)۔
ایک سادہ RNN سیل کے اندر دو وزن میٹرکس ہوتے ہیں: ایک ان پٹ علامت کو تبدیل کرتا ہے (اسے W کہتے ہیں)، اور دوسرا ان پٹ حالت کو تبدیل کرتا ہے (H)۔ اس صورت میں نیٹ ورک کا آؤٹ پٹ اس طرح حساب کیا جاتا ہے: σ(W×Xi+H×Si-1+b)، جہاں σ ایک ایکٹیویشن فنکشن ہے اور b اضافی بایاس ہے۔
تصویر مصنف کی جانب سے
زیادہ تر معاملات میں، ان پٹ ٹوکنز کو RNN میں داخل ہونے سے پہلے ایمبیڈنگ لیئر کے ذریعے گزارا جاتا ہے تاکہ جہت کو کم کیا جا سکے۔ اس صورت میں، اگر ان پٹ ویکٹرز کا ڈائمینشن emb_size ہے، اور حالت ویکٹر hid_size ہے - تو W کا سائز emb_size×hid_size ہوگا، اور H کا سائز hid_size×hid_size ہوگا۔
لانگ شارٹ ٹرم میموری (LSTM)
کلاسیکل RNNs کے اہم مسائل میں سے ایک وینشنگ گریڈینٹس کا مسئلہ ہے۔ چونکہ RNNs کو ایک بیک پروپیگیشن پاس میں اینڈ ٹو اینڈ تربیت دی جاتی ہے، یہ نیٹ ورک کی ابتدائی تہوں تک ایرر کو پھیلانے میں دشواری کا سامنا کرتا ہے، اور اس طرح نیٹ ورک دور دراز ٹوکنز کے درمیان تعلقات سیکھنے سے قاصر ہوتا ہے۔ اس مسئلے سے بچنے کے طریقوں میں سے ایک واضح حالت مینجمنٹ کو متعارف کرانا ہے، جسے گیٹس کے ذریعے کیا جاتا ہے۔ اس قسم کی دو مشہور آرکیٹیکچرز ہیں: لانگ شارٹ ٹرم میموری (LSTM) اور گیٹڈ ریلے یونٹ (GRU)۔
تصویر کا ماخذ TBD
LSTM نیٹ ورک RNN کی طرح منظم ہوتا ہے، لیکن یہاں دو حالتیں ہیں جو ایک تہہ سے دوسری تہہ تک منتقل ہوتی ہیں: اصل حالت C، اور چھپی ہوئی ویکٹر H۔ ہر یونٹ پر، چھپی ہوئی ویکٹر Hi کو ان پٹ Xi کے ساتھ جوڑا جاتا ہے، اور وہ گیٹس کے ذریعے حالت C کے ساتھ کیا ہوتا ہے اسے کنٹرول کرتے ہیں۔ ہر گیٹ ایک نیورل نیٹ ورک ہوتا ہے جس میں سگموئڈ ایکٹیویشن (آؤٹ پٹ [0,1] کی حد میں) ہوتا ہے، جسے حالت ویکٹر کے ساتھ ضرب دینے پر بٹ وائز ماسک کے طور پر سمجھا جا سکتا ہے۔ درج ذیل گیٹس ہیں (اوپر دی گئی تصویر میں بائیں سے دائیں):
- فرگیٹ گیٹ چھپی ہوئی ویکٹر لیتا ہے اور طے کرتا ہے کہ ویکٹر C کے کون سے اجزاء کو بھولنا ہے، اور کون سے گزرنے دینا ہے۔
- ان پٹ گیٹ ان پٹ اور چھپی ہوئی ویکٹرز سے کچھ معلومات لیتا ہے اور اسے حالت میں داخل کرتا ہے۔
- آؤٹ پٹ گیٹ حالت کو tanh ایکٹیویشن کے ساتھ ایک لکیری تہہ کے ذریعے تبدیل کرتا ہے، پھر اس کے کچھ اجزاء کو چھپی ہوئی ویکٹر Hi کا استعمال کرتے ہوئے منتخب کرتا ہے تاکہ نئی حالت Ci+1 پیدا کرے۔
حالت C کے اجزاء کو کچھ جھنڈوں کے طور پر سمجھا جا سکتا ہے جنہیں آن اور آف کیا جا سکتا ہے۔ مثال کے طور پر، جب ہم سیکوئنس میں ایک نام Alice کا سامنا کرتے ہیں، تو ہم یہ فرض کرنا چاہتے ہیں کہ یہ ایک خاتون کردار کی طرف اشارہ کرتا ہے، اور حالت میں جھنڈا بلند کرتے ہیں کہ جملے میں ایک خاتون اسم موجود ہے۔ جب ہم مزید جملے and Tom کا سامنا کرتے ہیں، تو ہم جھنڈا بلند کرتے ہیں کہ ہمارے پاس جمع اسم ہے۔ اس طرح حالت کو جوڑ کر ہم جملے کے حصوں کی گرامر خصوصیات کا سراغ رکھ سکتے ہیں۔
✅ LSTM کے اندرونی کام کو سمجھنے کے لیے ایک بہترین وسیلہ یہ شاندار مضمون ہے Understanding LSTM Networks کرسٹوفر اولاہ کی جانب سے۔
بائی ڈائریکشنل اور ملٹی لیئر RNNs
ہم نے ری کرنٹ نیٹ ورکس پر بات کی جو ایک سمت میں کام کرتے ہیں، سیکوئنس کے آغاز سے آخر تک۔ یہ قدرتی لگتا ہے، کیونکہ یہ اس طرح سے مشابہت رکھتا ہے جس طرح ہم پڑھتے ہیں اور تقریر سنتے ہیں۔ تاہم، چونکہ بہت سے عملی معاملات میں ہمارے پاس ان پٹ سیکوئنس تک رینڈم رسائی ہوتی ہے، یہ دونوں سمتوں میں ری کرنٹ کمپیوٹیشن چلانے کے لیے معنی خیز ہو سکتا ہے۔ ایسے نیٹ ورکس کو بائی ڈائریکشنل RNNs کہا جاتا ہے۔ بائی ڈائریکشنل نیٹ ورک کے ساتھ کام کرتے وقت، ہمیں دو چھپی ہوئی حالت ویکٹرز کی ضرورت ہوگی، ہر سمت کے لیے ایک۔
ایک ری کرنٹ نیٹ ورک، چاہے وہ ایک سمت میں ہو یا بائی ڈائریکشنل، سیکوئنس کے اندر کچھ پیٹرنز کو پکڑتا ہے، اور انہیں حالت ویکٹر میں ذخیرہ کر سکتا ہے یا آؤٹ پٹ میں منتقل کر سکتا ہے۔ جیسا کہ کنوولوشنل نیٹ ورکس کے ساتھ، ہم پہلے والے پر ایک اور ری کرنٹ تہہ بنا سکتے ہیں تاکہ اعلیٰ سطح کے پیٹرنز کو پکڑ سکیں اور پہلے والے کے ذریعے نکالے گئے کم سطح کے پیٹرنز سے تعمیر کر سکیں۔ یہ ہمیں ملٹی لیئر RNN کے تصور کی طرف لے جاتا ہے، جو دو یا زیادہ ری کرنٹ نیٹ ورکس پر مشتمل ہوتا ہے، جہاں پچھلی تہہ کا آؤٹ پٹ اگلی تہہ میں ان پٹ کے طور پر منتقل ہوتا ہے۔
تصویر اس شاندار پوسٹ سے فرنینڈو لوپیز کی جانب سے
✍️ مشقیں: ایمبیڈنگز
اپنی تعلیم کو درج ذیل نوٹ بکس میں جاری رکھیں:
نتیجہ
اس یونٹ میں، ہم نے دیکھا کہ RNNs کو سیکوئنس کلاسیفکیشن کے لیے استعمال کیا جا سکتا ہے، لیکن حقیقت میں، وہ بہت سے دوسرے کاموں کو بھی سنبھال سکتے ہیں، جیسے کہ متن کی تخلیق، مشین ترجمہ، اور مزید۔ ہم ان کاموں پر اگلے یونٹ میں غور کریں گے۔
🚀 چیلنج
LSTMs کے بارے میں کچھ لٹریچر پڑھیں اور ان کے اطلاقات پر غور کریں:
- Grid Long Short-Term Memory
- Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
- Understanding LSTM Networks کرسٹوفر اولاہ کی جانب سے۔
اسائنمنٹ: نوٹ بکس
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔

