পারসেপ্ট্রন (Perceptron)
ভাবুন তো, একটি সাধারণ ভোটিং কমিটির (voting committee) কথা, যেখানে মাত্র তিনজন সদস্য আছেন। এখানকার প্রত্যেক সদস্যের প্রভাব বা ওয়েট (weight) আলাদা আলাদা। সদস্য A-এর (Member A) ভোটের মান দ্বিগুণ, সদস্য B-এর (Member B) ভোটের মান তিনগুণ এবং সদস্য C-এর (Member C) ভোটের মান মাত্র একবার গণনা করা হয়। তারা প্রত্যেকেই একটি করে ভোট দেন (হ্যাঁ-এর জন্য ১, না-এর জন্য ০), এরপর আপনি তাদের প্রত্যেকটি ভোটকে নিজ নিজ প্রভাব বা ওয়েট (weight) দিয়ে গুণ করেন, গুণফলগুলো সব একসাথে যোগ করেন, এবং যদি সেই যোগফলটি একটি নির্দিষ্ট থ্রেশহোল্ড (threshold) পার করে যায় — তবেই প্রস্তাবটি পাস বা গৃহীত হয়।
আর এটিই হলো মূলত একটি পারসেপ্ট্রন (perceptron)। এটি সম্ভাব্য সবচেয়ে সাধারণ বা সহজ নিউরাল নেটওয়ার্ক — যা মূলত একটি মাত্র নিউরন (single neuron) দিয়ে তৈরি। এটি এর ইনপুটগুলো (inputs) গ্রহণ করে, প্রত্যেকটিকে একটি করে ওয়েট (weight) দিয়ে গুণ করে, তাদের একসাথে যোগ করে এবং এরপর সেই যোগফলটি যদি একটি থ্রেশহোল্ড (threshold) পার করে বা অতিক্রম করে, তবে এটি ফায়ার (fires) করে বা অ্যাক্টিভ হয়ে যায় (১ আউটপুট দেয়)। আর অন্যথায়, এটি চুপচাপ বা শান্ত থাকে (০ আউটপুট দেয়)।
এর অংকটি: একেবারেই সহজ (The math: dead simple)
একটি পারসেপ্ট্রন (perceptron) মূলত যেভাবে হিসাব করে:
- গুণ করা (Multiply): প্রতিটি ইনপুটকে এর নিজস্ব ওয়েট বা ওজন দিয়ে গুণ করে: x1*w1, x2*w2, ...
- যোগ করা (Add): সবগুলোকে একত্রে যোগ করে (সাথে একটি বায়াস বা bias): sum = x1*w1 + x2*w2 + ... + b
- সিদ্ধান্ত নেওয়া (Decide): যদি যোগফল (sum) > ০ হয়, তবে এটি ১ আউটপুট দেয়। আর অন্যথায়, এটি ০ আউটপুট দেয়।
ব্যাস, এতটুকুই কাজ। মাত্র তিনটি ধাপ। গুণ করা, যোগ করা, এবং সিদ্ধান্ত নেওয়া (Multiply, add, decide)।
এটি কীভাবে শেখে? (How does it learn?)
পারসেপ্ট্রন লার্নিং অ্যালগরিদমটি (perceptron learning algorithm) খুবই সুন্দর এবং ইনটুইটিভ (intuitive):
- এলোমেলো বা রেন্ডম ওয়েট (random weights) দিয়ে কাজ শুরু করুন
- এতে একটি ট্রেইনিং বা অভ্যাসের উদাহরণ (training example) দিন বা ফিড (Feed) করুন
- যদি এর প্রেডিকশন বা অনুমানটি সঠিক (correct) হয় — তবে কিছুই করবেন না
- যদি এটি ০ প্রেডিক্ট করে কিন্তু আসল উত্তর ১ হওয়ার কথা থাকে — তবে এর ওয়েটগুলো (weights) একটু বাড়িয়ে দিন (যাতে করে পরের বার এর ফায়ার করার বা অ্যাক্টিভ হওয়ার সম্ভাবনা বেশি হয়)
- আর যদি এটি ১ প্রেডিক্ট করে কিন্তু আসল উত্তর ০ হওয়ার কথা থাকে — তবে এর ওয়েটগুলো (weights) একটু কমিয়ে দিন (যাতে করে এটি পরের বার একটু কম করে ফায়ার করে)
- সমস্ত ট্রেইনিং উদাহরণগুলোর (training examples) জন্য এই একই জিনিস বেশ কয়েকবার করে রিপিট (Repeat) বা পুনরাবৃত্তি করুন
এটি ঠিক কোনো শিক্ষকের তার ছাত্রকে খোঁচা দেওয়ার মতো কাজ করে: "তোমার এখানে হ্যাঁ বলা উচিত ছিল — তাই পরের বার এসব ফিচারের (features) দিকে আরেকটু বেশি মনোযোগ দিয়ো।"
পারসেপ্ট্রন লার্নিং: অ্যান্ড গেট (Perceptron Learning: AND Gate)
XOR বা এক্স-অর সমস্যা: পারসেপ্ট্রনের সবচেয়ে বড় হার (The XOR problem: the perceptron's fatal flaw)
একটি পারসেপ্ট্রন (perceptron) চাইলে খুব নিখুঁতভাবে AND (অ্যান্ড), OR (অর), এবং NOT (নট) গেটগুলো (gates) শিখতে পারে। কিন্তু এটি কখনোই XOR বা এক্স-অর (এক্সক্লুসিভ অর বা exclusive or: যেখানে ইনপুটগুলো ভিন্ন হলে আউটপুট ট্রু বা সত্য হয়) শিখতে পারে না।
কিন্তু কেন? কারণ XOR লিনিয়ারলি সেপারেবল (linearly separable) নয়। আপনি এখানে চাইলে একটি মাত্র সরলরেখা টানার মাধ্যমে এর "অন (on)" এবং "অফ (off)" কেইসগুলোকে (cases) আলাদা করতে পারবেন না। নিজে একবার চেষ্টা করে দেখুন তো — (০,০)=০, (০,১)=১, (১,০)=১, (১,১)=০ প্লটগুলোকে (plot) গ্রাফে বসান। দেখবেন কোনো একটি সরলরেখা দিয়েই এই সবগুলো কভার করা যাবে না।
এই সীমাবদ্ধতাটি সে সময় এতটাই মারাত্মক ছিল যে এর কারণেই মূলত ১৯৭০-এর দশকে প্রথমবারের মতো "এআই উইন্টার (AI winter) বা কৃত্রিম বুদ্ধিমত্তার শীতকাল" নেমে আসে। তাহলে এর সমাধান কী? একাধিক পারসেপ্ট্রনকে পরপর স্তরে স্তরে বা লেয়ার (layers) আকারে স্ট্যাক (Stack) বা সাজিয়ে রাখা — এটি করলে আপনি এমন একটি সম্পূর্ণ নিউরাল নেটওয়ার্ক (neural network) পেয়ে যাবেন, যা দিয়ে চাইলেই XOR সহ আরও অনেক জটিল সমস্যার সমাধান করা সম্ভব।
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান