Giter Site home page Giter Site logo

ehsanshafin / ml.manash.me Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bengaliai/ml.manash.me

0.0 0.0 0.0 19.02 MB

:alien: Open Source Bangla Machine Learning Book :gift:

Home Page: https://ml.manash.me

License: Other

Python 0.05% CSS 0.06% Jupyter Notebook 99.90%

ml.manash.me's Introduction

ভূমিকা


পাইথন, ম্যাটল্যাব ও জাভাস্ক্রিপ্টে প্রেডিক্টিভ মডেল বিল্ডিং ও পারফর্মেন্স টেস্টিং

সংক্ষেপ

মেশিন লার্নিং কী তা নিয়ে পরে বিস্তারিত আলোচনা করা হবে তবে সংক্ষেপে বলা যেতে পারে, যদি কোন মেশিন অভিজ্ঞতার উপর ভিত্তি করে নিজে নিজে শিখতে পারে কিংবা ভবিষ্যদ্বানী করতে পারে তাহলে বলা যায় সিস্টেমটি ইন্টেলিজেন্ট বা ML Activated।

বর্তমানে যেকোন ইঞ্জিনিয়ারিং বিভাগের জন্য মেশিন লার্নিং একটি গুরুত্বপূর্ণ বিষয় হয়ে দাঁড়িয়েছে। ডেটা অ্যানালাইসিস, ক্লাসিফিকেশন, প্রেডিকশনের জন্য এটা শেখা অত্যন্ত জরুরি। বিগ ডেটা, ডেটা সায়েন্স, আর্টিফিশিয়াল ইন্টেলিজেন্সের সাথে মেশিন লার্নিং ওতপ্রোতভাবে জড়িত। বর্তমানে সাধারণ ওয়েব অ্যাপ কিংবা মোবাইল ফোনেও ML এর বিভিন্ন থিওরি অ্যাপ্লাই করা হয় যাতে আপনার ব্যবহারকৃত অ্যাপ্লিকেশনটি আরও ইন্টেলিজেন্ট হয় এবং আপনার মনের কথা বোঝার ক্ষমতা অর্জন করতে পারে। সাধারণ অ্যাপ ও ML ইম্প্লিমেন্টেড অ্যাপের মধ্যে তফাৎ হল এই, সাধারণ অ্যাপ্লিকেশন সব সময় সাধারণই থাকবে কিন্তু ML ইম্প্লিমেন্টেড অ্যাপটি হবে অনন্যসাধারণ, প্রতিবার ব্যবহার করার পর আপনার মনে হবে অ্যাপটি যেন আরও ইন্টেলিজেন্ট হচ্ছে। তবে ML যে শুধু অ্যাপকে ইন্টেলিজেন্স দিতে পারে তাই নয়, রোগ নির্ণয় থেকে শুরু করে যেকোন ধরণের ক্লাসিফিকেশন ও প্রেডিকশনের জন্য ML এর জুড়ি নেই। এই বইয়ে মূলত মডেল তৈরির পাশাপাশি এর পিছনের ম্যাথমেটিক্সেরও ব্যাখ্যা যথাসাধ্য সাবলীল ভাষায় উপস্থাপন করা হবে।

বইটি কাদের জন্য?

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

বইটি পড়া শুরু করার আগে যা যা জানা লাগবে (* চিহ্নিত টপিক আলোচনা বহির্ভূত থাকবে)

  • বেসিক পাইথন প্রোগ্রামিং*
  • বেসিক MATLAB প্রোগ্রামিং*
  • বেসিক JavaScript প্রোগ্রামিং*
  • লিনিয়ার অ্যালজেব্রা*
  • Pythonic Syntactic Sugar
  • OOP Python পারলে সেটাকে প্লাস পয়েন্ট হিসেবে ধরা যাবে
  • ক্যালকুলাস (ইন্টিগ্রাল ও ডিফারেনশিয়াল)
  • বেসিক পরিসংখ্যান জ্ঞান যেমন: Mean, Mode, Median, Variance, Co-Variance, Correlation, Standard Deviation...

