মিনি ব্যাচের প্রশিক্ষণের জন্য এলোমেলোভাবে আঁকা প্রশিক্ষণের নমুনাগুলি প্রতিস্থাপন ছাড়াই নিউরাল নেট আঁকা উচিত?


18

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

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

আমি গুগল করা এবং সিএইচ পড়ার চেষ্টা করেছি। নিলসেন এর 1 নিউরাল নেটওয়ার্ক এবং গভীর শিক্ষা কিন্তু একটি স্পষ্ট উত্তর পাই নি। সেই পাঠ্যে নিলসন উল্লেখ করে নি যে এলোমেলোভাবে নমুনা প্রতিস্থাপন ছাড়াই করা হবে, তবে মনে হয় এটি হ'ল।

ইচ্ছেগুলিতে প্রশিক্ষণের সুস্পষ্ট আনুষ্ঠানিকতা এখানে পাওয়া যাবে - /stats//a/141265/131630

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


কোনও ডেটা নির্দিষ্ট কারণ না থাকলে, নিউরাল নেট প্রশিক্ষণের জন্য মিনি ব্যাচটি সর্বদা প্রতিস্থাপন ছাড়াই আঁকা হয়। ধারণাটি হ'ল আপনি ব্যাচ মোডের মধ্যে কোথাও থাকতে চান যা পুরো ডেটাसेट এবং এসজিডি সহ গ্রেডিয়েন্ট গণনা করে, যা কেবল একটি এলোমেলো ব্যবহার করে।
horaceT

এসজিডি একটি এলোমেলো নমুনা ব্যবহারের মধ্যে সীমাবদ্ধ নয়। সেই প্রক্রিয়াটিকে অনলাইন প্রশিক্ষণ বলা হয়। "গ্রেডিয়েন্ট বংশদ্ভুতের একটি চূড়ান্ত সংস্করণ হ'ল মিনি ব্যাচের আকার মাত্র 1 টি ব্যবহার করা ... এই পদ্ধতিটি অনলাইন, অন-লাইন বা বর্ধমান শিক্ষণ হিসাবে পরিচিত।" এবং এছাড়াও, "স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত একটি ধারণা শেখার গতি বাড়ানোর জন্য ব্যবহার করা যেতে পারে The ধারণাটি এলোমেলোভাবে বেছে নেওয়া প্রশিক্ষণ ইনপুটগুলির একটি ছোট নমুনার জন্য [এটি] গণনা করে গ্রেডিয়েন্ট ∇ সি অনুমান করা যায় this । আমরা দ্রুত সত্য গ্রেডিয়েন্টের একটি ভাল অনুমান পেতে পারি "। উভয় উক্তি নিলসান চ। 1.
bobo

উত্তর:


13

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

সংক্ষেপে, এটি প্রমাণিত হয়েছে যে প্রতিস্থাপন ছাড়াই নমুনা প্রতিস্থাপনের সাথে নমুনা চেয়ে দ্রুত অভিযানের দিকে নিয়ে যায় ।

তারা যে খেলনা উদাহরণ প্রদান করে তার উপর ভিত্তি করে আমি এখানে একটি সংক্ষিপ্ত বিশ্লেষণ করব: আসুন আমরা বলি যে আমরা নিম্নলিখিত উদ্দেশ্য কার্যটি অনুকূল করতে চাই:

এক্সমনোনীত করা=ARGসর্বনিম্নএক্স12Σআমি=1এন(এক্স-Yআমি)2

যেখানে লক্ষ্য Yআমি~এন(μ,σ2) । এই উদাহরণে, আমরা অনুকূল জন্য সমাধান করার চেষ্টা করছেন এক্স দেওয়া এন লেবেল Yআমি স্পষ্টত।

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

এল=12Σআমি=1এন(এক্স-Yআমি)2

এবং এটি প্রথম ডেরাইভেটিভ হবে:

δএলδএক্স=Σআমি=1এন(এক্স-Yআমি)

সেটিং 0 এবং জন্য সমাধানেএক্স, উৎপাদনের:δএলδএক্সএক্স

এক্সমনোনীত করা=1এনΣআমি=1এনYআমি

অন্য কথায়, সর্বোত্তম সমাধানটি সমস্ত নমুনার নমুনা মানে ছাড়া কিছুই নয়এনY

এখন, আমরা যদি একবারে উপরের গণনাটি সম্পাদন করতে না পারি, তবে নীচে গ্রেডিয়েন্ট বংশোদ্ভূত আপডেট সমীকরণের মাধ্যমে আমাদের এটি পুনরাবৃত্তভাবে করতে হবে:

এক্সআমি=এক্সআমি-1-λআমি((এক্সআমি-1))

এবং কেবল আমাদের শর্তাদি এখানে সন্নিবেশ করায় ফলন পাওয়া যায়:

এক্সআমি=এক্সআমি-1-λআমি(এক্সআমি-1-Yআমি)

আমরা যদি সবার জন্য উপরে চালানো , তারপরে আমরা কার্যকরভাবে প্রতিস্থাপন ছাড়াই এই আপডেটটি সম্পাদন করছি । তাহলে প্রশ্নটি হয়ে ওঠে, আমরা কি এইভাবে এক্সের সর্বোত্তম মান পেতে পারি ? (মনে রাখবেন যে x এর সর্বোত্তম মানটি y এর নমুনা অর্থ ছাড়া কিছুই নয় )। উত্তরটি হ্যাঁ, যদি আপনি λ i = 1 / i করতে দেনআমি1,2,এনএক্সএক্সYλআমি=1/আমি । দেখার জন্য, আমরা এটি প্রসারিত:

