নিউরোয়াল নেটওয়ার্ক প্রশিক্ষণের জন্য জিনেটিক অ্যালগরিদম ব্যাকপ্রপ্যাগেশন বনাম


34

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

এক বা অন্য ব্যবহার করার সময় থাম্বের কিছু সাধারণ নিয়ম আছে? হতে পারে এটি এনএন এর ধরণের উপর নির্ভর করে বা আর্ট সলিউশনের এমন কোনও অবস্থা রয়েছে যা সাধারণত অন্যকে ছাড়িয়ে যায়?

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

উত্তর:


23

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

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


2
এটি এমন একটি জিনিস যা আমি সম্প্রতি নিয়ে এসেছি - প্রথমে 'ভাল' সমাধানটি সন্ধান করুন এবং তারপরে জিএ দিয়ে আরও উন্নত করুন। কেবল এনএনএস-এর জন্যই প্রযোজ্য নয়, সাধারণভাবে অপ্টিমাইজেশন ...
সাশকেলো

1
আমি বিভ্রান্ত হয়ে পড়েছি কেন তারা পারস্পরিক একচেটিয়া। আমি ভেবেছিলাম জিএ কাঠামোটি শিখার কথা; Backpropagation শুধুমাত্র ওজন শিখতে পারি
পিট

8

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

মূলত অপ্টিমাইজেশন হ'ল মেশিন লার্নিংয়ের সমস্ত অশুভের মূল, যত বেশি আপনি এটি করেন, তত বেশি আপনি ডেটা অতিরিক্ত ফিট করার সম্ভাবনা রাখেন।


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

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

5

যখনই আপনি বিপুল পরিমাণে ডেটা নিয়ে ডিল করেন এবং আপনি কোনও ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্কের সাহায্যে তদারকি করা শেখার কাজটি সমাধান করতে চান, ব্যাকপ্রোপেশন ভিত্তিক সমাধানগুলি আরও বেশি সম্ভাব্য। এর কারণ হ'ল, একটি জটিল নিউরাল নেটওয়ার্কের জন্য, বিনামূল্যে পরামিতিগুলির সংখ্যা খুব বেশি। একটি শিল্প প্রকল্প যার জন্য আমি বর্তমানে কাজ করছি তাতে প্রায় 1000 ইনপুট, দু'টি লুকানো স্তর প্রতিটি 384 নিউরন এবং 60 আউটপুট সহ একটি ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্ক জড়িত। এটি 1000 * 384 + 384 * 384 + 384 * 60 = 554496 ওজন পরামিতি যা অপ্টিমাইজ করা হবে বাড়ে। এখানে একটি জিএ পদ্ধতির ব্যবহার করা ভীষণ ধীর হবে।


আমার বোধগম্যতা হ'ল GA এমন সমস্যাগুলি মোকাবেলার জন্য ডিজাইন করা হয়েছে যা মানক পদ্ধতির সাথে সমাধান করা আরও শক্ত। আপনি বর্ণিত পরিস্থিতিতে কি এটি আরও ভাল সম্পাদন করা উচিত নয়?
সাশকেলো

2
আমি ভেবেছিলাম এটির কাঠামোটি কতগুলি লুকানো স্তর এবং তারা কীভাবে সংযুক্ত রয়েছে তা নির্ধারণের জন্য জিএ ব্যবহার করার কথা ছিল। Backpropagation শুধুমাত্র ওজন চিন্তা করতে পারেন
পিট

2

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

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

তবে বৃহত্তর অঞ্চল অনুসন্ধান করে, জিএগুলি সম্ভবত স্থানীয় অপটিমা এড়িয়ে দীর্ঘমেয়াদে আরও ভাল করবে, প্রশিক্ষণ পেতে আরও বেশি সময় লাগবে।

ব্যাকপ্রপের তুলনায় আমি কৌতূহলী যে জিএগুলি কত ধীরে ধীরে কম, এবং যদি কেউ হাইব্রিড অ্যালগরিদম সম্পর্কে জানেন (স্ক্যাটার অনুসন্ধানে মনে হয় এটি এটির জন্য আদর্শ হবে))


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

ওভারফিটিং যদি অপ্টিমাইজেশনের কারণে না ঘটে, তবে তাড়াতাড়ি থামানো ওভারফিটিংয়ের কার্যকর প্রতিকার নয়।
ডিকরান মার্শুপিয়াল

1

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


শুধু মন্তব্য করছি, আমরা এলোমেলো initও ব্যবহার করি। ব্যাক-প্রোপ মধ্যে ওজন জন্য। শুরু করার সময় যদি আমরা একই বীজ ব্যবহার করি তবে এটি একই সমাধানের দিকে নিয়ে যাবে, তবে আপনি যদি এটি না করেন তবে সম্ভবত তা হবে না। সুতরাং, ব্যাক-প্রপ, একটি এলোমেলো ইনপুট উপর নির্ভর করে। আপনি যখন বীজ স্থির করেন, জেনেটিক অ্যালগরিদমে আপনার একই ফলাফল হবে কারণ এটি একই সিক ব্যবহার করবেন। আবার সংখ্যা।
বন্দুকগুলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.