নিউরন নেটওয়ার্কগুলিতে নিউরন এবং স্তরগুলির সংখ্যা কীভাবে সেট করবেন


26

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

  1. একটি প্রদত্ত নিউরাল নেটওয়ার্কের মধ্য স্তরগুলির সংখ্যা কীভাবে সিদ্ধান্ত নেওয়া যায়? 1 বনাম 10 বা যাই হোক না কেন।
  2. প্রতিটি মধ্য স্তরে নিউরনের সংখ্যা কীভাবে সিদ্ধান্ত নেওয়া যায়? প্রতিটি মাঝারি স্তরে সমান সংখ্যক নিউরন থাকার পরামর্শ দেওয়া হচ্ছে কি অ্যাপ্লিকেশনটির সাথে এটি পৃথক হয়?

উত্তর:


19

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

মনে করুন আপনার কেবলমাত্র একটি একক নিউরন রয়েছে, এই ক্ষেত্রে নেটওয়ার্কের পরামিতিগুলি শিখার পরে আপনার একটি লিনিয়ার সিদ্ধান্তের সীমানা থাকবে যা স্থানটি দুটি পৃথক শ্রেণিতে পৃথক করতে পারে।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

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

এখানে চিত্র বর্ণনা লিখুন

এখন ধরুন যে আপনার নিম্নলিখিত সমস্যা রয়েছে এবং আপনাকে ক্লাসগুলি পৃথক করতে বলা হয়েছে। এক্ষেত্রে ন্যায়সঙ্গততা ঠিক উপরের মত।

এখানে চিত্র বর্ণনা লিখুন

নিম্নলিখিত তথ্যের জন্য:

এখানে চিত্র বর্ণনা লিখুন

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

এখানে চিত্র বর্ণনা লিখুন


ধরুন যে আপনি নিম্নলিখিত এটি করতে বলা হয় বৃত্তাকার সিদ্ধান্ত সীমানা।

এখানে চিত্র বর্ণনা লিখুন

এক্ষেত্রে আপনার নেটওয়ার্কটি নীচের নেটওয়ার্কের মতো হবে যা উল্লেখ করা হয়েছে তবে প্রথম লুকানো স্তরে অনেক বেশি নিউরন রয়েছে।

এখানে চিত্র বর্ণনা লিখুন


11

খুব ভাল প্রশ্ন, কারণ এই প্রশ্নের সঠিক উত্তর এখনও নেই answer এটি গবেষণার একটি সক্রিয় ক্ষেত্র।

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

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

আমার নেটওয়ার্ক "খুব বড়" হলে কী হবে

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

আমার নেটওয়ার্ক "খুব ছোট" হলে কী হবে

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

নেটওয়ার্কের আকার নির্ধারণ করা

আপনি যদি আপনার ডেটার মাত্রিকতা জানেন তবে আপনার নেটওয়ার্কটি যথেষ্ট বড় কিনা তা আপনি বলতে পারেন। আপনার ডেটার মাত্রিকতা অনুমান করতে, আপনি এর র‌্যাঙ্কটি গণনা করার চেষ্টা করতে পারেন। লোকেরা কীভাবে নেটওয়ার্কের আকার অনুমান করার চেষ্টা করছে এটি একটি মূল ধারণা।

তবে এটি এতটা সহজ নয়। প্রকৃতপক্ষে, যদি আপনার নেটওয়ার্কটি -৪-মাত্রিক হওয়া প্রয়োজন, আপনি কি 64৪ টি আকারের একক গোপন স্তর বা ৮ টি আকারের দুটি স্তর তৈরি করেন? এখানে, আমি আপনাকে কিছুটা অন্তর্দৃষ্টি দিতে যাচ্ছি উভয় ক্ষেত্রে কী ঘটবে।

আরও গভীরে যাচ্ছি

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

আপনার ডেটাটি যদি খুব কাঠামোগত (কোনও চিত্রের মতো) হয় এবং আপনার কাছ থেকে দরকারী তথ্য আহরণের আগে কিছুটা প্রক্রিয়া করা প্রয়োজন তবে আপনাকে গভীরভাবে যেতে হবে।

আরও বিস্তৃত হচ্ছে

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


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

8

সংক্ষিপ্ত উত্তর: এটি আপনার ডেটার মাত্রা এবং প্রয়োগের ধরণের সাথে খুব সম্পর্কিত।

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

তথ্য বোতল নেক একটি দ্বৈত তরোয়াল:

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

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

উদাহরণ এবং আরও সন্ধানের জন্য দরকারী লিঙ্কগুলি:

[1] https: //livebook.manning.com#! / বই / অজগর সাথে গভীর-লার্নিং / অধ্যায় -3 / পয়েন্ট -1130-232-232-0

[২] https://www.quantamagazine.org/new-theory-cracks-open-the-black-box-of-DP-learning-20170921/


4

দু'বছর আগে থেকে নিউরাল নেটওয়ার্কগুলির সাথে কাজ করা, এটি এমন একটি সমস্যা যা আমি প্রতিবারই একটি নতুন সিস্টেমের মডেল করতে চাই না have আমি যে সর্বোত্তম পন্থা পেয়েছি তা হ'ল:

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

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


1

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.