নিউরনে নিউরনে নিউরাল নেটওয়ার্ক !

কখনো মনে হয়েছে আমাদের মস্তিষ্ক বা ব্রেইন কিভাবে কাজ করে? চোখ দিয়ে আমরা দেখতে পাই, কিন্তু কোন বস্তু বা মানুষ দেখে চেনার কাজ টা কই হয়? আমরা যাই করি না কেন সেইখানে ব্রেইন বা মস্তিস্কের বিশাল হাত রয়েছে!

সেটা হোক কোন কিছু ধরে অনুধাবন করতে ( the feeling when we touch something ) , কোন কিছু’র স্বাদ গ্রহণের সময় ( the taste we find while eating or drinking something ) , কোন কিছুর গন্ধ বা সেন্ট নাকের মাধ্যমে নেয়ার সময় ( the smelling ) , কোন কিছু শোনার ক্ষেত্রে ( the hearing ability ) কিংবা চোখে দেখা ( the power of vision ) , সব কিছু ব্রেইন নামক ওই আজব বস্তু টাতেই ঘটে ।

Your Brain And Five Senses

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

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

Different Part of Brain

ব্রেইন এর এনাটমি করলে আমরা তিনটা অংশ পাবো —

যথা ক্রমে — forebrain, midbrain এবং hindbrain!

forebrain, midbrain এবং hindbrain!

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

এই নিউরাল নেটওয়ার্ক হচ্ছে মানুষের ব্রেইন আর নার্ভাস সিস্টেম এর মত করে এক ধরনের কম্পিউটার ব্রেইন বানানো যাতে করে সেই কম্পিউটার ব্রেইন বা নিউরাল নেটওয়ার্ক বা আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক মানুষের ব্রেইন কে মিমিক ( mimic ) করতে পারে ।

নিউরাল নেটওয়ার্ক কি?

নিউরাল নেটওয়ার্ক কই ব্যবহার করা হয় ?

নিউরাল নেটওয়ার্ক কেন ব্যবহার করা হয়?

নিউরাল নেটওয়ার্কস এর বাস্তব প্রয়োগ —

নিউরাল নেটওয়ার্ক এর বাস্তব প্রয়োগ

আবারো ব্রেইন এর কথায় আসি —

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

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

ব্রেইন কি কি করে ?

নিউরাল নেটওয়ার্ক কিংবা আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক এর কাজ এটাই । একটা আর্টিফিশিয়াল ব্রেইন বানানো । গুগল কিন্তু বানিয়ে ফেলেছে একটা গুগল ব্রেইন নামে!

নিচে গুগল ব্রেইন এর একটা ইনফোগ্রাফিক দিলাম , পড়ে দেখেন —

গুগল ব্রেইন

গুগল ব্রেইন সম্পর্কে মজার কিছু তথ্য —

গুগল ব্রেইন প্রোজেক্ট

তো আবার ব্রেইন এর কাছে আসি । ব্রেইন হচ্ছে ন্যাচারাল নিউরাল নেটওয়ার্ক । ব্রেইন এর সবচেয়ে গুরুত্বপূর্ণ উপাদান গুলো’র একটা হলো নিউরণ । প্রত্যেক্টা নিউরণ তার মত আরো হাজার হাজার নিউরণের সাথে ইন্টার কানেক্টেড । নিউরণ গুলো সবসময় একে অপরের কাছে সিগন্যাল পাঠাচ্ছে । ব্রেইন এর নিউরণ আর কম্পিউটার এর নিউরণ এর মাঝে বিশাল পার্থক্য হচ্ছে ব্রেইন এক সাথে সব নিউরণ কে সচল রাখতে পারে ( fire up ) , কম্পিউটার ঠিক তার উলটো ।

কম্পিউটার এর একটা নিউরণ ফায়ার করতে একশো প্রসেস পার করতে হয় । যেমন ফেইস রকগনিশন বা আপনাকে দেখে চিনতে পারা ক্ষমতা তৈরি করতে একটা কম্পিউটারকে বিলিয়ন রকম প্রসেসিং এর মধ্য দিয়ে যেতে হয় , আপনার ব্রেইন এর সেটা করতে ১ সেকেন্ড এর ও কম লাগে ।

সো কে বেশি শক্তিশালী? আপনার ব্রেইন নাকি কম্পিউটার এর ব্রেইন ?

ব্রেইন ভার্সেস কম্পিউটার

চলুন নিউরাল নেটওয়ার্ক নিয়ে একটা ভিডিও দেখে ফেলি —

