একটি প্রথম নিউরাল নেটওয়ার্ক
এই অনুশীলনে, আমরা আমাদের প্রথম ছোট নিউরাল নেট প্রশিক্ষণ দেব। নিউরাল নেট আমাদের সুস্পষ্ট বৈশিষ্ট্য ক্রস ব্যবহার না করে অরৈখিক মডেল শেখার একটি উপায় দেবে।
টাস্ক 1: প্রদত্ত মডেলটি আমাদের দুটি ইনপুট বৈশিষ্ট্যকে একক নিউরনে একত্রিত করে। এই মডেল কোন অরৈখিকতা শিখতে হবে? আপনার অনুমান নিশ্চিত করতে এটি চালান.
টাস্ক 2: লুকানো স্তরে নিউরনের সংখ্যা 1 থেকে 2 পর্যন্ত বাড়ানোর চেষ্টা করুন এবং একটি লিনিয়ার অ্যাক্টিভেশন থেকে ReLU-এর মতো ননলাইনার অ্যাক্টিভেশনে পরিবর্তন করার চেষ্টা করুন। আপনি কি এমন একটি মডেল তৈরি করতে পারেন যা অরৈখিকতা শিখতে পারে? এটি কার্যকরভাবে ডেটা মডেল করতে পারে?
টাস্ক 3: লুকানো স্তরে নিউরনের সংখ্যা 2 থেকে 3 বাড়ানোর চেষ্টা করুন, ReLU এর মতো একটি ননলাইনার অ্যাক্টিভেশন ব্যবহার করে। এটি কার্যকরভাবে ডেটা মডেল করতে পারে? কিভাবে মডেল গুণমান রান থেকে রান পরিবর্তিত হয়?
টাস্ক 4: প্রতি স্তরে লুকানো স্তর এবং নিউরন যোগ বা মুছে পরীক্ষা চালিয়ে যান। এছাড়াও শেখার হার, নিয়মিতকরণ এবং অন্যান্য শেখার সেটিংস পরিবর্তন করতে দ্বিধা বোধ করুন। আপনি ব্যবহার করতে পারেন এমন নিউরন এবং স্তরগুলির ক্ষুদ্রতম সংখ্যা কী যা 0.177 বা তার কম পরীক্ষা ক্ষতি দেয়?
মডেলের আকার বাড়ানো কি ফিট উন্নত করে, বা এটি কত দ্রুত একত্রিত হয়? এটি কি পরিবর্তন করে কত ঘন ঘন এটি একটি ভাল মডেলে রূপান্তরিত হয়? উদাহরণস্বরূপ, নিম্নলিখিত আর্কিটেকচার চেষ্টা করুন:
- 3টি নিউরন সহ প্রথম লুকানো স্তর।
- 3টি নিউরন সহ দ্বিতীয় লুকানো স্তর।
- ২টি নিউরন সহ তৃতীয় লুকানো স্তর।
(উত্তরগুলি অনুশীলনের ঠিক নীচে প্রদর্শিত হবে।)
টাস্ক 1 এর উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
অ্যাক্টিভেশনটি লিনিয়ারে সেট করা হয়েছে, তাই এই মডেলটি কোনো অরৈখিকতা শিখতে পারে না। ক্ষতি খুব বেশি, এবং আমরা বলি যে মডেলটি ডেটা কমিয়েছে ৷
টাস্ক 2-এর উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
ননলাইনার অ্যাক্টিভেশন ফাংশন ননলাইনার মডেল শিখতে পারে। যাইহোক, 2টি নিউরন সহ একটি একক লুকানো স্তর এই ডেটা সেটের সমস্ত অরৈখিকতা প্রতিফলিত করতে পারে না, এবং এমনকি শব্দ ছাড়াই উচ্চ ক্ষতি হবে: এটি এখনও ডেটাকে কম করে। এই ব্যায়ামগুলি অনির্ধারিত, তাই কিছু রান একটি কার্যকর মডেল শিখবে না, অন্য রানগুলি বেশ ভাল কাজ করবে। সেরা মডেলের আকৃতি আপনার প্রত্যাশা নাও থাকতে পারে!
টাস্ক 3 এর উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
খেলার মাঠের অনির্ধারিত প্রকৃতি এই অনুশীলনের মাধ্যমে উজ্জ্বল হয়। 3টি নিউরন সহ একটি একক লুকানো স্তর ডেটা সেট (অনুপস্থিত শব্দ) মডেল করার জন্য যথেষ্ট, তবে সমস্ত রান একটি ভাল মডেলে একত্রিত হবে না।
3টি নিউরন যথেষ্ট কারণ XOR ফাংশনটি 3টি অর্ধ-প্লেন (ReLU অ্যাক্টিভেশন) এর সংমিশ্রণ হিসাবে প্রকাশ করা যেতে পারে। আপনি নিউরনের চিত্রগুলি দেখে এটি দেখতে পারেন, যা পৃথক নিউরনের আউটপুট দেখায়। 3টি নিউরন এবং ReLU অ্যাক্টিভেশন সহ একটি ভাল মডেলে, প্রায় উল্লম্ব রেখা সহ 1টি চিত্র থাকবে, X 1 ইতিবাচক (বা ঋণাত্মক; চিহ্নটি পরিবর্তন করা যেতে পারে), 1টি চিত্র প্রায় অনুভূমিক রেখা সহ, চিহ্ন সনাক্ত করবে X 2 , এবং 1 চিত্র একটি তির্যক রেখা সহ, তাদের মিথস্ক্রিয়া সনাক্ত করছে।
যাইহোক, সমস্ত রান একটি ভাল মডেলে একত্রিত হবে না। কিছু রান 2টি নিউরন সহ একটি মডেলের চেয়ে ভাল করবে না এবং আপনি এই ক্ষেত্রে ডুপ্লিকেট নিউরন দেখতে পাবেন।
টাস্ক 4 এর উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
3টি নিউরন সহ একটি একক লুকানো স্তর ডেটা মডেল করতে পারে, তবে কোনও অপ্রয়োজনীয়তা নেই, তাই অনেক রানে এটি কার্যকরভাবে একটি নিউরন হারাবে এবং একটি ভাল মডেল শিখবে না। 3টিরও বেশি নিউরন সহ একটি একক স্তরের অপ্রয়োজনীয়তা রয়েছে এবং এইভাবে একটি ভাল মডেলে রূপান্তরিত হওয়ার সম্ভাবনা বেশি।
আমরা যেমন দেখেছি, শুধুমাত্র 2টি নিউরন সহ একটি একক লুকানো স্তর ডেটা ভালভাবে মডেল করতে পারে না। আপনি যদি এটি চেষ্টা করেন, তাহলে আপনি দেখতে পাবেন যে আউটপুট স্তরের সমস্ত আইটেমগুলি শুধুমাত্র সেই দুটি নোডের লাইনগুলির দ্বারা গঠিত আকার হতে পারে। এই ক্ষেত্রে, একটি গভীর নেটওয়ার্ক একা প্রথম লুকানো স্তরের তুলনায় ডেটা সেটকে আরও ভাল মডেল করতে পারে: দ্বিতীয় স্তরের পৃথক নিউরনগুলি প্রথম স্তরে নিউরনগুলিকে একত্রিত করে উপরের-ডান চতুর্ভুজের মতো আরও জটিল আকারের মডেল করতে পারে। দ্বিতীয় লুকানো স্তরটি যোগ করার সময়ও শুধুমাত্র প্রথম লুকানো স্তরের তুলনায় ডেটা সেটটিকে আরও ভাল মডেল করতে পারে, এটি প্রথম স্তরে আরও নোড যুক্ত করতে আরও বেশি বোধগম্য হতে পারে যাতে দ্বিতীয় স্তরটি তার আকারগুলি তৈরি করে সেই কিটের অংশ হতে দেয়। .
যাইহোক, প্রথম লুকানো স্তরে 1 নিউরন সহ একটি মডেল একটি ভাল মডেল শিখতে পারে না তা যতই গভীর হোক না কেন। এর কারণ হল প্রথম স্তরের আউটপুট শুধুমাত্র একটি মাত্রার সাথে পরিবর্তিত হয় (সাধারণত একটি তির্যক রেখা), যা এই ডেটা সেটটিকে ভালভাবে মডেল করার জন্য যথেষ্ট নয়। পরবর্তী স্তরগুলি এর জন্য ক্ষতিপূরণ দিতে পারে না, তা যতই জটিল হোক না কেন; ইনপুট ডেটার তথ্য অপূরণীয়ভাবে হারিয়ে গেছে।
যদি একটি ছোট নেটওয়ার্ক করার চেষ্টা করার পরিবর্তে, আমাদের কাছে প্রচুর নিউরন সহ অনেকগুলি স্তর থাকে, এইরকম একটি সাধারণ সমস্যার জন্য? ঠিক আছে, যেমনটি আমরা দেখেছি, প্রথম স্তরটিতে অনেকগুলি বিভিন্ন লাইনের ঢাল চেষ্টা করার ক্ষমতা থাকবে। এবং দ্বিতীয় স্তরটি পরবর্তী স্তরগুলির মধ্য দিয়ে নীচের দিকে প্রচুর এবং প্রচুর আকার সহ তাদের প্রচুর বিভিন্ন আকারে জমা করার ক্ষমতা থাকবে।
মডেলটিকে অনেকগুলি বিভিন্ন লুকানো নিউরনের মাধ্যমে অনেকগুলি বিভিন্ন আকার বিবেচনা করার অনুমতি দিয়ে, আপনি ট্রেনিং সেটের গোলমালের উপর সহজেই অতিরিক্ত ফিটিং শুরু করার জন্য মডেলটির জন্য পর্যাপ্ত জায়গা তৈরি করেছেন, এই জটিল আকারগুলিকে প্রশিক্ষণের ডেটার সাথে মেলে। সাধারণীকৃত স্থল সত্যের পরিবর্তে। এই উদাহরণে, সুনির্দিষ্ট ডেটা পয়েন্টের সাথে মেলে বড় মডেলের জটিল সীমানা থাকতে পারে। চরম ক্ষেত্রে, একটি বড় মডেল গোলমালের একটি পৃথক বিন্দুর চারপাশে একটি দ্বীপ শিখতে পারে, যাকে ডেটা মুখস্থ করা বলা হয়। মডেলটিকে এত বড় হওয়ার অনুমতি দিয়ে, আপনি দেখতে পাবেন যে এটি প্রায়শই সমস্যা সমাধানের জন্য যথেষ্ট নিউরন সহ সহজ মডেলের চেয়ে খারাপ কাজ করে।
নিউরাল নেট ইনিশিয়ালাইজেশন
এই ব্যায়ামটি আবার XOR ডেটা ব্যবহার করে, কিন্তু নিউরাল নেট প্রশিক্ষণের পুনরাবৃত্তিযোগ্যতা এবং প্রাথমিককরণের গুরুত্বের দিকে নজর দেয়।
টাস্ক 1: চার বা পাঁচবার দেওয়া মডেলটি চালান। প্রতিটি ট্রায়ালের আগে, একটি নতুন র্যান্ডম ইনিশিয়ালাইজেশন পেতে নেটওয়ার্ক রিসেট বোতাম টিপুন। ( নেটওয়ার্ক রিসেট বোতামটি প্লে বোতামের ঠিক বাম দিকে বৃত্তাকার রিসেট তীর।) কনভারজেন্স নিশ্চিত করতে প্রতিটি ট্রায়ালকে কমপক্ষে 500টি ধাপে চলতে দিন। প্রতিটি মডেলের আউটপুট কোন আকারে একত্রিত হয়? এটি অ-উত্তল অপ্টিমাইজেশানে প্রাথমিককরণের ভূমিকা সম্পর্কে কী বলে?
টাস্ক 2: একটি স্তর এবং কয়েকটি অতিরিক্ত নোড যোগ করে মডেলটিকে আরও জটিল করার চেষ্টা করুন। টাস্ক 1 থেকে ট্রায়ালগুলি পুনরাবৃত্তি করুন। এটি কি ফলাফলগুলিতে কোনও অতিরিক্ত স্থিতিশীলতা যোগ করে?
(উত্তরগুলি অনুশীলনের ঠিক নীচে প্রদর্শিত হবে।)
টাস্ক 1 এর উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
শেখা মডেল প্রতিটি রান বিভিন্ন আকার ছিল. একত্রিত পরীক্ষার ক্ষতি সর্বনিম্ন থেকে সর্বোচ্চ পর্যন্ত প্রায় 2X পরিবর্তিত হয়েছে।
টাস্ক 2-এর উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
স্তর এবং অতিরিক্ত নোড যোগ করার ফলে আরও পুনরাবৃত্তিযোগ্য ফলাফল পাওয়া যায়। প্রতিটি রানে, ফলস্বরূপ মডেলটি মোটামুটি একই রকম দেখায়। উপরন্তু, একত্রিত টেস্ট ক্ষতি রানের মধ্যে কম পার্থক্য দেখায়।
নিউরাল নেট স্পাইরাল
এই ডেটা সেটটি একটি গোলমাল সর্পিল। স্পষ্টতই, একটি রৈখিক মডেল এখানে ব্যর্থ হবে, কিন্তু এমনকি ম্যানুয়ালি সংজ্ঞায়িত বৈশিষ্ট্য ক্রস নির্মাণ করা কঠিন হতে পারে।
টাস্ক 1: শুধুমাত্র X 1 এবং X 2 ব্যবহার করে আপনি যে সেরা মডেলটি করতে পারেন তা প্রশিক্ষণ দিন৷ স্তর এবং নিউরন যোগ করতে বা অপসারণ করতে নির্দ্বিধায়, শেখার হার, নিয়মিতকরণের হার এবং ব্যাচের আকারের মতো শেখার সেটিংস পরিবর্তন করুন। আপনি পেতে পারেন সেরা পরীক্ষা ক্ষতি কি? মডেল আউটপুট পৃষ্ঠ কতটা মসৃণ?
টাস্ক 2: এমনকি নিউরাল নেটগুলির সাথেও, সেরা পারফরম্যান্স অর্জনের জন্য প্রায়শই কিছু পরিমাণ ফিচার ইঞ্জিনিয়ারিং প্রয়োজন হয়। অতিরিক্ত ক্রস পণ্য বৈশিষ্ট্য বা অন্যান্য রূপান্তর যেমন sin(X 1 ) এবং sin(X 2 ) যোগ করার চেষ্টা করুন। আপনি একটি ভাল মডেল পেতে? মডেল আউটপুট পৃষ্ঠ কোন মসৃণ?
(উত্তরগুলি অনুশীলনের ঠিক নীচে প্রদর্শিত হবে।)
সম্ভাব্য উত্তরের জন্য প্লাস আইকনে ক্লিক করুন।
নিম্নোক্ত ভিডিওটি খেলার মাঠে হাইপারপ্যারামিটার বাছাই করে কিভাবে সর্পিল ডেটার জন্য একটি মডেলকে প্রশিক্ষণ দিতে হয় যা পরীক্ষার ক্ষতি কমিয়ে দেয়।
নিউরাল নেট স্পাইরাল সলিউশন