মেশিন লার্নিং নিয়ে হাজারো প্রশ্নের কিছু উত্তর:

অনেক প্রশ্ন যোগ হচ্ছে প্রতিনিয়ত, অনুগ্রহ করে একটা সময় পর পর দেখতে পারেন এখানে।

শুরুতেই ধরে নিচ্ছি এ ব্যাপারে আমাদের কোন আইডিয়া নেই। একদম শুন্য ধারণা।

‘ইন্টেলিজেন্ট সিস্টেম’ তৈরিতে কয়েকটা কম্পোনেন্ট প্রয়োজন এমুহুর্তে। মানুষ এবং যন্ত্রের সেতুবন্ধনের শুরুতে মেশিনকে কিভাবে মানুষের মতো ‘চিন্তা-ভাবনা’ ট্রান্সফার করা যায় সেটার গল্প থাকবে শুরুর বই, নোটবুক, এবং ভিডিওগুলোতে। স্টেপ বাই স্টেপ স্টাইলে। এরপর - যন্ত্রের সাথে সফটওয়্যারের ইন্টারঅ্যাকশন নিয়ে থাকবে আলাদা ধরনের কনটেন্ট। শুরুর ধারণা, কিছুটা আরডুইনোর মতো। তবে, মজার ব্যাপার হচ্ছে - এর প্রথম ধাপ হচ্ছে ‘মেশিন লার্নিং’। শুরুতেই কিছু প্রশ্নের উত্তর।

সব বই

আর প্রোগ্রামিং পাইথন প্রোগ্রামিং পাইথন+আর প্রোগ্রামিং পাইথন ডিপ লার্নিং ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং নীতিনির্ধারণী

১. কিছুই জানিনা, শুরু করবো কোথা থেকে?

অথবা,

২. আমি বিবিএ/পলিটেকনিক/মেডিকেলের স্টুডেন্ট। কোন প্রোগ্রামিং অভিজ্ঞতা নেই। কিভাবে শুরু করবো?

১. মেশিন লার্নিং সবার জন্য। কমনসেন্স দিয়ে শুরু করা সম্ভব। কম্পিউটার ফিল্ডের বাইরের মানুষ ব্যবহার করছে বেশি। ব্যবসা প্রশাসন, ভাষাতত্ত্ব, হেলথকেয়ার, আইন, হিউম্যান রিসোর্স, ইত্যাদি ইত্যাদি। মেশিন লার্নিং দিয়ে বাংলা থেকে ইংরেজি ট্রান্সলেশন/টেক্সট টু স্পীচ করতে চাইলে কে করবেন? একজন ভাষাতত্ত্ববিদ। সামনের মাসগুলোতে কে কে আপনার কোম্পানি ছেড়ে যাবে সেটা বের করবে কে মেশিন লার্নিং দিয়ে? একজন “এইচআর” ডিপার্টমেন্টের কর্মকর্তা।

২. মেশিন লার্নিংকে “ট্রিট” করতে হবে একটা সাধারণ টুল হিসেবে, পাটিগণিতের মত একটা টুল। এই টুল এখন ব্যবহার হচ্ছে প্রায় সব কিছুতেই। যতো আগে শিখবেন ততোই এগিয়ে থাকবেন আপনার নিজস্ব ফিল্ডে। একটা জিনিস বুঝতে পারছি - যারা কম্পিউটার সায়েন্স ব্যাকগ্রাউন্ডের না, তারা ব্যাপারটাকে প্রচন্ড ভয় পাচ্ছেন। বিষয়টা সব ব্যাকগ্রাউন্ডের জন্য প্রযোজ্য।

৩. মেশিন লার্নিং এ সেরকম প্রথাগত প্রোগ্রামিং নেই। যা আছে সেগুলো কমনসেন্স, সাধারণ লজিক থেকে বোঝা যায়। পাশাপাশি বিভিন্ন কাজের জন্য দরকারি “কোড স্নিপেট” পাওয়া যায় “স্ট্যাক ওভার ফ্লো” এর মত সাইটে। আবারও বলছি, একদম ভয় পাবেন না!

মেশিন লার্নিং এর বাংলা সব বই

মেশিন লার্নিং শুরু করতে গেলে বইগুলোর ক্রমধারা, ১ থেকে ৪।

আর প্রোগ্রামিং পাইথন প্রোগ্রামিং পাইথন+আর প্রোগ্রামিং পাইথন ডিপ লার্নিং ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং

৩. কিভাবে শুরু করব? বই কোথায় পাবো?

হাতেকলমে শেখার জন্য চারটা বই। মেশিন লার্নিং শুরু করতে গেলে বইগুলোর ক্রমধারা, ১ থেকে ৪। ছবির শেষ বইটা ডিপ লার্নিং নিয়ে। সামনে দেখুন। মেশিন লার্নিং বই দুটো শেষ করে ধরা যাবে ডিপ লার্নিং বই। এরপর ডিপ লার্নিং এর একটা এপ্লিকেশন, ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং নিয়ে দুটো বই। সবগুলো বই অনলাইনে দেয়া আছে। ধারণা পাবার জন্য সব বই একসাথে পাবার রকমারি লিংক

বইয়ের নাম অনলাইন লিংক প্রিন্ট বই
হাতেকলমে মেশিন লার্নিং (দ্বিতীয় সংস্করণ) গিটবুক রকমারি
প্রথম সংস্করনে নেই যে পাইথন অংশ গিটবুক রকমারি
‘শূন্য থেকে পাইথন মেশিন লার্নিং’ (দ্বিতীয় সংস্করণ) গিটবুক রকমারি
হাতেকলমে পাইথন ডিপ লার্নিং গিটবুক রকমারি
হাতেকলমে বাংলা ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং অনলাইন-বই রকমারি
কৃত্রিম বুদ্ধিমত্তায় মানবিক রাষ্ট্র (অনলাইন) অনলাইন ইন্টারফেস
উৎকর্ষের সন্ধানে: বাংলাদেশ; কৃত্রিম বুদ্ধিমত্তায় মানবিক রাষ্ট্র অনলাইন-বই রকমারি
নন-প্রোগ্রামারদের জন্য ডেটা অ্যানালাইটিক্স ভিডিও বই
পাঁচটা বই একসাথে কেনার লিঙ্ক আসবে রকমারি
নীলক্ষেত থেকে কেনার ব্যবস্থা প্রিন্ট বই, নীলক্ষেত, হক, মানিক লাইব্রেরি সহ অনেকে ফোন: ০১৭৩৫৭৪২৯০৮, ০১৮২০১৫৭১৮১

