ব্যাচের নরমালাইজেশন এবং ড্রপআউটের আদেশ?


116

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

টেনসরফ্লোতে ব্যাচের নরমালাইজেশন এবং ড্রপআউট ব্যবহার করার সময় (বিশেষত কন্ট্রিবিউটারগুলি ব্যবহার করে) ক্রমটি অর্ডার সম্পর্কে উদ্বিগ্ন হওয়া দরকার কি?

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

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

তোমাকে অনেক ধন্যবাদ!

হালনাগাদ:

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

উত্তর:


143

ইন Ioffe এবং Szegedy 2015 , লেখক রাষ্ট্র যে "আমরা তা নিশ্চিত করার জন্য কোনো পরামিতি মানের জন্য, নেটওয়ার্ক সবসময় সক্রিয়করণব্যবস্থা আকাঙ্ক্ষিত ডিস্ট্রিবিউশনের সাথে উৎপন্ন চাই"। সুতরাং ব্যাচ নরমালাইজেশন স্তরটি আসলে একটি কনভ স্তর / সম্পূর্ণ সংযুক্ত স্তরের ঠিক পরে Reোকানো হয় তবে রিলুতে (বা অন্য কোনও ধরণের) সক্রিয়করণের আগে খাওয়ানোর আগে। আরও তথ্যের জন্য প্রায় 53 মিনিটের সময় এই ভিডিওটি দেখুন ।

ড্রপআউট যতদূর যায়, আমি বিশ্বাস করি অ্যাক্টিভেশন লেয়ারের পরে ড্রপআউট প্রয়োগ করা হয়েছিল। ইন ড্রপআউট কাগজ চিত্রে 3b, ঝরে পড়া ফ্যাক্টর / সম্ভাব্যতা ম্যাট্রিক্স দ (ঠ) গুপ্ত স্তর ঠ জন্য Y (ঠ), যেখানে Y (ঠ) আবেদন অ্যাক্টিভেশন ফাংশন f পর ফল তে এটি প্রয়োগ করা হয়।

সুতরাং সংক্ষেপে, ব্যাচের সাধারণকরণ এবং ড্রপআউট ব্যবহারের ক্রমটি হ'ল:

-> সিওএনভি / এফসি -> ব্যাচনর্ম -> রিলু (বা অন্যান্য অ্যাক্টিভেশন) -> ড্রপআউট -> সিএনভি / এফসি ->


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

3
পুলিংয়ের কী হবে, তা কি ব্যাচনরম এবং অ্যাক্টিভেশনের মধ্যে চলে যাবে?
শব্দসুবিহীন

5
এছাড়াও, দেখতে অ্যাক্টিভেশনের পরে যথাযথতা যথাযথভাবে উচ্চতর হতে পারে: github.com/cvjena/cnn-models/issues/3
શબ્દশক্তি 31

1
ভিডিওটি কোনওভাবে মুছে ফেলা হয়!
blitu12345

10
এই কাগজটি দেখায় যে সাধারণত বিএন এর সাথে বাদ পড়ার ফলে খারাপ ফলাফলের দিকে পরিচালিত হয় যদি না কিছু পরিবর্তিত পরিবর্তনের ঝুঁকি এড়াতে কন্ডিশনার করা না হয়।
হারামোজ

37

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

আমার 2 সেন্ট:

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

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

সুতরাং আমি প্রকল্প 1 টি পরামর্শ দিচ্ছি (এটি গ্রহণযোগ্য উত্তরের উপর সিউডোমরভিনের মন্তব্য গ্রহণ করবে)

-> সিওএনভি / এফসি -> রিলু (বা অন্যান্য অ্যাক্টিভেশন) -> ড্রপআউট -> ব্যাচনরম -> সিওএনভি / এফসি

স্কিম 2 এর বিপরীতে

-> সিওএনভি / এফসি -> ব্যাচনরম -> রিলু (বা অন্যান্য অ্যাক্টিভেশন) -> ড্রপআউট -> সিএনভি / এফসি -> গৃহীত উত্তরে

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


ব্যাচনার্ম প্লেসমেন্ট সম্পর্কিত প্রাসঙ্গিক reddit আলোচনা: reddit.com/r/MachineLearning/comments/67gonq/…
সেচ_জি

3
কিন্তু ড্রপ আউট প্রয়োগের পরে আপনি এগুলি গণনা করার পরে এটি কি আপনার বিএন পরিসংখ্যানগুলি স্ক্রু করবে না, যা পরীক্ষার সময় হবে না?
জাকজে

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

