কন-শাস-নেস
পঞ্চম পর্ব
পঞ্চম পর্ব
আজকের পর্বটি নিউরাল নেটওয়ার্কের উপর। পর্বটি কিছুটা ম্যাথম্যাটিক্যাল, একটু খেয়াল করে পড়তে হবে।
১। নিউরন
একটা নিউরনে কিছু ইনপুট চ্যানেল থাকে, নাম ডেন্ড্রাইট, আর থাকে একটা আউটপুট চ্যানেল, নাম অ্যাক্সন। বাইপোলার নিউরনও আছে, আপাতত ওইদিকে যাচ্ছি না।
একটা নিউরনে কিছু ইনপুট চ্যানেল থাকে, নাম ডেন্ড্রাইট, আর থাকে একটা আউটপুট চ্যানেল, নাম অ্যাক্সন। বাইপোলার নিউরনও আছে, আপাতত ওইদিকে যাচ্ছি না।
ধরলাম আমাদের নিউরনটায় ৩টা ডেন্ড্রাইট আর একটা অ্যাক্সন আছে। নিউরন করে কি, ডেন্ড্রাইটে যে ইনপুটগুলো আসে সেগুলোকে একটা ওয়েট দিয়ে গুন করে যোগ করে। তারপর যে আউটপুট আসে সেটাকে থ্রেশল্ডিং করে। বেশি জটিল হওয়ার আগে উদাহরণে আসি।
৩ টা ইনপুট, ধরলাম i1, i2 ও i3.
আউটপুট o.
একটা কমন নিউরনে
o = f(i1w1 + i2w2 + i3w3 + c)
এখানে w1, w2 এগুলো হচ্ছে ওয়েট। c ধ্রুবক।
f হচ্ছে থ্রেশল্ডিং ফাঙ্কশন । যোগফলের মানের ভিত্তিতে সে 1 0 আউটপুট দেয়। ইনপুট 1 0 তে সীমাবদ্ধ থাকে।
f হচ্ছে থ্রেশল্ডিং ফাঙ্কশন । যোগফলের মানের ভিত্তিতে সে 1 0 আউটপুট দেয়। ইনপুট 1 0 তে সীমাবদ্ধ থাকে।
ধরলাম আমাদের থ্রেশল্ড লেভেল 3। 3 এর চেয়ে বেশি হলে তার আউটপুট হবে ১ , কম হলে ০।
আমাদের ক্ষেত্রে ধরলাম w1, w2, w3, c যথাক্রমে 1, 2, 3, 0.
i1, i2, i3 যদি 1, 1, 1 হয়, যোগফল হবে 1×1 + 2×1 + 3×1 = 6, যা 3 এর চেয়ে বেশি। অতএব o এক্ষেত্রে 1 হবে।
i1, i2, i3 যদি 1, 0, 0 হয়, যোগফল হবে 1×1 + 2×0 + 3×0 = 1, যা 3 এর চেয়ে কম। অতএব o এক্ষেত্রে 0 হবে।
অর্থাৎ, একটা সিঙ্গেল নিউরন কাজ করে একটা সেপারেটরের মতো। সে একটা লাইন টানে, লাইনের একপাশে থাকে সেইসব ইনপুট যাদের জন্য সে 0 আউটপুট দেয়, অন্যপাশে থাকে 1 এর জন্য দায়ী ইনপুটগুলো।
যদি 1 টা ইনপুট থাকে নিউরনকে ডাইরেক্ট ইনপুট অথবা ইনভারটার হিসাবে ব্যাবহার করা যায়।
ইনভারটার: ইনপুট আউটপুটের উলটা।
ইনভারটার: ইনপুট আউটপুটের উলটা।
যদি ২টা মাত্র ইনপুট থাকে তাহলে আমাদের নিউরনকে 2 ইনপুট অ্যান্ড গেট অথবা অর গেট হিসাবে কাজ করানো যায়।
অ্যান্ড গেট: যদি ২টা ইনপুটই 1 হয় আউটপুট 1.
অর গেট: যদি ১ বা একাধিক ইনপুট 1 হয় আউটপুট 1.
অ্যান্ড গেট: যদি ২টা ইনপুটই 1 হয় আউটপুট 1.
অর গেট: যদি ১ বা একাধিক ইনপুট 1 হয় আউটপুট 1.
বোঝা যাচ্ছে?
2.
যদি নিউরনকে ইনপুটগুলো দেওয়া হয়, আর আউটপুট বলে দেয়া হয়, সে আসতে আসতে ওয়েটগুলো ঠিক করে নেয়। আমরা খুব সিম্পল একটা উদাহরণ দেখব, কিভাবে একটা নিউরনকে নট গেট (ইনভারটার) বানানো যায়।
ইনভারটারের ট্রুথ টেবিলঃ
যদি নিউরনকে ইনপুটগুলো দেওয়া হয়, আর আউটপুট বলে দেয়া হয়, সে আসতে আসতে ওয়েটগুলো ঠিক করে নেয়। আমরা খুব সিম্পল একটা উদাহরণ দেখব, কিভাবে একটা নিউরনকে নট গেট (ইনভারটার) বানানো যায়।
ইনভারটারের ট্রুথ টেবিলঃ
i o
1 0
0 1
1 0
0 1
সোজা কথায়, ইনভারটারে একটা মাত্র ইনপুট থাকে, সে জাস্ট ইনপুটটাকে আউটপুটে উলটে দেয়।
আমরা আমাদের নিউরনটাকে ট্রেইন করিয়ে ইনভারটার বানাবো। আমাদের থ্রেশল্ড লেভেল 0, এর বেশি হলে আউটপুট 1 হবে, কম হলে 0 হবে. তার আউটপুট যদি কাঙ্ক্ষিত আউটপুটের চেয়ে কম হয় তাহলে সে w এর মান ১ বাড়াবে, বেশি হলে ১ কমাবে, ঠিক হলে কিছু করবে না। c চেঞ্জ হবে না। আমরা বারবার ইনপুট দিবো এবং আউটপুট মিলিয়ে দেখবো।
ধরি,
ইনপুট i
আউটপুট o
S = iw + c
o = f(S), where o = 1 if S >=0, else o = 0
R = Right output
W = Wrong output
Wc = Weight Change
ইনপুট i
আউটপুট o
S = iw + c
o = f(S), where o = 1 if S >=0, else o = 0
R = Right output
W = Wrong output
Wc = Weight Change
শুরুতে w = 1, c = 1
ছক আকারে দেখিঃ
i w c S o R/W? Wc
1 1 1 2 1 W -1
1 0 1 1 1 W -1
1 -1 1 0 1 W -1
1 -2 1 -1 0 R 0
0 -2 1 1 1 R 0
i w c S o R/W? Wc
1 1 1 2 1 W -1
1 0 1 1 1 W -1
1 -1 1 0 1 W -1
1 -2 1 -1 0 R 0
0 -2 1 1 1 R 0
অর্থাৎ,
w = -2 হলে নিউরনটি নর গেটের মতো আচরণ করবে।
w = -2 হলে নিউরনটি নর গেটের মতো আচরণ করবে।
একইভাবে, নিজেরা নিউরন দিয়ে অ্যান্ড গেট, অর গেট ট্রেইন করাতে পারেন।
৩।
যদি মাল্টিপল লাইন দিয়ে আউটপুটগুল আলাদা করা লাগে তাহলে একটা নিউরন কাজ করবে না। কারন তার আউটপুট মাত্র ২টা 0 এবং 1. যেমন যদি বলি যোগফল 5 এর কম হলে এক রকম আউটপুট, 5 থেকে 7 এর মধ্যে হলে আরেক রকম আউটপুট, তাহলে ২ টা নিউরন লাগবে অন্তত । ২টা নিউরন পাশাপাশি থাকবে।
যদি মাল্টিপল লাইন দিয়ে আউটপুটগুল আলাদা করা লাগে তাহলে একটা নিউরন কাজ করবে না। কারন তার আউটপুট মাত্র ২টা 0 এবং 1. যেমন যদি বলি যোগফল 5 এর কম হলে এক রকম আউটপুট, 5 থেকে 7 এর মধ্যে হলে আরেক রকম আউটপুট, তাহলে ২ টা নিউরন লাগবে অন্তত । ২টা নিউরন পাশাপাশি থাকবে।
আবার এমন অনেক প্রবলেম আছে যাদের জন্য পাশাপাশি ২টা নিউরনে হবে না। ২টার আউটপুট অন্য নিউরনে ফিড করা লাগবে। সেই নিউরন থেকে আউটপুট পাবো।
এভাবে, এক নিউরনের আউটপুট আরেক নিউরনে দিয়ে দিয়ে একটা নেটওয়ার্ক তৈরি করা যায়। এই নেটয়ার্কের শুরুতে থাকে পরিবেশ থেকে আসা ইনপুট, শেষে থাকে আউটপুট।
এর নাম নিউরাল নেটওয়ার্ক। এ মেশিন, কিন্তু এ শিখতে পারে।
৪।
যদি কোন নিউরনের আউটপুট শুধু এক লেয়ার থেকে আরেক লেয়ারে, এক নিউরন থেকে আরেক নিউরনে যায়, তাকে বলে ফিড ফরওয়ার্ড নেটওয়ার্ক। আমাদের সিগন্যালবাহী স্নায়ুগুলো এই পর্যায়ে পরে। আসলে মস্তিষ্কের বেশিরভাগ অংশই অনেক জটিল ফিড ফরওয়ার্ড নেটওয়ার্ক। তারা প্রতিনিয়ত আমাদের শরীরের কোটি কোটি গাণিতিক সমস্যা সমাধান করে আসছে। তারা শিখছে এবং শেখাচ্ছে।
যদি কোন নিউরনের আউটপুট শুধু এক লেয়ার থেকে আরেক লেয়ারে, এক নিউরন থেকে আরেক নিউরনে যায়, তাকে বলে ফিড ফরওয়ার্ড নেটওয়ার্ক। আমাদের সিগন্যালবাহী স্নায়ুগুলো এই পর্যায়ে পরে। আসলে মস্তিষ্কের বেশিরভাগ অংশই অনেক জটিল ফিড ফরওয়ার্ড নেটওয়ার্ক। তারা প্রতিনিয়ত আমাদের শরীরের কোটি কোটি গাণিতিক সমস্যা সমাধান করে আসছে। তারা শিখছে এবং শেখাচ্ছে।
যদি নেটওয়ার্ক আরও জটিল হয়, আউটপুট আবার অনেক ঘুরে ফিরে আগের নিউরনে ফিরে আসে তখন শুধুমাত্র সমস্যা সমাধান ছাড়াও আরেকটা ব্যাপার ঘটে। তখন চেতনার জন্ম হয়।
এই ধরনের নেটওয়ার্ককে ফিডব্যাক নেটওয়ার্ক বলে। আমাদের কর্টেক্সে এ ধরনের নেটওয়ার্ক প্রচুর।
কেন ফিডব্যাক নেটওয়ার্ক চেতনার জন্ম দেয়?
(চলবে)