নিউরাল নেটওয়ার্কগুলিতে ট্রেন, বৈধতা এবং পরীক্ষার সেটের মধ্যে পার্থক্য কী?


155

আমি একটি পাঠ্য এজেন্ট বাস্তবায়নের জন্য এই লাইব্রেরিটি ব্যবহার করছি ।

আমি প্রশিক্ষণের কেস তৈরি করেছি, তবে যাচাইকরণ এবং পরীক্ষার সেটগুলি কী তা আমি নিশ্চিতভাবে জানি না।
শিক্ষক বলেছেন:

70% ট্রেনের কেস হওয়া উচিত, 10% পরীক্ষার ক্ষেত্রে এবং বাকী 20% টি বৈধতার ক্ষেত্রে হওয়া উচিত।

সম্পাদন করা

প্রশিক্ষণের জন্য আমার কাছে এই কোড রয়েছে তবে কখন প্রশিক্ষণ বন্ধ করবেন তা আমার কোনও ধারণা নেই ।

  def train(self, train, validation, N=0.3, M=0.1):
    # N: learning rate
    # M: momentum factor
    accuracy = list()
    while(True):
        error = 0.0
        for p in train:
            input, target = p
            self.update(input)
            error = error + self.backPropagate(target, N, M)
        print "validation"
        total = 0
        for p in validation:
            input, target = p
            output = self.update(input)
            total += sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between target and output

        accuracy.append(total)
        print min(accuracy)
        print sum(accuracy[-5:])/5
        #if i % 100 == 0:
        print 'error %-14f' % error
        if ? < ?:
            break

সম্পাদন করা

আমি বৈধতা ডেটা দিয়ে 0.2 এর গড় ত্রুটি পেতে পারি, সম্ভবত 20 প্রশিক্ষণের পুনরাবৃত্তির পরে, এটি 80% হওয়া উচিত?

বৈধতা ডেটা ইনপুট / বৈধতা ডেটার আকার দেওয়া, গড় ত্রুটি = বৈধতা লক্ষ্য এবং আউটপুট মধ্যে নিখুঁত পার্থক্যের যোগফল।

1
        avg error 0.520395 
        validation
        0.246937882684
2
        avg error 0.272367   
        validation
        0.228832420879
3
        avg error 0.249578    
        validation
        0.216253590304
        ...
22
        avg error 0.227753
        validation
        0.200239244714
23
        avg error 0.227905    
        validation
        0.199875013416

1
"... এটি ৮০% হওয়া উচিত?" না, গড় ত্রুটি এবং শতাংশ সঠিক দুটি পৃথক জিনিস। মনে করুন আপনার টার্গেটের মান 5.0 এবং আপনার নিউরনটি 4.8 (মানে 0.2 এর একটি ত্রুটি) ফিরে এসেছে। ডেটা উপর নির্ভর করে 0.2 এর একটি ত্রুটি গ্রহণযোগ্য হতে পারে, তাই যদি ত্রুটিটি যথেষ্ট ছোট হয় তবে আপনি সেই উদাহরণটি সঠিকভাবে নির্দিষ্ট বিবেচনা করতে পারেন। সুতরাং আপনার যদি 10 টি লক্ষ্যমাত্রা থাকে এবং এর মধ্যে 7 টির জন্য আপনার শ্রেণিবিন্যাস ত্রুটিটি গ্রহণযোগ্য সীমার মধ্যে ছিল, তবে আপনি 70% ডেটা সঠিকভাবে শ্রেণিবদ্ধ করেছেন।
কিরিল

আপনার শিক্ষকের দ্বারা সমাপ্তির মানদণ্ড কী প্রয়োজন?
কিরিল

উত্তর:


292

প্রশিক্ষণ এবং বৈধতা সেট প্রশিক্ষণের সময় ব্যবহৃত হয়।

for each epoch
    for each training data instance
        propagate error through the network
        adjust the weights
        calculate the accuracy over training data
    for each validation data instance
        calculate the accuracy over the validation data
    if the threshold validation accuracy is met
        exit training
    else
        continue training

একবার আপনি প্রশিক্ষণ শেষ করার পরে, আপনি নিজের পরীক্ষার সেটটির বিরুদ্ধে চলে যান এবং যাচাই করে নিন যে যথার্থতা যথেষ্ট।

