ব্যয়বহুল উদ্দেশ্য ফাংশন গ্লোবাল সর্বাধিক


12

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

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

আমার সমান্তরাল (50+) এ প্রচুর সংখ্যক সিমুলেশন চালানোর ক্ষমতা আছে। এটি এই অপ্টিমাইজেশনটি করতে জেনেটিক অ্যালগরিদমের মতো কিছু ব্যবহার করার পরামর্শ বলে মনে হয়েছিল - যেহেতু আমি প্রার্থী সমাধানগুলির একটি জনসংখ্যার তৈরি করতে পারি যত তাড়াতাড়ি আমি একটি করতে পারি।

এখানে আমার প্রশ্নগুলি রয়েছে: 1) এই ধরণের বিশ্বব্যাপী সমাধানকারী / সুপারিশগুলির অবাধে উপলব্ধ বাস্তবায়নের সাথে কি কারও অভিজ্ঞতা আছে? 2) এখানে জেনেটিক অ্যালগরিদমকে পছন্দ করা বা এড়িয়ে যাওয়ার কোনও কারণ আছে কি?

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

হালনাগাদ:

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


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

(এক বছর পরে), আপনি কী শেষ করেছেন - 30 টি প্যারামিটারের কয়েকটি পরিবর্তিত, মডেল ...?
ডেনিস

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

এটি 2/2 বছর আগে মঞ্জুরিপ্রাপ্ত, তবে আপনার উদ্দেশ্যগত ফাংশন মূল্যায়নের (ডিটারনিস্টিক সিমুলেশন) মধ্যে সঠিকতা স্তর বেছে নেওয়া কি সঠিক সময় এবং বনাম চলমান সময়কে ট্রেড করতে পারে?
মার্ক এল স্টোন

উত্তর:


11

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

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

উদ্দেশ্যমূলক ফাংশন গণনাটি নির্ভুল বা অসম্পূর্ণ কিনা তা আপনি উল্লেখ করেননি। এটি প্রায়শই এমন হয় যে মন্টি কার্লো সিমুলেশন দ্বারা যখন উদ্দেশ্যগত কার্যটি গণনা করা হয়, তখন মানগুলি বেশ গোলমাল করে। এটি অনেকগুলি অপ্টিমাইজেশন অ্যালগরিদমকে বিভ্রান্ত করতে পারে। প্রতিক্রিয়া পৃষ্ঠের শব্দগুলি গোলমাল আরামদায়ক করে এই সমস্যাটিতে সহায়তা করে।

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

সম্ভাবনাগুলি হ'ল আপনার 30 টি প্যারামিটারগুলির বেশিরভাগই সমস্যার জন্য এতটা গুরুত্বপূর্ণ নয়। আমি প্রথমে para০ টি প্যারামিটারগুলির মধ্যে কোনটি অপ্টিমাইজেশনে সত্যই গুরুত্বপূর্ণ তা নির্ধারণ করার জন্য একটি পরীক্ষামূলক ডিজাইনের স্ক্রিনিং পদ্ধতির ব্যবহার করার পরামর্শ দেব এবং তারপরে গুরুত্বহীন পরামিতিগুলির জন্য যথাযথ মান নির্ধারণের পরে গুরুত্বপূর্ণ পরামিতিগুলির তুলনায় অনুকূলিতকরণ করব। অপেক্ষাকৃত গুরুত্বহীন পরামিতিগুলি স্ক্রিন করার ক্ষেত্রে লাতিন হাইপারকিউব স্যাম্পলিংয়ের মতো পদ্ধতিগুলি খুব সহায়ক হতে পারে। এই স্ক্রিনিং পর্যায়ে আপনি শত শত প্রসেসরের সহজেই ব্যবহার করতে পারেন।

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

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

আমি এই ধরণের অপ্টিমাইজেশনের কাঠামো হিসাবে ডাকোতার সুপারিশটিকে দ্বিতীয় করব। আপনি যদি এই অপটিমাইজেশনটি কেবল একবারই করতে যাচ্ছেন তবে হাতে হাতে গণনাগুলি পরিচালনা করা আরও সহজ হতে পারে তবে আপনি যদি বার বার এটি করতে চলেছেন তবে ডাকোটা খুব সহায়ক হবে।


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

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


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

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

1

ব্ল্যাক-বক্স অপ্টিমাইজেশনের জন্য টমলব, ডাকোটা এবং ওপেনএমডিএও দেখুন।


সম্পাদনা # 3: বায়সিয়ান অপ্টিমাইজেশান ইজিওর সাথে খুব মিল:

https://github.com/mwhoffman/pybo

https://github.com/hyperopt/hyperopt

সীমাবদ্ধ লাইসেন্স:

https://github.com/rmcantin/bayesopt

https://github.com/HIPS/Spearmint


সম্পাদনা # 2:

প্রথম পদ্ধতির ব্যয়বহুল ফাংশনটির চারপাশে একটি মেটোমোডেল / সারোগেট (ক্রিগিং / জিপি ব্যবহার করে) তৈরি করা এবং গ্লোবাল সর্বোত্তম পয়েন্টটি দ্রুত এবং কম মূল্যায়নের (ইজিও) সন্ধানের জন্য এই অতিরিক্ত তথ্য ব্যবহার করা।

এমডিএএসের মতো দ্বিতীয় পদ্ধতিটি হ'ল একাধিক স্তরের কিছু চালাক অ্যাডাপশনগুলির সাথে সরাসরি অনুসন্ধান করা।

হিউরিস্টিক পন্থাগুলি জেনেটিক / এলোমেলোভাবে প্রকৃতির এবং কোনও গ্যারান্টি ছাড়াই।


সম্পাদনা # 1:

টমল্যাব হ'ল ম্যাটল্যাব ভিত্তিক সরঞ্জাম যা সহিনিডিসের কাগজ অনুসারে সর্বোত্তম গতি / অনুকূলতার মান optim তবে এটি বাণিজ্যিক সরঞ্জাম যা উল্লেখযোগ্য কর্পোরেট ব্যবহারের সাথে। আমি এটি ব্যবহার করছি না।

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

ওপেনএমডিএও অ্যাপিচ লাইসেন্সের আওতায় নাসা দ্বারা পাইথন-এ তৈরি করা অপ্টিমাইজেশন ভিত্তিক ডিজাইন সফটওয়্যার। আমি বর্তমানে এটি চেষ্টা করছি।


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

আমি প্রথমে আমার উত্তরটি নিয়ে ছুটে এসেছি এবং এখন আমি ব্যাখ্যাটি যুক্ত করেছি।
denfromufa

0

আপনি যদি 30 টি রান বহন করতে না পারেন, প্রতিটি পৃথক পৃথক একটি প্যারামিটার, তাদের বিভিন্ন গ্রুপে পৃথক করুন:
উদাহরণস্বরূপ, 8 টি প্রতিটি 4 টি পরামিতি এক সাথে আলাদা করে চালায়, তবে সেরা 2 রান / 8 পরামিতিগুলি পরিমার্জন করুন ...
(ট্রেডঅফ কীভাবে করবেন তা আমার কোনও ধারণা নেই) মোট লাভ বনাম মোট রানটাইম; মাল্টি-সশস্ত্র ডাকাত ?)


-3

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

কোডটির পিছনে গণিতের একটি বিবরণ এখানে দেওয়া আছে


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

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

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