@ জাকজে সঠিক মোহাম্মদ আদেলের উত্তর এবং এই কাগজটি এখানে দেখুন: arxiv.org/pdf/1801.05134.pdf । ফলস্বরূপ, ব্যাচ নরমালাইজেশন স্তরগুলি ডেটাতে কোভারিয়েট শিফ্টের বিরুদ্ধে লড়াই করতে শেখে যা পরীক্ষার সময় ড্রপআউট বন্ধ হয়ে গেলে আর বিদ্যমান থাকে না।
skeller88

@ skeller88 আমি কাগজটি পড়িনি। আমার মাথা শীর্ষে আমি মনে করি যদি আপনার ড্রপআউটের আগে বিএন থাকে তবে মূলত বিএন স্তরটির উদ্দেশ্যটি স্ক্রু করে যেহেতু বিএন এর ফাংশনটি পরবর্তী স্তরের মানকযুক্ত ডেটা সরবরাহ করে।
মিলোমিন্ডারবাইন্ডার

12

সাধারণত, কেবলমাত্র Dropout(যখন আপনার রয়েছে BN) ফেলে দিন:

  • "বিএন Dropoutকিছু ক্ষেত্রে প্রয়োজনের অভাব দূর করে কারণ বিবি ড্রপআউট স্বজ্ঞাতভাবে একই নিয়মিত সুবিধা প্রদান করে"
  • "রেসনেট, ডেনসনেট ইত্যাদির মতো আর্কিটেকচারগুলি ব্যবহার করছে না Dropout

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


এমএলপিগুলির কী সেগুলি একত্রিত করার জন্য দরকারী।
দিনা টাকলিট

1
@ দিনটাকলিট যখন আপনার কাছে সত্যিই পর্যাপ্ত প্রশিক্ষণ ডেটা নেই, আমার মতে, হ্যাঁ।
xtluo

@xtulo আপনি কি এই কাজটি একবার মানে ছোট্ট তারিখের মানে? যেমন আমি যদি পড়ে থাকি যে ব্যাচ সাধারণকরণ বড় ডেটাসেটের সাথে আরও ভাল কাজ করে! আমি কিছুটা বিভ্রান্ত:!
দিনা টকলেট

1
@ দিনটাকলিট আপনার আগের মন্তব্যে what about MLPs is it useful to combine them, এর অর্থ কি Is it useful to combine Dropout and BN when using MLPs? এ সম্পর্কে আমার অনুভূতিটি হ'ল এটি মূলত আপনার মডেলের আকার এবং আপনার কাছে থাকা প্রশিক্ষণের ডেটার পরিমাণের উপর নির্ভর করে।
xtluo

@xtulo হ্যাঁ এর অর্থ হ'ল ড্রপআউট এবং বিএন এর একত্রিত করা কার্যকর, হ্যাঁ আমি আপনার শেষ উত্তরের সাথে একমত।
দিনা টকলেট

6

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

এই প্রভাবের জন্য একটি ছোট ডেমো এই নোটবুকটিতে পাওয়া যাবে ।


3
কিভাবে এই প্রশ্নের উত্তর দেয়?
এনবিউবিস

1
কাগজটি 2 টি সম্ভাব্য কৌশল সরবরাহ করে: - সমস্ত বিএন স্তরের পরে ড্রপআউট প্রয়োগ করুন (কেবল)
ড্রপআউটকে

@ নবুবিস আমি মনে করি এটি পরোক্ষভাবে উত্তর দেয়। এটি এগুলি একসাথে ব্যবহার না করার পরামর্শ দেয় বলে মনে হয় ("ড্রপআউট এবং ব্যাচ নর্মের (বিএন) মধ্যে বৈষম্য ব্যাখ্যা করে")।
নেলসনগন

3

উন্নত পারফরম্যান্সের জন্য গবেষণা কাগজের ভিত্তিতে ড্রপআউটগুলি প্রয়োগের আগে আমাদের বিএন ব্যবহার করা উচিত


উত্তরটি পুরো স্ট্যাকটিকে সম্বোধন করে না, প্রশ্নে জিজ্ঞাসা করা হয়েছে।
সালেহিনেজাদ

2

সঠিক ক্রমটি হ'ল: কনভ> সাধারণীকরণ> অ্যাক্টিভেশন> ড্রপআউট> পুলিং


2

কনভ - অ্যাক্টিভেশন - ড্রপআউট - ব্যাচনরম - পুল -> টেস্ট_লস: 0.04261355847120285

কনভ - অ্যাক্টিভেশন - ড্রপআউট - পুল - ব্যাচনরম -> টেস্ট_লস: 0.050065308809280396

কনভ - অ্যাক্টিভেশন - ব্যাচনরম - পুল - ড্রপআউট -> টেস্ট_লস: 0.04911309853196144

