ট্রান্সফার শেখার একটি দ্রুত গাইড এবং এটি আপনার নিউরাল নেটওয়ার্কে কীভাবে প্রয়োগ করা যায়

চিত্র শ্রেণিবদ্ধকরণ এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণের উদাহরণ

স্প্যানিশ ভাষাতেও উপলব্ধ তাম্বি dispন ডিসপোজেবল এন এস্পাওল

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

আনস্প্ল্যাশ-এ ডগ লিনস্টেটের ছবি

দ্রষ্টব্য: আমি এখানে যা বলি তার বেশিরভাগটি আমি সান ফ্রান্সিসকো বিশ্ববিদ্যালয়ের জেরেমি হাওয়ার্ড দ্বারা শেখানো ডিপ লার্নিং ফর কোডার্স কোর্স থেকে শিখেছি।

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

প্রথম বড় সুবিধাভোগী: কম্পিউটার ভিশন

এক মুহুর্তের জন্য কল্পনা করুন যে আমরা বিড়ালের জাতের মধ্যে পার্থক্য করতে পেরে চিত্রের শ্রেণিবিন্যাসের সমস্যার মুখোমুখি হয়েছি।

ব্র্যাডি গুচ্ছ, বিড়াল সংস্করণ

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

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

ইমেজনেটের ডেটার একটি নমুনা

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

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

উদাহরণ (ম্যাথওয়ার্কস)

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

ট্রান্সফার শেখার সাথে নিউরাল নেটওয়ার্কের প্রশিক্ষণের কৌশল strategy

স্থানান্তর শেখার মাধ্যমে যে কোনও নেটওয়ার্ককে প্রশিক্ষণ দেওয়ার সময় আমরা প্রায় জেনেরিক পদ্ধতিটি অনুসরণ করতে পারি follow আমরা একটি 2-পর্যায়ের কৌশল প্রয়োগ করব:

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

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

প্রাকৃতিক ভাষা প্রসেসিংয়ের জন্য স্থানান্তর শিক্ষা

কয়েক বছর আগে প্রাকৃতিক ভাষা প্রক্রিয়াজাতকরণ (এনএলপি) ক্ষেত্রে প্রাপ্ত উন্নয়নের পিছনে মূল কারণ হ'ল স্থানান্তর শিক্ষাও ছিল।

আমরা একটি অনুধাবন থেকে শুরু করি: সাধারণত আমাদের ডেটাসেট নির্দিষ্ট বিষয়ের মধ্যে সীমাবদ্ধ থাকবে এবং ভাষার পিছনে জটিলতা বুঝতে আমাদের অনুমতি দেওয়ার পক্ষে এটি এত বড় হবে না।

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

প্রাকৃতিক ভাষা প্রক্রিয়াজাতকরণ এত সহজ নয়

এই উদাহরণ এবং অন্যান্য অনুরূপ সমস্যার জন্য গৃহীত পদক্ষেপগুলি নিম্নলিখিত হবে:

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

আমাদের সমস্যা বা ডোমেন পরিবর্তিত হয়, যতক্ষণ না একই ভাষা ব্যবহৃত হয় ততক্ষণ এই প্রথম পদক্ষেপটির পুনরাবৃত্তি হবে না।

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

সম্পূর্ণ মডেল রাখার দরকার নেই; এটি এনকোডারটির সাথে যথেষ্ট, যা সেই ভাষা যা শিখেছিল (এবং পরবর্তী শব্দটি তৈরি করে এমনটি নয়)।

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

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

ইমেজটি ফাস্ট.এই থেকে স্থানান্তরিত হয়েছে

প্রথম পর্যায়ে আমরা কেবল সংযুক্ত স্তরগুলিকে প্রশিক্ষণ দেব। আমরা দ্বিতীয় ধাপে প্রশিক্ষণ অবিরত করব তবে চিত্রের শ্রেণিবিন্যাসের মতো আমরা পুরো নেটওয়ার্কটিকে একবারে শিথিল না করে; প্রথমে আমরা বেস আর্কিটেকচারের শেষ স্তরগুলিকে জমাট বেঁধে দেব এবং এটি কিছুক্ষণের জন্য প্রশিক্ষণ দেব ... তারপরে আমরা আরও কয়েকটি স্তর আনলক করব এবং আরও একটি প্রশিক্ষণ দেব ... এবং এটিকে পুরোপুরি নিথর করে রাখা এবং এটি শেষবারের জন্য প্রশিক্ষণ না দেওয়া পর্যন্ত।

এই পয়েন্টের পরে ফলাফলের মডেল ইতিমধ্যে একটি পর্যালোচনা ইতিবাচক বা নেতিবাচক কিনা তা সনাক্ত করতে সক্ষম হবে :)

উপসংহার

আমরা যখন ইমেজ বা পাঠ্য সম্পর্কিত কোনও মেশিন লার্নিংয়ের সমস্যায় কাজ করি তখন আমাদের নিউরাল নেটওয়ার্ক পরামিতিগুলির সূচনা করার জন্য স্থানান্তর শিক্ষার বিষয়টি বিবেচনা করা সর্বদা সুবিধাজনক।

এই ক্ষেত্রগুলির মধ্যে ফ্রেমযুক্ত সমস্যাগুলি সমাধান করার জন্য, আমরা অনেকগুলি প্রাক-প্রশিক্ষিত মডেল গণনা করি যা আমাদের জন্য খুব কার্যকর হবে; আমাদের কেবলমাত্র সঠিকটি নির্বাচন করতে হবে:

  • কম্পিউটার ভিশন: পাইটর্চ, কেরাসের মডেল
  • প্রাকৃতিক ভাষা প্রক্রিয়াজাতকরণ: ট্রান্সফরমার ([*] বিইআরটি, জিপিটি -২,…), ইউএলএমফাইটি ইত্যাদি etc.
আর্নি, এলমো এবং বার্ট

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

পিএস- ফাস্টাই ব্যবহার করে পূর্ণ উদাহরণের জন্য এই পাইথন নোটবুকগুলি একবার দেখুন: চিত্রের শ্রেণিবিন্যাস + আইএমডিবি পর্যালোচনা শ্রেণিবদ্ধকরণ।

আমি আশা করি তুমি এটা পছন্দ করেছিলে! # ইয়ত্তাবাইটে সাবস্ক্রাইব করুন যাতে আপনি এটির মতো নিবন্ধগুলি মিস করবেন না :)