Register Now

Login


Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login


Register Now

Welcome to Our Site. Please register to get amazing features .

Artificial Neural Network – আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক

Artificial Neural Network – আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক

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

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

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

এক একটা লিঙ্ক এক একটা Weight ক্যারি করে। আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক নিজে নিজে শিখে নিতে পারে। শেখার উপর ভিত্তি করে লিঙ্ক এর weight পরিবর্তন হয়।

মানুষের মস্তিষ্ক বিলিয়ন বিলিয়ন নিউরণে পরিপূর্ণ । এই নিউরণ গুলো একে অন্যের সাথে কানেক্টেড । অ্যাক্সনের মাধ্যমে বাইরের জগতের কোনো কিছুর উপর রিয়্যাক্ট করতে অথবা নতুন কিছু শিখতে নিউরণ গুলো সিগনাল পাঠায় । এই নিউরণ গুলো কমিউনিকেট করে একে অন্যের সাথে সিন্যাপসেস এর মাধ্যমে ।

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

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

আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক কিভাবে কাজ করে তা আমরা ইমেজ রিকগনিশেন এর মাধ্যমে বুঝতে পারি সহজেই। এর জন্য আমরা ব্যবহার করব MNIST handwritten digit database

আমরা রিকগনাইজ করব হাতে লেখা ডিজিট সেটি যেকোন ভাবেই লেখা হোক না কেন । একে ANN এর ক্লাসিক এক্সাম্পল বলে

ওপরের ছবিতে দেখতে পাচ্ছি 0–9 কে বিভিন্ন ভাবে লেখা হয়েছে । অর্থাৎ বুঝতে পারছি আমাদের এমন একটি নিউরাল নেটওয়ার্ক তৈরি করতে হবে যার ইনপুট লেয়ারে থাকবে বিভিন্ন ভাবে লেখা ইন্ডিভিজুয়াল (0–9)ডিজিট এর ইমেজ যেগুলোর রেজোলিউশন 28 * 28 pixel.

আর আউটপুট লেয়ার হবে ঐ 28 * 28 pixel এর ইমেজ টি কোন ডিজিট টি অর্থাৎ 0–9 ভেতর যেকোনো ডিজিট । অর্থাৎ ওপরে “2” এর একটি ইমেজ দেখতে পাচ্ছি আমাদের তৈরী করতে হবে এমন একটি নেট ওয়ার্ক যা এই ইমজেটি ইনপুট হিসেবে নেবে এবং আউটপুট হিসেবে ইমেজ টিকে শনাক্ত করবে 2 হিসেবে।

এই ছবিটিতে দেখতে পাচ্ছি ইনপুট ইমেজ টি তে ৭৮৪ (২৮*২৮) টি নিউরণ আছে (গোল সার্কল গুলো ) । এবং প্রতিটি নিউরণে কোরেস্পন্ডিং পিক্সেল আছে যা একটি করে ফ্লোটিং নাম্বার (0.00–1.00) এর মাধ্যমে প্রেজেন্ট করা হচ্ছে । নাম্বার টি যদি 0.00 হয় তাহলে ঐ পিক্সেলটি কালো o.59 বা এমন মাঝা মাঝি ফ্লোটিং নাম্বার হয় তাহলে পিক্সেলের কালার হবে ধুসর রঙের এবং নাম্বারটি যদি 1.00 হয় তাহলে পিক্সেলটি দেখতে হবে সাদা রঙের । নিউরণের ভেতর থাকা এই নাম্বার গুলোকে বলে এক্টিভেশন ।

এই ৭৮৪ টি নিউরণ একত্রে মিলে আমাদের ইনপুট লেয়ার গঠিত ।

নিচের এই ছবির মত আমাদের নেটওয়ার্কটি দেখতে হবে ।

আউটপুট লেয়ারে ১০ টি নিউরন আছে । এই লেয়ারের প্রতিটি নিউরণ এক একটি ডিজিট রিপ্রেজেন্ট করে । আউটপুট লেয়ারের ৭ম নিউরণের এক্টিভেশন নাম্বার যদি 1.00 হয় তাহলে প্রোগ্রামটি রিকগনাইজ করবে ঐ হ্যান্ড রিটেন ডিজিটটি হল 6 (কারণ ১ নাম্বার নিউরণ “0” রিপ্রেজেন্ট করে ) ।

ইনপুট ও আউটপুট লেয়ারের মাঝের লেয়ার দুটি হল হিডেন লেয়ার তবে আমরা যত খুশি তত হিডেন লেয়ার নিতে পারব (অনেক সময় বেশি লেয়ারের জন্য ওভার ফিটিং হয় ) । এই দুটি হিডেন লেয়ারের প্রতিটিতে ১৬ টি করে নিউরণ আছে । বলা যায় ২য় লেয়ার এজেস (edges) এবং ৩য় লেয়ার প্যাটার্ণ বের করবে ইমেজ টির ভেতর ।

এখন আমরা বুঝব এক লেয়ার কিভাবে আরেক লেয়ার কে প্রভাবিত করে এবং এক্টিভেশন ফাংশন কি ?

এর জন্য আমাদের জানা থাকতে হবে ম্যাট্রিক্সের ডট গুণন।

প্রথম লেয়ার দ্বিতীয় লেয়ারের সাথে যেই রেখা গুলো দারা কানেক্টেড আছে সেগুলো কে ওয়েট বলা হয় । এই ওয়েট গুলোর জন্য আমরা র‍্যান্ডম নাম্বার এসাইন করতে পারি ।

তাহলে দ্বিতীয় লেয়ারের প্রথম নিউরণ টি আমরা কিভাবে পাই তা হিসেব করা যাক । সুবিধার্থে দ্বিতীয় লেয়ারের প্রথম নিউরণ কে a10 বলে ডিক্লার করি ।

ইনপুট লেয়ার / প্রথম লেয়ারে ৭৮৪ টি নোড আছে (সাধারণত ইনপুট লেয়ারের নিউরণ গুলো কে নিউরণ না বলে নোড বলে ) এগুলো কে আমরা a00 ,a01,a02,a03………………….a0783 বলে ডিক্লার করি। a00 , a10 এর সাথে w0,0 দিয়ে কানেক্টেড , a01 , a10 এর সাথে w0,1 দিয়ে কানেক্টেড , a02 , a10 এর সাথে w0,2 দিয়ে কানেক্টেড ……………………… a0783 , a10 এর সাথে w0,783দিয়ে কানেক্টেড ।

এখন কানেক্টেড কথা টি কে আমরা মাল্টিপ্লিকেশন শব্দ দিয়ে রিপ্লেস করব । এবং সবশেষে এদের এক একটির মাল্টিপ্লিকেশন কে এক সাথে যোগ করব । যোগফলের ওপর relu (Rectified Linear Units) ইমপ্লিমেন্ট করব ।

দুই ধরনের আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক রয়েছে।

  • Feedforward ANN
  •  Feedback ANN

ফীড ফরওয়ার্ড আর্টিফিশিয়াল নিউরাল নেটওয়ার্কে ইনফরমেশন প্রবাহ এক দিকে হয়। ফিডব্যাক আর্টিফিশিয়াল নিউরাল নেটওয়ার্কে ইনফরমেশন গুলোর প্রবাহ সব দিকে হতে পারে, ব্যাক নডে আসতে পারে। লুপ হতে পারে।

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

 

Source: Halima Akhter Mitu

Editor: Milon Biswas

About Ask me anything


Follow Me

Leave a reply

Captcha Click on image to update the captcha .