JavaRush /جاوا بلاگ /Random-SD /جاوا ڊولپرز لاءِ مشين لرننگ، حصو 1

جاوا ڊولپرز لاءِ مشين لرننگ، حصو 1

گروپ ۾ شايع ٿيل
هڪ مشين لرننگ الگورتھم سيٽ اپ ڪريو ۽ جاوا استعمال ڪندي پنھنجو پھريون اڳڪٿي ڪندڙ فنڪشن ٺاھيو. خود ڊرائيونگ ڪارون، منهن جي سڃاڻپ جو نظام ۽ آواز اسسٽنٽ سڀ ترقي يافته آهن مشين سکيا ٽيڪنالاجيون ۽ فريم ورڪ استعمال ڪندي. ۽ هي صرف پهرين لهر آهي. ايندڙ 10 سالن ۾، پراڊڪٽس جو هڪ نئون نسل اسان جي دنيا کي بدلائي ڇڏيندو، پروگرامن، پروڊڪٽس ۽ ايپليڪيشنن جي ترقي لاء نئين طريقن کي جنم ڏيندو. جاوا ڊولپرز لاءِ مشين لرننگ، حصو 1 - 1جاوا پروگرامر جي طور تي، توهان هن موج کي هاڻي پڪڙڻ چاهيو ٿا ته ٽيڪني ڪمپنيون مشين لرننگ ۾ وڏي پئماني تي سيڙپڪاري ڪرڻ شروع ڪري رهيون آهن. جيڪو توهان اڄ سکيو ٿا توهان ايندڙ پنجن سالن تائين استعمال ڪري سگهو ٿا. پر ڪٿان شروع ڪجي؟ هي مضمون هن سوال جو جواب ڏيڻ جو مقصد آهي. مشين لرننگ الگورٿم کي لاڳو ڪرڻ ۽ تيار ڪرڻ لاءِ اسان جي مختصر گائيڊ تي عمل ڪندي توهان مشين لرننگ جي اصولن جو پهريون تاثر حاصل ڪندا. سکيا واري الگورتھم جي ساخت ۽ خاصيتن جي باري ۾ سکڻ کان پوءِ جيڪي توھان استعمال ڪري سگھوٿا ان کي تربيت ڏيڻ لاءِ، ان جو جائزو وٺو، ۽ اھو فنڪشن چونڊيو جيڪو پيش گوئي جي بھترين درستگي مهيا ڪري، توھان سمجھي سگھوٿا ته JVM فريم ورڪ (Weka) کي ڪيئن استعمال ڪجي. مشين سکيا حل ٺاهي. هي آرٽيڪل نگراني ڪيل مشين لرننگ تي ڌيان ڏئي ٿو ڇاڪاڻ ته اهو اصول آهي عام طور تي استعمال ٿيندڙ سمارٽ ايپليڪيشنن کي ترقي ڪرڻ ۾.

مشين سکيا ۽ مصنوعي ذهانت