প্রাথমিক ইন্ট্রো দিয়ে ফেলেছি । কম্পিউটার সায়েন্সের ছেলে মেয়ে হলে আর আর্টিফিশিয়াল ইন্টেলিজেন্স নিয়ে কাজ করতে চাইলে নিউরাল নেটওয়ার্ক পড়তেই হবে । আর শখের বশে শিখতে চাইলেও তো কথা নেই!

লেখার এই অংশ থেকেই মূলত আমাদের নিউরাল নেটওয়ার্ক জটিল জগতে প্রবেশ করতেসি!

নিউরাল ওয়ার্ক নিয়ে শেখার আগে আমরা জানবো এর কি কি ফাংশন আছে এবং ব্যবহার —

এছাড়াও পরবর্তী পোস্ট সমুহে ব্যবহার করবো এমন কিছু নিউরাল নেটওয়ার্কস চিহ্ন (symbol ) এই পোস্ট এ দিয়ে দিলাম ।

নিউরাল নেটওয়ার্কস সিম্বল
নিউরাল নেটওয়ার্কস সিম্বল দ্বিতীয় অংশ
নিউরাল নেটওয়ার্কস সিম্বল তৃতীয় অংশ
নিউরাল নেটওয়ার্ক সিম্বল ফাইনাল

নিউরাল নেটওয়ার্ক হচ্ছে এক প্রকার মাল্টি প্রসেসিং কম্পিউটার সিস্টেম । যেখানে —

প্রসেসিং এর জন্য সিম্পল প্রসেসিং এলিমেন্টস থাকে ।

এলিমেন্টস সমূহের মাঝে উচ্চ মানের ইন্টার কানেকশন থাকে ।

এলিমেন্টস গুলা এডাপ্টিভ হয় ।

নিউরাল নেটওয়ার্ক এর তিনটা বেসিক কম্পোনেন্ট হচ্ছে —

  1. Weights
  2. Thresholds
  3. Activation Function
নিউরাল নেটওয়ার্ক এর ব্যসিক কম্পোনেন্টস

Weights হচ্ছে দুইটা নিউরাল নোড বা এলিমেন্টস এর মাঝে যে কানেকশন থাকে তারা কত শক্তিশালী ।

নিউরাল নেটওয়ার্কস Weight

কোন একটা নিউরাল নেটওয়ার্ক এর যেকোন একক নিউরণ কে Thresholds বলা হয় । এটা একটা লিনিয়ার ফাংশন । কারণ এটি ডিসিশন নেয় একে যে রকম তথ্য প্রেরণ করা হয় কিংবা নিউরণে নিউরণে কিরকম Weights বিদ্যমান সেটার উপর ভিত্তি করে ।

Activation Function বা ট্রান্সফার ফাংশন হলো কোন একটা নোড এর ইনপুট করা তথ্যের উপর প্রাপ্ত আউটপুট ।

এক্টিভেশন ফাংশন

এক্টিভেশন ফাংশন আবার অনেক রকম হয় —

  1. Identity function.
  2. Binary step function.
  3. Bipolar step function.
  4. Sigmoidal function — ( 1. Binary sigmoidal function. ) & (2. Bipolar sigmoidal function. )
  5. 5. Ramp function.

এগুলো নিয়ে পরের কোন লেখায় আলোচনা থাকবে । মনে করায়ে দিয়েন!

বায়োলজিক্যাল নিউরণ

একটা বায়োলজিকাল নিউরনে ১০,০০০ ভিন্ন ভিন্ন ইনপুট থাকতে পারে ; এবং সে চাইলেই এই ১০,০০০ ইনপুট থেকে প্রাপ্ত আউটপুট অন্যান্য নিউরণে পাঠাতে পারে । নিউরণ গুলা একে অপরের সাথে ৩-ডায়মেনশনাল প্যাটার্নে সংযুক্ত থাকে ।

নিউরনে নিউরনে নিউরাল নেটওয়ার্ক

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

এখন আমরা দেখবো

একটি আডাপ্টিভ সিম্পল নিউরাল নেটওয়ার্ক । এই নেট ওয়ার্ক এর দুইটা ইনপুট একটা আউটপুট আছে । সব গুলো বাইনারি । আউটপুট গুলো হলো ১ এবং ০ । অর্থাৎ এই নেটওয়ার্ক এ আউটপুট ১ অথবা ০ হবে যখন ইনপুট নিচের মত হবে —

