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 .

আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক (ANN)পরিচিতি ও ইমপ্লিমেন্টেশন

আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক (ANN)পরিচিতি ও ইমপ্লিমেন্টেশন

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

ভিত্তি

তো আমরা যদি একটু দুঃসাহস করে সত্যিকারের একটা নিউরনের কার্যনীতি দেখি তাহলে আমরা জানতে পারি যে – একটা নিউরনের কিছু ইনপুট দরকার এবং সেই ইনপুট গুলো আসে Dendrite নামের কিছু ডাল পালার মত অংশ দিয়ে, এরপর নিউরন বডি বা Soma নামের অংশে কিছু ক্যালকুলেশন হয় সেই ইনপুট গুলোর উপর। অতঃপর Axon নামের লেজের মত একটা অংশ দিয়ে সেই ক্যালকুলেশনের আউটপুট বের হয় যা কিনা আবার অন্য এক বা একাধিক নিউরনের ইনপুট স্লট তথা Dendrite এ চলে যায়। একটি নিউরনের এক্সন এবং অন্য নিউরনের ডেন্ড্রাইটের মাঝে Synapse নামের কিছু তরল থাকে। এটাই বস্তুত এক নিউরন থেকে আরেক নিউরনের কাছে এক্সনের আউটপুট কে ডেন্ড্ররাইটে ইনপুট দেয়ার ক্ষেত্রে ট্রান্সমিশনের ভূমিকা রাখে। যদি একটি নিউরনের যথেষ্ট পরিমাণ সিন্যাপ্টিক ইনপুট ফায়ার (আশানুরূপ একটা ভ্যালু তৈরি করে) করে তাহলে সেই নিউরনটা ফায়ার করে বা বলা যেতে পারে যে, সেই নিউরনটা অ্যাকটিভ হয়। বিষয় হচ্ছে – এই ঘটনাকেই চিন্তা করা বলে।

আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক একটি কম্পিউটার প্রোগ্রাম যা মানুষের ব্রেইনের গঠন অনুকরণ করার চেষ্টা করে ।

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

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

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

আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক কিভাবে কাজ করে তা আমরা ইমেজ রিকগনিশেন এর মাধ্যমে বুঝতে পারি সহজেই। এর জন্য আমরা ব্যবহার করব 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) ইমপ্লিমেন্ট করব ।

a10 = max( 0, (a00.w0,0 + a01.w0,1 +……………………………+ a0783 . w0,783 ))

এভাবে a11 (দ্বিতীয় লেয়ারের দ্বিতীয় নিউরণ )এর মান হিসেব করা যায় শুধু মাত্র a11 এর সাথে কানেক্টেড ওয়েট (w1,0, ,w1,1,w1,2 ,…..w1,783) এর মান গুলো ভিন্ন হবে , (যা a12,a13 ,a14 ,a15 ,……… a1783 এর ক্ষেত্রেও প্রযোজ্য ) ।

a20 (৩য় লেয়ারের প্রথম নিউরণ ) = max( 0, (a10.w1,0 + a11.w1,1 +……………………………+ a1783 . w1,783))

আউটপুট লেয়ারে এক্টিভেশন মেথড softmax ব্যবহার করব । মাল্টি ক্লাস প্রেডিকশনের জন্য softmax ব্যবহার করা হয় ।

Source: medium.com

About Ask me anything


Follow Me

Leave a reply

Captcha Click on image to update the captcha .