مشين لرننگ مصنوعي ذهانت جي شعبي مان ترقي ڪئي، جنهن جو مقصد مشين ٺاهڻ آهي جيڪا انساني ذهانت جي نقل ڪري سگهي ٿي. جيتوڻيڪ اصطلاح "مشين لرننگ" ڪمپيوٽر سائنس ۾ پيدا ٿيو، مصنوعي ذهانت سائنس جو نئون ميدان ناهي. ٽريننگ ٽيسٽ ، 20 صدي جي شروعات ۾ رياضي دان ايلن ٽرنگ پاران تيار ڪئي وئي، پهرين تجربن مان هڪ آهي جيڪو اهو طئي ڪرڻ لاء تيار ڪيو ويو آهي ته ڇا هڪ ڪمپيوٽنگ مشين صحيح هوشيار آهي. ٽريننگ ٽيسٽ موجب، ڪمپيوٽر انساني ذهانت جي موجودگي کي ثابت ڪري ٿو ڪنهن شخص کي بغير ڪنهن شخص کي اهو محسوس ڪرڻ جي ته هو مشين سان ڳالهائي رهيو آهي.
جاوا ڊولپرز لاءِ مشين لرننگ، حصو 1 - 2
اڄڪلهه مشين جي سکيا جا ڪيترائي مشهور طريقا انهن خيالن تي ٻڌل آهن جيڪي ڏهاڪن کان پراڻي آهن. پر گذريل ڏهاڪي ۾ ڪمپيوٽنگ (۽ ورهايل ڪمپيوٽنگ پليٽ فارمز) مشين لرننگ الگورتھم لاڳو ڪرڻ لاءِ ڪافي طاقت کڻي آئي آهي. انھن مان گھڻا ضرورت آھي وڏي مقدار ۾ ميٽرڪس ضرب ۽ ٻين رياضياتي حسابن جي. ويهه سال اڳ، ڪمپيوٽنگ ٽيڪنالاجيون جيڪي اهڙيون حساب ڪتاب ڏيڻ جي اجازت ڏين ٿيون، اهي موجود نه هئا، پر هاڻي اهي هڪ حقيقت بڻجي چڪا آهن. مشين لرننگ الگورتھم پروگرامن کي اجازت ڏين ٿا ته معيار جي بهتري جي عمل کي انجام ڏين ۽ انساني مداخلت کان سواءِ انهن جي صلاحيتن کي وڌايو. مشين لرننگ استعمال ڪندي هڪ پروگرام تيار ڪيو ويو آهي جيڪو آزاديءَ سان اپ ڊيٽ ڪرڻ يا پنهنجي ڪوڊ کي وڌائڻ جي قابل هوندو آهي.

نگراني ٿيل سکيا بمقابله غير نگراني ٿيل سکيا

نگراني ٿيل ۽ غير نگراني ٿيل سکيا مشين سکيا جا ٻه مشهور طريقا آهن. ٻنهي اختيارن کي مشين کي فيڊ ڪرڻ جي ضرورت آهي وڏي مقدار ۾ ڊيٽا ريڪارڊ رشتا ٺاهڻ ۽ سکڻ لاءِ. اهڙي گڏ ڪيل ڊيٽا کي عام طور تي "فيچر ویکٹر" سڏيو ويندو آهي . مثال طور، اسان وٽ هڪ خاص رهائشي عمارت آهي. ھن حالت ۾، فيچر ویکٹر ۾ خاصيتون شامل ٿي سگھن ٿيون جھڙوڪ: گھر جي ڪل ايراضي، ڪمرن جو تعداد، گھر ٺھيل سال، وغيره. نگراني ڪيل سکيا ۾ ، هڪ مشين لرننگ الگورٿم کي تربيت ڏني ويندي آهي ته جيئن فيچر ویکٹرز سان لاڳاپيل سوالن جا جواب ڏين. الورورٿم کي تربيت ڏيڻ لاءِ، ان کي فيچر ویکٹر ۽ لاڳاپيل ليبلن جو هڪ سيٽ ڏنو ويندو آهي. لاڳاپيل ليبل هڪ شخص (استاد) طرفان مهيا ڪيل آهي ۽ ان ۾ پڇيل سوال جو صحيح "جواب" شامل آهي. سکيا وارو الگورتھم فيچر ویکٹرز ۽ درست ليبلز جو تجزيو ڪري ٿو ته جيئن اندروني ڍانچي ۽ انھن جي وچ ۾ لاڳاپا ڳولڻ لاءِ. هن طريقي سان مشين سوالن جا صحيح جواب ڏيڻ سکي ٿي. مثال طور، اسان ريئل اسٽيٽ واپار لاءِ هڪ خاص ذهين ايپليڪيشن تي غور ڪري سگهون ٿا. اهو هڪ فيچر ویکٹر استعمال ڪندي تربيت ڪري سگهجي ٿو جنهن ۾ سائيز، ڪمرن جو تعداد، ۽ گھرن جي هڪ سيٽ لاءِ ٺهيل سال شامل آهن. هڪ شخص کي لازمي طور تي هر گهر کي انهن عنصرن جي بنياد تي گهر جي صحيح قيمت سان هڪ ليبل تفويض ڪرڻ گهرجي. هن ڊيٽا جو تجزيو ڪندي، هڪ سمارٽ ايپليڪيشن پاڻ کي ان سوال جو جواب ڏيڻ لاءِ تربيت ڏيڻ گهرجي، "مان هن گهر لاءِ ڪيترو پئسا حاصل ڪري سگهان ٿو؟"
جاوا بابت پڙهڻ ۾ دلچسپي رکو ٿا؟ جاوا ڊولپر گروپ ۾ شامل ٿيو !
هڪ دفعو تياري جو عمل مڪمل ٿي ويو آهي، نئين ان پٽ ڊيٽا کي نشانو نه آهي. مشين کي لازمي طور تي سوالن جا صحيح جواب ڏيڻ جي قابل هوندو، جيتوڻيڪ اڻڄاتل، غير ليبل ٿيل فيچر ویکٹر لاءِ. غير نگراني ٿيل سکيا ۾، الورورٿم انساني ليبلنگ کان سواءِ جوابن جي اڳڪٿي ڪرڻ لاءِ ٺهيل آهي (يا سوال پڇڻ کان سواءِ به). هڪ ليبل يا نتيجو طئي ڪرڻ جي بدران، غير نگراني ٿيل سکيا الگورٿمس اڳ ۾ اڻڄاتل رشتن کي ڳولڻ لاء وڏي ڊيٽا سيٽ ۽ ڪمپيوٽنگ پاور استعمال ڪندا آهن. مثال طور، صارفين جي پراڊڪٽ مارڪيٽنگ ۾، غير نگراني ٿيل سکيا پوشیدہ رشتن يا گراهڪن جي گروپن کي سڃاڻڻ لاءِ استعمال ٿي سگهي ٿي، جيڪي آخرڪار مارڪيٽنگ پروگرام کي بهتر ڪرڻ يا هڪ نئون ٺاهڻ ۾ مدد ڪري سگهن ٿيون. هن آرٽيڪل ۾، اسان نگراني ڪيل مشين لرننگ تي ڌيان ڏينداسين؛ هن وقت سڀ کان عام استعمال ٿيل طريقو آهي.

