جب آپ لوگوں کو مشین لرننگ کے بارے میں بات کرتے ہوئے سنتے ہیں تو کیا آپ کو اس کے معنی کے بارے میں صرف ایک دھندلا سا احساس ہوتا ہے؟ کیا آپ اپنے ساتھیوں کے ساتھ بات چیت کرتے وقت صرف سر ہلاتے ہوئے تھک گئے ہیں؟ آئیے ہم اسے تبدیل کریں!
اس گائیڈ کا مقصد ان تمام دوستوں کے لئے ہے جو مشین سیکھنے کے بارے میں جاننا چاہتے ہیں لیکن نہیں جانتے کہ کیسے شروع کرنا ہے۔ میرا اندازہ ہے کہ بہت سے لوگوں نے مشین سیکھنے کے بارے میں وکی پیڈیا کے مضامین پڑھے ہیں اور مایوسی کا اظہار کیا ہے کہ کوئی بھی اعلی درجے کی وضاحت نہیں کرسکتا ہے۔ یہ وہی ہے جو آپ چاہتے ہیں۔
اس مضمون کا مقصد لوگوں کے لئے آسان ہونا ہے ، جس کا مطلب ہے کہ اس میں بہت ساری عمومی باتیں ہیں۔ لیکن اس سے کون پرواہ کرتا ہے؟ جب تک کہ آپ قارئین کو ایم ایل میں زیادہ دلچسپی رکھتے ہیں ، آپ کا کام ہوچکا ہے۔
مشین لرننگ کا یہ تصور یہ ہے کہ آپ کو کسی بھی مخصوص پروگرام کوڈ کو حل کرنے کے ل write لکھنے کی ضرورت نہیں ہے ، جینیاتی الگورتھم آپ کو ڈیٹا سیٹ پر دلچسپ جوابات دے سکتے ہیں۔ جینیاتی الگورتھم کے لئے ، ڈیٹا کوڈ نہیں کیا جاتا ہے ، لیکن ڈیٹا ان پٹ کیا جاتا ہے ، جو ڈیٹا پر اپنی منطق تیار کرتا ہے۔
مثال کے طور پر ، ایک الگورتھم ہے جسے درجہ بندی الگورتھم کہا جاتا ہے جو اعداد و شمار کو مختلف مجموعوں میں تقسیم کرتا ہے۔ ایک درجہ بندی الگورتھم جو ہاتھ سے لکھے ہوئے نمبروں کی شناخت کے لئے استعمال ہوتا ہے ، کوڈ کی ایک لائن کو تبدیل کرنے کی ضرورت کے بغیر ای میلز کو اسپام اور عام ای میل میں تقسیم کرنے کے لئے استعمال کیا جاسکتا ہے۔ الگورتھم تبدیل نہیں ہوتا ہے ، لیکن داخل کردہ تربیتی ڈیٹا بدل جاتا ہے ، لہذا اس سے درجہ بندی کی مختلف منطق پیدا ہوتی ہے۔
مشین لرننگ الگورتھم ایک بلیک باکس ہے جو بہت سے مختلف درجہ بندی کے مسائل کو حل کرنے کے لئے دوبارہ استعمال کیا جا سکتا ہے۔
مشین سیکھنے کی چابیاں ایک جامع اصطلاح ہے جس میں بہت سارے اسی طرح کے جینیاتی الگورتھم شامل ہیں۔
آپ مشین سیکھنے کے الگورتھم کو دو بڑی اقسام میں تقسیم کر سکتے ہیں: نگرانی سیکھنے اور غیر نگرانی سیکھنے۔ دونوں کا فرق آسان ہے لیکن بہت اہم ہے۔
فرض کریں کہ آپ ایک رئیل اسٹیٹ ایجنٹ ہیں اور آپ کا کاروبار جتنا بڑا ہوتا ہے ، اس لئے آپ نے آپ کی مدد کرنے کے لئے ایک گروپ انٹرنز کی خدمات حاصل کیں۔ لیکن مسئلہ یہ ہے کہ آپ ایک نظر میں ہی دیکھ سکتے ہیں کہ مکان کی قیمت کتنی ہے ، انٹرنز کو تجربہ نہیں ہے اور وہ نہیں جانتے کہ اس کی قیمت کیسے لگائی جائے۔
آپ نے اپنے سٹوڈنٹ کی مدد کرنے کے لیے (شاید اپنے آپ کو چھٹیوں کے لیے آزاد کرنے کے لیے) ایک چھوٹا سا سافٹ ویئر لکھنے کا فیصلہ کیا ہے جو آپ کے علاقے میں مکانات کی قیمت کا اندازہ اس طرح کے عوامل جیسے کہ مکانات کے سائز، مقام اور اسی طرح کے مکانات کی قیمتوں کا اندازہ لگاتا ہے۔
آپ نے تین مہینوں کے دوران شہر میں ہونے والے ہر گھر کے لین دین کی فہرست بنائی۔ ہر ایک پر آپ نے لمبی لمبی تفصیلات درج کیں۔ سونے کے کمروں کی تعداد، مکان کا سائز، زمین کا ٹکڑا وغیرہ۔ لیکن سب سے اہم بات یہ کہ آپ نے حتمی قیمت درج کی:
یہ ہماری چکن ٹریننگ ڈیٹا بیس ہے۔
ہم ان ٹریننگ کے اعداد و شمار کا استعمال کرتے ہوئے ایک پروگرام لکھ رہے ہیں جس میں علاقے کے دیگر گھروں کی قیمتوں کا اندازہ لگایا گیا ہے:
یہ نگرانی سیکھنے کے نام سے جانا جاتا ہے۔ آپ پہلے ہی ہر گھر کی قیمت جانتے ہیں، دوسرے الفاظ میں، آپ سوال کا جواب جانتے ہیں اور اس کے حل کی منطق کو الٹ کر سکتے ہیں۔
سافٹ ویئر لکھنے کے لئے، آپ ہر ایک پراپرٹی کے لئے تربیت کے اعداد و شمار کو اپنے مشین سیکھنے کے الگورتھم میں داخل کریں گے۔ الگورتھم یہ جاننے کی کوشش کرتا ہے کہ قیمت کے اعداد و شمار کو نکالنے کے لئے کون سا آپریشن استعمال کرنا چاہئے۔
یہ ایک ریاضی کے مشق کے طور پر ہے، اور حساب سے نمبروں کو ختم کر دیا گیا ہے:
میرے خدا! ایک بدمعاش طالب علم نے اساتذہ کے جوابات پر ریاضی کے نشان کو مکمل طور پر مٹا دیا۔
کیا آپ ان سوالات کو دیکھ کر یہ سمجھ سکتے ہیں کہ ان ٹیسٹوں میں ریاضی کے مسائل کیا ہیں؟ آپ کو معلوم ہے کہ آپ کو صحیح جواب دینے کے لئے بائیں طرف کے اعداد و شمار کے ساتھ کیا کرنا چاہئے؟
زیر نگرانی سیکھنے میں، آپ کمپیوٹر کو آپ کے لئے اعداد کے درمیان تعلقات کا حساب لگانے دیتے ہیں۔ اور ایک بار جب آپ اس مخصوص قسم کے مسائل کو حل کرنے کے لئے ضروری ریاضیاتی طریقہ جانتے ہیں، تو آپ اسی قسم کے دوسرے مسائل کا جواب دے سکتے ہیں۔
اگر آپ کو معلوم نہیں ہے کہ ہر گھر کی قیمت کیا ہے؟ یہاں تک کہ اگر آپ صرف گھر کے سائز ، مقام وغیرہ کے بارے میں معلومات جانتے ہیں تو ، آپ کو ایک بہت ہی عمدہ نمونہ مل سکتا ہے۔ یہ نام نہاد غیر نگرانی سیکھنے ہے۔
یہاں تک کہ اگر آپ نامعلوم اعداد و شمار (جیسے قیمت) کی پیش گوئی نہیں کرنا چاہتے ہیں تو ، آپ مشین لرننگ کو کچھ دلچسپ کرنے کے لئے استعمال کرسکتے ہیں۔
یہ اس طرح ہے جیسے کسی نے آپ کو ایک کاغذ دیا ہے جس پر بہت سے اعداد ہیں اور آپ سے کہا ہے، "ارے مجھے نہیں معلوم کہ ان اعداد کا کیا مطلب ہے، شاید آپ ان میں سے کوئی اصول نکال سکیں یا ان کی درجہ بندی کر سکیں، یا کچھ اور۔ آپ کو بہت خوش قسمت!"
آپ اس ڈیٹا کے ساتھ کیا کریں گے؟ سب سے پہلے، آپ خود بخود الگورتھم کا استعمال کرتے ہوئے اعداد و شمار سے مختلف مارکیٹوں کو الگ کرسکتے ہیں۔ شاید آپ کو پتہ چل جائے گا کہ یونیورسٹی کے قریب مکان خریدار چھوٹے لیکن زیادہ بیڈروم والے گھروں کو ترجیح دیتے ہیں جبکہ مضافاتی علاقوں میں مکان خریدار تین بیڈروم والے بڑے گھروں کو ترجیح دیتے ہیں۔ یہ معلومات براہ راست آپ کی مارکیٹنگ میں مدد کرسکتے ہیں۔
اور آپ کچھ بہت ہی عمدہ کام کر سکتے ہیں، آپ خود بخود گھر کی قیمتوں کے بارے میں الگ الگ اعداد و شمار تلاش کر سکتے ہیں، یعنی وہ اعداد و شمار جو دوسرے اعداد و شمار سے مختلف ہوتے ہیں۔ ان کھڑی کھڑی عمارتوں کی جائیدادیں بلندیوں کی عمارتیں ہو سکتی ہیں، اور آپ ان علاقوں میں بہترین فروخت کنندگان کو مرکوز کر سکتے ہیں کیونکہ ان کے کمیشن زیادہ ہیں۔
اس مضمون کے باقی حصے میں ہم زیادہ تر زیر نگرانی سیکھنے کے بارے میں بات کریں گے ، لیکن اس کی وجہ یہ نہیں ہے کہ غیر نگرانی سیکھنا کم مفید ہے یا بالکل بیکار ہے۔ در حقیقت ، اعداد و شمار کو صحیح جوابات سے جوڑنے کی ضرورت نہیں ہے کیونکہ الگورتھم میں بہتری آئی ہے ، لہذا غیر نگرانی سیکھنا زیادہ اہم ہوتا جارہا ہے۔
مشین سیکھنے کے بہت سے الگورتھم ہیں۔ لیکن ابتدائی طور پر یہ سمجھ میں آتا ہے۔
یہ بہت اچھا ہے ، لیکن کیا مکانات کی قیمتوں کا اندازہ لگانا واقعی سیکھنے کے لئے سیکھنے کے طور پر دیکھا جاسکتا ہے؟
ایک انسان کی حیثیت سے ، آپ کا دماغ زیادہ تر حالات سے نمٹ سکتا ہے ، اور یہ بھی سیکھ سکتا ہے کہ ان حالات کو کس طرح سنبھالنا ہے۔ اگر آپ طویل عرصے سے ایک رئیل اسٹیٹ بروکر ہیں تو ، آپ کو جائیداد کی مناسب قیمتوں کا تعین کرنے ، اس کی بہترین مارکیٹنگ کرنے کے طریقوں اور کس طرح کے گاہکوں کی دلچسپی ہوگی وغیرہ کے بارے میں ایک فطری احساس ہوتا ہے۔ مضبوط اے آئی کی تحقیق کا مقصد یہ ہے کہ کمپیوٹر کے ذریعہ اس صلاحیت کو نقل کیا جاسکے۔
لیکن موجودہ مشین سیکھنے کے الگورتھم اتنے اچھے نہیں ہیں کہ وہ صرف بہت مخصوص، محدود مسائل پر توجہ مرکوز کرسکیں۔ شاید اس صورت میں، سیکھنے کی ایک بہتر تعریف یہ ہے کہ ایک مخصوص مسئلہ کو حل کرنے کے لئے ایک مساوات تلاش کرنے کے لئے ایک چھوٹی سی مثال کے اعداد و شمار کی بنیاد پر۔
بدقسمتی سے، مشینیں بہت کم مثال کے اعداد و شمار کی بنیاد پر مخصوص مسائل کو حل کرنے کے لئے ایک مساوات تلاش کرتی ہیں.
یقیناً اگر آپ اس مضمون کو 50 سال بعد پڑھ رہے ہوں گے تو آپ کو معلوم ہوگا کہ ہم نے ایک طاقتور اے آئی الگورتھم تیار کر لیا ہے اور یہ مضمون ایک پرانی چیز کی طرح نظر آئے گا۔ مستقبل کے انسانوں، آپ نے یہ نہیں پڑھا، آپ کے آٹوموبائل خادم نے آپ کو ایک سینڈوچ بنا دیا ہے۔
آئیے ہم کوڈ لکھیں!
آپ نے پچھلی مثال میں مکانات کی قیمتوں کا اندازہ لگانے کے طریقہ کار کے بارے میں کیا لکھنے کا ارادہ کیا ہے؟ نیچے جانے سے پہلے سوچیں۔
اگر آپ مشین لرننگ کے بارے میں کچھ نہیں جانتے ہیں تو ، امکانات یہ ہیں کہ آپ مکانات کی قیمتوں کا اندازہ کرنے کے لئے کچھ بنیادی اصول لکھنے کی کوشش کریں گے ، جیسے:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# In my area, the average house costs $200 per sqft
price_per_sqft = 200
if neighborhood == "hipsterton":
# but some areas cost a bit more
price_per_sqft = 400
elif neighborhood == "skid row":
# and some areas cost less
price_per_sqft = 100
# start with a base price estimate based on how big the place is
price = price_per_sqft * sqft
# now adjust our estimate based on the number of bedrooms
if num_of_bedrooms == 0:
# Studio apartments are cheap
price = price — 20000
else:
# places with more bedrooms are usually
# more valuable
price = price + (num_of_bedrooms * 1000)
return price
اگر آپ کچھ گھنٹے اس طرح مصروف رہتے ہیں تو شاید آپ کو کچھ نتائج ملیں گے ، لیکن آپ کا پروگرام کبھی بھی کامل نہیں ہوگا اور قیمتوں میں تبدیلی کے دوران اس کی دیکھ بھال کرنا مشکل ہے۔
کیا یہ بہتر نہیں ہوگا اگر ہم کمپیوٹر کو اس فنکشن کو انجام دینے کا طریقہ بتائیں؟ جب تک کہ واپس آنے والی قیمتوں کی تعداد درست ہے ، کون پرواہ کرتا ہے کہ فنکشن کیا کرتا ہے؟
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = <computer, plz do some math for me>
return price
اس مسئلے پر غور کرنے کا ایک طریقہ یہ ہے کہ مکانات کی قیمت کو ایک کھانے کی ڈش کی طرح سمجھا جائے، جس میں کمرے کی تعداد، رقبہ اور زمین شامل ہے۔ اگر آپ یہ حساب لگا سکتے ہیں کہ ہر جزو کا حتمی قیمت پر کتنا اثر پڑتا ہے تو شاید آپ کو حتمی قیمت کے لئے مختلف اجزاء کو ملا کر ایک مخصوص تناسب مل جائے گا۔
یہ آپ کے ابتدائی پروگرام (یہ سب پاگل if else بیانات ہیں) کو کچھ اس طرح آسان بنا سکتا ہے:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * .841231951398213
# and a big pinch of that
price += sqft * 1231.1231231
# maybe a handful of this
price += neighborhood * 2.3242341421
# and finally, just a little extra salt for good measure
price += 201.23432095
return price
نوٹ کریں کہ جن جادوئی نمبروں کو بڑے سائز میں نشان لگا دیا گیا ہے۔ 841231951398213، 1231.12312311، 2.3242341421، اور 201.23432095۔ انہیں وزن کہا جاتا ہے۔ اگر ہم ہر مکان کے لئے صحیح وزن کا پتہ لگاسکتے ہیں تو ہمارا فنکشن تمام مکانات کی قیمتوں کی پیش گوئی کرسکتا ہے!
اس کے علاوہ، یہ بھی ممکن ہے کہ آپ کو اپنے آپ کو وزن کم کرنے کے لئے ایک اچھا طریقہ تلاش کرنا پڑے.
پہلا قدم:
سب سے پہلے، ہر وزن کو 1.0 پر سیٹ کریں:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
مرحلہ 2:
آپ کے فنکشنل آپریشن میں ہر پراپرٹی کو لے کر آتے ہیں اور جانچتے ہیں کہ اسٹیشنمنٹ کی قیمت صحیح قیمت سے کس حد تک مختلف ہے:
آپ کے پروگرام کا استعمال کرتے ہوئے گھر کی قیمتوں کا اندازہ لگائیں۔
مثال کے طور پر: مندرجہ بالا جدول میں پہلی جائیداد کی اصل قیمت 250,000 ڈالر ہے، آپ کی فنکشنل قیمت 178,000 ڈالر ہے، اور آپ اس جائیداد سے 72,000 ڈالر کم ہیں۔
اس کے بعد آپ کے ڈیٹا سیٹ میں موجود ہر پراپرٹی کی قیمت کی انحراف کی مربع کے بعد جمع کریں۔ فرض کریں کہ آپ کے ڈیٹا سیٹ میں 500 پراپرٹی ٹرانزیکشنز ہیں جن کی قیمت کی انحراف کی مربع مجموعی طور پر 86،123،373 ڈالر ہے۔ اس سے آپ کے فنکشن کی موجودہ سطح کی درست سطح ظاہر ہوتی ہے۔
اب، مجموعی قیمت کو 500 سے تقسیم کریں، اور آپ کو ہر جائیداد کی قیمت کی اوسط deviation مل جائے گی۔ اس اوسط غلطی کی قیمت کو آپ کے فنکشن کی لاگت کہتے ہیں۔
اگر آپ اس قیمت کو 0 تک لے جانے کے لئے وزن کو ایڈجسٹ کرسکتے ہیں تو آپ کا فنکشن کامل ہے۔ اس کا مطلب یہ ہے کہ آپ کے پروگرام میں ہر جائیداد کی تجارت کے لئے ان پٹ ڈیٹا کے مطابق ایک ہی اندازہ لگایا گیا ہے۔ اور یہی ہمارا مقصد ہے۔ مختلف وزنوں کو آزمانے کے لئے مختلف وزنوں کو آزمائیں تاکہ لاگت کو کم سے کم کیا جاسکے۔
مرحلہ 3:
قدم 2 کو بار بار دہرائیں۔ تمام ممکنہ وزن کے مجموعوں کو آزمائیں۔ کون سا مجموعہ قیمت کو صفر کے قریب ترین بنا دیتا ہے ، یہ وہی ہے جو آپ استعمال کریں گے ، اور جب آپ اس طرح کا مجموعہ ڈھونڈیں گے تو مسئلہ حل ہوجائے گا!
سوچ وقت کو متاثر کرتی ہے
یہ بہت آسان ہے ، ٹھیک ہے؟ سوچئے کہ آپ نے ابھی کیا کیا ہے۔ آپ نے کچھ اعداد و شمار حاصل کیے ، انہیں تین عام آسان اقدامات میں داخل کیا ، اور آخر میں آپ کو ایک فنکشن مل گیا جو آپ کے علاقے میں مکانات کا تخمینہ لگاسکتا ہے۔ مکانات کی قیمتوں کا تعین ، محتاط رہیں! لیکن مندرجہ ذیل حقائق آپ کے ذہن کو پریشان کر سکتے ہیں:
1. پچھلے 40 سالوں میں ، بہت سے شعبوں (جیسے لسانیات / ترجمہ) میں ہونے والی تحقیق سے پتہ چلتا ہے کہ اس طرح کے عام متحرک ڈیٹا بیس (جس میں میں نے الفاظ تیار کیے ہیں) کی طرح سیکھنے والے الگورتھم نے ایسے طریقوں کو شکست دی ہے جن میں حقیقی لوگوں کو استعمال کرنے کی ضرورت ہے۔
2.你最后写出的函数真是笨,它甚至不知道什么是“面积”和“卧室数”。它知道的只是搅动,改变数字来得到正确的答案。
3.很可能你都不知道为何一组特殊的权重值能起效。所以你只是写出了一个你实际上并不理解却能证明的函数。
4.试想一下,你的程序里没有类似“面积”和“卧室数”这样的参数,而是接受了一组数字。假设每个数字代表了你车顶安装的摄像头捕捉的画面中的一个像素,再将预测的输出不称为“价格”而是叫做“方向盘转动度数”,这样你就得到了一个程序可以自动操纵你的汽车了!
یہ پاگل پن ہے، ہے نا؟
قدم 3 میں، آپ کو ہر عدد کو آزمائیں، کیا ہوتا ہے؟
ٹھیک ہے، یقینا آپ کو ہر ممکن وزن کی کوشش کرنے کے لئے بہترین مجموعہ تلاش کرنے کے لئے ناممکن ہے. یہ ایک طویل وقت لگ سکتا ہے، کیونکہ کوشش کرنے کے لئے ایک لامحدود تعداد ہو سکتا ہے. اس صورتحال سے بچنے کے لیے، ریاضی دانوں نے بہت سے ہوشیار طریقے ڈھونڈے ہیں تاکہ زیادہ کوشش کیے بغیر تیزی سے اچھے وزن والے اقدار کو تلاش کیا جا سکے۔ یہاں ان میں سے ایک ہے: سب سے پہلے، ایک سادہ مساوات لکھیں جس میں مندرجہ بالا مرحلے 2 کا اظہار کیا گیا ہے:
یہ آپ کی لاگت کی تقریب ہے۔
اگلا، آئیے ہم اسی مساوات کو دوبارہ لکھتے ہیں (اب آپ ان کو نظر انداز کر سکتے ہیں)
θ موجودہ وزن کا مطلب ہے۔ J ((θ) کا مطلب ہے کہ موجودہ وزن کے مطابق قیمت ہے۔
یہ مساوات ہمارے اندازے کے طریقہ کار کی موجودہ وزن کے تحت انحراف کی حد کی پیمائش کرتی ہے۔
اگر ہم کمروں کی تعداد اور رقبے کے لئے دیئے گئے تمام ممکنہ وزن کے اقدار کو گرافک کے طور پر دکھائیں تو ہمیں اس طرح کا گراف ملتا ہے:
لاگت فنکشن کا گراف ایک کٹورا کی طرح ہے۔ عمودی محور لاگت کا اشارہ کرتا ہے۔
اس گراف میں نیلے رنگ کا سب سے کم نقطہ سب سے کم لاگت کا نقطہ ہے، یعنی ہمارے پروگرام کی سب سے کم انحراف ہے۔ سب سے زیادہ نقطہ کا مطلب ہے سب سے زیادہ انحراف۔ لہذا، اگر ہم گراف میں سب سے کم نقطہ تلاش کر سکتے ہیں جو ہمیں لے جاتا ہے، تو ہمیں جواب مل گیا ہے!
لہذا، ہمیں صرف وزن کے وزن کو ایڈجسٹ کرنے کی ضرورت ہے تاکہ ہم چارٹ پر سب سے کم نقطہ کی طرف نیچے کی طرف چل سکیں. اگر وزن کے لئے چھوٹی سی ایڈجسٹمنٹ کی طاقت ہمیں کم سے کم نقطہ کی طرف چلتی رہتی ہے، تو آخر میں ہم بہت زیادہ وزن کی کوشش کرنے کی ضرورت نہیں ہے.
اگر آپ کو تھوڑا سا حساب یاد ہے، تو آپ کو شاید یاد ہے کہ اگر آپ کسی فنکشن کا پتہ لگائیں تو اس کا نتیجہ آپ کو کسی بھی نقطہ پر اس فنکشن کا gradient بتائے گا۔ دوسرے لفظوں میں، اگر آپ کو ایک نقطہ دیا گیا ہے تو یہ ہمیں بتاتا ہے کہ راستہ نیچے کی طرف ہے۔ ہم اس کا استعمال کر سکتے ہیں نیچے کی طرف آگے بڑھنے کے لئے۔
لہذا، اگر ہم ہر وزن کے بارے میں لاگت فنکشن کے بارے میں biased ہیں، تو ہم ہر وزن سے اس کی قدر کو کم کر سکتے ہیں؛ یہ ہمیں پہاڑ کے نچلے حصے کے قریب لے جاتا ہے؛ یہ کرتے رہیں، اور آخر میں ہم سب سے نیچے تک پہنچیں گے، اور وزن کے سب سے اوپر کی قیمت حاصل کریں گے؛ (نہیں پڑھتے ہیں؟ فکر نہ کرو، پھر نیچے پڑھتے ہیں) ۔
اس طرح کا بہترین وزن تلاش کرنے کا طریقہ بلایا جاتا ہے بڑے پیمانے پر گرڈینٹ ڈپریشن، جس میں اس کی اونچائی کا خلاصہ ہے۔ اگر آپ تفصیلات کو سمجھنا چاہتے ہیں تو ، خوفزدہ نہ ہوں ، مزید گہرائی میں جدوجہد کریں۔http://hbfs.wordpress.com/2012/04/24/introduction-to-gradient-descent/♡♡♡
جب آپ مشین لرننگ الگورتھم لائبریری کا استعمال کرتے ہوئے حقیقی مسائل کو حل کرنے کے لئے کرتے ہیں تو یہ سب آپ کے لئے تیار ہے۔ لیکن کچھ مخصوص تفصیلات کو سمجھنا ہمیشہ مفید ہوتا ہے۔
کیا آپ نے اس کے علاوہ بھی کچھ نہیں دیکھا؟
اوپر بیان کردہ تین قدموں والا الگورتھم کثیر لکیری رجعت کہا جاتا ہے۔ آپ کا تخمینہ لگانے والا مساوات ایک سیدھی لائن کی تلاش میں ہے جو تمام مکانات کی قیمتوں کے اعداد و شمار کے پوائنٹس کو فٹ کرسکے۔ پھر آپ اس مساوات کا استعمال کرتے ہوئے مکانات کی قیمتوں کا اندازہ لگاتے ہیں جو آپ کی سیدھی لائن پر واقع ہوسکتے ہیں۔ یہ خیال طاقتور ہے ، اور آپ اسے عملی طور پر حل کرنے کے لئے استعمال کرسکتے ہیں۔
لیکن یہ طریقہ جو میں نے آپ کو دکھایا ہے وہ سادہ حالات میں کام کرسکتا ہے، یہ ہر صورت میں کام نہیں کرے گا۔ ایک وجہ یہ بھی ہے کہ مکانات کی قیمتیں ہمیشہ ایک مسلسل لکیری لائن کی طرح نہیں چلتی ہیں۔
تاہم، خوش قسمتی سے، اس صورت حال کو سنبھالنے کے بہت سے طریقے موجود ہیں۔ غیر لکیری اعداد و شمار کے لئے، بہت سی دیگر اقسام کے مشین سیکھنے کے الگورتھم (جیسے نیورل نیٹ ورکس یا نیوکلیئر ویکٹر مشینیں) کو سنبھالنے کے لئے دستیاب ہیں۔ لکیری رجعت کو زیادہ لچکدار استعمال کرنے کے بہت سے طریقے بھی موجود ہیں، جن میں زیادہ پیچیدہ لائنوں کے ساتھ فٹ ہونے کے بارے میں سوچا جاتا ہے۔ تمام حالات میں، سب سے زیادہ اہم وزن کی تلاش کا بنیادی خیال اب بھی لاگو ہوتا ہے۔
اس کے علاوہ ، میں نے زیادہ سے زیادہ فٹ ہونے کے تصور کو نظرانداز کردیا ہے۔ یہ آسان ہے کہ وزن کے وزن کے ایسے سیٹ کو تلاش کریں جو آپ کے اصل ڈیٹا سیٹ میں مکانات کی قیمتوں کا بہترین اندازہ لگاسکتے ہیں ، لیکن اصل ڈیٹا سیٹ سے باہر کے کسی بھی نئے مکانات کا اندازہ نہیں لگاسکتے ہیں۔ اس صورتحال کو حل کرنے کے لئے بہت سارے حل بھی ہیں (جیسے باقاعدگی سے اور کراس ویلیو ڈیٹا سیٹ کا استعمال) ۔ اس مسئلے کو سنبھالنے کا طریقہ سیکھنا مشین لرننگ کو آسانی سے لاگو کرنے کے لئے ضروری ہے۔
دوسرے لفظوں میں ، بنیادی تصورات بہت آسان ہیں ، اور مشین لرننگ کو استعمال کرنے میں مفید نتائج حاصل کرنے کے ل some کچھ ہنر اور تجربے کی ضرورت ہے۔ تاہم ، یہ وہ ہنر ہے جو ہر ڈویلپر سیکھ سکتا ہے۔
ایک بار جب آپ یہ سمجھنا شروع کردیتے ہیں کہ مشین لرننگ ٹیکنالوجی کو مشکل مسائل (جیسے ہینڈ رائٹنگ کی شناخت) کے حل کے لئے آسانی سے لاگو کیا جاسکتا ہے ، تو آپ کو یہ احساس ہوتا ہے کہ جب تک آپ کے پاس کافی اعداد و شمار موجود ہیں ، آپ مشین لرننگ کے ذریعہ کسی بھی مسئلے کو حل کرسکتے ہیں۔ صرف اعداد و شمار کو ان پٹ کرنے کی ضرورت ہے ، اور آپ کو معلوم ہوگا کہ کمپیوٹر کے ذریعہ تیار کردہ مساوات کے مطابق اعداد و شمار کو تلاش کرنے کی طرح ہے۔
لیکن یہ یاد رکھنا ضروری ہے کہ مشین لرننگ صرف ان مسائل پر لاگو ہوتی ہے جو آپ کے پاس موجود اعداد و شمار کے ساتھ عملی طور پر حل ہوسکتے ہیں۔
مثال کے طور پر، اگر آپ ایک ماڈل بناتے ہیں جس میں ہر گھر میں پوزیشنوں کی تعداد کی بنیاد پر مکانات کی قیمت کی پیشن گوئی کی جاتی ہے، تو یہ کبھی کامیاب نہیں ہو گا۔ گھر میں پوزیشنوں کی تعداد اور مکانات کی قیمت کے درمیان کوئی تعلق نہیں ہے۔ لہذا، چاہے وہ کتنا ہی کوشش کرے، کمپیوٹر دونوں کے درمیان تعلق کا اندازہ نہیں لگا سکتا ہے۔
آپ صرف ان رشتوں کا ماڈل بنا سکتے ہیں جو واقعی موجود ہیں۔
مجھے لگتا ہے کہ مشین لرننگ کا سب سے بڑا مسئلہ یہ ہے کہ یہ بنیادی طور پر تعلیمی اور تجارتی تحقیقی تنظیموں میں سرگرم ہے۔ ایسے لوگوں کے لئے آسان اور آسان سیکھنے کا مواد بہت کم ہے جو ماہر بننے کے بجائے عام طور پر سیکھنا چاہتے ہیں۔ لیکن یہ ہر دن بہتر ہوتا جارہا ہے۔
پروفیسر اینڈریو این جی کا کورسرا پر مشین لرننگ کا مفت کورس بہت اچھا ہے۔ میں اسے شروع کرنے کی سفارش کرتا ہوں۔ کسی بھی شخص کو کمپیوٹر سائنس کی ڈگری حاصل کرنے اور ریاضی کے بارے میں کچھ یاد رکھنے کی ضرورت ہے۔
اس کے علاوہ ، آپ ڈاؤن لوڈ کرسکتے ہیں اور انسٹال کرسکتے ہیں SciKit-Learn ، جس کے ساتھ آپ ہزاروں مشین لرننگ الگورتھم آزما سکتے ہیں۔ یہ ایک پائیٹن فریم ورک ہے جس میں تمام معیاری الگورتھم کے لئے بلیک باکس ورژن موجود ہیں۔
پیتھون ڈویلپر سے نقل کیا گیا
اوکلوکویناس مثال کو پروفیسر ڈونڈا نے ہر کلاس کے آغاز پر دہرا دیا ہے۔
ٹرینتو کیا آپ کو نہیں لگتا کہ آپ کو اس کی قیمت کا حساب لگانا چاہئے؟