• নিউরাল নেটওয়ার্কের মধ্যে মধ্যবর্তী বিষয়


    নিউরাল নেটওয়ার্কের মধ্যে মধ্যবর্তী বিষয়
    A detailed overview of neural architecture, activation functions, loss functions, output units.
    স্নায়ু স্থাপত্য, অ্যাক্টিভেশন ফাংশন, ক্ষতি ফাংশন, আউটপুট ইউনিট একটি বিস্তারিত ওভারভিউ।

    নিউট্রাল নেটওয়ার্কগুলির পিছনে তত্ত্বকে ডিমানস্টিস্ট করা এবং কীভাবে বাস্তব সমস্যাগুলি সমাধান করার জন্য তাদের ডিজাইন এবং বাস্তবায়ন করা হয় সেগুলির একটি ধারাবাহিক নিবন্ধটি এই নিবন্ধটি দ্বিতীয়। এই নিবন্ধে, আমি বিস্তারিতভাবে স্নায়ুতন্ত্রের নকশা এবং অপ্টিমাইজেশান দিক cover করব।
    এই প্রবন্ধের বিষয়গুলি হল:

    1.   একটি স্নায়বিক নেটওয়ার্ক এর শারীরস্থান Anatomy of a neural network
    2.   অ্যাক্টিভেশন ফাংশন Activation functions
    3.   ক্ষতি ফাংশন Loss functions
    4.   আউটপুট ইউনিট Output units
    5.   স্থাপত্য Architecture
    এই টিউটোরিয়ালগুলি মূলত কম্পিউটার বিজ্ঞান এবং তথ্য বিজ্ঞান বিভাগে হার্ভার্ড এবং স্ট্যানফোর্ডে শেখানো একাধিক ক্লাসের নোট এবং উদাহরণগুলির উপর ভিত্তি করে তৈরি।

    প্রথম টিউটোরিয়ালের প্রথম অংশটি পড়ার পরামর্শ দিচ্ছি যদি আপনি নিউরাল নেটওয়ার্কের অন্তর্গত মৌলিক তাত্ত্বিক ধারণার সাথে অপরিচিত না হন, যা এখানে পাওয়া যাবে:
    এই সমস্ত বিষয়ে আলোচনা করা হয়েছে এবং পরবর্তী (সম্পূর্ণরূপে সংযুক্ত) নিউরাল নেটওয়ার্কের বিষয়গুলিতে টিউটোরিয়ালগুলি আমার নিউরাল নেটওয়ার্ক গিটহাব রিপোজিটরির মাধ্যমে অ্যাক্সেসযোগ্য হবে, যা নীচের লিঙ্কটিতে পাওয়া যেতে পারে।

    নিউরাল নেটওয়ার্কে সহজ ভূমিকা

    উদাহরণ এবং সহজ চিত্রাবলী সমৃদ্ধ
    নিউরাল নেটওয়ার্কগুলির
    একটি বিস্তারিত পরিদর্শন।
    towardsdatascience.com    
    এই সমস্ত বিষয়ে আলোচনা করা হয়েছে এবং পরবর্তী (সম্পূর্ণরূপে সংযুক্ত) নিউরাল নেটওয়ার্কের বিষয়গুলিতে টিউটোরিয়ালগুলি আমার নিউরাল নেটওয়ার্ক গিটহাব রিপোজিটরির মাধ্যমে অ্যাক্সেসযোগ্য হবে , যা নীচের লিঙ্কটিতে পাওয়া যেতে পারে।

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

    ভ্যানিলা নিউরাল নেটওয়ার্কগুলি ("পেরেকট্র্রনস" নামেও পরিচিত called perceptrons) 1940 এর দশকে প্রায় কাছাকাছি ছিল , এটি শুধুমাত্র শেষ কয়েক দশকেই কৃত্রিম বুদ্ধিমত্তাগুলির একটি প্রধান অংশ হয়ে উঠেছে। এটি ব্যাকপ্রোপাগেশন নামক একটি কৌশল (যা আমরা পূর্ববর্তী টিউটোরিয়ালে আলোচনা করেছি) এর আগমনের কারণে যা নেটওয়ার্কে তাদের নিউরন ওজনগুলিকে সামঞ্জস্য করতে সক্ষম করে, যেখানে ফলাফলটি নির্মাতার প্রত্যাশার সাথে মেলে না - যেমন নেটওয়ার্ক ডিজাইন করা কুকুর চিনতে, যা একটি বিড়াল misidentifies, উদাহরণস্বরূপ।

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

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

    একটি লুকানো স্তর এবং দুটি বৈশিষ্ট্যগুলির সাথে একটি নিউরাল নেটওয়ার্ক (সর্বাধিক সম্ভাব্য মাল্টি লেয়ার মাল্টি-বৈশিষ্ট্য নেটওয়ার্ক)।

    পরিশেষে, আমরা আলোচনা করেছি যে নেটওয়ার্ক পরামিতি (ওজন এবং পক্ষপাত) নেটওয়ার্ক ত্রুটির মূল্যায়ন করে আপডেট করা যেতে পারে। ক্ষতির ফাংশন সম্পর্কিত প্রতিটি প্যারামিটারের জন্য ডেরাইভেটিভস পাওয়ার জন্য নেটওয়ার্কের মাধ্যমে ব্যাকপ্রোপাগেশন ব্যবহার করে এটি করা হয় এবং তারপরে গ্রেডিয়েন্ট বংশকে এই পরামিতিগুলি একটি জ্ঞাত পদ্ধতিতে আপডেট করার জন্য ব্যবহার করা যেতে পারে যেমন নেটওয়ার্কটির পূর্বাভাস শক্তি উন্নতি সম্ভবত।

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

    নিউরাল নেটওয়ার্কে প্রচুর পরিমাণে ডিগ্রি রয়েছে এবং এগুলির জন্য পর্যাপ্ত ভবিষ্যদ্বাণী করতে সক্ষম হওয়ার জন্য প্রশিক্ষণের জন্য প্রচুর পরিমাণে তথ্য প্রয়োজন, বিশেষত যখন ডেটা মাত্রা উচ্চতর (উদাহরণস্বরূপ, চিত্রের ক্ষেত্রে যেমন - প্রতিটি পিক্সেলকে নেটওয়ার্ক বৈশিষ্ট্য হিসাবে গণনা করা হয়)।

    একটি সাধারণকৃত মাল্টিএয়ার এবং মাল্টি-বৈশিষ্ট্যযুক্ত নেটওয়ার্ক এই রকম দেখাচ্ছে:
    n লুকানো স্তর, m নোড, এবং d ইনপুট বৈশিষ্ট্য সঙ্গে সাধারণ multilayer perceptron

    আমরা m নোড আছে, যেখানে m নেটওয়ার্কের মধ্যে একটি স্তর প্রস্থ বোঝায়। লক্ষ্য করুন যে এটি বৈশিষ্ট্য এবং নেটওয়ার্ক লেয়ারের প্রস্থের মধ্যে কোন সম্পর্ক নয়।

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

    ইনপুট সংখ্যা, d , উপলব্ধ তথ্য দ্বারা প্রাক-নির্দিষ্ট করা হয়। একটি চিত্র জন্য, এই ছবিতে পিক্সেলের সংখ্যা পর ছবিটি একটি স্বাভাবিক পান্ডাস ডেটা ফ্রেম, একটি এক-মাত্রিক বিন্যাসের মধ্যে চ্যাপ্টা হয় হবে, d বৈশিষ্ট্য কলামের সংখ্যা সমান হবে।

    সাধারণভাবে, নেটওয়ার্কটির লুকানো স্তরের একই প্রস্থ (নোড সংখ্যা) এর প্রয়োজন নেই; নোড সংখ্যা লুকানো স্তর জুড়ে পরিবর্তিত হতে পারে। আউটপুট স্তর প্রয়োজনীয় আউটপুট উপর নির্ভর করে একটি নির্বিচারে মাত্রা হতে পারে। যদি আপনি দশ শ্রেণীর একটিতে চিত্রগুলিকে শ্রেণিবদ্ধ করার চেষ্টা করেন তবে আউটপুট লেয়ারটি 10 ​​টি নোড গঠিত হবে, যা প্রতিটি প্রাসঙ্গিক আউটপুট ক্লাসের সাথে সম্পর্কিত হবে - এটি হাতের লেখা সংখ্যাগুলির জনপ্রিয় MNIST ডাটাবেসের ক্ষেত্রেই এটি।

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

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

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

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

    অ্যাক্টিভেশন ফাংশন দুটি জিনিস করা উচিত:

    রৈখিকতা নিশ্চিত করে না
    লুকানো ইউনিট মাধ্যমে gradients বড় থাকা নিশ্চিত করুন
    একটি অ্যাক্টিভেশন ফাংশন সাধারণ ফর্ম নিচে দেখানো হয়:
    f (।) ভারসাম্য ও পক্ষপাতের উপর সক্রিয় অ্যাক্টিভেশন ফাংশনকে প্রতিনিধিত্ব করে, যার ফলে স্নায়ু আউটপুট হয়।
    কেন আমরা অ রৈখিকতা প্রয়োজন? টেকনিক্যালি, আমাদের অ-রৈখিকতা দরকার নেই, তবে অ-রৈখিক ফাংশন ব্যবহার করার সুবিধা রয়েছে।

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

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

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

    কেন আমরা লুকিয়ে থাকা ইউনিটগুলির মাধ্যমে বড় দানা আছে তা নিশ্চিত করতে চাই?

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

    অ্যাক্টিভেশন ফাংশনের জন্য সর্বাধিক সাধারণ পছন্দগুলি হল:
     Sigmoid   সিগমা
    ReLU (rectified linear unit)সংশোধনযুক্ত রৈখিক ইউনিট
    Leaky ReLU
    Generalized ReLUজেনারেলাইজড রিলু
    MaxOutসর্বোচ্চ আউট
    Softplus
    Tanh
     Swishফিটফাট

    এই অ্যাক্টিভেশন ফাংশন নীচে সংক্ষিপ্ত করা হয়:

    নিউরাল নেটওয়ার্কের জন্য অ্যাক্টিভেশন ফাংশন সারাংশ।

    সিগমা

    সিগময়েড ফাংশন আমরা আগের প্রবন্ধে সব নিবদ্ধ ছিল।

    প্রকৃতপক্ষে, নিম্নলিখিত ফাংশনগুলির জন্য অ্যাক্টিভেশন ফাংশন হিসাবে ব্যবহার করার জন্য এই ফাংশনটি বিশেষভাবে কার্যকর নয়:

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

    TANH

    সিগোময়েড ফাংশনের শূন্য কেন্দ্রিকতা সমস্যা হাইপারবোলিক ট্যানজেন্ট ফাংশন ব্যবহার করে সমাধান করা যেতে পারে। এই কারণে, হাইপারবোলিক ট্যানজেন্ট ফাংশন সর্বদা লুকানো স্তরগুলির মধ্যে সিগময়েড ফাংশনটিকে পছন্দ করে। যাইহোক, হাইপারবোলিক ট্যানজেন্ট এখনও অন্যান্য সমস্যা থেকে ভুগছেন যা সিগময়েড ফাংশনকে হ্রাস করে, যেমন ভ্যানিশিং গ্রেডিয়েন্ট সমস্যা।
    ReLU এবং Softplus

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

    ReLU এড়ানো এবং disappearing gradient সমস্যা সংশোধন করে। প্রায় সব গভীর শেখার মডেল আজকাল ReLU ব্যবহার। যাইহোক, ReLU শুধুমাত্র একটি নিউরাল নেটওয়ার্ক লুকানো স্তর মধ্যে ব্যবহার করা উচিত, আউটপুট স্তর জন্য নয় - যা বাইনারি শ্রেণীবদ্ধ জন্য সিগময়েড, multiclass শ্রেণীবিভাগ জন্য softmax, এবং একটি প্রতিক্রিয়া সমস্যা জন্য রৈখিক হতে হবে।

    Leaky ReLU এবং জেনারেলাইজড RELU

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

    মৃত নিউরনের সমস্যা মোকাবেলা করার জন্য, লিকি রেএলইউ চালু করা হয়েছিল যার মধ্যে একটি ছোট ঢাল রয়েছে। এই ঢালের উদ্দেশ্যগুলি আপডেটগুলিকে জীবিত রাখতে এবং মৃত নিউরনের উৎপাদন প্রতিরোধ করা।
    লিকি এবং সাধারণকৃত রেখাযুক্ত রৈখিক ইউনিট মৌলিক ReLU ফাংশনে সামান্য বৈচিত্র্য। লিকি RELU এখনও শূন্যে একটি বিচ্ছিন্নতা রয়েছে, তবে ফাংশনটি শূন্যের নিচে আর সমতল নয়, এটি কেবলমাত্র একটি কম গ্রেডিয়েন্ট রয়েছে। Leaky এবং সাধারণকৃত RELU এর মধ্যে পার্থক্য কেবল α এর নির্বাচিত মানের উপর নির্ভর করে। সুতরাং, leaky ReLU সাধারণকৃত RELU এর একটি উপসেট।

    সর্বোচ্চ আউট

    Maxout কেবল সর্বাধিক কে রৈখিক ফাংশন - এটি সরাসরি অ্যাক্টিভেশন ফাংশন শিখতে। এটি একটি হাইব্রিড পদ্ধতির যা রেএলইউ এবং লিকি রেএলইউ ইউনিটের রৈখিক সমন্বয়গুলি ধারণ করে।

    Swish: একটি স্ব-গেটেড অ্যাক্টিভেশন ফাংশন

    বর্তমানে, সবচেয়ে সফল এবং ব্যাপকভাবে ব্যবহৃত অ্যাক্টিভেশন ফাংশনটি হল RELUতবে, সুইশ অনেকগুলি চ্যালেঞ্জিং ডেটাসেটের জুড়ে গভীর মডেলগুলিতে RELU এর চেয়ে ভাল কাজ করতে থাকে। ২017 সালে গুগলের দ্বারা সোভিশ বিকশিত হয়েছিল।

    Swish মূলত সিগময়েড ফাংশন x দ্বারা গুণিত হয় :

    f (x) = x · সিগময়েড (x)

    ReLU এর প্রধান সমস্যাগুলির মধ্যে একটি যা গ্যাস্টিং গ্রিডিয়েন্ট সমস্যাটির উত্থান দেয় তা হল তার ডেরিভেটিভটি ইনপুট x এর মানগুলির অর্ধেকের জন্য শূন্য । এটি সমস্যাযুক্ত কারণ এটি নিউরোল নেটওয়ার্কের মধ্যে মৃত নিউরনগুলির (বৃহত্তর 40%) বৃহত আকারে হতে পারে। সোভিশ, অন্যদিকে, একটি মসৃণ অ-মনোটোনিক ফাংশন যা শূন্য ডেরিভেটিভগুলির এই সমস্যা থেকে ক্ষতিগ্রস্ত হয় না।
    Swish এখনও স্নায়ু নেটওয়ার্কের কিছুটা যাদুকর উন্নতি হিসাবে দেখা হয়, কিন্তু ফলাফল গভীর নেটওয়ার্কগুলির জন্য একটি স্পষ্ট উন্নতি প্রদান করে দেখায়। এই সম্পর্কে আরও পড়তে, আমি Arxiv মূল কাগজ চেক আউট করার সুপারিশ:
    ক্ষতি ফাংশন
    ক্ষতি ফাংশন (এছাড়াও খরচ ফাংশন বলা হয়) স্নায়বিক নেটওয়ার্ক একটি গুরুত্বপূর্ণ দিক। আমরা ইতোমধ্যেই আলোচনা করেছি যে নিউরাল নেটওয়ার্কগুলির একটি অপ্টিমাইজেশান প্রক্রিয়া ব্যবহার করে প্রশিক্ষিত করা হয়েছে যা মডেল ত্রুটির হিসাব করার জন্য ক্ষতির ফাংশন প্রয়োজন।

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

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

    ক্রস-এনট্রোপি এবং গড় স্কয়ার্ড ত্রুটি দুটি প্রধান ধরনের ক্ষতির ফাংশন ব্যবহার করার সময় স্নায়ু নেটওয়ার্ক মডেল প্রশিক্ষণ।

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

    "ক্রস-এনট্রপি হ্রাসের ব্যবহারগুলি সিগময়েড এবং সফটম্যাক্স আউটপুটগুলির সাথে মডেলগুলির কার্য সম্পাদনকে উন্নত করেছে, যা পূর্বে স্যাচুরেশন থেকে ধীরে ধীরে ধীরে ধীরে পড়ছে এবং মাঝারি বর্গক্ষেত্রের ত্রুটির ক্ষতির সময় ধীর গতির ব্যবহার করে।"
    - পৃষ্ঠা 226, গভীর শিক্ষা , 2016
    প্রশিক্ষণ তথ্য এবং মডেল বিতরণ (অর্থাত্ নেতিবাচক লগ-সম্ভাবনা) মধ্যে ক্রস-এনট্রপি নিম্নলিখিত ফর্ম নেয়:

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

    বাইনারি ক্লাসিফিকেশন সমস্যাগুলির জন্য, যেমন হাসপাতালের রোগীর ক্যান্সার আছে কিনা (y = 1) বা ক্যান্সার নেই (y = 0) , সিগময়েড ফাংশনটি আউটপুট হিসাবে ব্যবহৃত হয়।
    Sigmoid আউটপুট ফাংশন বাইনারি শ্রেণীবিভাগ জন্য ব্যবহৃত।
    মাল্টিক্লাস শ্রেণীকরণের জন্য, যেমন একটি ডেটাসেট যেখানে আমরা কুকুর, বিড়াল এবং মানুষের বিভাগগুলিতে চিত্রগুলি ফিল্টার করার চেষ্টা করছি। এটি সিজময়েড ফাংশনের বহুমাত্রিক সাধারণীকরণ ব্যবহার করে, যা সফটম্যাক ফাংশন হিসাবে পরিচিত।
    Multiclass শ্রেণীবিভাগ আউটপুট ইউনিট জন্য Softmax ফাংশন।
    আউটপুট প্রকারের সাথে সামঞ্জস্যপূর্ণ এই পরিস্থিতিতে প্রতিটি ক্ষেত্রে ব্যবহার করা উচিত নির্দিষ্ট ক্ষতি ফাংশন এছাড়াও আছে। উদাহরণস্বরূপ, বাইনারি ডেটাতে এমএসই ব্যবহার করে খুব সামান্য ইন্দ্রিয় তৈরি হয়, এবং তাই বাইনারি তথ্যগুলির জন্য আমরা বাইনারি ক্রস এনট্রোপি ক্ষতির ফাংশন ব্যবহার করি। জেনারেটিক অ্যাডভারারিয়াল নেটওয়ার্ক (GANs) বা অটোইনকোডার হিসাবে আরো জটিল গভীর শেখার সমস্যাগুলিতে যাওয়ার সময় জীবন আরও জটিল হয়ে ওঠে এবং আমি যদি এই ধরণের গভীর স্নায়ু স্থাপত্যগুলির বিষয়ে জানতে আগ্রহী হন তবে এই বিষয়ে আমার নিবন্ধগুলি দেখানোর পরামর্শ দিচ্ছি।

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

    স্থাপত্য
    এই বিভাগে আমরা একটি নিউরাল নেটওয়ার্ক ব্যবহার করে ফাংশন y = x sin (x) মডেলের জন্য একটি নিউরাল নেটওয়ার্ক ব্যবহার করতে দেখব, যেমন আমরা দেখতে পাচ্ছি কিভাবে বিভিন্ন আর্কিটেকচারগুলি প্রয়োজনীয় ফাংশন মডেল করার আমাদের ক্ষমতাকে প্রভাবিত করে। আমরা আমাদের নিউরাল নেটওয়ার্ক ReLU অ্যাক্টিভেশন ফাংশন ব্যবহার করা হয় অনুমান করা হবে।
    একটি লুকানো স্তর দিয়ে একটি নিউরাল নেটওয়ার্ক আমাদের সাথে খেলার একমাত্র ডিগ্রী দেয়। সুতরাং আমরা ফাংশন একটি সুন্দর দরিদ্র আনুমানিকতা সঙ্গে শেষ - লক্ষ্য করুন যে এটি একটি ReLU ফাংশন।
    লুকানো স্তরে একটি দ্বিতীয় নোড যুক্ত করার সাথে সাথে আমাদের আরেকটি ডিগ্রী স্বাধীনতা দেয়, তাই এখন আমাদের স্বাধীনতার দুই ডিগ্রি রয়েছে। আমাদের আনুমানিকতা এখন তুলনায় উল্লেখযোগ্যভাবে উন্নত করা হয়, কিন্তু এটি এখনও অপেক্ষাকৃত দরিদ্র। এখন আমরা অন্য নোড যোগ করার চেষ্টা করব এবং দেখুন কি হবে।
    তৃতীয় লুকানো নোডের সাথে আমরা আরেকটি ডিগ্রী স্বাধীনতা যোগ করি এবং এখন আমাদের আনুমানিকতা প্রয়োজনীয় ফাংশনটির স্মরণীয়তা দেখতে শুরু করে। আমরা আরো নোড যোগ হলে কি হবে?
    আমাদের স্নায়বিক নেটওয়ার্কটি শুধুমাত্র একটি লুকানো স্তর ব্যবহার করে, এখন বেশ ভাল ফাংশন আনুমানিক করতে পারেন। আমরা একাধিক লুকানো স্তর ব্যবহার করে কি পার্থক্য আমরা দেখতে পারি?
    এই ফলাফলটি এমন একটি অবস্থার অনুরূপ দেখাচ্ছে যেখানে আমাদের একটি লুকানো স্তর দুটি নোড ছিল। তবে, মনে রাখবেন যে ফলাফল ঠিক একই নয়। আমরা লুকানো স্তর উভয় মধ্যে আরো নোড যোগ হলে কি ঘটে?

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

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

    সাধারণভাবে, লুকানো স্তরগুলির মধ্যে একাধিক লুকানো স্তরের পাশাপাশি একাধিক নোডগুলি ব্যবহার করার জন্য এটি ভাল অভ্যাস, কারণ এটি সর্বোত্তম কর্মফলের ফলাফল হিসাবে মনে হয়।

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

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


  • 0 comments:

    Post a Comment

    New Research

    Attention Mechanism Based Multi Feature Fusion Forest for Hyperspectral Image Classification.

    CBS-GAN: A Band Selection Based Generative Adversarial Net for Hyperspectral Sample Generation.

    Multi-feature Fusion based Deep Forest for Hyperspectral Image Classification.

    ADDRESS

    388 Lumo Rd, Hongshan, Wuhan, Hubei, China

    EMAIL

    contact-m.zamanb@yahoo.com
    mostofa.zaman@cug.edu.cn

    TELEPHONE

    #
    #

    MOBILE

    +8615527370302,
    +8807171546477