نگراني ٿيل مشين لرننگ

سڀ مشين سکيا ڊيٽا تي ٻڌل آهي. هڪ نگراني ڪيل مشين لرننگ پروجيڪٽ لاءِ، توهان کي ڊيٽا کي نشانن سان نشانو بڻائڻ جي ضرورت آهي انهي طريقي سان جيڪا پڇيل سوال جا معقول جواب ڏئي ٿي. هيٺ ڏنل، جدول-1 ۾، هر گهر جي معلومات جي رڪارڊ کي "گهر جي قيمت" جو نشان لڳايو ويو آهي. رڪارڊ ڊيٽا ۽ گھر جي قيمت جي وچ ۾ تعلق جي سڃاڻپ ڪندي، الورورٿم آخرڪار گھرن جي مارڪيٽ جي قيمت جي اڳڪٿي ڪرڻ جي قابل هوندو جيڪي ڏنل فهرست ۾ شامل نه آھن. (مهرباني ڪري نوٽ ڪريو ته گھر جي ايراضي چورس ميٽر ۾ ڏيکاريل آهي، ۽ گھر جي قيمت يورو ۾ آهي).
جدول 1. گھرن جي فهرست
نشاني نشاني نشاني ليبل
گھر جي ايراضي ڪمرن جو تعداد گھر جي عمر گھر جي متوقع قيمت
90 m2 / 295 فوٽ 2 ڪمرا 23 سالن جي عمر €249,000
101 m2 / 331 فوٽ 3 ڪمرا n/a €338,000
1330 m2 / 4363 فوٽ 11 ڪمرا 12 سال 6,500,000 €
شروعاتي مرحلن ۾، توھان ممڪن طور تي ڊيٽا کي دستي طور تي ليبل ڪندا، پر آخرڪار توھان سيکاريندا توھان جو پروگرام ان کي پاڻ تي ڪرڻ لاءِ. توهان شايد اڳ ۾ ئي ڏٺو آهي ته هي طريقو اي ميل ڪلائنٽ سان ڪم ڪري ٿو، جتي هڪ اي ميل کي اسپام فولڊر ڏانهن منتقل ڪرڻ لاء، توهان سوال جو جواب ڏيو "ڇا هي اي ميل اسپام آهي؟" جڏهن توهان جواب ڏيو ٿا، توهان اي ميلن کي سڃاڻڻ لاءِ پروگرام کي تربيت ڏيو ٿا جيڪي توهان نٿا ڏسڻ چاهيو. ايپليڪيشن جي اسپام فلٽر کي تربيت ڏني وئي آهي ته پيغامن کي نشان لڳايو هڪ ئي ماخذ کان يا ساڳئي مواد تي مشتمل هجي ۽ انهن کي مناسب قاعدن مطابق منظم ڪري. ليبل ٿيل ڊيٽا سيٽ صرف تياري ۽ جانچ جي مقصدن لاءِ گهربل آهن. هڪ دفعو هي قدم مڪمل ٿي ويندو آهي، مشين لرننگ الگورٿم غير ليبل ٿيل ڊيٽا تي ڪم ڪندو آهي. مثال طور، توهان اڳڪٿي ڪرڻ واري الگورٿم کي فيڊ ڪري سگهو ٿا هڪ نئون، اڻ ليبل ٿيل رڪارڊ هڪ گهر بابت ڊيٽا جو، ۽ اهو خودڪار طور تي گھر جي متوقع قيمت جي اڳڪٿي ڪرڻ گهرجي تياري واري ڊيٽا مان حاصل ڪيل ”علم“ جي بنياد تي.

