পল যেমন বলেছিলেন, আরও তথ্য ছাড়াই, অনুমান ছাড়াই পরামর্শ দেওয়া শক্ত is
10-20 ভেরিয়েবল এবং ব্যয়বহুল ফাংশন মূল্যায়ন সহ, প্রবণতা হ'ল ডেরাইভেটিভ-মুক্ত অপ্টিমাইজেশন অ্যালগরিদমগুলির প্রস্তাব দেওয়া। আমি পলের পরামর্শের সাথে দৃ strongly়ভাবে একমত নই: আপনি সাধারণত কোনও মেশিন-নির্ভুলতা গ্রেডিয়েন্টের প্রয়োজন হয় যদি না আপনি কোনও বিশেষ পদ্ধতি ব্যবহার করেন (উদাহরণস্বরূপ, মেশিন লার্নিংয়ের স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত যুক্তিযুক্তরূপে অবতীর্ণ হওয়ার উদ্দেশ্যটির রূপটি কাজে লাগান) গ্রেডিয়েন্ট অনুমান)।
প্রতিটি কোয়াটি-নিউটন পদক্ষেপটি ফর্ম হতে চলেছে:
এইচ~( এক্সট) ঘট= - ∇ চ( এক্সট) ,
যেখানে হেসিয়ান ম্যাট্রিক্সের কিছুটা অনুমান, সেখানে ডি কে অনুসন্ধানের দিকনির্দেশ, এক্স কে বর্তমান পুনরাবৃত্তিতে সিদ্ধান্তের ভেরিয়েবলের মান, এফ আপনার উদ্দেশ্যমূলক ক্রিয়া, এবং ∇ f আপনার উদ্দেশ্যটির গ্রেডিয়েন্ট এবং সিদ্ধান্ত ভেরিয়েবলগুলি এক্স কে + 1 = এক্স কে + α কে ডি কে , যেখানে α কে হিসাবে আপডেট করা হয়এইচ~ঘটএক্সটচ∇ চএক্সকে + 1= এক্সট+ + αটঘটαটকিছু ফ্যাশনে নির্ধারিত একটি ধাপের আকার (লাইন অনুসন্ধানের মতো)। আপনি নির্দিষ্ট উপায়ে হেসিয়ানকে প্রায় কাছাকাছি নিয়ে দূরে সরে যেতে পারেন এবং আপনার পুনরাবৃত্তিগুলি একত্রিত হবে, যদিও আপনি হেসিয়ানের সীমাবদ্ধ পার্থক্যের মতো কিছু যদি সঠিক গ্রেডিয়েন্টের মাধ্যমে ব্যবহার করেন তবে আপনি অসুস্থ অবস্থার কারণে সমস্যাগুলিতে ভুগতে পারেন। সাধারণত, হেসিয়ান গ্রেডিয়েন্ট ব্যবহার করে আনুমানিক হয় (উদাহরণস্বরূপ, হেসিয়ানের র্যাঙ্ক -১ আপডেট সহ বিএফজিএস টাইপ পদ্ধতি)।
সীমাবদ্ধ পার্থক্যের মাধ্যমে হেসিয়ান এবং গ্রেডিয়েন্ট উভয়কেই অনুমান করা বিভিন্ন কারণে বিভিন্ন কারণে খারাপ ধারণা:
- গ্রেডিয়েন্টে আপনার ত্রুটি হতে চলেছে, সুতরাং আপনি যে কোয়াটি-নিউটন পদ্ধতিটি প্রয়োগ করছেন তা হ'ল শোরগোলের ফাংশনটির মূল খুঁজে পাওয়ার অনুরূপ
- যদি ফাংশন মূল্যায়ন ব্যয়বহুল হয় এবং আপনি ভেরিয়েবলের সাথে সম্মত একটি গ্রেডিয়েন্ট মূল্যায়নের চেষ্টা করছেন তবে এটি আপনাকে পুনরুক্তি প্রতি এন ফাংশন মূল্যায়নের জন্য ব্যয় করতে চলেছেএনএন
- যদি আপনার গ্রেডিয়েন্টে ত্রুটি থাকে তবে আপনার হেসিয়ানটিতে আপনার আরও ত্রুটি হতে চলেছে, যা লিনিয়ার সিস্টেমের কন্ডিশনিংয়ের ক্ষেত্রে একটি বড় সমস্যা is
- ... এবং এটি আপনাকে পুনরাবৃত্তির জন্য ফাংশন মূল্যায়নের জন্য ব্যয় করতে চলেছেএন2
কোয়াটি-নিউটনের একটি খারাপ পুনরাবৃত্তি পেতে, আপনি মূল্যায়ন প্রতি 30 মিনিটে 420 ফাংশন মূল্যায়নের মতো কিছু করছেন, যার অর্থ আপনি হয় প্রতিটি পুনরুক্তির জন্য কিছুক্ষণ অপেক্ষা করতে যাচ্ছেন, বা আপনি যাচ্ছেন কেবল ফাংশন মূল্যায়নের জন্য একটি বৃহত ক্লাস্টার প্রয়োজন। আসল লিনিয়ার সলভগুলি 20 বাই 20 ম্যাট্রিক হতে চলেছে (সর্বাধিক!), সুতরাং সেগুলির সমান্তরাল করার কোনও কারণ নেই। উদাহরণস্বরূপ, যদি আপনি একটি স্থগিত সমস্যা সমাধানের মাধ্যমে গ্রেডিয়েন্ট তথ্য পেতে পারেন তবে এটি আরও সার্থক হতে পারে, সেক্ষেত্রে নোসেডাল এবং রাইটের মতো বইয়ের দিকে তাকানো মূল্যবান হতে পারে।
আপনি যদি সমান্তরালভাবে প্রচুর ফাংশন মূল্যায়ন করতে চলেছেন তবে আপনার পরিবর্তে সরেগেট মডেলিং পদ্ধতির দিকে লক্ষ্য করা উচিত বা অর্ধ-নিউটনের পদ্ধতির বিবেচনার আগে সেট অনুসন্ধান পদ্ধতিগুলি তৈরি করা উচিত। ক্লাসিক পর্যালোচনা নিবন্ধগুলি ডায়ারভেটিভ-মুক্ত পদ্ধতিগুলিতে রিওস এবং সহিনিডিসের একটি , যা ২০১২ সালে প্রকাশিত হয়েছিল এবং এটি একটি দুর্দান্ত, বিস্তৃত তুলনা সরবরাহ করে; মোর এবং ওয়াইল্ড দ্বারা 2009 থেকে বেঞ্চমার্কিং নিবন্ধ ; ২০০৯ এর পাঠ্যপুস্তক "ডেরিভেটিভ-ফ্রি অপ্টিমাইজেশনের ভূমিকা" কন, শেইনবার্গ এবং ভিসেন্টের লেখা; এবং 2003 থেকে কোল্ডা, লুইস এবং টর্কসন দ্বারা সেট অনুসন্ধান পদ্ধতি তৈরির উপর পর্যালোচনা নিবন্ধ
উপরে লিঙ্ক হিসাবে, ডাকোটা সফ্টওয়্যার প্যাকেজ সেই কয়েকটি পদ্ধতি বাস্তবায়িত করবে এবং এনএলওপিটি , যা ডায়রেক্টকে কার্যকর করে এবং পাওেলের কয়েকটি সার্গেট মডেলিং পদ্ধতিগুলি কার্যকর করে। আপনি এমসিএসের দিকেও একবার নজর দিতে পারেন ; এটি ম্যাটল্যাব-এ লেখা হয়েছে, তবে সম্ভবত আপনি ম্যাটল্যাব বাস্তবায়নটিকে আপনার পছন্দের ভাষায় পোর্ট করতে পারেন। ডাকোটার মূলত স্ক্রিপ্টগুলির একটি সংগ্রহ যা আপনি আপনার ব্যয়বহুল সিমুলেশন চালাতে এবং অপ্টিমাইজেশন অ্যালগরিদমগুলির জন্য ডেটা সংগ্রহ করতে ব্যবহার করতে পারেন, এবং এনএলওপিটির একটি বিশাল সংখ্যক ভাষায় ইন্টারফেস রয়েছে, সুতরাং প্রোগ্রামিং ভাষার পছন্দটি কোনও সফ্টওয়্যার প্যাকেজ ব্যবহারের ক্ষেত্রে বিশাল সমস্যা হওয়া উচিত নয়; ডাকোটা যদিও শিখতে কিছুটা সময় নেয় এবং এর মধ্যে প্রচুর পরিমাণে ডকুমেন্টেশন চালিত হয়।