আসুন ধরে নেওয়া যাক যে আমি এন স্যাম্পল রয়েছে এমন একটি ডেটাসেট ব্যবহার করে স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত আলগরিদমকে প্রশিক্ষণ দিতে চাই। যেহেতু ডেটাসেটের আকার স্থির হয়ে গেছে, তাই আমি টি টি বার পুনরায় ব্যবহার করব। প্রতিটি পুনরাবৃত্তি বা "যুগ" এ, আমি প্রতিটি প্রশিক্ষণের নমুনা এলোমেলোভাবে পুরো প্রশিক্ষণের সেটটিকে পুনরায় অর্ডার করার পরে একবার ব্যবহার করি।
আমার বাস্তবায়ন পাইথন এবং নম্পির উপর ভিত্তি করে। সুতরাং, ভেক্টর অপারেশনগুলি ব্যবহার করে গণনার সময় উল্লেখযোগ্যভাবে হ্রাস পেতে পারে। ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত একটি ভেক্টরাইজড বাস্তবায়ন নিয়ে আসা বেশ সোজা is যাইহোক, স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত ক্ষেত্রে আমি প্রতিটি আখের সমস্ত নমুনার মাধ্যমে পুনরাবৃত্তি হওয়া বাহ্যিক লুপটি কীভাবে এড়াতে পারি তা বুঝতে পারি না।
কেউ কি স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূতকরণের কোনও ভেক্টরাইজড বাস্তবায়ন জানেন?
সম্পাদনা : আমাকে জিজ্ঞাসা করা হয়েছে কেন আমার ডেটাসেটের আকার ঠিক করা থাকলে আমি কেন অনলাইন গ্রেডিয়েন্ট বংশদ্ভুত ব্যবহার করতে চাই।
[১] থেকে, কেউ দেখতে পাচ্ছেন যে অনলাইন গ্রেডিয়েন্ট বংশোদ্ভূত ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত থেকে কম অভিজ্ঞতাবাদী ব্যয়ের সর্বনিম্নে রূপান্তরিত করে। তবে, এটি প্রত্যাশিত ব্যয়ের সর্বনিম্নে দ্রুত রূপান্তর করে, যা সাধারণীকরণের কর্মক্ষমতা পরিমাপ করে। আমি ক্রস বৈধতার মাধ্যমে আমার বিশেষ সমস্যায় এই তাত্ত্বিক ফলাফলগুলির প্রভাব পরীক্ষা করতে চাই। একটি ভেক্টরাইজড বাস্তবায়ন ব্যতীত, আমার অনলাইন গ্রেডিয়েন্ট বংশোদ্ভূত কোডটি ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভুতের তুলনায় অনেক ধীর। ক্রস বৈধকরণ প্রক্রিয়াটি সম্পন্ন হওয়ার জন্য এটি উল্লেখযোগ্যভাবে সময় বাড়ায়।
সম্পাদনা : বন্ধুর অনুরোধ অনুসারে আমি এখানে আমার অন-লাইনের গ্রেডিয়েন্ট বংশোদ্ভূত বাস্তবায়নের সিউডোকোড অন্তর্ভুক্ত করেছি। আমি একটি রিগ্রেশন সমস্যা সমাধান করছি।
Method: on-line gradient descent (regression)
Input: X (nxp matrix; each line contains a training sample, represented as a length-p vector), Y (length-n vector; output of the training samples)
Output: A (length-p+1 vector of coefficients)
Initialize coefficients (assign value 0 to all coefficients)
Calculate outputs F
prev_error = inf
error = sum((F-Y)^2)/n
it = 0
while abs(error - prev_error)>ERROR_THRESHOLD and it<=MAX_ITERATIONS:
Randomly shuffle training samples
for each training sample i:
Compute error for training sample i
Update coefficients based on the error above
prev_error = error
Calculate outputs F
error = sum((F-Y)^2)/n
it = it + 1
[1] "বৃহত্তর স্কেল অনলাইন লার্নিং", এল। বোটোউ, ওয়াই লে কান, এনআইপিএস 2003।