স্পারসিটির জন্য নিয়মিতকরণ: L₁ নিয়মিতকরণ

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

একটি উচ্চ-মাত্রিক স্পার্স ভেক্টরে, যেখানে সম্ভব সেখানে ওজন ঠিক 0 এ নেমে যেতে উত্সাহিত করা ভাল হবে। ঠিক 0 এর ওজন মূলত মডেল থেকে সংশ্লিষ্ট বৈশিষ্ট্যটি সরিয়ে দেয়। বৈশিষ্ট্যগুলিকে শূন্য করা RAM সংরক্ষণ করবে এবং মডেলের শব্দ কমাতে পারে।

উদাহরণস্বরূপ, একটি হাউজিং ডেটা সেট বিবেচনা করুন যা কেবল ক্যালিফোর্নিয়া নয় সমগ্র বিশ্বকে কভার করে। বিশ্বব্যাপী অক্ষাংশকে মিনিট স্তরে বাকেটিং করা (প্রতি ডিগ্রী 60 মিনিট) একটি স্পার্স এনকোডিংয়ে প্রায় 10,000 মাত্রা দেয়; মিনিট পর্যায়ে বিশ্বব্যাপী দ্রাঘিমাংশ প্রায় 20,000 মাত্রা দেয়। এই দুটি বৈশিষ্ট্যের একটি বৈশিষ্ট্য ক্রস মোটামুটি 200,000,000 মাত্রা হবে। এই 200,000,000 মাত্রাগুলির মধ্যে অনেকগুলি এমন সীমিত বাসস্থানের অঞ্চলগুলিকে প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, সমুদ্রের মাঝখানে) যে ডেটা কার্যকরভাবে সাধারণীকরণের জন্য ব্যবহার করা কঠিন হবে৷ এই অপ্রয়োজনীয় মাত্রাগুলি সঞ্চয় করার জন্য র‌্যাম খরচ পরিশোধ করা বোকামি হবে। অতএব, অর্থহীন মাত্রার ওজনগুলিকে ঠিক 0-এ নেমে যাওয়ার জন্য উত্সাহিত করা ভাল হবে, যা আমাদের অনুমানের সময়ে এই মডেল সহগগুলির স্টোরেজ খরচের জন্য অর্থ প্রদান এড়াতে দেয়।

আমরা একটি উপযুক্তভাবে নির্বাচিত নিয়মিতকরণ শব্দ যোগ করে প্রশিক্ষণের সময়ে করা অপ্টিমাইজেশান সমস্যাটিতে এই ধারণাটিকে এনকোড করতে সক্ষম হতে পারি।

L 2 নিয়মিতকরণ কি এই কাজটি সম্পন্ন করবে? দুর্ভাগ্যবশত না. L 2 নিয়মিতকরণ ওজনগুলিকে ছোট হতে উত্সাহিত করে, কিন্তু তাদের ঠিক 0.0 করতে বাধ্য করে না।

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

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

এল 1 বনাম এল 2 নিয়মিতকরণ।

L 2 এবং L 1 ওজনকে ভিন্নভাবে শাস্তি দেয়:

  • L 2 ওজন 2 শাস্তি দেয়।
  • L 1 শাস্তি | ওজন |।

ফলস্বরূপ, L 2 এবং L 1 এর বিভিন্ন ডেরিভেটিভ রয়েছে:

  • L 2 এর ডেরিভেটিভ হল 2 * ওজন
  • L 1 এর ডেরিভেটিভ হল k (একটি ধ্রুবক, যার মান ওজন থেকে স্বাধীন)।

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

আপনি L 1 এর ডেরিভেটিভকে একটি বল হিসাবে ভাবতে পারেন যা প্রতিবার ওজন থেকে কিছু ধ্রুবক বিয়োগ করে। যাইহোক, পরম মানগুলির জন্য ধন্যবাদ, L 1-এর 0-এ একটি বিচ্ছিন্নতা রয়েছে, যার ফলে বিয়োগের ফলাফল 0 অতিক্রম করে শূন্য হয়ে যায়। উদাহরণস্বরূপ, যদি বিয়োগ করলে ওজন +0.1 থেকে -0.2 হতে বাধ্য হয়, তাহলে L 1 ওজনকে ঠিক 0-এ সেট করবে। ইউরেকা, L1 ওজনকে শূন্য করে।

L 1 নিয়মিতকরণ—সমস্ত ওজনের পরম মূল্যকে শাস্তি দেওয়া—বিস্তৃত মডেলের জন্য বেশ দক্ষ হতে দেখা যাচ্ছে।

মনে রাখবেন যে এই বর্ণনাটি এক-মাত্রিক মডেলের জন্য সত্য।

ওজনের নেটওয়ার্কে L 1 এবং L 2 নিয়মিতকরণের প্রভাব তুলনা করতে নীচের প্লে বোতামে ( ) ক্লিক করুন৷