মাল্টি-লেয়ার পার্সেপট্রন (এমএলপি) আর্কিটেকচার: লুকানো স্তরের সংখ্যা এবং গোপন স্তরের আকার চয়ন করার মানদণ্ড?


104

যদি আমাদের 10 টি আইজেনভেেক্টর থাকে তবে আমাদের ইনপুট লেয়ারে 10 টি নিউরাল নোড থাকতে পারে f যদি আমাদের 5 আউটপুট ক্লাস থাকে তবে আমাদের আউটপুট লেয়ারে 5 টি নোড থাকতে পারে ut তবে এমএলপিতে লুকানো স্তর নির্বাচন করার মানদণ্ড কী এবং কতটি নিউরাল 1 লুকানো স্তরে নোড?



উত্তর:


216

কয়টি লুকানো স্তর ?

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

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


লুকানো স্তরে কয়টি নোড?

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

পচা অভিসৃতি উন্নত উপর ভিত্তি করে:

আপনি যখন মডেল বিল্ডিং শুরু করবেন, তখন লুকানো স্তরের আরও নোডের পাশে ভুল করুন r

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

ইনপুট স্তরের আকার এবং আউটপুট স্তরের আকারের উপর ভিত্তি করে RoTs :

থাম্বের একটি নিয়ম এই [লুকানো] স্তরটির আকারের জন্য ইনপুট স্তরের আকারের ... এবং আউটপুট স্তরের আকারের ....

লুকানো নোডের সংখ্যা গণনা করতে আমরা এর একটি সাধারণ নিয়ম ব্যবহার করি: (ইনপুট + আউটপুট সংখ্যা) x 2/3

প্রধান উপাদানগুলির উপর ভিত্তি করে আরওটি :

সাধারণত, আমরা ইনপুট ডেটা সেটের বৈকল্পিকতার 70-90% ক্যাপচারের জন্য প্রয়োজনীয় [মূল উপাদানগুলি] হিসাবে অনেকগুলি লুকানো নোডগুলি নির্দিষ্ট করি

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

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

হিডেন লেয়ারে নিউরনের সংখ্যা অনুকূলকরণের একমাত্র বৈধ কৌশল:

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

তারপরে অতিমাত্রায় এবং উচ্চতর বৈকল্পের কারণে, এই সময়ে সাধারণকরণের ত্রুটি বৃদ্ধি পেতে শুরু হওয়া অবধি লুকানো স্তরে নোডের সংখ্যা একবারে বাড়িয়ে নিন।


অনুশীলনে, আমি এটি এইভাবে করি:

ইনপুট স্তর : বায়াস নোডের জন্য আমার ডেটা ভ্যাক্টরের আকার (আমার মডেলের বৈশিষ্ট্যগুলির সংখ্যা) + 1 এবং অবশ্যই প্রতিক্রিয়ার ভেরিয়েবল সহ নয়

আউটপুট স্তর : সোলে আমার মডেল দ্বারা নির্ধারিত: রিগ্রেশন (একটি নোড) বনাম শ্রেণিবদ্ধকরণ (ক্লাসের সংখ্যার সমান নোডের সংখ্যা, সফটম্যাক্স ধরে ধরে)

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

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


1
আমি # 1 রোট সম্পর্কিত কিছু সম্পর্কিত ফলাফল যুক্ত করতে চাই: সফল এসভিএমগুলিতে আপনি আপনার ইনপুটটিকে একটি উচ্চ মাত্রিক স্থানটিতে ম্যাপ করেন (এনএন পার্লেন্সে ইনপুট স্তরটিতে নোডের চেয়ে আরও লুকানো নোড)। আউটপুট স্তরের কাজ হ'ল এই ওভার-সম্পূর্ণ প্রতিনিধিত্ব থেকে সিদ্ধান্ত নেওয়া। র্যান্ডম প্রজেকশনগুলির সাথেও সংযোগ থাকতে পারে। অ্যাডাম কোয়েটস এবং অ্যান্ড্রু ওয়াই এনজি (২০১১) এর উজ্জ্বল কাগজ সম্পর্কিত বিষয়গুলি নিয়ে আলোচনা করে।
ভ্লাদিস্লাভস ডোভগ্যালিক্স

সুন্দর ব্যাখ্যা। স্কলারন এবং এমএলপি ক্লাসিফায়ার ব্যবহার করার সময় আমি কীভাবে উপরের মতো চিত্রটি প্লট করতে পারি তার কোনও ধারণা?
seralouk

1
@ সেরা আপনি xkcd স্টাইল মানে?
denfromufa

নীতিগতভাবে, আপনি কি লুকানো স্তরে নিউরনের সংখ্যা অনুকূলকরণের প্রক্রিয়াটি স্বয়ংক্রিয় করতে পারেন? এছাড়াও, আপনিও স্বয়ংক্রিয়ভাবে লুকানো স্তরগুলির সংখ্যাটি অনুকূল করতে পারেন?
অ্যাডিসন

2

কোনও লুকানো স্তরে নিউরনের সংখ্যা নির্বাচন করা এবং আপনার নিউরাল নেটওয়ার্কে লুকানো স্তরগুলির সংখ্যা নির্বাচন করা খুব কঠিন।

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

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


1

প্রতিটি স্তরের প্রতিটি স্তরের জন্য সেরা সংখ্যক স্তর এবং সর্বাধিক সংখ্যক নিউরনের নির্বাচন স্বয়ংক্রিয় করতে, আপনি জেনেটিক অপ্টিমাইজেশন ব্যবহার করতে পারেন ।

মূল টুকরোটি হ'ল:

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

আপনি বিবেচনা করতে পারেন:

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

0

সম্প্রতি এই https://arxiv.org/abs/1809.09953 তে তাত্ত্বিক কাজ রয়েছে । ধরে নিই যে আপনি একটি রেলু এমএলপি ব্যবহার করেছেন, সমস্ত লুকানো স্তরের নোড একই পরিমাণে রয়েছে এবং আপনার ক্ষয় ফাংশন এবং সত্য ফাংশন যা আপনি স্নায়বিক নেটওয়ার্কের সাথে প্রায় কিছু প্রযুক্তিগত বৈশিষ্ট্য মেনে চলেছেন (কাগজে), আপনি আপনার গভীরতাটি বেছে নিতে পারেন অর্ডার করুন $ \ লগ (এন) $ এবং আপনার লুকানো স্তরগুলির প্রস্থটি অর্ডার হতে হবে $ n ^ {d / (2 (\ বিটা + ডি))} \ লগ ^ 2 (এন) $ $ এখানে sample n your হল আপনার নমুনার আকার, input d your হ'ল আপনার ইনপুট ভেক্টরের মাত্রা এবং true \ বিটা your আপনার সত্যিকারের ফাংশনের জন্য একটি মসৃণতা পরামিতি। যেহেতু \ \ বিটা unknown অজানা, আপনি সম্ভবত এটি হাইপারপ্যারামিটার হিসাবে বিবেচনা করতে চাইবেন।

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

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