প্রশিক্ষণ সেট : এই ডেটা সেটটি নিউরাল নেটওয়ার্কের ওজন সামঞ্জস্য করতে ব্যবহৃত হয়।

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

টেস্টিং সেট : নেটওয়ার্কের আসল ভবিষ্যদ্বাণীক শক্তিটি নিশ্চিত করতে এই ডেটা সেটটি কেবলমাত্র চূড়ান্ত সমাধানের পরীক্ষার জন্য ব্যবহৃত হয়।


এর অজগর: xi কেবল একটি স্টপ মাপদণ্ড পেতে পারে না .. মানগুলি রূপান্তরিত হয় .. তবে সর্বদা কিছুটা ওঠানামা করে ..
ড্যানিয়েল

@ ড্যানিয়েল, প্রশিক্ষণের সঠিকতা কি ওঠানামা করে বা বৈধতার যথাযথতা ওঠানামা করে? আপনার বৈধতার যথাযথতা ওঠানামা সম্ভব, তবে প্রশিক্ষণের নির্ভুলতা ওঠানামা করার সম্ভাবনা কম। আপনি যখন "ইনপুট, টার্গেট = পি" বলছেন তার অর্থ কি আপনি উভয়কে পি তে সেট করছেন?
কিরিল

আমি পাইথনের সাথে খুব ভাল নই, সুতরাং কোডটি আমার কাছে কিছুটা বিভ্রান্তিকর দেখাচ্ছে ... সাধারণভাবে আপনি যখন আপনার বৈধতার যথার্থতা একটি নির্দিষ্ট প্রান্তিকতার সাথে পূরণ করেন তখন আপনি প্রশিক্ষণ বন্ধ করতে চান, 70% বা 90% বলুন, ডোমেনটির জন্য যা কিছু বোঝায় না কেন আপনার তথ্য
কিরিল

5
বৈধকরণ সেট প্রশিক্ষণের প্রক্রিয়াতে ব্যবহৃত হয়। টেস্ট সেট হয় না। পরীক্ষার সেটটি ১) প্রশিক্ষণের সেট যথেষ্ট ছিল কিনা তা দেখার অনুমতি দেয় এবং ২) বৈধতা সেটটি ওভারফিটিং প্রতিরোধের কাজ করেছিল কিনা। আপনি যদি প্রশিক্ষণের প্রক্রিয়াতে টেস্টিং সেটটি ব্যবহার করেন তবে এটি কেবলমাত্র অন্য একটি বৈধতা সেট হয়ে যাবে এবং নেটওয়ার্কে নতুন ডেটা ফিড করার পরে কী হবে তা তা দেখাবে না।
অ্যান্টন অ্যান্ড্রিভ

2
@ অ্যান্টনআন্দ্রিভ আমি পেলাম না। আপনার উত্তর অনুসারে, নিউরাল নেটওয়ার্কের ওজন অনুসারে validation setবা না test setউভয়ই ব্যবহৃত হয় না। আপনি কেন একই ডেটা সেট ব্যবহার করতে পারবেন না, ওজনকে প্রশিক্ষণের জন্য ব্যবহার করেন নি, validation setএবং হিসাবে test set? তাদের আলাদা রেখে কী লাভ হয়?
গিলি

77

প্রশিক্ষণ সেট : শেখার জন্য ব্যবহৃত উদাহরণগুলির একটি সেট, যা শ্রেণিবদ্ধের পরামিতিগুলির [যেমন, ওজন] মাপসই করে।

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

পরীক্ষার সেট : উদাহরণগুলির একটি সেট কেবল সম্পূর্ণ নির্দিষ্ট শ্রেণিবদ্ধের পারফরম্যান্স [সাধারণীকরণ] মূল্যায়নের জন্য ব্যবহৃত হয়।

Ftp://ftp.sas.com/pub/neural/ FAQ1.txt বিভাগ থেকে " জনসংখ্যা, নমুনা, প্রশিক্ষণ সেট, নকশা সেট, বৈধতা কী "

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

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

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

সম্পাদনা করুন:

এছাড়াও, যদি কোনও বৈধতা সেট করার জন্য আপনার কাছে পর্যাপ্ত ডেটা না থাকে তবে আপনি পরামিতিগুলি সুর করার পাশাপাশি পরীক্ষার ত্রুটিটি অনুমান করার জন্য ক্রসওয়েডেশন ব্যবহার করতে পারেন ।