ڪيئن هڪ مشين اڳڪٿي ڪرڻ سکي ٿي

نگراني ڪيل مشين لرننگ سان چيلنج اهو آهي ته ڏنل سوال لاءِ مناسب اڳڪٿي ڪرڻ وارو ڪم ڳولجي. رياضياتي طور تي، مشڪل اهو آهي ته هڪ فنڪشن ڳولڻ جو جيڪو هڪ متغير کي ان پٽ طور وٺندو آهي х۽ پيش ڪيل قدر واپس ڪري ٿو у. مفروضن جو هي ڪم (hθ)هڪ تياري جي عمل جو نتيجو آهي. اڪثر ڪري مفروضي جي فنڪشن کي مقصدي فنڪشن يا پيشنگوئي فنڪشن پڻ سڏيو ويندو آهي.
y = h θ (x)
اڪثر ڪيسن ۾، хاهو هڪ ڊيٽا صف آهي. اسان جي مثال ۾، هي عناصر جو هڪ ٻه-dimensional صف آهي جيڪو هڪ گهر جي وضاحت ڪري ٿو، جنهن ۾ ڪمرن جو تعداد ۽ گھر جي ايراضي شامل آهي. اهڙن قدرن جو هڪ صف هڪ خاصيت ویکٹر آهي. هڪ خاص مقصدي فنڪشن کي بيان ڪرڻ سان، اسان ان کي استعمال ڪري سگھون ٿا هر فيچر ویکٹر جي اڳڪٿي ڪرڻ لاءِ х. گھر جي قيمت جي اڳڪٿي ڪرڻ لاءِ، توھان کي {101.0, 3.0}گھر جي ايراضي ۽ ڪمرن جي تعداد تي مشتمل فيچر ویکٹر استعمال ڪندي مقصدي فنڪشن کي سڏڻ گھرجي:
// целевая функция h (результат процесса обучения)
Function<Double[], Double> h = ...;

// определяем целевой вектор с площадью дома=101 и количеством комнат=3
Double[] x = new Double[] { 101.0, 3.0 };