৪. হাতেকলমে মেশিন লার্নিং (দ্বিতীয় সংস্করণ) বইটা কেন?

মেশিন লার্নিং শেখার শুরুটার জন্য সবচেয়ে ভালো হচ্ছে বই। বইগুলো লেখা হয়েছে ‘স্টেপ বাই স্টেপ’ আঙ্গিকে। কোন বই শুরু করতে প্রোগ্রামিংয়ের পূর্ব অভিজ্ঞতা দরকার নেই। ১ম বইয়ের লিংক: এখানে (দ্বিতীয় সংস্করণ হলেই চলবে) বই না কিনতে চাইলে পুরো বই অনলাইনে পাবেন ১ম সংস্করণ। লিংক: এখানে । এই বইয়ের ভিডিও সিরিজ আছে ইউটিউব প্লেলিস্ট হিসেবে এখানে

প্রথম সংস্করণ শুধুমাত্র ‘আর প্রোগ্রামিং’ এনভায়রনমেন্ট দিয়ে ছিলো। সেটা প্রতিস্থাপিত হয়েছে দ্বিতীয় সংস্করণ দিয়ে, পাইথন যোগ করে। প্রথম সংস্করণ যারা কিনেছেন, তাদের দ্বিতীয় সংস্করণ ব্যবহার করতে হবে না। যারা দ্বিতীয় সংস্করণ কিনেছেন তাদের প্রথম সংস্করণ দরকার নেই।

৫. ‘শূন্য থেকে পাইথন মেশিন লার্নিং’ (দ্বিতীয় সংস্করণ) বইটা কাদের জন্য?

যারা শুধুমাত্র পাইথন দিয়ে মেশিন লার্নিং শিখতে চান, কিন্তু পাইথন জানেন না, তাদের জন্য আরেকটা বই, ‘শূন্য থেকে পাইথন মেশিন লার্নিং’। প্রিন্ট বই এর লিঙ্ক: এখানে , পড়ে দেখতে চাইলে লিংক: এখানে । এই বইয়ের ভিডিও সিরিজ আছে ইউটিউব প্লেলিস্ট হিসেবে এখানে

৬. হাতেকলমে পাইথন ডিপ লার্নিং (অনলাইন এবং হার্ডকপি সংস্করণ) কিভাবে ব্যবহার করবো?

যারা ডিপ লার্নিং শিখতে চান, তাদের ট্র্যাক হচ্ছে শুরুতে পাইথনের বই,‘শূন্য থেকে পাইথন মেশিন লার্নিং’ এবং পরের বই “হাতেকলমে পাইথন ডিপ লার্নিং”। এর প্রিন্ট এডিশন পাবেন এখানে আগের বইটা ছাড়া পরের বইটা শুরু করা যাবে না। বইটা আছে অনলাইনে। প্রিন্ট সংস্করণ আসছে এই জানুয়ারিতে।

৭. বইয়ের দোকান থেকে কিনতে পাওয়া যাবে?

অথবা,

৮. নীলক্ষেতে কোন দোকানগুলোতে পাওয়া যাবে?

(ঙ) হার্ডকপি পাওয়া যাবে রকমারি, আদর্শ, বাতিঘরসহ বেশ কয়েকটা লাইব্রেরিতে। নীলক্ষেতেও পাওয়া যায় কয়েকটা দোকানে। মানিক লাইব্রেরী নীলক্ষেত ঢাকা, ০১৭৩৫৭৪২৯০৮ এবং হক লাইব্রেরী নীলক্ষেত ০১৮২০১৫৭১৮১ / ০১৫১১১৫৭১৮১ / ০১৭৪৩৫১৬৩৪৪।

৯. ভিডিও দেখে শিখতে চাই, ইউটিউব লিংক

(চ) মেশিন লার্নিং নিয়ে ১০০+ ভিডিও সিরিজ পাবেন ইউটিউব এবং ফেসবুকে। প্লে-লিস্ট হিসেবে।

১০. সবুজ-হলুদ, লাল রঙের বই আর সাদা রঙের বই - এই দুটোর মধ্যে কোনটা দিয়ে আগে শুরু করব এবং কোনটা কোন সময়ের জন্য উপযোগী?

শুধুমাত্র মেশিন লার্নিং বই

  1. কালো বই = বাজারে নেই, লাল বইয়ের প্রথম সংস্করণ (প্রয়োজন নেই)
  2. লাল বই = হাতেকলমে মেশিন লার্নিং, দ্বিতীয় সংস্করণ (আর এবং পাইথন), (কোন ল্যাঙ্গুয়েজ জানার দরকার নেই, যা শিখতে হবে সেটা দেয়া আছে বইয়ে)
  3. সাদা বই = শূন্য থেকে পাইথন মেশিন লার্নিং (শুধু পাইথন)
  4. সবুজ-হলুদ = হাতেকলমে পাইথন ডিপ লার্নিং (হার্ডকাভার)

১০.১ কোন বইয়ের পর কোন বই ব্যবহার করবো?

(মেশিন লার্নিং/এনএলপি বই)
১. ├── লাল বই = হাতেকলমে মেশিন লার্নিং (দ্বিতীয় সংস্করণ)
-. | অথবা
২. ├── কালো বই = বাজারে নেই, লাল বইয়ের প্রথম সংস্করণ হিসেবে ছিল
৩.     ├── সাদা-হলুদ বই = শূন্য থেকে পাইথন মেশিন লার্নিং                        
৪.         ├── সবুজ-হলুদ = হাতেকলমে পাইথন ডিপ লার্নিং       # অ্যাডভান্সড ব্যবহারকারীদের জন্য   
৫.            └── নীল-সাদা = হাতেকলমে বাংলা ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং   # যারা ল্যাঙ্গুয়েজ নিয়ে কাজ করতে চান
(ডেটা অ্যানালাইটিক্স বই)
৭. আসছে সামনে
(নন-টেকনিক্যাল বই, সবার জন্য)
৮. ├── উৎকর্ষের সন্ধানে: বাংলাদেশ; কৃত্রিম বুদ্ধিমত্তায় মানবিক রাষ্ট্র