এক্সআমি=এক্সআমি-1-λআমি(এক্সআমি-1-Yআমি) এক্সআমি=এক্সআমি-1-1আমি(এক্সআমি-1-Yআমি) এক্সআমি=আমিএক্সআমি-1-(এক্সআমি-1-Yআমি)আমি এক্সআমি=(আমি-1)এক্সআমি-1+ +Yআমিআমি আমিএক্সআমি=(আমি-1)এক্সআমি-1+ +Yআমি 

শেষ সমীকরণটি চলমান গড়ের সূত্র ছাড়া আর কিছুই নয়! এইভাবে আমরা , আই = 2 , ইত্যাদি থেকে আই = এন এর সমস্ত উপায়ে সেটটি লুপ করি , আমরা প্রতিস্থাপন ছাড়াই আমাদের আপডেটগুলি সম্পাদন করতাম এবং আমাদের আপডেট সূত্রটি আমাদের এক্স এর সর্বোত্তম সমাধান দেয় যা হ'ল নমুনা গড়!আমি=1আমি=2আমি=এনএক্স

এনএক্সএন=(এন-1)এক্সএন-1+ +Yএন==>এক্সএন=1এনΣআমি=1এনYআমি=μ

এর বিপরীতে, যদি আমরা বাস্তবে প্রতিস্থাপনের সাথে আঁকতে পারি , তবে আমাদের অঙ্কনগুলি তখন সত্যই স্বাধীন হবে, অপ্টিমাইজড মান (অনুকূল) গড় μ থেকে আলাদা হবে এবং বর্গ ত্রুটিটি দেওয়া হবে:এক্সএনμ

{(এক্সএন-μ)2}

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

আশা করি এটি আরও কিছুটা স্পষ্ট করে!


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

@ বয়েরজ এই বিশেষ খেলনার উদাহরণ, হ্যাঁ। তবে কাগজটি আরও কিছু তাত্ত্বিক ক্ষেত্রে এটি প্রসারিত করতে চলেছে। আমি বিশ্বাস করি যে অন্যান্য উত্সগুলি [বাউটো আমি মনে করি] প্রতিস্থাপনের নমুনা উন্নততর না হওয়ার জন্য অনুপ্রেরণামূলক সমর্থন দেখায়।
তারিন জিয়াই

@ তারিনজিয়াই এই উত্তরের জন্য ধন্যবাদ - আপনি কি λ_ কে = 1 / কে স্পষ্ট করে বলতে পারেন? আমরা এখানে কোন কে, উপরের সমীকরণ থেকে কে সম্পর্কে কথা বলছি? আমি এখানে আপনাকে অনুসরণ করি নি, যা পরবর্তী সংক্ষেপণ এবং উপসংহার অনুসরণ করা কঠিন করে তুলেছে। ধন্যবাদ।
বোবো

1
@ বাবো আমি আজ রাতেই পোস্টটি পরিষ্কার করার চেষ্টা করব।
তারিন জিয়াই

1
@ বাবো আমি আমার উত্তরটি একগুচ্ছ আপডেট করেছি। দয়া করে একবার দেখুন এবং যদি তা সাহায্য করে তবে আমাকে জানান।
তারিন জিয়াই

5

নেলসনের সংগ্রহস্থলের কোড অনুসারে, মিনি-ব্যাচগুলি প্রতিস্থাপন ছাড়াই আঁকা:

    def SGD(self, training_data, epochs, mini_batch_size, eta, test_data=None):
    n = len(training_data)
    for j in range(epochs):
            random.shuffle(training_data)
            mini_batches = [
                training_data[k:k+mini_batch_size]
                for k in range(0, n, mini_batch_size)
            ]
            for mini_batch in mini_batches:
                self.update_mini_batch(mini_batch, eta)

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

** সম্পাদনা: আসলে, এই স্কেলিংটি def update_mini_batchফাংশনে ঘটে । উদাহরণস্বরূপ, ওজন সহ:

self.weights = [w-(eta/len(mini_batch))*nw for w, nw in zip(self.weights, nabla_w)]     

এটি প্রয়োজনীয় কারণ কারণ মিনি_বাচে প্রতি প্রশিক্ষণের নমুনার সংখ্যা উপলব্ধ মোট প্রশিক্ষণের নমুনার সমান পরিমাণে বিভক্ত না হলে সর্বশেষ মিনি_ব্যাচটি পূর্বের মিনি_বাচের চেয়ে ছোট হতে পারে।

mylist = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
n = len(mylist)
mini_batch_size = 2
mini_batches = [
    mylist[k:k+mini_batch_size]
    for k in range(0, n, mini_batch_size)
    ]
for mini_batch in mini_batches:
    print(mini_batch)

আউটপুট:

['1', '2']
['3', '4']
['5', '6']
['7', '8']
['9', '10']

পরিবর্তিত mini_batch_sizeহচ্ছে 3, যা আমাদের 10 প্রশিক্ষণের নমুনায় সমানভাবে বিভক্ত হয় না। আউটপুট জন্য আমরা পেতে:

['1', '2', '3']
['4', '5', '6']
['7', '8', '9']
['10']

যখন তালিকার সূচকের উপর (ফর্ম কিছু একটি সীমার মূল্যায়ন [x:y]যেখানে xএবং yতালিকায় কিছু সূচকের হয়), যদি আমাদের ডানদিকের মান তালিকা দৈর্ঘ্য অতিক্রম করেছে, পাইথন কেবল আইটেমের তালিকা থেকে ফেরৎ পর্যন্ত মান সূচক সীমার বাইরে যায় ।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.