// и предсказываем цену дома (метка)
double y = h.apply(x);
مثال-1 مان ماخذ ڪوڊ ۾، صف ۾ قدر хگھر جي خاصيتن جي ویکٹر جي نمائندگي ڪن ٿا. مقصدي فنڪشن طرفان موٽايل قيمت уگھر جي اڳڪٿي ڪيل قيمت آهي. مشين لرننگ جو مقصد مقصدي فنڪشن کي طئي ڪرڻ آهي جيڪو ممڪن طور تي اڻڄاتل انپٽ پيٽرولرن کي درست طور تي ڪم ڪندو. مشيني سکيا ۾، مقصدي فنڪشن کي (hθ)ڪڏهن ڪڏهن ماڊل سڏيو ويندو آهي. هي ماڊل هڪ سکيا جي عمل جو نتيجو آهي.
جاوا ڊولپرز لاءِ مشين لرننگ، حصو 1 - 3
ليبل ٿيل تربيتي نمونن جي بنياد تي، سکيا وارو الگورتھم ٽريننگ ڊيٽا ۾ جوڙجڪ يا نمونن کي ڳولي ٿو. تنهن ڪري هو هڪ ماڊل ٺاهي ٿو جيڪو عام طور تي ڊيٽا لاءِ سٺو آهي. ضابطي جي طور تي، سکيا جو عمل فطرت ۾ exploratory آهي. اڪثر صورتن ۾، اهو عمل ڪيترائي ڀيرا ورجايو ويندو آهي مختلف قسم جي سکيا جي الگورتھم ۽ ترتيبن کي استعمال ڪندي. نتيجي طور، سڀئي ماڊل ڪارڪردگي جي ماپ جي بنياد تي تشخيص ڪيا ويا آهن، جن مان بهترين چونڊيو ويو آهي. ۽ هي ماڊل استعمال ڪيو ويندو آهي تخميني قدرن کي ڳڻڻ لاءِ مستقبل جي اڻ ڳڻي ڊيٽا لاءِ.

لڪير رجعت

هڪ مشين کي ”سوچڻ“ سيکارڻ لاءِ، توهان کي پهريان سکڻ جو الگورٿم چونڊڻو پوندو جيڪو توهان استعمال ڪندا. مثال طور، لڪير ريگريشن. هي هڪ آهي آسان ۽ مشهور نگراني ڪيل مشين لرننگ الگورتھم. الورورٿم فرض ڪري ٿو ته ان پٽ خاصيتن ۽ نتيجن جي نشانن جي وچ ۾ لاڳاپو لڪير آهي. هيٺ ڏنل عام لڪير ريگريشن فنڪشن پيش ڪيل قدر واپس ڪري ٿو فيچر ویکٹر جي سڀني عنصرن کي گڏ ڪندي پيرا ميٽر θ (ٿيٽا) سان ضرب ڪيل . هي پيٽرول ٽريننگ ڊيٽا جي بنياد تي ريگريشن فنڪشن کي اپنائڻ يا "ٽيون" ڪرڻ لاءِ تربيتي عمل دوران استعمال ڪيو ويندو آهي.
h θ (x) = θ 0 * 1 + θ 1 * x 1 + ... θ n * x n
هڪ لڪير ريگريشن فنڪشن ۾، ٿيٽا پيٽرولر ۽ فيچر پيٽرولر سبسڪرپشن سان شمار ڪيا ويا آهن. سبسڪرپٽ ویکٹر ۾ پيٽرول (θ)۽ فيچر پيٽرولر جي پوزيشن کي طئي ڪري ٿو. (х)ياد رهي ته x 0 خصوصيت هڪ مستقل شفٽ اصطلاح آهي ۽ 1ڪمپيوٽر جي مقصدن لاءِ اهم آهي. نتيجي طور، اهم پيٽرولر جي انڊيڪس جهڙوڪ گھر جي ايراضي x 1 سان شروع ٿئي ٿي . تنهن ڪري، جيڪڏهن x 1 خصوصيت ویکٹر (گهر جي ايراضي) جي پهرين قيمت مقرر ڪئي وئي آهي، ته پوء x 2 ايندڙ قيمت (ڪمري جو تعداد) وغيره وٺندو. مثال-2 ظاھر ڪري ٿو جاوا جي عمل درآمد کي لڪير ريگريشن فنڪشن، رياضياتي طور تي h θ (x) طور ظاهر ڪيو ويو آھي. سادگي لاءِ، حساب ڪتاب استعمال ڪندي ڪيو ويندو آهي double. طريقي ۾ apply()، اهو مهيا ڪيو ويو آهي ته صف جو پهريون عنصر 1.0 جي برابر هوندو ۽ هن فنڪشن کان ٻاهر مقرر ڪيو ويندو. مثال 2: جاوا ۾ لينئر ريگريشن
public class LinearRegressionFunction implements Function<Double[], Double> {
 private final double[] thetaVector;

 LinearRegressionFunction(double[] thetaVector) {
 this.thetaVector = Arrays.copyOf(thetaVector, thetaVector.length);
 }