বই

লাল বইটা হচ্ছে যারা মেশিন লার্নিং সম্বন্ধে কিছুই জানেন না এবং শুরু করতে চান, প্রোগ্রামিং সম্বন্ধে কোন ধারনা নেই, তবে মেশিন লার্নিং কে নিজেদের মতো করে বুঝতে চান। এই বইটি শুরু করা হয়েছে আর প্রোগ্রামিং এনভারমেন্ট দিয়ে, একই প্রজেক্ট সলভ করা আছে পাইথন দিয়ে।

সূচিপত্র: http://bit.ly/ml-ho-2nd

সাদা বইটা হচ্ছে, সেই একই গ্রুপের জন্য তবে এর সাথে যুক্ত হচ্ছে, কেউ যদি শুধুমাত্র পাইথন দিয়ে শুরু করতে চান। এই বইটিতে শুধুমাত্র পাইথন দিয়ে কাভার করা আছে।

সূচিপত্র: http://bit.ly/ml-sk-py

মেশিন লার্নিং এর শুরুটা আর এনভারমেন্ট দিয়ে শেখা খুব সহজ। দুটো বই সলভ করার জন্য কোন ধরনের প্রোগ্রামিং অভিজ্ঞতার দরকার নেই। বই দুটো তে যথেষ্ট ব্যাকগ্রাউন্ড ইনফরমেশন আছে যাতে ব্যাপারটা সেখানেই বোঝা যায়। দুটো বইয়ে দুটো বিশ্বখ্যাত আলাদা আলাদা প্রজেক্ট।

এরপর ডিপ লার্নিং দিয়ে শিখতে চাইলে হাতেকলমে পাইথন ডিপ লার্নিং (হার্ডকাভার) বইটা ব্যবহার করতে পারেন।

বই কেনার আগে গিটবুক এ পড়ে দেখতে পারেন। ২০% কনটেন্ট আপডেট আছে প্রিন্ট বইয়ে। আগে পড়ে দেখুন, এরপর কেনার সিন্ধান্ত নিন।

১০.২ আপনার সবগুলো বইয়ের বিভিন্ন এক্সারসাইজ করতে কি ধরনের কম্পিউটার হার্ডওয়ার কনফিগারেশন প্রয়োজন?

ডেটা সাইন্স শেখার জন্য আমার সবগুলো বই (মেশিন লার্নিং এবং ডিপ লার্নিং) এর এক্সারসাইজ করতে কোন ধরনের হাই-এন্ড পিসি কেনার প্রয়োজন নেই। আমার নিজেরই প্রায় সবকিছু চলে যায় একটা ১৫০ ডলারের ক্রোমবুক দিয়ে। ‘রাস্পবেরি পাই’ হলে আরো ভালো। ডেটা সাইন্স শেখার শুরুতে দামি পিসি কেনার প্রয়োজন নেই এই মুহূর্তে। আপনার প্রয়োজন একটা ব্রাউজার এবং সাধারন মানের ইন্টারনেট সংযোগ। কাজ সব হবে ব্রাউজারে।

আপনাদের সুবিধার জন্য আমি সবকিছুই হোস্ট করে রেখেছি ক্লাউডে এবং গিটহাবে। পাশাপাশি লিঙ্ক দিয়েছি গুগল কোলাবে, যা সরাসরি গিটহাব ‘এলএফএস’ মানে বড় বড় ডেটাসেটগুলোকে নিমিষেই ডাউনলোড করবে গুগলের ভার্চুয়াল মেশিনে। সেখানেই আছে দরকারি জিপিইউ (যদি লাগে)। যাদের পিসি নেই তারা মোবাইল ফোনকে (৭ ডলারের কানেক্টর) মনিটরের সাথে সংযোগ দিয়ে কাজ চালিয়ে নিতে পারবেন। শেখাই বড় কথা, হার্ডওয়ার নয়।

১১. মেশিন লার্নিং কেন শিখবো?

উত্তর: সোজা উত্তর, সবার শেখার দরকার নেই। শুরুতে, নিজেকে প্রশ্ন করা যেতে পারে, আমার এই মুহূর্তে কোন কাজটি সনাতন পদ্ধতিতে করা যাচ্ছে না অথবা করতে সময় লাগছে, যা মেশিন লার্নিং দিয়ে খুব তাড়াতাড়ি করা সম্ভব। আপনার সমস্যাটি প্রথমে ডিফাইন করুন, এরপর দেখুন সেটা আসলে মেশিন লার্নিং সমস্যা কি না?

ট্রিট করুন, মেশিন লার্নিং আরেকটা টুল। এক নিঃশ্বাসে পড়ার লিংক

১২. কিভাবে বুঝব সমস্যাটি মেশিন লার্নিং দিয়ে সমাধান করা সম্ভব?

উত্তর: সাধারণত: মেশিন লার্নিং সমস্যাগুলোর উত্তর আমাদের কাছে রাখা পুরনো ডাটা থেকে আসে। কোন কোন সময় উত্তর হিসেবে হ্যাঁ অথবা না, মানে ক্লাসিফিকেশন সমস্যা, অথবা একটা কন্টিনিউয়াস আউটপুট, যেমন, কত মাস পরে ‘রিটার্ন অন ইনভেস্টমেন্ট’ আসতে পারে, কবে আমাদের একজন গ্রাহক চলে যেতে পারে? এগুলোকে আমরা বলি ‘রিগ্রেশন’ সমস্যা।

