উদ্দেশ্য - বিধেয়
মেশিন-লার্নিং নিয়ে অনেক কথা শুনেছি, ব্যাপারটা কি - তা জানার ইচ্ছে আছে, অথচ তেমন সহজ করে বুঝিয়ে বলা আছে, এমন কোন পড়ার জায়গা পাচ্ছি না – এ সব তোমার জন্যে সত্যি হলে, এই সাইট তোমার জন্যেই। Computer Science বা Machine Learning যারা প্রথাগত ভাবে পড়ছে, তাদের এসব ভাল করে জানতেই হবে, তাই এই সাইট তাদের কাজে লাগবে কিনা, তা হলফ করে বলা যায়না। যদি পড়ে কিছু জিনিস আরও পরিষ্কার হয়, তবে খুবই আনন্দের কথা; না হলেও ভাল, পোস্টের নীচে মন্তব্য করে আমায় জানাও, কি কি ভুলভ্রান্তি আছে, বা আর কি কি যোগ করা যেতে পারতো। কিন্তু যারা অন্য কোন বিষয় পড়েছে, কিন্তু নিজেদের কাজে, পড়াশুনোয় মেশিন-লার্নিং ব্যবহার করতে চায় – এ সব বিশেষ করে তাদের উদ্দেশ্যেই লেখা। তাদের feedback পেলে খুবই লাভ হবে সাইটের।
কি কি আছে/থাকবে এই সাইটে?
সাইটের দুই অংশ – প্রথমে ব্যাপার-স্যাপার সম্পর্কে প্রাথমিক ধারণা তৈরি করার চেষ্টা হবে (এই লেখার সময়েও সেই কাজই চলছে), সেটা শেষ হলে আমরা চেষ্টা করবো বিষয়ের একটু গভীরে যাওয়ার – আমাদের ক্ষমতায় যতটা কুলোয়। ইচ্ছে আছে, বিষয়টা শেখার পরে, নতুন ধরণের কাজ, বিশেষ করে আধুনিক গবেষণা আর তার ব্যবহারিক প্রয়োগ নিয়ে আলাদা করে আলোচনা করার। তাতে আমাদেরও ধারণা পরিষ্কার হবে, আর যদি কারুর কাজে লাগে, তবে সোনায় সোহাগা।
দু’টো জিনিস, statistics আর coding – অন্তত আমাদের কলেজবেলা অবধি খুব ভাল করে শেখানো হ’ত না। সেই দুই বিষয়ে আলাদা করে দু’টো বিভাগ চালু করা হয়েছে, যেখানে সহজে কাজ চালনোর জন্যে যতটা জানা দরকার, এই বিষয়-দু’টো নিয়ে ততটা আলোচনা করা হবে।
Statistics-এর মতো মহাকায় বিষয়ের সবকিছু আলোচনা করা এই format-এ অসম্ভব (তায় আমিও ছাত্র, শিখছি), কিন্তু চেষ্টা করা হবে machine-learning এর সঙ্গে statistics-এর যে যে বিষয়ের যোগ, তার সব নিয়েই ধীরে ধীরে আলোচনা করার। এ নিয়ে আলাদা বিভাগ রয়েছে এখানে।
Coding ব্যাপারটা একটু সহজে করা হবে, আর তার জন্যে Mathematica ব্যবহার করা হবে। যদিও আমাদের দেশে অধিকাংশ research scholar-ই কোন না কোন ভাবে কখনো না কখনো Mathematica-র সংস্পর্শে এসেছে, কিন্তু নিজেদের প্রায় সব কাজে এর ব্যবহার খুব কম লোকেই করে। তাই এর basic usage নিয়ে একটা আলাদা বিভাগ তৈরি করা হয়েছে। অনেকটা তৈরি হয়ে গেলে আশা করা যায় সাইটের অন্যান্য পাতার প্রায় সব program-ই খুব সহজে বোঝা যাবে, কিন্তু এই বিভাগ সম্ভবত সবচেয়ে ধীরে তৈরি হবে। তদ্দিন, ধৈর্যং রহু।
এটা বাংলা, না ইংরেজি - কিসে লেখা?
বাংলা পরিভাষায় নতুন বিষয় শিখতে কোন আপত্তি নেই, কিন্তু গোলমাল হলো, গোটা বিশ্ব যখন ক্রমাগত ছোট হয়ে আসছে, তখন একটা সার্বজনীন ভাষায় সড়গড় হয়ে থাকা ভালো। তাই এখানে আলোচনার মাধ্যম বাংলা হলেও, বিষয়ের অধিকাংশ নাম, jargon – ইংরেজিতেই বলা হবে। পড়তে যদি খুব কষ্ট হয়, একটু চেষ্টা করো, অভ্যেসটা কাজে লাগবে, কথা দিচ্ছি।
বুঝতে হলে আগে থেকে কি কি জানতে হবে?
আদর্শ অবস্থা হলো, বারো ক্লাস অবধি পড়া থাকলেই ধীরে ধীরে এই সাইটের সব কিছুই বুঝতে পারার কথা। কিন্তু বাস্তবে, নানা জায়গায় নানারকম ভাবে পড়ানো হয় বলে, সবার জানার পরিধি সমান হয় না। Calculus, কিছুটা linear algebra, probability-র সামান্য ধারণা, আর কোন না কোন ভাষায় কম্পিউটার প্রোগ্রামিং অল্পবিস্তর জানা থাকলেই আশা করা যায় সব বিষয় বুঝে, হাতে করা যাবে। বিশেষ কোন বিষয়, যা নিয়ে আমরা আলোচনা করছি, কিন্তু তোমার জানা নেই, কোথাও তেমন পড়ানোও হয় না, তেমন কিছু খুঁজে পেলে জানাও, যোগ করার চেষ্টা করবো।
কিরকম programming? Mathematica কেন?
মেশিন-লার্নিং শিখতে কোন বিশেষ ভাষা জানার প্রয়োজন নেই। কিন্তু কোন না কোন ভাষায় তো শুরু করতে হবে, তাই Wolfram Language-কে সে জন্যে বেছে নেওয়া হয়েছে, যার প্রধান সুবিধে হলো, অধিকাংশ function-এর নাম আমাদের চেনা ভাষায় দেওয়া, আর ব্যবহার করতেও খুব তাড়াতাড়ি শেখা যায়। basic course টা মোটামুটি এগিয়ে গেলে, প্রতিটি বিষয়ের পোস্টেই, Python–এ কি করে তা করা যায়, আমরা তা যোগ করার চেষ্টা করবো। আসল গল্পটা মোটামুটি বোঝা গেলে, তোমার নিজের পছন্দমতো যে কোন ভাষাতেই কাজটা করে ফেলতে পারবে আশা করি।
Mathematica কি?
Mathematica একটা আধুনিক technical computing system, অর্থাৎ, এককথায়, আমাদের দৈনন্দিন জীবনে যতরকমের কাজে computation লাগে, তার প্রায় সবক্ষেত্রেই (একদম state-of-the-art computation ছাড়া) অধিকাংশ কাজ Mathematica দিয়ে করা যায়। চটজলদি Mathematica-য় কাজ শুরু করতে চাইলে References পাতায় Mathematica section-এর শুরুর দিকের কিছু লিঙ্ক পড়লেই আশা করা যায় কাজ চালানোর মতো কাজ শুরু করে দেওয়া যাবে।