মূল্যায়ন করার জন্য ব্যয়বহুল, একটি মসৃণ, সীমাবদ্ধ, নন-উত্তল 2D ফাংশনের বিশ্বব্যাপী সর্বনিম্ন সন্ধান করা


17

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

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

অন্য কোন বিশ্বব্যাপী অপ্টিমাইজেশনের সমাধানকারীদের বিবেচনা করা উচিত?


আপনি কি গ্রেডিয়েন্টগুলি গণনা করতে পারেন, বা পার্থক্যফলক দ্বারা তাদের আনুমানিক প্রয়োজন?
আর্নল্ড নিউমায়ার

পার্থক্যফলক দ্বারা তাদের আনুমানিক করা দরকার।
ভিক্টর মে

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

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

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

উত্তর:


12

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

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

বিশেষত, সার্গেট মডেলিং আপনার প্রকৃত ফাংশন f R dR এর একটি মডেল ফাংশন সেট করে কাজ করে । মূলটি হ'ল যদিও সি অবশ্যই পুরোপুরি চ এর প্রতিনিধিত্ব করে না , এটি মূল্যায়ন করা আরও সস্তা।cRdRfRdRcf

সুতরাং, একটি সাধারণ অপ্টিমাইজেশন প্রক্রিয়া নিম্নলিখিত হবে:

  1. মূল্যনির্ধারণ করা একটি সেট এ প্রাথমিক পয়েন্ট এক্স 1 , x এর 2 , ... , x এর । নোট করুন যে ডেরিভেটিভসের প্রয়োজন নেই। আরও মনে রাখবেন যে এই পয়েন্টগুলি অনুসন্ধানের জায়গাগুলিতে সমানভাবে বিতরণ করা উচিত, যেমন লাতিন হাইপারকিউব স্যাম্পলিং বা অনুরূপ স্পেস ফিলিং ডিজাইনের মাধ্যমে।fjx1,x2,,xj
  2. এই মূল ডেটাসেটের উপর ভিত্তি করে একটি মডেল ফাংশন তৈরি করুন । আপনি আপনার মডেলটিকে বৈধতা দেওয়ার জন্য ক্রস বৈধকরণ ব্যবহার করতে পারেন ( সি তৈরি করতে মূল জয়েন্ট পয়েন্টগুলির কেবলমাত্র একটি উপসেট ব্যবহার করুন, এবং সি সেই মানগুলি কতটা ভালভাবে পূর্বাভাস করেছে তা পরীক্ষা করতে ডেটাসেটের বাকী অংশটি ব্যবহার করুন )cjcc
  3. যেমন প্রত্যাশিত উন্নয়ন (EI) নির্ণায়ক হিসেবে একটি নির্ণায়ক ব্যবহার করুন খুঁজে বের করতে যেখানে 'আরও নমুনার' থেকে ভরাট 'করতে করতে' আরো স্যাম্পলিং দ্বারা সঠিক । এটি তাত্ত্বিকভাবে যতটা মনে হয় তার চেয়ে অনেক বেশি অধ্যয়ন করা হয় এবং EI মানদণ্ডটি খুব ভালভাবে গবেষণা হয়। EI মাপদণ্ডও লোভী মানদণ্ড নয়, সুতরাং আপনারা দুজনেই মডেলের যথাযথতার ভাল সামগ্রিক উন্নতি পাবেন, সম্ভাব্য অপটিমের কাছাকাছি নির্ভুলতার অগ্রাধিকার দেবেন।cf
  4. যদি আপনার মডেলটি যথাযথভাবে সঠিক না হয়, তবে পদক্ষেপ 3 পুনরাবৃত্তি করুন, অন্যথায় এর অনুকূলতম সন্ধানের জন্য আপনার পছন্দসই অপ্টিমাইজেশন রুটিনটি ব্যবহার করুন , যা মূল্যায়নের জন্য খুব সস্তা হবে (যাতে আপনি যে কোনও রুটিন চান, এমনকি ডেরিভেটিভসের প্রয়োজন হয় এমনগুলি ব্যবহার করতে পারেন) সূক্ষ্ম জাল করে ফাংশনটি মূল্যায়ন করুন)।c

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

কীভাবে বানাবেন তা অবশ্যই একটি মুক্ত প্রশ্ন, তবে প্রায়শই ক্রিগিং বা তথাকথিত স্পেস-ম্যাপিং মডেল ব্যবহৃত হয়।c

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

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


ফিভিউ, গুগল সারোগেট-মডেল ঘেন্ট ইউনিভার্সিটিতে একটি সারোগেট মডেলিং ল্যাব এবং সেরোগেট মডেলিংয়ের মাধ্যমে একটি বই ইঞ্জিনিয়ারিং ডিজাইন নিয়ে এসেছে, ২০০২ 228 পি 0470770791. যে কোনও সাধারণ পদ্ধতির সমস্যা হ'ল শীঘ্রই আপনার রান্নাঘরের সিঙ্ক পদ্ধতিতে সম্পূর্ণ ভরাঙ্ক রয়েছে, আরও বাস্তব পরীক্ষা ফাংশন চেয়ে ।
ড্যানিস

8

দেখা

এলএম রিওস এবং এনভি সাহিনিদিস, ডেরাইভেটিভ-মুক্ত অপ্টিমাইজেশন: অ্যালগরিদমগুলির একটি পর্যালোচনা এবং সফ্টওয়্যার বাস্তবায়নের তুলনা

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

ডিওআই: 10.1007 / s10898-012-9951-y


3

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


1

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


আমার সমস্যাটি আসলে স্থানীয় মিনিমা করে না। প্রারম্ভিক পয়েন্টগুলি বেছে নেওয়ার জন্য কোন পদ্ধতি রয়েছে?
ভিক্টর মে

1
আপনি যদি সমস্যা সম্পর্কে কিছু না জানেন, তবে স্ট্যাটিস্টিকাল স্যাম্পলিংটি মূলত আপনার একমাত্র পছন্দ।
ওল্ফগ্যাং ব্যাঞ্জারথ

@ ওল্ফগ্যাং: "স্ট্যাটিস্টিকাল স্যাম্পলিং" এর কাছে কীভাবে আসা যায় এমন কোনও ধারণা? শুধু 10, 100, ... এলোমেলো প্রাথমিক অনুমান চেষ্টা করুন? "আরও কঠোর" পদ্ধতির আছে? আমি জিজ্ঞাসা করি, কারণ আমার কম-বেশি একই সমস্যা রয়েছে (দেখুন scicomp.stackexchange.com/q/4708/1789 )
আন্দ্রে

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

0

যেহেতু আপনার মূল্যায়নগুলি ব্যয়বহুল, তাই আপনাকে সমান্তরালে সেভরাল ফাংশন মূল্যায়নগুলি চালনার সুবিধা নেওয়া উচিত।

আমি আপনাকে এই কোডটি একবার দেখার পরামর্শ দিচ্ছি । পিছনে গণিত এখানে বর্ণিত হয়


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