খুব ব্যয়বহুল উদ্দেশ্যমূলক ফাংশন নিয়ে সমস্যার জন্য সমান্তরাল অপ্টিমাইজেশন অ্যালগরিদম


15

আমি 10-20 ভেরিয়েবলের একটি কার্যকারিতা অনুকূল করছি। খারাপ খবরটি হ'ল প্রতিটি ফাংশন মূল্যায়ন ব্যয়বহুল, সিরিয়াল গণনার প্রায় 30 মিনিট। সুসংবাদটি হ'ল আমার কাছে কয়েক ডজন গণনামূলক নোড সহ আমার একটি গুচ্ছ রয়েছে।

এইভাবে প্রশ্ন: এমন কোনও অপ্টিমাইজেশন অ্যালগরিদম রয়েছে যা আমাকে সেই সমস্ত কম্পিউটিং শক্তি দক্ষতার সাথে ব্যবহার করতে দেয়?

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

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

চতুর্ভুজীয় অ্যালগরিদমগুলি মাঝখানে কোথাও রয়েছে বলে মনে হচ্ছে: কেউ সমানতালে একগুচ্ছ মানের গণনা করে প্রাথমিক "সারোগেট মডেল" তৈরি করতে পারে, তবে বাকী পুনরাবৃত্তিগুলি সমান্তরাল কিনা তা আমি জানি না।

কোন ধরণের গ্রেডিয়েন্ট-মুক্ত অপ্টিমাইজেশন পদ্ধতিগুলি কোনও ক্লাস্টারে ভাল সঞ্চালন করবে সে সম্পর্কে কোনও পরামর্শ? এছাড়াও, বর্তমানে অপ্টিমাইজেশন অ্যালগরিদমের কোনও সমান্তরাল বাস্তবায়ন উপলব্ধ?


1
আপনি সর্বদা সমান্তরালে গ্রেডিয়েন্ট গণনা করতে পারেন (সীমাবদ্ধ পার্থক্য ব্যবহার করে কোয়াটি-নিউটন পদ্ধতির জন্য) এবং প্যারামিটারগুলির সংখ্যার সাথে 10x-20x সমানুপাতিক গতিবেগ পেতে পারেন।
stally

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

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

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

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

উত্তর:


16

পল যেমন বলেছিলেন, আরও তথ্য ছাড়াই, অনুমান ছাড়াই পরামর্শ দেওয়া শক্ত is

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

প্রতিটি কোয়াটি-নিউটন পদক্ষেপটি ফর্ম হতে চলেছে:

এইচ~(এক্স)=-(এক্স),

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

সীমাবদ্ধ পার্থক্যের মাধ্যমে হেসিয়ান এবং গ্রেডিয়েন্ট উভয়কেই অনুমান করা বিভিন্ন কারণে বিভিন্ন কারণে খারাপ ধারণা:

  • গ্রেডিয়েন্টে আপনার ত্রুটি হতে চলেছে, সুতরাং আপনি যে কোয়াটি-নিউটন পদ্ধতিটি প্রয়োগ করছেন তা হ'ল শোরগোলের ফাংশনটির মূল খুঁজে পাওয়ার অনুরূপ
  • যদি ফাংশন মূল্যায়ন ব্যয়বহুল হয় এবং আপনি ভেরিয়েবলের সাথে সম্মত একটি গ্রেডিয়েন্ট মূল্যায়নের চেষ্টা করছেন তবে এটি আপনাকে পুনরুক্তি প্রতি এন ফাংশন মূল্যায়নের জন্য ব্যয় করতে চলেছেএনএন
  • যদি আপনার গ্রেডিয়েন্টে ত্রুটি থাকে তবে আপনার হেসিয়ানটিতে আপনার আরও ত্রুটি হতে চলেছে, যা লিনিয়ার সিস্টেমের কন্ডিশনিংয়ের ক্ষেত্রে একটি বড় সমস্যা is
  • ... এবং এটি আপনাকে পুনরাবৃত্তির জন্য ফাংশন মূল্যায়নের জন্য ব্যয় করতে চলেছেএন2

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

আপনি যদি সমান্তরালভাবে প্রচুর ফাংশন মূল্যায়ন করতে চলেছেন তবে আপনার পরিবর্তে সরেগেট মডেলিং পদ্ধতির দিকে লক্ষ্য করা উচিত বা অর্ধ-নিউটনের পদ্ধতির বিবেচনার আগে সেট অনুসন্ধান পদ্ধতিগুলি তৈরি করা উচিত। ক্লাসিক পর্যালোচনা নিবন্ধগুলি ডায়ারভেটিভ-মুক্ত পদ্ধতিগুলিতে রিওস এবং সহিনিডিসের একটি , যা ২০১২ সালে প্রকাশিত হয়েছিল এবং এটি একটি দুর্দান্ত, বিস্তৃত তুলনা সরবরাহ করে; মোর এবং ওয়াইল্ড দ্বারা 2009 থেকে বেঞ্চমার্কিং নিবন্ধ ; ২০০৯ এর পাঠ্যপুস্তক "ডেরিভেটিভ-ফ্রি অপ্টিমাইজেশনের ভূমিকা" কন, শেইনবার্গ এবং ভিসেন্টের লেখা; এবং 2003 থেকে কোল্ডা, লুইস এবং টর্কসন দ্বারা সেট অনুসন্ধান পদ্ধতি তৈরির উপর পর্যালোচনা নিবন্ধ

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


2
পুরোপুরি ভুল হতে এবং প্রক্রিয়াটিতে নতুন এবং দরকারী কিছু শিখতে পেরে আমার খুব আনন্দ হয় :)
পল

ধন্যবাদ! আরও একটি স্পষ্টতা: এই আলগোরিদিমগুলির মধ্যে কোনটি সমান্তরালভাবে ফাংশন মূল্যায়ন করতে সক্ষম? উদাহরণস্বরূপ, কে-ওয়ে গ্রিডে পুনরাবৃত্তিগুলি এন + 1, ..., এন + কে কেবল পুনরাবৃত্তি 1, ..., এন থেকে প্রাপ্ত তথ্যের ভিত্তিতে করা হচ্ছে?
মাইকেল


3

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

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

উল্লেখ

ওয়াং, এল।, শান, এস, এবং ওয়াং, জিজি (2004)। ব্যয়বহুল ব্ল্যাক-বাক্স ফাংশনগুলিতে বিশ্বব্যাপী অপ্টিমাইজেশনের জন্য মোড-অনুসরণের নমুনা পদ্ধতি। ইঞ্জিনিয়ারিং অপটিমাইজেশন, 36 (4), 419-438।


2

আমি নিশ্চিত নই যে একটি সমান্তরাল অ্যালগরিদম সত্যই আপনি যা খুঁজছেন is এটি আপনার ফাংশন মূল্যায়ন যা খুব ব্যয়বহুল। আপনি যা করতে চান তা হ'ল ফাংশনটিকেই সমান্তরাল করে তোলা, অপরিহার্যতা অ্যালগরিদম অগত্যা নয়।

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


0

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

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

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


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

-2

আপনার সমস্যার সমাধান এখানে ।

একটি গাণিতিক পদ্ধতির বিবরণ এই কাগজে সরবরাহ করা হয়েছে


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

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

@nicoguaro: আপনাকে ধন্যবাদ, তবে আমি লিঙ্কগুলি ক্লিক করতে জানি।
মাইকেল

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