 public Double apply(Double[] featureVector) {
 // с целью упрощения вычислений первый элемент должен быть equals 1.0
 assert featureVector[0] == 1.0;

 // простое последовательное сложение
 double prediction = 0;
 for (int j = 0; j < thetaVector.length; j++) {
 prediction += thetaVector[j] * featureVector[j];
 }
 return prediction;
 }

 public double[] getThetas() {
 return Arrays.copyOf(thetaVector, thetaVector.length);
 }
}
ھڪڙو نئون مثال ٺاھڻ لاء LinearRegressionFunction، توھان کي وضاحت ڪرڻ جي ضرورت آھي پيرا ميٽر θ. هي پيٽرول يا ویکٹر استعمال ڪيو ويندو آهي عام لڪير ريگريشن فنڪشن کي بنيادي تربيتي ڊيٽا کي ترتيب ڏيڻ لاءِ. θپروگرام ۾ استعمال ٿيل پيٽرولر کي تربيتي عمل دوران ترتيب ڏنو ويندو، تربيتي مثالن جي بنياد تي. تربيت يافته ٽارگيٽ فنڪشن جو معيار تربيت لاءِ تيار ڪيل ڊيٽا جي معيار تي منحصر هوندو. هيٺ ڏنل مثال ۾ اسان LinearRegressionFunctionقيمت جي اڳڪٿيون استعمال ڪريون ٿا گھر جي سائيز جي بنياد تي بيان ڪرڻ لاءِ. انهي ڳالهه تي غور ڪندي ته x 0 لازمي طور تي 1.0 جي قيمت سان هڪ مستقل هجڻ گهرجي، مقصد فنڪشن کي ٻن پيرا ميٽر استعمال ڪندي شروع ڪيو ويندو آهي θ، جتي اهي سکيا جي عمل جو نتيجو آهن. ھڪڙو نئون مثال ٺاھڻ کان پوء، ھڪڙي گھر جي قيمت 1330 چورس ميٽر جي ايراضيء سان پيش ڪيو ويندو جيئن ھيٺ ڏيکاريل آھي:
// тета вектор, используемый в этом примере, является результатом процесса обучения
double[] thetaVector = new double[] { 1.004579, 5.286822 };
LinearRegressionFunction targetFunction = new LinearRegressionFunction(thetaVector);

// создание вектора признаков со значениями x0=1 (для удобства вычислений) и //x1=площадь дома
Double[] featureVector = new Double[] { 1.0, 1330.0 };

// выполняем расчеты
double predictedPrice = targetFunction.apply(featureVector);
ھيٺ ڏنل شڪل ۾ توھان ڏسي سگھوٿا اڳڪٿي ڪرڻ واري مقصد جي فنڪشن جو گراف (نيري لڪير). اهو گھر جي علائقي جي سڀني قدرن لاء مقصد فنڪشن جي حساب سان حاصل ڪيو ويو آهي. چارٽ ۾ ٽريننگ لاءِ استعمال ٿيندڙ قيمت-علائقي جوڙو پڻ شامل آھي.
جاوا ڊولپرز لاءِ مشين لرننگ، حصو 1 - 4
هن وقت اڳڪٿي چارٽ تمام سٺو لڳندو آهي. گراف جا همراه (پوزيشن ۽ سلپ) ویکٹر طرفان طئي ڪيا ويندا آهن θ { 1.004579, 5.286822 }. پر توهان ڪيئن اندازو لڳائي سگهو ٿا ته ڪهڙو θ-ویکٹر توهان جي ايپليڪيشن لاءِ بهترين آهي؟ ڇا فنڪشن بهتر ٿيندو جيڪڏهن توهان پهرين يا شايد ٻيو پيٽرولر تبديل ڪيو؟ بهترين فٽ ٿيٽا ویکٹر جو تعين ڪرڻ لاءِ، توهان کي هڪ يوٽيلٽي فنڪشن جي ضرورت آهي جيڪا اندازو لڳائي ٿي ته مقصدي فنڪشن ڪيترو بهتر ڪم ڪري ٿو. TO BE CONTIUED انگريزي مان ترجمو . ليکڪ: گريگور روٿ، سافٽ ويئر آرڪيٽيڪٽ، جاوا ورلڊ.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION