
نیورل نیٹ ورکس: پرسیپٹرونز سے ڈیپ لرننگ تک
سادہ فنکشنز کی تہیں پیچیدہ نمونے کیسے سیکھتی ہیں
وہ چال جسے کوئی نہیں سمجھا
10 مارچ 2016 کو، سیول میں پانچ-میچ سیریز کے دوسرے گیم میں، AlphaGo نامی ایک مشین نے بورڈ کی پانچویں لائن پر ایک سیاہ پتھر رکھا۔ چال اتنی عجیب تھی کہ انسانی تجزیہ کاروں نے فرض کیا کہ یہ ایک غلطی ہے۔ ایک پیشہ ور نے بلند آواز میں کہا کہ ایک نوسکھیا اسے کھیل کر ڈانٹا جاتا۔ Lee Sedol — گو کے کھیل میں 18 بار کا عالمی چیمپیئن — اپنے آپ کو سنبھالنے کے لیے کھڑا ہو کر کمرے سے چلا گیا۔
یہ غلطی نہیں تھی۔ پچاس چالوں بعد، وہ پتھر — جو اب "Move 37" کے طور پر مشہور ہے — عین وہ محور تھا جس پر پورا گیم گھوما۔ AlphaGo جیت گیا۔ Lee Sedol، جو زندہ کھلاڑیوں میں سے ایک عظیم ترین سمجھا جاتا ہے، سیریز 4–1 سے ہار گیا۔ اور یہاں وہ حصہ ہے جو اہم ہے: کسی انسان نے AlphaGo کو وہ چال نہیں سکھائی۔ یہ کسی درسی کتاب میں نہیں تھی۔ مشین نے اسے خود دریافت کیا، اپنے آپ کے خلاف لاکھوں گیمز کھیل کر اور اربوں چھوٹے اندرونی اعداد کو ایڈجسٹ کر کے یہاں تک کہ ایک پیٹرن ابھرا جسے کسی شخص نے کبھی نہیں دیکھا۔
گو میں ممکنہ بورڈ پوزیشنز مشاہدہ کائنات میں موجود ایٹموں سے زیادہ ہیں۔ آپ اسے brute-force نہیں کر سکتے۔ آپ اس کے لیے قوانین نہیں لکھ سکتے۔ اسے فوق البشری سطح پر کھیلنے کا واحد طریقہ اسے سیکھنا ہے — اور جو چیز سیکھ رہی تھی وہ ایک نیورل نیٹ ورک تھا: سادہ ریاضیاتی اکائیوں کا ایک ڈھیر جو، کافی ڈیٹا اور کافی ایڈجسٹمنٹ کے ساتھ، ایسی ساخت تلاش کر سکتا ہے جسے کوئی انسان مکمل طور پر بیان نہیں کر سکتا۔
وہی مشینری — وہی وزنی مجموعے، وہی تربیتی چکر، وہی گریڈینٹ کی دھکیل — وہی چیز ہے جو اُس زبانی ماڈل کو طاقت دیتی ہے جس سے آپ بات کرتے ہیں، وہ نظام جو دھوکہ دہی والی کارڈ ٹرانزیکشنز کو جھنڈی دکھاتا ہے، اور وہ ماڈلز جن پر کوانٹیٹیٹو فنڈز اب مالیاتی مارکیٹس کی طرف اشارہ کرتے ہیں۔ یہ سبق اس بارے میں ہے کہ اُس ڈبے کے اندر حقیقتاً کیا ہو رہا ہے۔
Perceptron: جہاں سب کچھ شروع ہوتا ہے
ہر نیورل نیٹ ورک — ایک سادہ اسپیم فلٹر سے GPT اور AlphaGo تک — ایک ہی خیال سے آتا ہے: perceptron، جو Frank Rosenblatt نے 1958 میں ایجاد کیا۔ یہ ایک ریاضیاتی ماڈل ہے جو ڈھیلے طور پر ایک biological نیورون سے متاثر ہے۔ ایک حقیقی نیورون اپنے dendrites کے ذریعے برقی سگنلز وصول کرتا ہے، انہیں سیل باڈی میں جمع کرتا ہے، اور اپنے axon کے نیچے صرف اُس وقت سگنل فائر کرتا ہے جب مجموعی ان پٹ ایک حد کو پار کرے۔ Perceptron وہی کام کرتا ہے، صرف وولٹیج کے بجائے اعداد کے ساتھ۔
ایک perceptron ان پٹس x کا ایک ویکٹر لیتا ہے، ہر ان پٹ کو ایک سیکھے ہوئے وزن w سے ضرب دیتا ہے، پیداواروں کو جمع کرتا ہے، ایک بائیس ٹرم b شامل کرتا ہے جو حد کو منتقل کرتا ہے، اور نتیجے کو ایک ایکٹیویشن فنکشن سے گزرتا ہے۔ اگر نتیجہ بار پار کر جاتا ہے، نیورون "فائر" ہو جاتا ہے؛ ورنہ یہ خاموش رہتا ہے۔ پورا معاملہ ایک کمپیکٹ اظہار ہے: output = f(w·x + b)۔
وزنوں کو والیوم نوبز کے طور پر سوچیں۔ ہر ان پٹ کسی حجم کے ساتھ آتا ہے، اور وزن فیصلہ کرتا ہے کہ یہ ان پٹ اس مخصوص نیورون کے لیے کتنا اہم ہے۔ ایک نیورون جو ایک دھوکہ دہی والی تجارت کی نشاندہی کرنا سیکھ رہا ہے وہ "کھاتے کی تاریخ کے مقابلے ٹرانزیکشن سائز" کے وزن کو بڑھا سکتا ہے اور "دن کا وقت" کے وزن کو کم کر سکتا ہے۔ سیکھنا، اپنی بنیاد میں، اس سے زیادہ شاہانہ کچھ نہیں کہ وہ نوبز درست ترتیب پر موڑنا۔
ایک واحد perceptron کی ایک سخت حد ہے: یہ صرف ایک سیدھی لائن کے ساتھ ڈیٹا کو الگ کر سکتا ہے (یا، بلند جہتوں میں، ایک فلیٹ ہائپر پلین)۔ یہ "کیا یہ نکتہ لائن کے اوپر یا نیچے ہے؟" کا جواب دے سکتا ہے مگر "کیا یہ نکتہ خمیدہ خطے کے اندر ہے؟" نہیں۔ تاریخی مثال XOR مسئلہ ہے — ایک پیٹرن جو ایک واحد perceptron کے لیے قابلِ ثبوت طور پر نامکن ہے، ایک حد جس نے 1970 کی دہائی میں سالوں تک AI فنڈنگ کو منجمد کرنے میں مدد دی۔ نکلنا مؤخرالذکر میں تقریباً بے ہودگی سے سادہ ہے: بہت سے perceptrons کو تہوں میں ڈھیر کریں اور ان کے درمیان ایک غیرلکیری ایکٹیویشن داخل کریں۔ ایسا کریں، اور نتیجتاً نیٹ ورک جگہ کو خم دے، تہہ لگا سکے، اور من مانی پیچیدہ اشکال میں کاٹ سکے۔
تہیں، گہرائی، اور 'ڈیپ' لرننگ کیوں
ایک نیورون ایک نوب ہے۔ ایک کارآمد نیٹ ورک ہزاروں ہیں، تہوں میں ترتیب دیے گئے جو معلومات کو ایک بالٹی برگیڈ کی طرح آگے پاس کرتے ہیں۔
- ان پٹ تہ (input layer) — جہاں آپ کے خام فیچرز داخل ہوتے ہیں: تصویر کے پکسلز، ایک جملے کے الفاظ، یا ٹریڈنگ ماڈل کے لیے، قیمت، والیوم، اتار چڑھاؤ، اور آرڈر-بک عدم توازن جیسی چیزیں۔
- پوشیدہ تہیں (hidden layers) — درمیانی تہیں، جہاں حقیقی کام ہوتا ہے۔ ہر تہ پچھلی کی پیداواریں لیتی ہے اور انہیں نئے، زیادہ تجریدی فیچرز میں دوبارہ یکجا کرتی ہے۔
- آؤٹ پُٹ تہ (output layer) — حتمی جواب: ایک احتمال، ایک قیمت کی پیش گوئی، ایک کلاس لیبل۔
ڈیپ لرننگ میں لفظ "ڈیپ" کا سادہ مطلب بہت سی پوشیدہ تہیں ہے۔ اور گہرائی آپ کو کچھ مخصوص دیتی ہے: فیچرز کی درجہ بندی (hierarchy)۔ ایک امیج نیٹ ورک میں، پہلی تہ کناروں کا پتہ لگاتی ہے، اگلی کناروں کو اشکال میں یکجا کرتی ہے، اگلی اشکال کو اشیاء میں یکجا کرتی ہے۔ کسی نے "کنارہ ڈیٹیکٹر" یا "آنکھ ڈیٹیکٹر" پروگرام نہیں کیا — یہ تصورات تربیت سے ابھرتے ہیں۔ نیٹ ورک اپنی خود کی درمیانی لغت ایجاد کرتا ہے۔
یہاں ایک خوبصورت نظریاتی نتیجہ ہے، عالمگیر تخمینہ کاری کا نظریہ (universal approximation theorem): ایک نیٹ ورک جس میں صرف ایک پوشیدہ تہ ہو، کافی نیورونز کے ساتھ، کسی بھی مستقل فنکشن کا من مانے کی صحت تک تخمینہ لگا سکتا ہے۔ دوسرے الفاظ میں، درست نیٹ ورک اصولی طور پر آپ کے ڈیٹا میں موجود کسی بھی پیٹرن کو ظاہر کر سکتا ہے۔ پکڑ — اور یہ ایک بڑی پکڑ ہے — یہ ہے کہ "اصولی طور پر" بہت زیادہ کام کر رہا ہے۔ نظریہ وعدہ کرتا ہے کہ ایسا نیٹ ورک موجود ہے؛ یہ اس بارے میں کچھ نہیں کہتا کہ آیا آپ اسے تلاش کر سکتے ہیں، آیا آپ کے پاس اسے پن کرنے کے لیے کافی ڈیٹا ہے، یا آیا وہ پیٹرن جس کا آپ تعاقب کر رہے ہیں حقیقی بھی ہے۔ مالیات جیسے کم-سگنل ڈومینز میں، "قابلِ نمائندگی" اور "قابلِ سیکھنے" کے درمیان یہ خلا عین وہ جگہ ہے جہاں زیادہ تر ماڈلز مر جاتے ہیں۔
ایکٹیویشن فنکشنز: غیرلکیری خفیہ چٹنی
یہاں ایک حقیقت ہے جو لوگوں کو حیران کرتی ہے: ایکٹیویشن فنکشنز کے بغیر، گہرائی بے قدر ہے۔ اگر ہر تہ محض ایک سادہ وزنی مجموعہ ہوتی، تو دس تہوں کو ڈھیر کرنا ریاضیاتی طور پر ایک واحد تہ کے مساوی ہوتا — لکیری آپریشنز کی ایک زنجیر ایک واحد لکیری آپریشن میں سمٹ جاتی ہے۔ آپ نے ایک شاندار سیدھی لائن بنانے میں کمپیوٹ میں دولت خرچ کر دی ہوتی۔ ایکٹیویشن فنکشنز وہ غیرلکیری موڑ ہیں جو تہوں کے درمیان داخل کیے جاتے ہیں جو نیٹ ورک کو خم دینے دیتے ہیں، اور خمیدگی وہ چیز ہے جو اسے طاقتور بناتی ہے۔
وہ ایکٹیویشنز جو ہر ماہر کو جاننا چاہیے:
- Sigmoid — σ(x) = 1/(1+e⁻ˣ)۔ کسی بھی ان پٹ کو (0, 1) میں دبا دیتی ہے، جو قدرتی طور پر ایک احتمال کے طور پر پڑھی جاتی ہے۔ بائنری آؤٹ پُٹ کے لیے بہت اچھی، مگر پوشیدہ تہوں کے اندر ایک ناقص انتخاب: بڑے مثبت یا منفی ان پٹس کے لیے کروَ فلیٹ ہو جاتی ہے، اس کا گریڈینٹ تقریباً صفر ہو جاتا ہے، اور سیکھنا رک جاتا ہے — vanishing gradient مسئلہ۔
- Tanh — (−1, 1) میں آؤٹ پُٹ دیتی ہے اور زیرو-مرکوز ہے، جو optimization میں مدد دیتی ہے۔ انتہاؤں پر اب بھی سیر ہو جاتی ہے، مگر sigmoid سے کم شدت سے۔
- ReLU — f(x) = max(0, x)۔ پوشیدہ تہوں کے لیے جدید ڈیفالٹ۔ یہ ہنسی آنے کی حد تک سادہ ہے، حساب لگانے میں سستی ہے، اور تمام مثبت ان پٹس کے لیے ایک صحت مند گریڈینٹ برقرار رکھتی ہے۔ اس کی خامی "dying ReLU" ہے: ایک نیورون جو ہمیشہ صفر آؤٹ پُٹ کرنے پر مجبور ہو جائے مستقل طور پر بے حرکت ہو سکتا ہے۔
- Leaky ReLU — f(x) = max(0.01x, x)۔ منفیوں کے لیے گریڈینٹ کی ایک چھوٹی سی رگ بہنے دیتی ہے، جو نیورونز کو مرنے سے روکتی ہے۔
- GELU — ReLU کا ایک ہموار، احتمالاتی رشتہ دار جو BERT اور GPT جیسے transformers کے اندر معیاری ہے۔
Backpropagation اور گریڈینٹ ڈیسنٹ: نیٹ ورکس کیسے سیکھتے ہیں
اب تک ہمارے پاس وزنوں سے بھرا ایک نیٹ ورک ہے۔ لیکن درست وزن کی قدریں کہاں سے آتی ہیں؟ کوئی انہیں ٹائپ نہیں کرتا — لاکھوں ہیں۔ وہ ایک فیڈبیک لوپ کے ذریعے دریافت کی جاتی ہیں جو، اپنی بنیاد میں، منظم آزمائش اور خامی ہے جس میں calculus حسابداری کر رہا ہے۔
پہلا مرحلہ forward pass ہے: ایک مثال کھلائیں، اسے تہوں سے گزرنے دیں، اور ایک پیش گوئی پڑھیں۔ دوسرا مرحلہ ایک loss function کا استعمال کرتے ہوئے یہ پیمائش کرنا ہے کہ وہ پیش گوئی کتنی غلط تھی۔ ایک عدد (قیمت) کی پیش گوئی کے لیے، Mean Squared Error پیش گوئی اور حقیقت کے درمیان مربع فرق کا اوسط لیتا ہے۔ درجہ بندی کے لیے، cross-entropy یہ پیمائش کرتا ہے کہ پیش گوئی شدہ احتمالات درست جواب سے کتنی دور ہیں۔ زیادہ نقصان کا مطلب ہے "بہت غلط"؛ تربیت کا مکمل مقصد اُس عدد کو نیچے دھکیلنا ہے۔
تیسرا مرحلہ ذہین حصہ ہے: backpropagation۔ calculus کے chain rule کا استعمال کرتے ہوئے، الگورتھم نقصان سے ہر تہ کے ذریعے پیچھے کام کرتا ہے اور، ہر انفرادی وزن کے لیے، ایک گریڈینٹ حساب کرتا ہے — "اگر میں اس ایک وزن کو ایک بال کے برابر بڑھا دوں، کیا غلطی بڑھتی ہے یا کم ہوتی ہے، اور کتنی؟" کا جواب۔ یہ وہ ترکیب ہے جس نے AI سردی کو پگھلایا۔ Backprop، جو 1980 کی دہائی میں مقبول ہوا، لاکھوں وزنوں میں مؤثر طریقے سے ذمہ داری تفویض کرنا ممکن بنا دیا بجائے اندازہ لگانے کے۔
چوتھا مرحلہ گریڈینٹ ڈیسنٹ ہے: ہر وزن کو اُس سمت میں ایک چھوٹا قدم دھکیلیں جو نقصان کو کم کرے، قاعدہ استعمال کرتے ہوئے w = w − α × ∂L/∂w۔ ایک دھندلی پہاڑی پر کھڑے ہو کر وادی کی زمین تک پہنچنے کی کوشش کا تصور کریں؛ آپ نیچے نہیں دیکھ سکتے، مگر آپ اپنے پاؤں کے نیچے احساس کر سکتے ہیں کہ کون سی سمت نیچے کی طرف ہے، تو آپ اُس سمت قدم لیتے ہیں اور دہراتے ہیں۔ سیکھنے کی شرح (learning rate) α آپ کی قدم کی لمبائی ہے، اور یہ بحث کے قابل طور پر پورے نظام میں سب سے اہم ڈائل ہے۔ بہت زیادہ ہو تو آپ وادی کے پار اچھلتے ہیں اور ہمیشہ کے لیے اچھلتے رہتے ہیں؛ بہت کم ہو تو آپ ابدیت تک رینگتے ہیں یا راستے میں ایک کھائی میں پھنس جاتے ہیں۔
دو بہتریاں جن سے آپ فوراً ملیں گے۔ Mini-batches: ہر واحد مثال کے بعد اپڈیٹ کرنے کے بجائے (نویزی) یا صرف پورے ڈیٹاسیٹ کے بعد (سست)، آپ ایک چھوٹے بیچ کے بعد اپڈیٹ کرتے ہیں — عام طور پر 32 سے 256 مثالیں — جو مستحکم، GPU-دوستانہ، اور عمل میں بہترین جگہ ہے۔ اور Adam: ایک زیادہ ذہین آپٹیمائزر جو ہر وزن کو اپنی خود کی ایڈاپٹو قدم کی لمبائی دیتا ہے اور نویزی گریڈیئنٹس کو ہموار کرنے کے لیے momentum شامل کرتا ہے۔ Adam تقریباً کسی بھی پروجیکٹ کے لیے سمجھدار ڈیفالٹ آغاز ہے — اگرچہ مالیات میں، اپنی کم سگنل-ٹو-نویز ریشو کے ساتھ، آپ کو اب بھی سیکھنے کی شرح، وزن کی گھٹاؤ، اور رکنے کے نکتے کو ہاتھ سے ٹیون کرنا ہوگا۔
اوور فٹنگ: جب نیٹ ورک سیکھنے کے بجائے یاد کرتا ہے
یہاں ناکامی کی وہ صورت ہے جو کسی بھی دوسری سے زیادہ مالیاتی ماڈلز کو تباہ کرتی ہے۔ ایک نیورل نیٹ ورک ایسا لچکدار فنکشن-فٹر ہے کہ، موقع ملنے پر، یہ آپ کے تربیتی ڈیٹا کو صریحاً یاد کر لے گا — تمام بے ترتیب نویز، ایک بار کے اتفاقات، اور اتفاقات جو کبھی نہیں دہرائیں گے سمیت۔ یہ اُس ڈیٹا پر خوبصورتی سے اسکور کرتا ہے جو اس نے دیکھا ہے اور جس لمحے یہ کسی نئی چیز سے ملتا ہے مکمل طور پر ناکام ہو جاتا ہے۔ یہ اوور فٹنگ ہے، اور مارکیٹس میں — جہاں حقیقی سگنل مدھم ہے اور نویز بہری کر دینے والا ہے — یہ ڈیفالٹ نتیجہ ہے، استثنا نہیں۔ اس کے خلاف لڑنے والے ٹولز کو regularization کہا جاتا ہے۔
Dropout سب سے مقبول ہے۔ ہر تربیتی قدم کے دوران، ہر نیورون کے پاس ایک احتمال p (اکثر 0.2–0.5) ہوتا ہے عارضی طور پر بند ہونے کا۔ اُس وقت بھی کام کرنے پر مجبور جب بے ترتیب ٹیم ساتھی غائب ہوتے رہیں، نیٹ ورک اپنے علم کو بہت سے نیورونز پر پھیلانا سیکھتا ہے بجائے چند کمزور نیورونز پر سب کچھ لگانے کے — ایک اینسمبل اثر جو ایک واحد ماڈل میں پکایا گیا ہے۔ پیش گوئی کے وقت تمام نیورونز مناسب طور پر پیمانہ کیے ہوئے دوبارہ آن ہو جاتے ہیں۔
L1 اور L2 جرمانے نقصان میں بڑے وزنوں پر ایک ٹیکس شامل کرتے ہیں۔ L2 (وزن کی گھٹاؤ) کسی ایک وزن کو بہت بڑا ہونے سے حوصلہ شکنی کرتا ہے، اثر کو یکساں طور پر پھیلاتا ہے۔ L1 زیادہ تیز ہے: یہ فعال طور پر بے فائدہ وزنوں کو بالکل صفر تک لے جاتا ہے، خودکار فیچر انتخاب انجام دیتا ہے۔ ایک مالیاتی ڈیٹاسیٹ میں جہاں آپ کے سو فیچرز میں سے زیادہ تر نویز ہیں، L1 خاموشی سے وہ چند تلاش کر سکتا ہے جو حقیقتاً سگنل رکھتے ہیں۔
Batch normalization ہر تہ کی پیداواروں کو ایک مستحکم اوسط اور تفاوت میں دوبارہ پیمانہ کرتی ہے، جو تربیت کو مستحکم کرتی ہے اور آپ کو زیادہ سیکھنے کی شرحیں استعمال کرنے دیتی ہے۔ Early stopping سب کا سب سے سادہ اور سب سے قابلِ اعتماد محافظ ہے: ایک الگ رکھے گئے validation set پر غلطی دیکھیں، اور جس لمحے یہ اوپر رینگنا شروع کرے جبکہ تربیتی غلطی گرتی رہے، رکیں — وہ کراس اوور عین وہ لمحہ ہے جب نیٹ ورک پیٹرن سیکھنے سے نویز یاد کرنے پر منتقل ہوتا ہے۔
پیٹرنز کے لیے CNNs، سیریلز کے لیے RNNs اور LSTMs
سادہ فیڈفارورڈ نیٹ ورکس ہر ان پٹ کو اعداد کے ایک بے ساختہ تھیلے کے طور پر برتتے ہیں۔ لیکن بہت سا حقیقی ڈیٹا ساخت رکھتا ہے — ایک تصویر میں مکانی ترتیب ہے، ایک قیمت کی سیریز میں زمانی ترتیب ہے — اور دو مخصوص آرکیٹیکچرز اُس ساخت کو براہ راست استعمال کرتے ہیں۔
Convolutional Neural Networks (CNNs) تصاویر کے لیے بنائے گئے تھے۔ ہر پکسل کو ہر نیورون سے جوڑنے کے بجائے، ایک CNN چھوٹے فلٹرز کو ان پٹ کے پار سرکاتی ہے، مقامی پیٹرنز کی تلاش میں — یہاں ایک کنارہ، وہاں ایک texture — اور ہر جگہ وہی فلٹر دوبارہ استعمال کرتی ہے۔ ابتدائی تہیں کناروں کو پکڑتی ہیں؛ گہری تہیں انہیں اشکال اور اشیاء میں یکجا کرتی ہیں۔ مالیات میں، محققین نے CNNs کی طرف اشارہ کیا ہے:
- کینڈل اسٹک چارٹ تصاویر — چارٹ پڑھنے کو ایک بصری پیٹرن-شناخت کے کام کے طور پر دوبارہ فریم کرنا۔
- آرڈر-بک ہیٹ میپس — depth-of-market سنیپ شاٹس میں طلب/رسد کے عدم توازن کی نشاندہی۔
- خام قیمت سیریلز پر 1D convolutions — مختصر زمانی نمونے سیکھنا اُسی طرح جیسے ایک امیج CNN مکانی نمونے سیکھتی ہے۔
Recurrent Neural Networks (RNNs) سیریلز کے لیے بنائے گئے ہیں۔ یہ ایک وقت میں ایک قدم پراسیس کرتے ہیں جبکہ ایک پوشیدہ حالت (hidden state) — ایک چلتی حافظہ — ہر قدم سے دوسرے تک لے کر جاتے ہیں۔ نظریاتی طور پر یہ انہیں ٹائم سیریز کے لیے مثالی بناتا ہے۔ عملی طور پر، عام RNNs طویل سیریلز پر vanishing gradient مسئلے سے مفلوج ہوتے ہیں: بہت پہلے کا سگنل واپسی کے راستے میں صفر کی طرف سکڑتا ہے، تو نیٹ ورک محض دور دراز ماضی کو بھول جاتا ہے۔
Long Short-Term Memory (LSTM) نیٹ ورکس اسے سیکھنے کے قابل گیٹس کے ایک چھوٹے سیٹ سے ٹھیک کرتے ہیں — بھول جانا، ان پٹ، اور آؤٹ پٹ — جو ہر قدم پر فیصلہ کرتے ہیں کیا حافظے سے مٹانا ہے، کیا لکھنا ہے، اور کیا پڑھنا ہے۔ یہ گیٹنگ LSTM کو سیکڑوں قدموں کے پار متعلقہ معلومات رکھنے دیتی ہے، یہی وجہ ہے یہ مالیاتی ٹائم سیریز کو ماڈل کرنے کا ایک اصل کام کرنے والا بن گیا جہاں گزشتہ دن کا ایک واقعہ آج کی قیمت کو ابھی بھی ہلاتا ہے۔
import torch.nn as nn
class PricePredictor(nn.Module):
def __init__(self, input_dim, hidden_dim, num_layers):
super().__init__()
self.lstm = nn.LSTM(input_dim, hidden_dim,
num_layers, batch_first=True,
dropout=0.2)
self.fc = nn.Linear(hidden_dim, 1)
def forward(self, x):
out, _ = self.lstm(x)
return self.fc(out[:, -1, :])
GaiaEx جیسے پلیٹ فارم پر، جہاں WebSocket فیڈز مستقل قیمت اور آرڈر-بک ڈیٹا بھیجتی ہیں، ایک LSTM اُس سیریل کو قدرتی طور پر لے سکتا ہے۔ اس کے باوجود، فیلڈ زیادہ تر آگے بڑھ گئی ہے: transformers — جدید زبانی ماڈلز کے پیچھے آرکیٹیکچر — اب بہت سے سیریل کاموں پر LSTMs کو "attention" کا استعمال کر کے مساوی یا اس سے بہتر کارکردگی دیتی ہیں تاکہ ایک وقت میں ایک قدم سے گزرنے کے بجائے تمام وقتی قدموں کو ایک ہی وقت میں دیکھیں۔
نیورل نیٹ ورکس کیا ٹھیک نہیں کرتے (خاص طور پر مارکیٹس میں)
نیورل نیٹ ورکس شاندار پیٹرن-تلاش کرنے والے ہیں۔ لیکن دیانتدار تعلیم کا مطلب ہے یہ بتانا کہاں وہ ٹوٹتے ہیں — اور ٹریڈنگ میں، وہ مہنگے طریقوں سے ٹوٹتے ہیں۔
- وہ پیٹرنز تلاش کرتے ہیں حتیٰ کہ جب کوئی موجود نہ ہو۔ ایک ڈیپ نیٹ ورک کو نویز دیں اور یہ اسے پراعتماد طور پر فٹ کرے گی۔ مارکیٹس زیادہ تر نویز ہیں، تو یہ ثابت کرنے کا بوجھ آپ پر ہے کہ ایک پیٹرن حقیقی اور دائمی ہے — نہ کہ صرف پچھلے سال کے ڈیٹا میں موجود۔
- وہ بلیک باکسز ہیں۔ ایک ماڈل درست ہو سکتا ہے اور پھر بھی آپ کو نہیں بتا سکتا کہ کیوں۔ جب یہ اچانک نقصان کرے، اکثر کوئی صاف وضاحت اور واضح حل نہیں ہوتا۔ رسک اٹھانے والے سرمائے کے لیے، "مجھے نہیں معلوم اس نے یہ کیوں کیا" ایک سنگین ذمہ داری ہے۔
- وہ بھوکے اور کمزور ہیں۔ ڈیپ لرننگ لاکھوں صاف مثالوں کے ساتھ چمکتی ہے۔ مالیاتی تاریخ مختصر، non-stationary، اور نویزی ہے — وہ حالت جس پر آپ کے ماڈل نے تربیت پائی وہ محض موجود رہنا بند کر سکتی ہے، ایک مسئلہ جسے distribution shift کہا جاتا ہے۔
- وہ مفت میں سادہ ماڈلز کو نہیں ہراتے۔ ٹیبلر، فیچر-پر مبنی ڈیٹا پر جو مالیات میں عام ہے، XGBoost جیسے گریڈینٹ-بوسٹڈ درخت اکثر نیورل نیٹ ورکس کو ہرا دیتے ہیں جبکہ تربیت میں تیز اور تشریح کرنے میں آسان ہوتے ہیں۔ پیچیدگی ایک قیمت ہے، خوبی نہیں۔
- وہ حملہ آور ہو سکتے ہیں۔ ایک ان پٹ میں چھوٹی، جانتے بوجھتے خلل نیٹ ورک کے آؤٹ پُٹ کو پلٹ سکتی ہے — ایک adversarial example — جو کہیں بھی اہم ہے جہاں ایک مخالف آپ کے ماڈل کے دیکھنے والے کو تشکیل دے سکے۔
ہارڈویئر، ٹولز، اور آپ کا آگے کا راستہ
نیورل نیٹ ورکس کی تربیت حساب پر بہت بھاری ہے — بھاری اکثریت میٹرکس ضرب — اور آپ اسے جس ہارڈویئر پر چلاتے ہیں وہ آپ کی تکرار کی رفتار کو "راتوں رات" سے "کافی کے دوران" میں بدل دیتا ہے۔
GPUs معیاری ہیں۔ ان کے ہزاروں cores سب ایک ہی وقت میں مختلف ڈیٹا پر وہی آپریشن چلاتے ہیں، جو عین نیورل نیٹ ورک ریاضی کی شکل ہے۔ ایک ماڈل جو CPU پر 8 گھنٹے رینگتا ہے ایک جدید GPU پر 15 منٹ میں مکمل ہو سکتا ہے۔ NVIDIA حکمرانی کرتا ہے: صارف کارڈز (ایک RTX-کلاس GPU) سیکھنے کے لیے ٹھیک ہیں، جبکہ ڈیٹا سینٹر کارڈز (A100، H100) اور کلاؤڈ instances پروڈکشن-پیمانہ کی تربیت سنبھالتے ہیں۔ TPUs، Google کے tensor ریاضی کے لیے مخصوص چپس، Google Cloud کے ذریعے بہت بڑے ماڈلز پر چمکتے ہیں، مگر GPUs زیادہ تر ماہرین کے لیے عملی ڈیفالٹ رہتے ہیں وسیع تر سافٹ ویئر سپورٹ کی بدولت۔
شروع کرنے کے لیے آپ کو کچھ خریدنے کی ضرورت نہیں۔ Google Colab مفت GPU وقت دیتا ہے جو سیکھنے اور پروٹوٹائپنگ کے لیے کافی ہے؛ جوں جوں آپ کے ماڈلز بڑھتے ہیں مطالبے پر کلاؤڈ GPUs کرائے پر لیں؛ صرف اُس وقت مخصوص ہارڈویئر خریدیں جب آپ روزانہ تربیت دے رہے ہوں اور کلاؤڈ بل اس کا جواز فراہم کرے۔
یہاں سے ایک عقلی سیکھنے کا راستہ:
- کچھ انجینیئرڈ فیچرز پر ایک سادہ فیڈفارورڈ نیٹ ورک سے شروع کریں — تربیت میں تیز، ڈیبگ کرنا آسان، اور ایک دیانتدار بینچ مارک۔
- خام قیمت سیریلز پر ایک 1D CNN آزمائیں اور اسے اُس بینچ مارک کے مقابلے میں براہ راست موازنہ کریں۔
- ایک LSTM بنائیں جو GaiaEx کے API سے کینڈل اسٹک ڈیٹا کی سیریلز کھاتا ہے۔
- attention اور transformers کا مطالعہ کریں — تیزی سے سیریلز کے لیے ترجیحی آرکیٹیکچر بنتا جا رہا ہے۔
- سب سے بڑھ کر، ہمیشہ اپنے ڈیپ ماڈل کو XGBoost جیسے گریڈینٹ-بوسٹنگ بینچ مارک کے مقابلے میں لڑائیں۔ اگر نیورل نیٹ ورک آپ کے ٹیبلر مالیاتی ڈیٹا پر آؤٹ-آف-سیمپل سادہ ماڈل کو نہیں ہرا سکتا، سادہ ماڈل شپ کریں اور آگے بڑھیں۔
وہی لوپ جس نے Move 37 دریافت کیا — پیش گوئی کرنا، غلطی کا حساب لگانا، وزنوں کو دھکیلنا، دہرانا — وہی لوپ ہے جو اس فہرست میں ہر سسٹم کے اندر چلتا ہے۔ وہ لوپ سمجھیں اور آپ ڈیپ لرننگ سمجھ لیں گے؛ باقی سب اس کے اوپر آرکیٹیکچر اور انجینیئرنگ ہے۔