কনভ - অ্যাক্টিভেশন - ব্যাচনরম - ড্রপআউট - পুল -> টেস্ট_লস: 0.06809622049331665

কনভ - ব্যাচনরম - অ্যাক্টিভেশন - ড্রপআউট - পুল -> টেস্ট_লস: 0.038886815309524536

কনভ - ব্যাচনরম - অ্যাক্টিভেশন - পুল - ড্রপআউট -> টেস্ট_লস: 0.04126095026731491

কনভ - ব্যাচনরম - ড্রপআউট - অ্যাক্টিভেশন - পুল -> টেস্ট_লস: 0.05142546817660332

কনভ - ড্রপআউট - অ্যাক্টিভেশন - ব্যাচনরম - পুল -> টেস্ট_লস: 0.04827788099646568

কনভ - ড্রপআউট - অ্যাক্টিভেশন - পুল - ব্যাচনরম -> টেস্ট_লস: 0.04722036048769951

কনভ - ড্রপআউট - ব্যাচনরম - অ্যাক্টিভেশন - পুল -> টেস্ট_লস: 0.03238215297460556


2 টি কনভ্যুশনাল মডিউল (নীচে দেখুন) সহ এমএনআইএসটি ডেটাসেটে (20 যুগের) প্রশিক্ষিত, প্রতিটি সময় অনুসরণ করেছে

model.add(Flatten())
model.add(layers.Dense(512, activation="elu"))
model.add(layers.Dense(10, activation="softmax"))

কনভলিউশনাল স্তরগুলির কার্নেল আকার রয়েছে (3,3), ডিফল্ট প্যাডিং, অ্যাক্টিভেশন elu। পুলিং পুলসাইডের একটি ম্যাক্সপুলিং (2,2)। ক্ষতি হ'ল categorical_crossentropyএবং অপটিমাইজারটিও adam

সংশ্লিষ্ট ড্রপআউট সম্ভাবনা যথাক্রমে 0.2বা 0.3। বৈশিষ্ট্য মানচিত্রের পরিমাণ যথাক্রমে 32বা 64

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


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

0

কনভি / এফসি - বিএন - সিগময়েড / তানহ - ড্রপআউট। অ্যাক্টিভিয়েশন ফানক যদি রিলু বা অন্যথায় হয়, তবে স্বাভাবিককরণ এবং ড্রপআউটের ক্রমটি আপনার কাজের উপর নির্ভর করে


0

আমি https://stackoverflow.com/a/40295999/8625228 থেকে উত্তর এবং মন্তব্যে প্রস্তাবিত কাগজপত্রগুলি পড়েছি

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

আইওফএফ এবং সজেজেডি (২০১৫) এর দৃষ্টিকোণ থেকে, বিএনটি সক্রিয়করণ কার্যের ভিতরে / এর আগে অবস্থিত । তবে চেন এট আল। (2019) একটি আইসি স্তর ব্যবহার করুন যা ড্রপআউট এবং বিএন এবং চেন এট আল সংযুক্ত করে। (2019) আরএলইউর পরে বিএন ব্যবহারের পরামর্শ দেয়।

সুরক্ষার পটভূমিতে, আমি কেবল নেটওয়ার্কে ড্রপআউট বা বিএন ব্যবহার করি।

চেন, গুয়াংইং, পেংফেই চেন, যুজুন শি, চ্যাং-ইউ হিসিহ, বেনবেন লিয়াও এবং শেঙ্গু জাং। 2019. "ডিপ নিউরাল নেটওয়ার্কগুলির প্রশিক্ষণে ব্যাচের সাধারণকরণ এবং ড্রপআউটের ব্যবহারের পুনর্বিবেচনা” " CoRR অ্যাবস / 1905.05928। http://arxiv.org/abs/1905.05928

আইওফ্ফ, সের্গেই এবং ক্রিশ্চান সেজেগেদি। 2015. "ব্যাচ সাধারণকরণ: অভ্যন্তরীণ কোভারিয়েট শিফট হ্রাস করে ডিপ নেটওয়ার্ক প্রশিক্ষণ ত্বরান্বিত করা হচ্ছে।" CoRR অ্যাবস / 1502.03167। http://arxiv.org/abs/1502.03167

লি, জিয়াং, শুও চেন, জিয়াওলিন হু এবং জিয়ান ইয়াং। 2018. "ভেরিয়েন্স শিফট দ্বারা ড্রপআউট এবং ব্যাচ নরমালাইজেশনের মধ্যে বিভেদ বোঝা” " CoRR অ্যাবস / 1801.05134। http://arxiv.org/abs/1801.05134

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