1 if W0 *I0 + W1 * I1 + Wb > 0
0 if W0 *I0 + W1 * I1 + Wb <= 0
সিম্পল এডাপ্টিভ নেটওয়ার্ক

এই সিম্পল এডাপ্টিভ নিউরাল নেটওয়ার্ক দিয়ে আমরা কি করতে চাচ্ছি? যাতে করে এটি সবসময় রেজাল্ট ১ দেখায় যদি I0 বা I1 এর মান ১ হয় ।

The network adapts as follows: change the weight by an amount proportional to the difference between the desired output and the actual output.

এইটাকে একটা ইকুয়েশন আকারে লিখলে এরকম হবে —

Δ Wi = η * (D-Y).Ii

এখানে η হচ্ছে লার্নিং রেট বা মেশিনের শেখার হার , D হচ্ছে আমরা যে রেজাল্ট আশা করতেসি । Y হচ্ছে যে রেজাল্ট মেশিন জেনারেট করতেসে ।

এইটাকে বলা হয় পারসেপট্রন লার্নিং রুল —

পারসেপট্রন লার্নিং রুল কি ?

এরপর আসে Back-Propagated Delta Rule Networks । এটি একটি ফিড ফরওয়ার্ড নেট ওয়ার্ক ।

Back-Propagated Delta Rule Networks আবার simple perceptron এর অংশ ।

Back-Propagated Delta Rule Networks (BP)is a development from the simple Delta rule in which extra hidden layers (layers additional to the input and output layers, not connected externally) are added. The network topology is constrained to be feedforward: i.e. loop-free — generally connections are allowed from the input layer to the first (and possibly only) hidden layer; from the first hidden layer to the second,…, and from the last hidden layer to the output layer.
Back-Propagated Delta Rule Networks (BP)

Back-Propagated বা ( BP network ) আর্কিটেকচার সাধারণত তিন ধরণের লেয়ার দিয়ে তৈরি ।

আউটপুট লেয়ার — হিডেন লেয়ার — ইনপুট লেয়ার —

BP network আর্কিটেকচার

বিপি নেটওয়ার্ক আবার ফরওয়ার্ড পাস এবং ব্যাকওয়ার্ড পাস এর কম্বিনেশন ।

বিপি নেটওয়ার্ক এর পর আসে Radial Basis function Networks । এটি ও ফিড ফরওয়ার্ড কিন্তু এটাতে কেবল একটি মাত্র হিডেন লেয়ার থাকে ।

Radial Basis function Networks আরকিটেকচার

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

আরেকধরনের নিউরাল নেটওয়ার্ক রয়েছে যেটাকে আমরা বলি আনসুপারভাইজড নিউরাল নেটওয়ার্ক , যেটি কিনা এর ইনপুট থেকে নিজে নিজে শিখে ।

আনসুপারভাইজড নিউরাল নেট ওয়ার্ক

আনসুপারভাইজড নিউরাল নেট ওয়ার্ক এর ব্যবহার —

clustering data:

exactly one of a small number of output units comes on in response to an input.

reducing the dimensionality of data:

data with high dimension (a large number of input units) is compressed into a lower dimension (small number of output units).

আনসুপারভাইজড নিউরাল নেট ওয়ার্ক সুপারভাইজড নিউরাল নেট ওয়ার্ক এর তুলনায় ধীরগতির ।

আজ এ পর্যন্তই! এতো কিচ্ছু পড়ে পড়ে যদি মাথা গরম হয়ে যায় তবে আমি দায়ী নই! যদি নিউরাল নেটওয়ার্ক নিয়ে আরো পড়তে চান তবে —

নিউরাল নেটওয়ার্ক এর উপর একটা চার্ট —

নিউরাল নেটওয়ার্ক চার্ট

নিউরাল নেটওয়ার্ক এর উপর বই —

Make Your Own Neural Network

আমার অন্যান্য লেখা —

আমি রিয়াদ রহমান , কাজ করি আর্টিফিশিয়াল ইন্টেলিজেন্স, ডাটা সায়েন্স নিয়ে । ফেইসবুক এ আমিলিঙ্কইডইন এ আমিটুইটার এ আমাকে টুইট করুন । আমার প্রতিষ্ঠান টাইগার ডিজিটাল আমাদের কাজ । আমাদের বাঘা প্রজেক্ট । আমাদের বাঘ.com এবং মুক্তিযুদ্ধ.com 😎😎😎

Corporate Inquiry — hello@tigerdigital.xyz

Personal — ireyadrahman@gmail.com