11
আমি জানি আমি এর মতো অর্থহীন মন্তব্য পোস্ট করার কথা নয়, তবে আপনাকে বলতে চেয়েছিলাম যে আমি এই উত্তরটির প্রশংসা করি :)
লামেজেডন

6

মডেল নির্বাচনের জন্য ক্রস-বৈধকরণ সেট ব্যবহার করা হয়, উদাহরণস্বরূপ, প্রদত্ত প্যারামিটার সেটের জন্য সর্বনিম্ন পরিমাণের ত্রুটিযুক্ত বহুপদী মডেল নির্বাচন করুন। পরীক্ষার সেটটি নির্বাচিত মডেলটিতে সাধারণকরণ ত্রুটিটি রিপোর্ট করার জন্য ব্যবহৃত হয়। এখান থেকে: https://www.coursera.org/learn/machine-learning/lecture/QGKbr/model-selection-and-train-)ation-test-sets


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

4

আমরা একটি বৈধতা সেট সেট

  • প্রশিক্ষণের সময় কোনও মডেল কতটা জেনারেল করে তোলে তা পরিমাপ করুন
  • কোনও মডেলকে প্রশিক্ষণ দেওয়া কখন বন্ধ করবেন তা আমাদের বলুন; যখন বৈধতা ক্ষয় হ্রাস বন্ধ হয় (এবং বিশেষত যখন বৈধতা হ্রাস বৃদ্ধি শুরু হয় এবং প্রশিক্ষণের ক্ষতি এখনও কমতে থাকে)

কেন বৈধতা সেট ব্যবহার :

কেন বৈধতা সেট ব্যবহার


2

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

একটি সাধারণ সমাধান হ'ল একটি বৈধতা সেট তৈরি করতে প্রশিক্ষণ সেটটিকে আরও বিভক্ত করা । এখন তোমার আছে

  • প্রশিক্ষণ সেট
  • পরীক্ষার সেট
  • বৈধতা সেট

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

যাচাইকরণ সেটটিতে আপনি সর্বোত্তম পারফর্মিং মডেলটি নির্বাচন করার পরে, আপনি পুরো প্রশিক্ষণের সেটটিতে সেরা মডেলটিকে প্রশিক্ষণ দিন (ভ্যালিডা টিউন সেট সহ), এবং এটি আপনাকে চূড়ান্ত মডেল দেয়।

সর্বশেষে, আপনি সাধারণীকরণ ত্রুটির একটি অনুমান পেতে পরীক্ষার এই চূড়ান্ত মডেলটি মূল্যায়ন করেন।


0

প্রশিক্ষণ ডেটাসেট : মডেল ফিট করতে ব্যবহৃত ডেটার নমুনা।

বৈধতা ডেটাসেট : মডেল হাইপারপ্যারামিটারগুলি সুর করার সময় প্রশিক্ষণের ডেটাসেটে কোনও মডেলের নিরপেক্ষ মূল্যায়ন সরবরাহ করতে ব্যবহৃত ডেটার নমুনা। মডেল কনফিগারেশনে বৈধতা ডেটাসেটের দক্ষতা অন্তর্ভুক্ত হওয়ায় মূল্যায়ন আরও পক্ষপাতদুষ্ট হয়ে ওঠে।

পরীক্ষা ডেটাসেট : ডেটা নমুনা প্রশিক্ষণ ডেটাসেট ফিট একটি চূড়ান্ত মডেল নিরপেক্ষ মূল্যায়ন প্রদান করতে ব্যবহৃত।


-15

সহজ কথায় প্রশিক্ষণ সেট, পরীক্ষার সেট, বৈধকরণ সেট সংজ্ঞায়িত করুন

প্রশিক্ষণ সেট: নিকটবর্তী প্রতিবেশীদের সন্ধানের জন্য ব্যবহৃত হয়। বৈধতা সেট: ট্রেন সেট প্রয়োগ করা হয় যা বিভিন্ন কে খুঁজে পেতে জন্য। পরীক্ষার সেট: ভবিষ্যতে সর্বাধিক নির্ভুলতা এবং অদেখা ডেটা সন্ধানের জন্য ব্যবহৃত হয়।

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