অথবা এর পাশাপাশি আমাদের গ্রাহকদের কয়েকটা ক্লাস্টার গ্রুপে ফেলা যেতে পারে যেখানে তাদের ব্যবহার প্যাটার্ন দেখে নতুন সার্ভিস প্রভিশন করা যেতে পারে। এটা কিছুটা ‘আন সুপারভাইজড’ লার্নিং সমস্যা। এক নিঃশ্বাসে পড়ার লিংক

১৩. মেশিন লার্নিং এর শুরুটা ধরতে কতদিন লাগতে পারে?

উত্তর: দুইদিন। তবে, ধারণা পাবার জন্য আমি অনুরোধ করব ‘প্রজেক্ট টাইটানিক’ ব্যাপারটা দেখার জন্য। প্রসপেক্টিভ ডাটা সায়েন্টিস্টদের ‘গেটওয়ে টু মেশিন লার্নিং’ হচ্ছে এই প্রজেক্ট। একটা রিয়েল প্রজেক্ট এর সমস্যাকে কিভাবে সমাধান করা হয়েছে সেটা দেখলে বুঝতে সুবিধা হবে। টাইটানিক লিংক মজার কথা হচ্ছে পুরো সমস্যাটাকে সমাধান করে নিচের বইটা লেখা হয়েছে। রকমারি লিংক

১৩.১ শুরুতে কি প্রোগ্রামিং/স্ট্যাটিসটিক্স/ম্যাথ জানতেই হবে?

ছোট উত্তর, না। তবে, রাস্তায় না নামলে রাস্তা চিনবেন কিভাবে? আমার ফিলোসফি হচ্ছে, রাস্তায় নামুন, পথ না হারালে বুঝবেন কিভাবে ঠিক রাস্তায় আছি আমরা? গত পাঁচ বছরের ‘ইনবক্স’ সিস্টেম এবং সবার হাজারো প্রশ্নের ভিড়ে একটা জিনিস প্রকট হয়েছে বেশি। একটা বড় শতাংশ একই প্রশ্ন করছেন লম্বা সময় ধরে। ব্যাপারটা এমন যে যিনি এই প্রশ্নটা করেছেন, সেই একই প্রশ্ন করছেন একটা লম্বা সময় পরে। এতে বোঝা যাচ্ছে উনারা একটা ‘কনফিউশন’ স্টেটে আছেন। আমার কথা একটাই, না। লাগবে না শুরুতেই। ডেটা সাইন্স এর একটা বড় অংশ হচ্ছে ‘ডোমেইন নলেজ’। হেলথকেয়ার, এগ্রিকালচারে যেভাবে ডেটা সাইন্স ব্যবহার হচ্ছে সেখানে উনারা কি প্রোগ্রামিং/স্ট্যাটিসটিক্স/ম্যাথ নিয়ে পড়ে আছেন শুরুতে?

প্রবলেম সলভিং এবং প্রোগ্রামিং কাছাকাছি হলেও একজন মানুষ কিভাবে একটা সমস্যা সমাধান করে সেটা বুঝলেই মেশিন লার্নিং শুরু করা সম্ভব। শুরুতে দরকার ডেটাকে কিভাবে রিপ্রেজেন্ট করবেন সমস্যার আদলে। এবং এর উত্তর নির্ভর করছে আপনি কাকে জিজ্ঞাসা করছেন। যিনি প্রোগ্রামার তারা এক কথা বলবেন, আর যারা সত্যিকারের ডেটা নিয়ে কাজ করেন তাদের ধারণা ভিন্ন। সত্যি বলতে পুরো মেশিন লার্নিং একোসিস্টেমে প্রোগ্রামিং স্কিলসেট কতোটুকু লাগে সেটা নিয়ে বিতর্ক আছে। আর সেটা থাকবে না কেন? কারণ প্রথাগত রুলবেসজ প্রোগ্রামিং থেকে বের হবার জন্যই মেশিন লার্নিং।

প্রথাগত প্রোগ্রামিংয়ে কি হয়? ধরুন, একটা প্রসেসকে অটোমেট করতে প্রোগ্রামিং করছেন আপনি। একটা রোবটকে বলছেন পয়েন্ট ‘ক’ থেকে পয়েন্ট ‘খ’তে যাবার জন্য। এর অর্থ হচ্ছে আপনাকে তার পুরো রাস্তার জিনিসটাকে বলে দিতে হবে পই পই করে। সামনের ৯০ ডিগ্রী ধরে ১০ কদম, এরপর ডানে ২০ কদম, এরপর ১৭০ ডিগ্রী ধরে ১৫ কদম গেলেই পৌঁছে যাবে পয়েন্ট ‘খ’তে। এর মাঝখানে কোথাও বাধা পেলে একটা এক্সিট কোড দিয়ে দাড়িয়ে যাবে। এখন পয়েন্ট ‘গ’তে যেতে বললে তার আগের ইন্সট্রাকশন ভ্যালিড থাকছে না।

সেখানে মেশিন লার্নিং কি করবে?

মেশিনকে অনেকগুলো রাস্তা শেখাবো কিভাবে একটা পয়েন্ট থেকে আরেকটা পয়েন্টে যেতে হয়। এভাবে যখন সে হাজারো রাস্তা চালিয়ে দেখবে যে এর মধ্যে প্যাটার্ন একটাই। তার শুরুর পয়েন্ট থেকে ডেস্টিনেশন পয়েন্টের দিকে দূরত্ব কমতে থাকে। তাহলে যেই রাস্তায় গেলে দূরত্ব কমে - সে সেই রাস্তায় চলা শুরু করবে। এরপর, তাকে অজানা রাস্তায় চালিয়ে দেখবো সে ঠিকমতো রাস্তা চিনে আসতে পারে কিনা? সেটাতো পারবেই। কারণ সে প্যাটার্ন জানে। ব্যাপারটা এমন তাকে মাছ না দিয়ে মাছ শিকার শেখালাম, যাতে যে অন্যের ওপর মুখাপেক্ষী না হয়।

আচ্ছা, প্রোগ্রামিং ছাড়া বোঝা যাবে তো? অবশ্যই বোঝা যাবে। অনেকে কি বলছে সেটা নিয়ে মাথা ঘামানোর দরকার নেই এ মুহুর্তে। আমি বলছি, না - একদম শুরুতে প্রোগ্রামিং দরকার নেই। দরকার মাইক্রোসফট এক্সেলের মতো একটা টুল। যেমন ‘আর’ প্যাকেজ। শিখতে ১ দিন লাগে। এটা নিয়ে একটা আলাদা পোস্ট লিখেছি আমি।