কী কী আলোচনা করা হবে এই বইয়ে?

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

  • প্রয়োজনীয় সফটওয়্যার ইন্সটলেশন

    • Anaconda Python Distribution ইন্সটলেশন
    • PyCharm IDE এর সাথে পরিচয় ও ইন্সটলেশন
    • Sublime Text 3 কে Python এর উপযোগী করে তোলা
  • মেশিন লার্নিং কিক স্টার্ট

    • মেশিন লার্নিং কী?
    • মেশিন লার্নিংয়ের প্রয়োগ কী?
    • রিগ্রেশন কী?
    • লিনিয়ার ও পলিনমিয়াল রিগ্রেসন কী?
    • সিম্পল লিনিয়ার রিগ্রেশন এর মাধ্যমে প্রেডিকশন (Sklearn মডিউল ব্যবহার করে)
    • সিম্পল লিনিয়ার রিগ্রেশন এর মাধ্যমে প্রেডিকশন (Scratch থেকে মডেল তৈরি করা)
  • মেশিন লার্নিং কিক স্টার্ট ২

    • Supervised Learning
    • Unsupervised Learning
  • দুইটা প্রয়োজনীয় প্রেডিকশন অ্যালগরিদম

    • কেন এই দুইটা অ্যালগরিদম প্রয়োজনীয়?
    • পেনালাইজড রিগ্রেশন মেথড (Penalized Regression Method) কী?
    • এনসেম্বল মেথড (Ensemble Method) কী?
    • কীভাবে অ্যালগরিদম সিলেক্ট করবেন?
    • প্রেডিক্টিভ মডেল তৈরি করার সাধারণ রেসিপি
  • সমস্যা চিনুন ডেটাসেট চেনার মাধ্যমে

    • নতুন কোন সমস্যার ব্যবচ্ছেদ
      • অ্যাট্রিবিউট ও লেবেল কী? সমার্থক শব্দগুলো কী কী?
      • ডেটাসেট এর যেসব জিনিসের দিকে খেয়াল রাখতে হবে
  • মডেল ও Cost Function

    • মডেল রিপ্রেজেন্টেশন
      • Cost Function
      • Cost Function Intuition - 1
      • Cost Function Intuition - 2
      • Ovefitting - আপনার বানানো মডেল কী একটু বেশিই ভাল পার্ফর্ম করছে?
  • Parameter লার্নিং

    • গ্রেডিয়েন্ট ডিসেন্ট
    • গ্রেডিয়েন্ট ডিসেন্ট ইনটুইশন
    • লিনিয়ার রিগ্রেশনে গ্রেডিয়েন্ট ডিসেন্ট
    • চলবে

বিষয়বস্তু

সচরাচর জিজ্ঞাস্য প্রশ্ন:

মেশিন লার্নিং আমার Career এ কী কাজে লাগবে?

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

কেরিয়ারে লাগবে কী লাগবে না সেটা আপনার ব্যাপার। আপনি যদি ডাক্তার হন, হাল্কা পাতলা প্রোগ্রামিং পারেন, কিছুটা ML, কিছুটা Data Science এবং কিছুটা NLP (Natural Language Processing) বা NLU (Natural Language Understanding) এর মাধ্যমে বানাতে পারেন আর্টিফিশিয়াল ব্রেইন যেটা হয়ত রোগের লক্ষণ ও রোগ ইনপুট নিতে পারে এবং আউটপুটে প্রতিষেধক দিতে পারে। আপনি যখন কোথাও ঘুরতে যাবেন, চ্যাটবট হিসেবে আপনার তৈরি করা ব্রেইন ই ডাক্তার হিসেবে ছোটখাট রোগের চিকিৎসা করতে পারবে।

কেরিয়ারে লাগুক বা না লাগুক, CS এর একটি বিশাল ইন্টারেস্টিং এরিয়া হল ML। কমবেশি সবারই ML এ ব্যবহৃত কিওয়ার্ডগুলো জানা উচিৎ।

মেশিন লার্নিং কাদের জন্য?

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

কখন মেশিন লার্নিং ব্যবহার করা উচিৎ?

যদি মনে হয় আপনার অ্যাপে মিউজিক/ভিডিও/ব্লগ পোস্ট রিকমেন্ডেশন সেট করা প্রয়োজন। কিংবা আপনার ওয়েবসাইটে স্মার্ট স্প্যামার ব্লকার প্রয়োজন। কিংবা কোন কোন প্যারামিটারের উপর ভিত্তি করে আপনার ওয়েবসাইটে কেউ Ad এ ক্লিক করে ... ইত্যাদি।

এই বইটি পড়ার পূর্বশর্ত কী?

উপরে বলা আছে

এতগুলো ল্যাঙ্গুয়েজ নিয়ে আলোচনার কারণ কী?

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

