Chapter 5 of 25
How much of the brain analogy is actually true?
"Neural network" নামটাই মার্কেটিংয়ের একটা বড় কাজ করে দেয়। এটি শুনলেই মনে হয় যেন সিলিকন দিয়ে তৈরি কোনো মস্তিষ্কের কথা বলা হচ্ছে, আর এমনটা ভাবা পুরোপুরি ভুলও নয় — কারণ আর্টিফিশিয়াল নিউরন সত্যিই বায়োলজিক্যাল বা জৈবিক নিউরন দ্বারা অনুপ্রাণিত হয়ে তৈরি হয়েছিল। কিন্তু এই সাদৃশ্য বা অ্যানালজি (analogy)-কে প্রায়শই এত বেশি ফুলিয়ে-ফাঁপিয়ে প্রচার করা হয় যে, কোর্সের শুরুতেই আপনার মনে একটি মারাত্মক ভুল মেন্টাল মডেল (mental model) তৈরি হয়ে যেতে পারে। একটি মাত্র আর্টিফিশিয়াল নিউরন তৈরি করার আগে, এই একটি চ্যাপ্টারে সময় দেওয়াটা খুব জরুরি, যাতে আপনি পরিষ্কারভাবে বুঝতে পারেন মস্তিষ্কের সাথে এই তুলনার ঠিক কোন অংশগুলো আসলে টেকে, আর কোন অংশগুলো চুপিসারে খসে পড়ে।
এই তুলনাটি নিছক কৌতূহল মেটানোর জন্য নয় — এটি একটি ব্যবহারিক প্রয়োজনীয়তা। যখন আপনি পরের চ্যাপ্টারগুলোতে "weight", "bias", "activation"-এর মতো শব্দগুলোর মুখোমুখি হবেন, তখন যদি আপনার মাথায় একটি পরিষ্কার বায়োলজিক্যাল ছবি গাঁথা থাকে, তবে ওই টার্মগুলো আর নিছক বিমূর্ত গণিত মনে হবে না — সেগুলো একেকটা গল্পের অংশ মনে হবে, যার প্রতিটির পেছনে একটা কারণ আছে। কিন্তু ঠিক এই একই কারণে ভুল ধারণাগুলোও এখানেই সবচেয়ে বেশি গেঁথে বসে যায়, কারণ এই পর্যায়ে শিক্ষার্থীরা প্রায়ই ধরে নেয় যে যেহেতু নামটা "নিউরাল" (neural), তাই বোধহয় প্রতিটি ডিজাইন সিদ্ধান্তের পেছনেই একটি নিউরোসায়েন্টিফিক ব্যাখ্যা আছে। বাস্তবতা তার চেয়ে অনেক বেশি ব্যবহারিক এবং অনেক কম রোমান্টিক — আর এই চ্যাপ্টারের লক্ষ্যই হলো ঠিক এই ব্যবধানটি স্পষ্ট করে তোলা।
একটু কল্পনা করুন তো, আপনি আপনার এক কৌতূহলী বন্ধুকে বোঝাচ্ছেন যে কীভাবে আপনি দেয়ালের ওপার থেকেও আপনার নিজের কুকুরের ডাক আর প্রতিবেশীর কুকুরের ডাকের পার্থক্য বুঝতে পারেন। আপনার শোনার সিস্টেমের বা অডিটরি সিস্টেমের (auditory system) কোথাও না কোথাও, আপনার কান থেকে সিগন্যাল নিউরনের বিভিন্ন লেয়ার বা স্তরের মধ্য দিয়ে যায়। প্রতিটি নিউরন হাজার হাজার অন্য নিউরনের ইনপুটের ওপর ভিত্তি করে সিদ্ধান্ত নেয় যে সে সিগন্যালটিকে সামনের দিকে পাস করবে কি না, আর এই পুরো প্রক্রিয়াটি তৈরি হয়েছে সারাজীবন ধরে ওই দুটি কুকুরের ডাক শোনার অভিজ্ঞতার মধ্য দিয়ে। কেউ এই সার্কিটটি ডিজাইন করে দেয়নি। এটি অভিজ্ঞতা থেকে নিজে নিজেই তৈরি হয়েছে, প্রতিটি কানেকশন একটু একটু করে অ্যাডজাস্ট হওয়ার মাধ্যমে।
এবার কল্পনা করুন একটি ভয়েস-অ্যাসিস্ট্যান্ট অ্যাপও ঠিক এরকমই কাছাকাছি একটা কিছু করছে: চারপাশের নানা শব্দের ভিড় থেকে "Hey Siri"-কে আলাদা করে চিনতে পারছে। এর ভেতরে আসলে কাজ করছে আর্টিফিশিয়াল নিউরনের একটি নেটওয়ার্ক, যা ট্রেনিংয়ের সময় এর কানেকশনের শক্তিকে (connection strengths) এমনভাবে অ্যাডজাস্ট করে যাতে সঠিক শব্দের প্যাটার্ন আসলে সঠিক রেসপন্স তৈরি হয়। এই দুটি সিস্টেমের একটি সাধারণ পূর্বপুরুষ বা আইডিয়া আছে — সিগন্যালগুলোকে এক করা এবং সামনের দিকে পাস করা, এবং কানেকশনের শক্তি যা অভিজ্ঞতার সাথে সাথে পরিবর্তিত হয় — কিন্তু তারা সম্পূর্ণ আলাদা উপাদান দিয়ে তৈরি, আর তাদের কাজ করার নিয়মও সম্পূর্ণ আলাদা। এই বাক্যের দুটি অংশকেই খুব ভালোভাবে বোঝাই হলো এই চ্যাপ্টারের মূল লক্ষ্য।
একটি বায়োলজিক্যাল নিউরনের মূলত চারটি অংশ রয়েছে যাদের নাম জানাটা জরুরি, কারণ কোর্সের বাকি অংশে আপনি এদের আর্টিফিশিয়াল রূপগুলোর মুখোমুখি হবেন।
ডেনড্রাইটস (Dendrites)
ডালপালার মতো গঠন, যা অন্য নিউরনগুলো থেকে বৈদ্যুতিক সিগন্যাল গ্রহণ করে।
সেল বডি বা সোমা (Cell body / Soma)
আসা সিগন্যালগুলোকে ইন্টিগ্রেট (Integrate) করে বা যোগ করে।
অ্যাক্সন (Axon)
একটি দীর্ঘ ফাইবার বা সুতোর মতো অংশ, যা নিউরনের আউটপুট সিগন্যালটিকে সামনের দিকে পাঠিয়ে দেয় — তবে শর্ত হলো, ইন্টিগ্রেট করা সিগন্যালটিকে যথেষ্ট শক্তিশালী হতে হবে।
সিন্যাপস (Synapses)
একটি নিউরনের অ্যাক্সন এবং অন্য নিউরনের ডেনড্রাইটসের মাঝের কানেকশন পয়েন্ট, যেখানে লার্নিং বা শেখার মাধ্যমে কানেকশনের শক্তি পরিবর্তিত হতে পারে।
একটি বায়োলজিক্যাল নিউরন তখনই "ফায়ার" করে — অর্থাৎ তার অ্যাক্সন দিয়ে সিগন্যাল পাঠায় — যখন তার ডেনড্রাইটসে আসা মোট ইনপুট একটি নির্দিষ্ট থ্রেশহোল্ড (threshold) বা মাত্রা অতিক্রম করে। এই 'হয় সব, নয় কিছুই না' (all-or-nothing) ফায়ারিং আচরণটিই একেবারে শুরুর দিকের আর্টিফিশিয়াল নিউরন মডেলগুলোর (যেমন আগের চ্যাপ্টারে পড়া ম্যাককালচ-পিটস নিউরন) থ্রেশহোল্ড-ভিত্তিক অ্যাক্টিভেশনকে অনুপ্রাণিত করেছিল।