অনেকে বলেন পুরো ম্যাথ, প্রোগ্রামিং শিখে এই রাস্তায় নামা ভালো। একদম ভুল কথা। আসলে কোন কিছু পুরোপুরি শিখে শেষ করতে করতে আসল জিনিস শেখার আগ্রহ থাকেনা আর। তাই যখন যা লাগে তা শিখে কাজ চালানোটাই ভালো বলে মনে করে সবাই। অনেকে বলবেন কিছু বেসিক শিখে মেশিন লার্নিং এ আসুন। না শিখলে যে পারবেন না সেটা বলা ঠিক হবে না। আমি পলিনোমিয়ালের বিভিন্ন ডিগ্রীর (একদম ভেতরের ম্যাথ) ভেতরে ঢুকেছি সেই সমস্যা বুঝতে গিয়ে। তার আগে নয়। ভেতরে ঢুকেছি এবং নিজেকে প্রশ্ন করেছি, কতোটুকু বুঝলেই আমার কাজ চলে যাচ্ছে, সেখানে ক্ষান্ত দিয়েছি।

রাস্তায় নামলে শিখতে শিখতে এগোতে হবে। আমি পঞ্চাশ বছর বয়স এ নতুন নতুন জিনিস শিখছি, আমার তো মনে হয় না, কাউকে জিজ্ঞাসা করতে - এটা ওটা শিখবো কিনা। ধরুন, যখন মেশিন লার্নিং এ লিস্ট অপারেশন লাগবে, তখন এর বেসিক এর পাশে যদি লিস্ট এর লিস্ট অপারেশন লাগে, তাহলে চাপে পড়ে zip এর অপারেশন শিখবো। শিখতে যদি চান, শুরুতে সামান্য ভ্যারিয়েবল, লিস্ট, অ্যারে, লুপিং, ইফ-এলস, ডিকশনারি বুঝলেই অনেক। অপারেটিং সিস্টেমের সাথে মানে ফাইলটাকে কিভাবে রিড, রাইট, সেভ করা জানলে তো অর্ধেক কাজ শেষ!

শুরু করেন মেশিন লার্নিং, সুন্দর সুন্দর টুল আছে যা প্রোগ্রামিং না জেনেই ডেটা এক্সপ্লোরেশন করতে পারবেন। যেমন নাম্পাই, পান্ডাজ। প্রোগ্রামিং জানা লাগবে না। তবে যখন একটু ভেতরে ঢুকবেন, তখন দেখবেন এই চমৎকার টুলগুলো কোথায় যেন আটকে যাচ্ছে। তখন একটু গুগল করলেই বুঝবেন ওখানে একটা লুপ অপারেশন অথবা একটা আলাদা ফাংশন বানালে একই জিনিস বার বার লিখতে হবে না।

রাস্তায় নামুন, পথ হারিয়ে পথ চলা শিখলে কেউ আপনাকে আমার মতো করে গল্প দিলেও বিশ্বাস করবেন না। লার্নিং একটা এক্সপেরিয়েন্স, সাইকেল চালানো আমি আপনাকে হাজারো গল্প দিয়ে বোঝাতে পারবো না। অনেকবার পড়বেন, হাত পা না ছ়িলে কেউ শিখতে পারে না। ফেলে দিন চ্যালেঞ্জে, না শিখতে পারলে হয়তোবা এই রাস্তা আপনার জন্য না। প্রোগ্রামিং যাতে না করতে হয় সেই জন্য এসেছে মেশিন লার্নিং। সেটা না হয় বলবো আরেকদিন।

১৪. কোন এনভারমেন্ট দিয়ে মেশিন লার্নিং শেখা সোজা?

উত্তর: আপনি কি জানেন মেশিন লার্নিং মাইক্রোসফট এক্সেল দিয়ে ও শেখা সম্ভব? এই মুহূর্তে পৃথিবীতে বেশ কয়েকটি এনভারমেন্ট নিয়ে মেশিন লার্নিং এ কাজ হয়। স্ট্যাটিসটিক্স এনভারমেন্ট থেকে এসেছে “আর” প্রোগ্রামিং এনভারমেন্ট। এর অর্থ হচ্ছে ডেটাকে ঘিরে তৈরি তৈরি হয়েছিল এই “আর”। আমাকে প্রশ্ন করলে বলবো, “আর” দিয়ে মেশিন লার্নিং শেখা অনেক সহজ। বিশেষ করে শুরুর দিকে। ডেটার ভেতরের পার্সপেক্টিভ পেতে সুবিধা হয়। পাশাপাশি ‘পাইথন’ ইউনিভার্সাল প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে মেশিন লার্নিং এ ব্যবহার হচ্ছে। শুরুতে প্রোগ্রামিং এনভারমেন্ট নিয়ে মাথা না ঘামানোই ভালো। মেশিন লার্নিং এর পেছনের দর্শন জানলে শেখা খুব সহজ হয়। লিংক, কেন আর দিয়ে শেখা সহজ?

১৫. শুরুতে কি ভালো? “আর” নাকি “পাইথন”?

উত্তর: শেখানোর দ্বায়িত্ব আমার। এক বছরে। ছেড়ে দিন আমার হাতে। আপনাকে এমনভাবে তৈরি করা হবে যেখানে যেটা দরকার সেটা দিয়েই। কিছুটা ল্যাঙ্গুয়েজ ইন্ডিপেন্ডেন্ট। আগে ঠিক করবো কনসেপ্টে। বিস্তারিত উত্তর এখানে। লিংক: শেখার পেছনের দর্শন এবং দর্শন এবং কিভাবে শিখবেন ?

১৫.১ পাইথন দিয়ে শুরু করলে কি কি জানলেই হবে শুরুতে?

একদম পাইথন না জেনেও শুরু করা যায়। তবে বেসিক পাইথন (যা শেখা যায় দুদিনে) এর গাইডলাইন দেয়া হলো নিচে:

