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

নিউরাল নেটওয়ার্কগুলি কীভাবে অরৈখিক সমস্যার সাথে সাহায্য করতে পারে তা দেখতে, একটি গ্রাফ হিসাবে একটি লিনিয়ার মডেল উপস্থাপন করে শুরু করা যাক:

একটি সারিতে তিনটি নীল বৃত্ত তাদের উপরে একটি সবুজ বৃত্তের সাথে তীর দ্বারা সংযুক্ত

চিত্র 3. গ্রাফ হিসাবে লিনিয়ার মডেল।

প্রতিটি নীল বৃত্ত একটি ইনপুট বৈশিষ্ট্য উপস্থাপন করে, এবং সবুজ বৃত্ত ইনপুটগুলির ওজনযুক্ত যোগফলকে উপস্থাপন করে।

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

লুকানো স্তর

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

একটি সারিতে তিনটি নীল বৃত্ত লেবেলযুক্ত

চিত্র 4. দ্বি-স্তর মডেলের গ্রাফ।

এই মডেল রৈখিক? হ্যাঁ-এর আউটপুট এখনও এর ইনপুটগুলির একটি রৈখিক সংমিশ্রণ।

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

একটি সারিতে তিনটি নীল বৃত্ত লেবেলযুক্ত

চিত্র 5. তিন-স্তর মডেলের গ্রাফ।

এই মডেল এখনও রৈখিক? হ্যাঁ, এটা. আপনি যখন আউটপুটকে ইনপুটের একটি ফাংশন হিসাবে প্রকাশ করেন এবং সরলীকরণ করেন, তখন আপনি ইনপুটের আরেকটি ওজনযুক্ত যোগফল পান। এই যোগফল চিত্র 2-এ অরৈখিক সমস্যাটিকে কার্যকরভাবে মডেল করবে না।

অ্যাক্টিভেশন ফাংশন

একটি অরৈখিক সমস্যা মডেল করতে, আমরা সরাসরি একটি অরৈখিকতা প্রবর্তন করতে পারি। আমরা একটি ননলিনিয়ার ফাংশনের মাধ্যমে প্রতিটি লুকানো স্তর নোড পাইপ করতে পারি।

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

আগের চিত্রের মতোই, দুটি লুকানো স্তরের মধ্যে 'নন-লিনিয়ার ট্রান্সফরমেশন লেয়ার' লেবেলযুক্ত গোলাপী বৃত্তের একটি সারি যোগ করা হয়েছে।

চিত্র 6. অ্যাক্টিভেশন ফাংশন সহ তিন-স্তর মডেলের গ্রাফ।

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

সাধারণ অ্যাক্টিভেশন ফাংশন

নিম্নলিখিত সিগমায়েড অ্যাক্টিভেশন ফাংশন ওজনযুক্ত যোগফলকে 0 এবং 1-এর মধ্যে একটি মানের মধ্যে রূপান্তরিত করে।

$$F(x)=\frac{1} {1+e^{-x}}$$

এখানে একটি প্লট:

সিগময়েড ফাংশন

চিত্র 7. সিগময়েড অ্যাক্টিভেশন ফাংশন।

নিম্নলিখিত সংশোধিত লিনিয়ার ইউনিট অ্যাক্টিভেশন ফাংশন (বা সংক্ষেপে ReLU ) প্রায়শই সিগমায়েডের মতো একটি মসৃণ ফাংশনের চেয়ে কিছুটা ভাল কাজ করে, পাশাপাশি গণনা করা উল্লেখযোগ্যভাবে সহজ।

$$F(x)=max(0,x)$$

ReLU-এর শ্রেষ্ঠত্ব অভিজ্ঞতামূলক অনুসন্ধানের উপর ভিত্তি করে, সম্ভবত ReLU-এর প্রতিক্রিয়াশীলতার আরও কার্যকর পরিসীমা দ্বারা চালিত। একটি সিগমায়েডের প্রতিক্রিয়াশীলতা উভয় দিকে তুলনামূলকভাবে দ্রুত পড়ে যায়।

ReLU অ্যাক্টিভেশন ফাংশন

চিত্র 8. ReLU অ্যাক্টিভেশন ফাংশন।

আসলে, যেকোনো গাণিতিক ফাংশন একটি অ্যাক্টিভেশন ফাংশন হিসেবে কাজ করতে পারে। ধরুন যে \(\sigma\) আমাদের অ্যাক্টিভেশন ফাংশন (Relu, Sigmoid, বা যাই হোক না কেন) প্রতিনিধিত্ব করে। ফলস্বরূপ, নেটওয়ার্কে একটি নোডের মান নিম্নলিখিত সূত্র দ্বারা দেওয়া হয়:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

সারাংশ

মানুষ যখন "নিউরাল নেটওয়ার্ক" বলে তখন সাধারণত যা বোঝায় তার সমস্ত মানক উপাদান এখন আমাদের মডেলে রয়েছে:

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

একটি সতর্কতা: নিউরাল নেটওয়ার্কগুলি সবসময় ফিচার ক্রসের চেয়ে ভাল হয় না, তবে নিউরাল নেটওয়ার্কগুলি একটি নমনীয় বিকল্প অফার করে যা অনেক ক্ষেত্রে ভাল কাজ করে।