কোন কোন বই ফলো করা হবে?

  • Machine Learning in Python : Essential Techniques for Predictive Analysis [Wiley] - Michael Bowles
  • Mastering Machine Learning with Scikit-Learn [PACKT]
  • Data Science from Scratch [OREILY] - Joel Grus
  • Building Machine Learning System with Python [PACKT]

মেশিন লার্নিং নিয়ে কোন কোন টিভি সিরিজ বানানো হয়েছে?

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

মেশিন লার্নিং কে বেজড করে চমৎকার উপভোগ্য একটি টিভি সিরিজ, মেশিন লার্নিং কে ভালবাসার জন্য এই একটাই যথেষ্ট। এর মূল চরিত্রে থাকে চরম প্রতিভাবান প্রোগ্রামার Harold Finch ও তার ডান হাত John Reese। Harold Finch এমন একটি মেশিন তৈরি করেন যেটা কোন দুর্ঘটনা ঘটার আগেই প্রেডিক্ট করতে পারে এবং Harold Finch এর কাজ হল সেই দুর্ঘটনা প্রতিরোধ করা।

এটাতে দেখানো হয়েছে
  • Natural Language Understanding (যেখানে Harold তার এই Machine এর সাথে English ল্যাঙ্গুয়েজের মাধ্যমে কমিউনিকেট করে)

  • Image Processing (Facial Recognition, Object Recognition, Optical Character Recognition ... )

  • Artifical Neural Network: প্রায়ই দেখা যায় বেশকিছু ছবি লাইনের মাধ্যমে ইন্টারকানেক্টেড, এগুলো দিয়ে আসলে Artifical Neuron এর কানেকশন বোঝানো হয়েছে। এই বইয়ের একটি বিশাল অংশ জুড়ে থাকবে ANN।

সিরিজটি মূলত প্রতিভাবান প্রোগ্রামার ও তার ডেটা কম্প্রেশন কোম্পানির কাহিনী নিয়ে তবুও এখানে ML এর প্রয়োগটা ৩য় সিজনে বলা হয়।

ডেটা কম্প্রেশন অ্যালগরিদমের মূল কাজ থাকে কোন একটা ডেটাসেটে Information কতটা থাকে? যদি অ্যালগরিদম ডিটেক্ট করতে পারে যে Dataset এর একটা নির্দিষ্ট অংশ Redundant মানে, সেটা মুছে দিলেও ক্ষতি নেই। সেই অংশটুকু বাদ দিলে কম্প্রেসড ডেটার সাইজ আগের চেয়ে কম হবে সেটাই স্বাভাবিক। কিন্তু Information extraction টাই হল আসল চ্যালেঞ্জ।

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

মেশিন লার্নিংয়ের অন্যতম অ্যাপ্লিকেশন প্রেডিক্ট করা। তাই ডেটা কম্প্রেশনে এটা ব্যবহার করে আমরা অতি সহজেই Information extract করতে পারি। কিন্তু আমাদের মডেলের পার্ফর্মেন্স যদি খারাপ হয় সেক্ষেত্রে AI সিস্টেমটা Redundant অংশ রেখে Information কেটে দিতে পারে।

৩য় সিজনে (নন স্পয়লার) দেখা যায় কোন একটা পরিস্থিতিতে Richard কে বলা হয় মেশিন লার্নিং সিস্টেম ফেলে দিতে, কিন্তু সে বলে তাতে তার কম্প্রেশন অ্যালগরিদম ইউজলেস হয়ে যাবে।

আমরা ধারণা করতে পারি এখান থেকে ML মেথডলজি অ্যাপ্লাই করে Information Extraction ই ছিল Middle Out (কাল্পনিক অ্যালগরিদম) এর মূল কাজ।

অত্যন্ত মজার ও Insightful একটি টিভি সিরিজ Silicon Valley। হয়ত ML এর সাথে পুরোপুরি যুক্ত না থাকলেও এর কাহিনীগুলো আপনার সময় ভালভাবে কাটাতে সাহায্য করবে।

লেখক সম্পর্কে

Research Assistant - Data Science, ShopUp

সম্পূর্ণ বিনামূল্যে বইটি যে কেউ পড়তে পারেন ও কন্টেন্ট শেয়ার করতে পারেন কিন্তু মূল কন্টেন্ট অবিকৃত রেখে এবং পর্যাপ্ত ক্রেডিট দিয়ে। কমার্শিয়াল ব্যবহার সম্পূর্ণ নিষিদ্ধ।

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

ml.manash.me's People

Contributors

manashmandal avatar reasat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.