(মেশিন লার্নিং শিখতে শিখতেই পাইথন শেখা সম্ভব। মানে যখন যেটা লাগে। ধরুন, যখন মেশিন লার্নিং এ লিস্ট অপারেশন লাগবে, তখন এর বেসিক এর পাশে যদি লিস্ট এর লিস্ট অপারেশন লাগে, তাহলে চাপে পড়ে zip এর অপারেশন শিখবো। শিখতে যদি চান, শুরুতে সামান্য ভ্যারিয়েবল, লিস্ট, অ্যারে, লুপিং, ইফ-এলস, ডিকশনারি বুঝলেই অনেক। অপারেটিং সিস্টেমের সাথে মানে ফাইলটাকে কিভাবে রিড, রাইট, সেভ করা জানলে তো অর্ধেক কাজ শেষ!)

আইটেম ধরে বললে একদম বেসিক পাইথন;

ক. ভ্যারিয়েবল অ্যাসাইনমেন্ট, সংখ্যার ব্যবহার

খ. ফাংশন কল, নিজে ফাংশন তৈরি করা

গ. বুলিয়ান অপারেশন, কম্পেরিজন অপারেটর, কন্ডিশনাল - if, elif এবং else

ঘ. লিস্ট, ইনডেক্সিং, স্লাইসিং, লিস্ট ফাংশন, টুপল নিয়ে কাজ এবং ডিকশনারী

ঙ. বিভিন্ন ধরনের ইমপোর্ট, অপারেটিং সিস্টেমের সাথে ফাইলের অপারেশন - কিভাবে রিড, রাইট, সেভ করা যায়

লিংক দেখুন, বেসিক পাইথন

১৬. এক বসায় কনসেপ্ট পেতে চাই, পারা যাবে?

উত্তর: যাবে। ৩০ মিনিটে ভিডিও দেখতে হবে ২০+টা। ফেসবুক প্লে-লিস্ট, ইউটিউব প্লে-লিস্টগুলো দেখুন।

১৭. আমি কম্পিউটার সাইন্স পড়িনি? পারবো তো?

উত্তর: আমার প্রচুর পরিচিত মানুষ আছেন যারা হেলথকেয়ার সেক্টর এ কর্মরত। হেলথকেয়ার সেক্টরে মেশিন লার্নিং নিয়ে অসাধারণ কাজ হচ্ছে। নতুন নতুন ওষুধের ফর্মুলা, যে কোন রোগের আর্লি ডিটেকশন, নিউরোসায়েন্স নিয়ে কাজ করছেন আমাদের ডাক্তার বন্ধুরা। মেশিন লার্নিং এর জন্য দরকার আপনার কর্মক্ষেত্রের ‘ডোমেইন নলেজ’। বাকি কোডের জন্য আছে চারটা বাংলা বই।

১৮. আপনি কি কি শিখেছেন?

উত্তর: আমার কথা বললে বলবো, আমি দুটোই শিখেছি শুরুতে - কারণ, দুটো ‘দুই’ জায়গায় ভালো। মেশিন লার্নিং শেখার শুরুতে ‘আর’ ভালো, প্রোডাকশন লেভেলে পাইথন ভালো। যেখানে যেটা লাগে। ছোট দূরত্বে রিকশা ভালো, বড় দূরত্বে হয়তোবা মোটর সাইকেল ভালো। আমাদের জানতে হবে কোথায় কি লাগবে?

যুগটা অপটিমাইজেশনের যুগ। দরকার মতো আরো কিছু জিনিস শিখতে হতে পারে। লজ্জা করলেই ক্ষতি। কিছুই শেখা যাবে না। এই পঞ্চাশ বছরের কাছাকাছি বয়সেও আমাকে শিখতে হচ্ছে অনেককিছু। প্রতিদিন। না শিখলে - ঝরে পড়ে যাবেন যে কেউ। এমুহুর্তে আমাকে মুগ্ধ করে রাখছে ‘সাইকিট-লার্ন’ লাইব্রেরি। জিনিসটা এতো মজার - মন ভালো হয়ে যায় সমস্যা পেলে।

১৯. আমি মেশিন লার্নিং শিখতে চাই শুধুমাত্র ‘পাইথন’ দিয়ে? সম্ভব?

উত্তরঃ সম্ভব, তবে যেই সময় লাগবে তাতে আপনি উৎসাহ হারিয়ে ফেলার সম্ভাবনা বেশি। ব্যাপারটা নিজে দেখতে পারেন চেখে। এই পুরো এক্সারসাইজটা পাইথনে করে দেয়া আছে নিচের লিংকে। যারা পাইথন জানেন আগে থেকে তাদের জন্যও আর দিয়ে শেখা সহজ। আমার অভিজ্ঞতা তাই বলে। পাইথনের নোটবুকটা দেখুন

সব জায়গায় বেসিক কনসেপ্ট একই। তবে, আবারো বলছি ‘আর’ দিয়ে বোঝা যায় ভালো। আগেই বলেছি যারা কম্পিউটার প্রযুক্তিতে পড়েননি অথবা মেশিন লার্নিং একদম ভেতর থেকে হাতেকলমে শিখতে চান, তাদের জন্য ‘আর’ অন্য লেভেলের জিনিস।

কম্পিউটার প্রযুক্তিতে পড়েছেন আর পাইথন জানেন বলে ‘মেশিন লার্নিং’ শিখে যাবেন সেটাও ভ্রান্ত ধারণা। পাইথন একটা ভালো ফ্রেমওয়ার্ক, প্রায় অনেককিছুই করা যায়। তাই বলে ‘মেশিন লার্নিং’ আর পাইথন পাশাপাশি সমার্থক শব্দ সেটা বলা যাবে না। সেটা সামনে গেলে দেখতে পাবেন।

২০. কোন ‘একটা’ স্কিলসেট মেশিন লার্নিং শিখতে দরকার?

উত্তরঃ ডেটা নিয়ে পড়ে থাকা। ডেটা থেকে প্যাটার্ন বের করতে জানতে - পড়ে থাকতে হবে ডাটা নিয়ে। সারাদিন।