শুধু নিউরন কীভাবে ফায়ার করে তা জানাই যথেষ্ট নয় — আসল প্রশ্নটি হলো, নিউরনগুলো শেখে কীভাবে? উত্তরটি হলো সিন্যাপটিক প্লাস্টিসিটি (synaptic plasticity): সিন্যাপসের শক্তি স্থির নয়, বরং অভিজ্ঞতার সাথে সাথে বদলাতে থাকে। ১৯৪৯ সালে মনোবিজ্ঞানী Donald Hebb একটি সহজ কিন্তু অত্যন্ত প্রভাবশালী নিয়ম প্রস্তাব করেছিলেন, যাকে আজ Hebbian learning বলা হয়, এবং যা প্রায়ই এভাবে সংক্ষেপ করা হয়: "যে নিউরনগুলো একসাথে ফায়ার করে, তারা একসাথে যুক্তও থাকে (cells that fire together, wire together)।" অর্থাৎ, যদি নিউরন A বারবার নিউরন B-কে ফায়ার করাতে সাহায্য করে, তবে তাদের মধ্যকার সিন্যাপসের শক্তি ধীরে ধীরে বাড়তে থাকে — এই প্রক্রিয়াটিকে বলা হয় long-term potentiation (LTP)।
এই আইডিয়াটি শুনতে পরের চ্যাপ্টারের perceptron লার্নিং রুলের সাথে আশ্চর্যরকম মিলে যায় — এবং সেটা কোনো কাকতালীয় ব্যাপার নয়। উভয় ক্ষেত্রেই মূল নীতিটি একই: সংযোগের শক্তি (weight) সমন্বয় করা হয় সিগন্যালগুলোর একসাথে ঘটার ধরন দেখে। কিন্তু একটি গুরুত্বপূর্ণ পার্থক্য মনে রাখা দরকার, যা পরে "Common Mistakes" অংশে আরও বিস্তারিত আলোচনা করা হয়েছে: Hebbian learning সম্পূর্ণ লোকাল (local) এবং আনসুপারভাইজড (unsupervised) — একটি নিউরন শুধু তার নিজের প্রতিবেশী নিউরনগুলোর আচরণ দেখে সিদ্ধান্ত নেয়, কোনো গ্লোবাল "সঠিক উত্তর" বা এরর সিগন্যাল তার কাছে থাকে না। অন্যদিকে, পরের চ্যাপ্টারে যে perceptron লার্নিং রুল আপনি দেখবেন তা সরাসরি একটি জানা ট্রু লেবেল এর সাথে তুলনা করে ওয়েট আপডেট করে — এটি সুপারভাইজড (supervised) এবং গ্লোবালি নির্দেশিত।
আর্টিফিশিয়াল নিউরন ঠিক এই আকারটিকেই গ্রহণ করে এবং একে সাধারণ পাটিগণিতে নামিয়ে আনে: গুণ করা, যোগ করা এবং একটি নন-লিনিয়ারিটি (nonlinearity) প্রয়োগ করা।
যেখানে: হলো ইনপুট ভ্যালু, হলো লার্নেবল ওয়েটস বা যে ওজনগুলো শেখা যায় (যা সিন্যাপটিক শক্তির সমতুল্য), হলো একটি লার্নেবল বায়াস বা bias (মোটা দাগে এটি ফায়ারিং থ্রেশহোল্ডের সমতুল্য, তবে এর সাইন বা চিহ্ন উল্টো থাকে), হলো প্রি-অ্যাক্টিভেশন (pre-activation) ওয়েটেড সাম, হলো একটি নন-লিনিয়ার অ্যাক্টিভেশন ফাংশন (nonlinear activation function) — পরের একটি চ্যাপ্টারে আপনি -এর বেশ কয়েকটি নির্দিষ্ট রূপ দেখতে পাবেন — এবং হলো নিউরনের আউটপুট।
সহজ কথায়: ওয়েটেড সাম (weighted sum) নিউরনকে শিখতে সাহায্য করে কোন ইনপুটগুলো বেশি গুরুত্বপূর্ণ (বড় ) আর কোনগুলো কম গুরুত্বপূর্ণ (ছোট ), আর নন-লিনিয়ারিটি ঠিক করে দেয় যে ওই মিলিত সিগন্যালের জবাবে নিউরনটি ঠিক কতটা শক্তিতে "ফায়ার" করবে।
দুটিকে পাশাপাশি রাখলে অনুপ্রেরণার জায়গাটি একদম পরিষ্কার হয়ে ওঠে:
| বায়োলজিক্যাল কনসেপ্ট | ভূমিকা | আর্টিফিশিয়াল সমতুল্য রূপ |
|---|---|---|
| ডেনড্রাইটস (Dendrites) | অন্য নিউরন থেকে সিগন্যাল গ্রহণ করে | ইনপুট ভ্যালু |
| সিন্যাপটিক শক্তি (Synaptic strength) | একটি সিগন্যাল কতটা শক্তিতে ট্রান্সমিট হবে তা নির্ধারণ করে | ওয়েট (Weight) |
| সেল বডি বা সোমা (soma) | আসা সিগন্যালগুলোকে যোগ করে | ওয়েটেড সাম |
| ফায়ারিং থ্রেশহোল্ড (Firing threshold) | নিউরনটি ফায়ার করবে কি না তা নির্ধারণ করে | অ্যাক্টিভেশন ফাংশন |
| অ্যাক্সন (Axon) | অন্য নিউরনে আউটপুট পাঠায় | আউটপুট ভ্যালু , যা পরের লেয়ারে পাস করা হয় |
| লার্নিং (synaptic plasticity) | অভিজ্ঞতার সাথে সাথে কানেকশনের শক্তি পরিবর্তিত হয় | গ্রেডিয়েন্ট ডিসেন্ট (gradient descent) / ব্যাকপ্রপাগেশন (backpropagation)-এর মাধ্যমে ওয়েট আপডেট করা |
| রিফ্র্যাক্টরি পিরিয়ড (Refractory period) | একবার ফায়ার করার পর নিউরনটি সাময়িকভাবে আবার ফায়ার করতে অক্ষম থাকে | একটি সাধারণ MLP-তে সরাসরি এর কোনো সমতুল্য নেই — প্রতিটি ফরোয়ার্ড পাস স্বাধীন এবং স্টেটলেস (stateless) |
প্রাথমিক মেন্টাল মডেল হিসেবে এই টেবিলটি সত্যিই খুব কাজের, আর একারণেই "neural network" নামটা আজও টিকে আছে। কিন্তু একে একটি প্রাথমিক স্কেচ বা খসড়া হিসেবেই ধরবেন, কোনো ব্লু-প্রিন্ট বা নীল-নকশা হিসেবে নয় — পরের অংশে আলোচনা করা হয়েছে ঠিক কোথায় এই স্কেচটি বাস্তবতার সাথে আর মেলে না।
আর্টিফিশিয়াল Neural Network-কে আক্ষরিক অর্থে মস্তিষ্কের সিমুলেশন হিসেবে বর্ণনা করাটা খুবই লোভনীয় — এবং জনপ্রিয় লেখালেখিতে এটি খুব সাধারণ একটি বিষয়। কিন্তু এই ধারণাটি বেশ বিভ্রান্তিকর। আর্টিফিশিয়াল নিউরন মূলত গাণিতিক সরলীকরণের একটি চরম রূপ, এবং আধুনিক Deep Learning নিউরোসায়েন্সের (neuroscience) চেয়ে স্ট্যাটিস্টিক্স, লিনিয়ার অ্যালজেব্রা এবং ক্যালকুলাসের কাছে অনেক বেশি ঋণী। নিচের পার্থক্যগুলো জানা শুধু সঠিক ধারণা তৈরির জন্যই নয়, বরং ইন্টারভিউয়ের জন্যও খুব জরুরি।
| বিষয় (Aspect) | বায়োলজিক্যাল Neural Network | আর্টিফিশিয়াল Neural Network |
|---|---|---|
| সিগন্যালের ধরন | ডিসক্রিট (Discrete) ইলেকট্রিক্যাল স্পাইক (অ্যাকশন পটেনশিয়াল); টাইমিং বা সময় খুব গুরুত্বপূর্ণ | কন্টিনিউয়াস রিয়েল-ভ্যালুড (Continuous real-valued) সংখ্যা; টাইমিং (একটি সাধারণ MLP-তে) গুরুত্বপূর্ণ নয় |
| লার্নিং রুল (Learning rule) | এখনো পুরোপুরি বোঝা যায়নি; লং-টার্ম পটেনসিয়েশনের (long-term potentiation) মতো জটিল বায়োকেমিক্যাল প্রক্রিয়া | একটি সুনির্দিষ্টভাবে সংজ্ঞায়িত গাণিতিক প্রক্রিয়া: backpropagation-এর মাধ্যমে gradient descent |
| নিউরনের সংখ্যা | মানুষের মস্তিষ্ক: প্রায় ৮৬ বিলিয়ন (৮৬০০ কোটি) নিউরন | আধুনিক MLPs: সাধারণত কয়েক হাজার থেকে কয়েক মিলিয়ন (কয়েক লাখ) ইউনিট |
| কানেক্টিভিটি (Connectivity) | খুব বেশি রিকারেন্ট (recurrent), স্পার্স (sparse) বা পাতলা, এবং অনিয়মিত | সাধারণত ফিডফরোয়ার্ড (feedforward) এবং লেয়ারগুলোর মধ্যে ফুলি কানেক্টেড (fully connected) |
| শক্তির কার্যকারিতা (Energy efficiency) | অত্যন্ত দক্ষ — পুরো মস্তিষ্কের জন্য মাত্র ২০ ওয়াট শক্তি লাগে | বড় নেটওয়ার্ক ট্রেন করতে প্রচুর পরিমাণ শক্তি খরচ হতে পারে |
| গ্লোবাল অবজেক্টিভ (Global objective) | এমন কোনো নির্দিষ্ট বা একক গ্লোবাল লস ফাংশন (loss function) নেই যাকে কমানো বা মিনিমাইজ করা হয় | একটি সুস্পষ্টভাবে সংজ্ঞায়িত লস ফাংশন থাকে, যাকে গ্রেডিয়েন্ট-ভিত্তিক অপ্টিমাইজেশনের মাধ্যমে মিনিমাইজ করা হয় |
| প্রসেসিং স্টাইল (Processing style) | ব্যাপকভাবে সমান্তরাল (massively parallel) — কোটি কোটি নিউরন একসাথে কাজ করে | মূলত সিকোয়েন্সিয়াল, লেয়ার-বাই-লেয়ার কম্পিউটেশন (যদিও একটি লেয়ারের ভেতরের গণনাগুলো GPU-তে প্যারালালাইজ করা যায়) |
এই পার্থক্যগুলোর প্রতিটিতে একটু সময় দেওয়া উচিত, কারণ কোর্সের পরের দিকে আপনি যতগুলো ডিজাইন চয়েস বা সিদ্ধান্ত দেখবেন, তার পেছনের কারণটা এই পার্থক্যগুলোই নীরবে ব্যাখ্যা করে। আর্টিফিশিয়াল লার্নিং যে একটি সুনির্দিষ্ট গাণিতিক প্রক্রিয়া (২য় সারি), ঠিক একারণেই backpropagation (যা আমরা শিগগিরই পড়ব)-কে ডেরাইভ (derive) করে গাণিতিকভাবে সঠিক প্রমাণ করা যায় — বায়োলজিক্যাল লার্নিংয়ের ক্ষেত্রে এত সুনির্দিষ্ট কোনো কিছু এখনো পর্যন্ত আবিষ্কৃত হয়নি। একটি সাধারণ MLP যে ফিডফরোয়ার্ড এবং ফুলি কানেক্টেড হয় (৪র্থ সারি), তা আসলে ইচ্ছাকৃত একটি ইঞ্জিনিয়ারিং সরলীকরণ, মস্তিষ্ক ঠিক কীভাবে যুক্ত থাকে তার কোনো দাবি এটি নয়।
"আর্টিফিশিয়াল Neural Network কি মস্তিষ্কের সঠিক মডেল?" এর সঠিক এবং সূক্ষ্ম উত্তরটি হলো: তারা বায়োলজিক্যাল নিউরন দ্বারা খুব শিথিলভাবে অনুপ্রাণিত — বিশেষ করে ওয়েটেড কানেকশন এবং থ্রেশহোল্ডের মতো ফায়ারিং ধারণাগুলোর ক্ষেত্রে — কিন্তু এগুলো আসলে একটি বড় ধরনের সরলীকরণ বা সিপ্লিফিকেশন। আধুনিক Deep Learning-কে নিউরোসায়েন্সের একটি শাখা হিসেবে না ভেবে গাণিতিক অপ্টিমাইজেশনের (mathematical optimization) একটি প্রয়োগ হিসেবে বোঝাই সবচেয়ে ভালো, যা মূলত ক্যালকুলাস এবং লিনিয়ার অ্যালজেব্রা দিয়ে তৈরি।
Neural Network-কে "ঠিক যেন মানুষের মস্তিষ্কের মতো" হিসেবে বর্ণনা করলে এর আকার, সিগন্যালের ধরন, কানেকটিভিটি এবং — সবচেয়ে গুরুত্বপূর্ণ — লার্নিং মেকানিজমের বিশাল পার্থক্যগুলো আড়ালে ঢাকা পড়ে যায়। শুরুতে ধারণা পাওয়ার জন্য এই অ্যানালজি ব্যবহার করুন, তারপর নির্দিষ্ট অঙ্ককে (পরের চ্যাপ্টার থেকে শুরু হবে) এর জায়গা নিতে দিন।
আধুনিক MLPs, এমনকী খুব বড় মডেলগুলোতেও মানুষের মস্তিষ্কের তুলনায় বহুগুণ কম সংখ্যক ইউনিট ব্যবহার করা হয়, এবং এদের কানেকশনের প্যাটার্নও অনেক বেশি সাধারণ হয়। শুধুমাত্র আকার বা স্কেল (Scale) বাড়িয়ে এই গঠনগত শূন্যস্থানটি পূরণ করা যায় বায়োলজিক্যাল না।
উভয়েই "connection strength adjust করা"-র কথা বলে বলে এদের একই জিনিস মনে হতে পারে, কিন্তু তা নয়। Hebbian learning সম্পূর্ণ লোকাল এবং আনসুপারভাইজড — কোনো গ্লোবাল এরর সিগন্যাল ছাড়াই কাজ করে। Backpropagation সম্পূর্ণ উল্টো: এটি আউটপুট লেয়ারের এরর থেকে শুরু করে চেইন রুল ব্যবহার করে পেছনের দিকে প্রতিটি লেয়ারে গ্লোবালি সেই এরর "ছড়িয়ে" দেয়। মস্তিষ্কে এরকম কোনো গ্লোবাল, সুনির্দিষ্ট ব্যাকওয়ার্ড এরর-প্রোপাগেশন মেকানিজম এখনো পর্যন্ত প্রমাণিত হয়নি।
যখনই কোনো নিউজ আর্টিকেল বা প্রোডাক্ট পিচে (pitch) Neural Network-কে "মস্তিষ্কের নকল" হিসেবে বর্ণনা করতে শুনবেন, তখন সেই দাবিটি কতটা সত্যি তা সঠিকভাবে বিচার করার টুলস এখন আপনার কাছে আছে: উত্তরটা হবে হ্যাঁ, যদি ওয়েটেড কানেকশন বা থ্রেশহোল্ডের মতো ফায়ারিং ধারণার মতো ঢিলেঢালা গঠনগত দিক থেকে ভাবা হয়; আর উত্তরটা হবে না, যদি শেখার মেকানিজম, কানেকটিভিটি, স্কেল বা শক্তির কার্যকারিতার মতো গভীর দিক থেকে ভাবা হয়। এই নিখুঁত ধারণাটা ব্যবহারিক ক্ষেত্রেও খুব কাজে লাগে — আর ঠিক এই কারণেই এই কোর্সের বাকি অংশে Multi-Layer Perceptron-কে নিউরোসায়েন্সের বদলে ক্যালকুলাস এবং লিনিয়ার অ্যালজেব্রার মাধ্যমে গড়ে তোলা হবে, এবং ওয়েট, অ্যাক্টিভেশন, আর backpropagation নিয়ে সামনের চ্যাপ্টারগুলো পড়লে আপনার কাছে এটাকে জীববিদ্যা বা বায়োলজির চেয়ে ইঞ্জিনিয়ারিং আর গণিত বলেই বেশি মনে হবে।