২১. আপনি মজা পান কিভাবে?

উত্তরঃ সময় পেলেই আমার চাকরি অথবা বাসার বেশিরভাগ সমস্যা মেটাতে ব্যবহার করি ‘মেশিন লার্নিং’। চেষ্টা করি সবকিছু প্লট করতে। যদি কিছু দেখা যায়? বলতে পারেন, মশা মারতে কামান দাগা। হয়তোবা শুরুতেই তাই। তবে, ধারণা পাচ্ছি অনেকদূর ভুল করতে করতেই।

সবাই একটা জায়গা দেখতে চান কোথায় সবকিছু হচ্ছে। সেই জন্য এই সাইট।

২২. বাংলায় মেশিন লার্নিং শেখার প্ল্যাটফর্মগুলো কী?

উত্তর: তিন ভাবে শুরু করা যায়।

ক. যারা বই পড়তে চান, মানে হ্যান্ডনোট, তাদের জন্য লেখা হয়েছে তিনটা বই। অনলাইনে আছে। বইটা এমন ভাবে লেখা আছে যেখানে আপনার ভিডিও দরকার নেই। তবে, দেখলে তাড়াতাড়ি শেখা হবে। বইগুলোর লিংক দেয়া আছে উপরে। খ. যারা ভিডিও দিয়ে শুরু করতে চান, তাদের জন্য তৈরি করা আছে কয়েকটা প্লে-লিস্ট। ফেসবুক পেজে ক্লিক করুন “ভিডিও” ট্যাবে। সেখানেই পাবেন প্লেলিস্ট। আলাদা করে। লিংক দেয়া আছে উপরে। গ. ইউটিউবে আছে আলাদা চ্যানেল। সেখানেও আছে প্লেলিস্ট আকারে। আমাদের ফেইসবুক পেইজে “লার্ন মোর” ক্লিক করলেই চলে যাবেন ইউটিউব লিংকে।

২৩. ইউটিউব লিংকটা বলবেন কি?

ইউটিউব - সেখানে আপনি চলে যাবেন প্লে-লিস্টগুলোতে।

২৪. বর্তমানে চাকরির অবস্থা কি?

বেশ কয়েকটি ই-কমার্স সাইট/সার্ভিস ইন্ডাস্ট্রির ম্যানেজমেন্ট লেভেল/প্রতিষ্ঠাতারা আমাকে মাঝে মধ্যে “ভালো” ডেটা সায়েন্টিস্ট খুঁজে দিতে বলেন। তবে খুব কম মানুষকে রেফার করতে পেরেছি - কারণ ইন্ডাস্ট্রি এবং আমাদের ডেটা সায়েন্টিস্টরা সেই লেভেলের ‘ইউজ কেস’ ধরে এগুতে পারছেন না। এটা তাদের সমস্যা নয়। সমস্যা মার্কেট গ্যাপে। নতুন ইন্ডাস্ট্রি, কোম্পানিগুলোর এক্সপেক্টেশন আর ঠিক মানুষটা তৈরির মধ্যে একটা ফারাক আছে। এটা বেশিদিন থাকবে না।

আমাদের ডেটা ইন্ডাস্ট্রি তৈরি হচ্ছে তবে সরকারি/বেসরকারি ‘ভালো’ লেবেলড ডেটা অতোটা না থাকায় সেটার আউটকাম আসতে একটু সময় লাগছে। তবে, আশার কথা হচ্ছে যারা অন্য ইন্ডাস্ট্রিতে আছেন, তবে তাদের ইন্ডাস্ট্রিতে মেশিন লার্নিং দিয়ে নিজেদের সমস্যা মেটানোর জন্য আমার সাথে কথা বলছেন, সেখানে আমার অ্যাসেসমেন্ট হচ্ছে তারা শিখছেন ভালো। আসল কথা হচ্ছে, যে নিজের সমস্যাকে ঠিকমতো ডিফাইন করতে পারে, তারা সেটার উত্তর তাড়াতাড়ি খুঁজে পান।

সারমর্ম: যে যেখানে আছেন মানে যেই ইন্ডাস্ট্রিতে আছেন, সেটার একটা সমাধান বের করার চেষ্টা করুন মেশিন লার্নিং দিয়ে। চ্যালেঞ্জ দিন নিজেকে। তাহলে শিখবেন অতি দ্রুত। তখন আপনি সুইচ করতে পারবেন সেই কোম্পানিগুলোতে যারা শুধুমাত্র ডেটা সাইন্স নিয়ে কাজ করে।

২৫. বাংলাদেশে চাকরি তো নেই, কী করবো?

আমাদের দেশের যারা নতুন শিখতে চায় তাদের মাথায় থাকে এটা শিখলে কি হবে? জব কি পাবো? বাংলাদেশের মার্কেটে তো জব নেই! তাহলে আমরা কেনও শিখবো মেশিন লার্নিং?** যে কয়টা আছে জব সেগুলোতেও চায় অনেক বেশি অভিজ্ঞতা যা এখন অনেকের হতাশার কারণ হয়ে দাঁড়িয়েছে। আমি নিজেই তো এমন অনেক কথা শুনেছি যারা হতাশাগ্রস্ত এই বিষয়গুলো নিয়ে। ভাইয়া, আপনার কাছে এদের জন্য কি পরামর্শ?

অসাধারণ অবজারভেশন। ধন্যবাদ আপনাকে। একদম ঠিক বলেছেন, সবাই একটা স্কিল শিখেই চাকরি করতে চাইবেন। এটাই স্বাভাবিক। আমাকেও অনেকে এই প্রশ্নটা করেন। ব্যাপারটাকে আমি অস্বাভাবিক ভাবি না।

আমি সবাইকে বলি, আমাদের সারা জীবনে অনেকগুলো স্কিলসেট ডেভলপ করতে হবে। আগের মত সেই সময় নেই যে, এক চাকরিতে ঢুকলাম সেটা করে পার করে দেবো সারা জীবন। সময়টা এখন অনেক চ্যালেঞ্জিং। আমার প্রায় ৭০ এর বেশি সার্টিফিকেট আছে বিভিন্ন বিষয়ে। এখন বুঝতে পারি, সার্টিফিকেট, ডিগ্রী জিনিসগুলোর দাম থাকে না যখন কোম্পানি দেখেন তার দরকারি জিনিসপত্র অনেকে তুলতে পারছেন না।

একটা কোম্পানি একজনকে হায়ার করবেন তার স্পেসিফিক একটা সমস্যা সমাধান করার জন্য। সেখানে সার্টিফিকেট বা ডিগ্রী একটা স্ক্রীনিং ক্রাইটেরিয়া হয় কারণ মার্কেটে অনেক অনেক চাকরিপ্রার্থী। তবে, কোম্পানিগুলো এখন তার স্পেসিফিক কাজ তোলার জন্য ব্যাকগ্রাউন্ড চেক মানে সার্টিফিকেট বা ডিগ্রির দরকার কমিয়ে দিয়েছেন।

আমার জীবনে আমি নিজেও যখন যেটা দরকার সেটা শিখে নিয়েছি। চাকরির ২৮ বছর বয়সে ৭বার নিজেকে রি-স্কিলিং করেছি। আমার সাথে একই ইন্ডাস্ট্রিতে কাজ করছেন যারা, অনেক প্রতিভাবান প্রোগ্রামার, তাদেরকে দেখেছি তারা কন্টিনিউয়াসলি তাদের স্কিলস-সেট আপডেট করছেন। যখন যেটা দরকার। To stay ahead of the game. বাজারে কেউ ‘সাইডলাইনড’ বা ‘রিডান্ডেন্ট’ হতে চান না। অবসর নিলে আলাদা কথা।

২৬. চাকরির ব্যাপারে আপনার উপদেশ কী?

১. যখন কেউ কোন একটা স্কিলসেটকে জীবন মরণ সমস্যা হিসেবে ধরে নেয়, তখন সেটা থেকে আউটকাম অসাধারণ হয়। একটা স্পেসিফিক স্কিলসেট শেখার জন্য প্রাণান্তকর চেষ্টা, চাকরি পাবার জন্য নয়। মানে, দরকারি টুলসেটগুলো শিখে নিজেকে আপডেট রাখা। তখন তার সামাজিক প্রোফাইল না দেখে স২৬. বাই গিটহাব প্রোফাইল দেখেন। কোম্পানিগুলো তাদের সাথে সরাসরি কথা বলেন, কোম্পানির স্পেসিফিক সমস্যা নিয়ে। যদি তিনি সেই কোম্পানির স্পেসিফিক সমস্যার লাইন ধরিয়ে দিতে পারেন তখন চাকরি সহজতর হয়। অনলাইনে বিভিন্ন ফোরামে তাদের সহায়তা করার প্রবণতাও অনেককে নতুন নতুন চাকরি পেতে সহায়তা করে।

২. আমাদের জীবনে হয়তোবা আমরা অল্প কিছু জিনিস শিখে পার হতে পেরেছি, তবে সেটা এখন আর খাটবে না। একটা জীবনে অনেকগুলো স্কিলসেট শিখতে হবে। পাশাপাশি কিছু পুরনো স্কিলসেট ভুলে নতুন স্কিলসেট, যেটাকে আমরা বলি রিস্কিলিং, সেটা অবশ্যই দরকার।

সবশেষে, মার্কেট ইমার্জিং, আমি দেখছি আমার পরিচিত অনেকেই ইউরোপ এবং জাপানে চাকরির অফার পাচ্ছেন এই ডেটা সায়েন্স নিয়ে। মার্কেট তৈরি হচ্ছে। বাংলাদেশে নয়, ভাবতে হবে গ্লোবাল লেভেলে। বর্তমান একটা চাকরিতে থেকে অথবা যে যেখানে আছে সেখান থেকেই এই নতুন স্কিলসেট মানে মেশিন লার্নিং শেখা উচিত। “Who knows when lightning could strike?”

২৭. কিভাবে ‘ডিপ লার্নিং’ শিখবো? আর কিভাবে এগোবো?

বিশাল একটা উত্তর লিখেছি তবে সেটা এখানে। আর কেন ডিপ লার্নিং শিখবেন? সেটাও বলেছি সেখানে।

২৮. হাতেকলমে বাংলায় ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং শিখবো কোথায়?

হাতেকলমে ডিপ লার্নিং বইটাতে বাংলায় ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেস নিয়ে চারটা চ্যাপ্টার আছে। আরেকটা বই লেখা হচ্ছে সামনে। দেখুন এখানে

২৯. মেশিন লার্নিং এর ম্যাথমেটিক্স এবং অ্যালগরিদম নিয়ে একটি বই লিখার অনুরোধ রইলো

আমার পার্সপেক্টিভ ভিন্ন। আমি সব সময় প্রায়োগিক বিষয় নিয়ে কাজ করি। একাডেমির লোকজন লিখবে ম্যাথমেটিক্স এবং অ্যালগরিদম নিয়ে, কারণ তাদের কাজ ডেভলপমেন্ট। প্রকারান্তরে, পৃথিবীতে যত ধরনের প্রযুক্তি ডেভলপ হয়ে আছে, সেগুলোকে ঠিকমত প্রয়োগ করে মানব সাহায্যে ঠিকমতো কাজ করাতে আমার কাজ। ছোটখাটো অংক দিচ্ছি না যে তা-ও নয়। সবাই এক রাস্তায় হাঁটলে কেমন হবে?

৩০. বিপদে পড়লে যোগাযোগ করার অপশন?

উত্তর: ‘মেশিন লার্নিং’ ব্যাপারটা নিয়ে আমি ‘প্যাশনেট’ হলেও সেটা আমাকে করতে হয় অবসর সময়ে, কর্মক্ষেত্র এবং সংসারের বাইরে। তাই, আগে প্রশ্নগুলোর উত্তর দেখুন, তারপর কল করতে পারেন মেসেঞ্জার Rakibul Hassan এবং ০১৭১৩০৯৫৭৬৭ (বিকাল ৫- ৬টা) নম্বরে।

ধন্যবাদ আপনাদেরকে।