কল্পনা করুন আপনি একটি খাদ্য-সুপারিশ অ্যাপ্লিকেশন তৈরি করছেন, যেখানে ব্যবহারকারীরা তাদের পছন্দের খাবার ইনপুট করে এবং অ্যাপটি তাদের পছন্দ হতে পারে এমন একই ধরনের খাবারের পরামর্শ দেয়। আপনি একটি মেশিন লার্নিং (ML) মডেল তৈরি করতে চান যা খাবারের মিলের পূর্বাভাস দিতে পারে, যাতে আপনার অ্যাপটি উচ্চ মানের সুপারিশ করতে পারে ("যেহেতু আপনি প্যানকেক পছন্দ করেন, আমরা ক্রেপের সুপারিশ করি")।
আপনার মডেলকে প্রশিক্ষণ দিতে, আপনি বোর্শট , হট ডগ , সালাদ , পিৎজা এবং শাওয়ারমা সহ 5,000টি জনপ্রিয় খাবারের আইটেমগুলির একটি ডেটাসেট তৈরি করেন৷
![চিত্র 1. পাঁচটি খাদ্য আইটেমের চিত্রের একটি সেট। উপরে-বাম থেকে ঘড়ির কাঁটার দিকে: borscht, hot dog, salad, pizza, shawarma.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images.png?authuser=3&hl=bn)
আপনি একটি meal
বৈশিষ্ট্য তৈরি করেন যাতে ডেটাসেটের প্রতিটি খাবারের আইটেমের এক-হট এনকোডেড উপস্থাপনা থাকে।
![চিত্র 2. শীর্ষ: বোর্স্টের জন্য এক-হট এনকোডিংয়ের একটি ভিজ্যুয়ালাইজেশন। ভেক্টর [1, 0, 0, 0, ..., 0] ছয়টি বাক্সের উপরে প্রদর্শিত হয়, প্রতিটি ভেক্টর সংখ্যার একটির সাথে বাম থেকে ডানে সারিবদ্ধ। বাক্সে, বাম থেকে ডানে নিম্নলিখিত চিত্রগুলি রয়েছে: বোর্শট, হট ডগ, সালাদ, পিৎজা, [খালি], শাওয়ারমা৷ মধ্যম: হট ডগের জন্য এক-হট এনকোডিংয়ের একটি ভিজ্যুয়ালাইজেশন। ভেক্টর [0, 1, 0, 0, ..., 0] ছয়টি বাক্সের উপরে প্রদর্শিত হয়, প্রতিটি ভেক্টর সংখ্যার একটির সাথে বাম থেকে ডানে সারিবদ্ধ। বাক্সগুলিতে বাম থেকে ডানে উপরের বোর্শট ভিজ্যুয়ালাইজেশনের মতো একই চিত্র রয়েছে। নীচে: শাওয়ারমার জন্য এক-হট এনকোডিংয়ের একটি ভিজ্যুয়ালাইজেশন। ভেক্টর [0, 0, 0, 0, ..., 1] ছয়টি বাক্সের উপরে প্রদর্শিত হয়, প্রতিটি ভেক্টর সংখ্যার একটির সাথে বাম থেকে ডানে সারিবদ্ধ। বাক্সগুলিতে বোর্শট এবং হট ডগ ভিজ্যুয়ালাইজেশনের মতো বাম থেকে ডানে একই চিত্র রয়েছে।](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images_one_hot_encodings.png?authuser=3&hl=bn)
বিক্ষিপ্ত তথ্য উপস্থাপনা ক্ষতি
এই এক-হট এনকোডিংগুলি পর্যালোচনা করে, আপনি ডেটার এই উপস্থাপনা নিয়ে দুটি মূল সমস্যা লক্ষ্য করেন।
- ওজনের সংখ্যা। বড় ইনপুট ভেক্টর মানে একটি নিউরাল নেটওয়ার্কের জন্য বিপুল সংখ্যক ওজন । আপনার ওয়ান-হট এনকোডিং-এ M এন্ট্রি এবং ইনপুট দেওয়ার পরে নেটওয়ার্কের প্রথম স্তরে N নোড সহ, মডেলটিকে সেই স্তরের জন্য MxN ওজন প্রশিক্ষণ দিতে হবে। বিপুল সংখ্যক ওজন আরও সমস্যা সৃষ্টি করে:
- ডেটাপয়েন্টের সংখ্যা। আপনার মডেলের ওজন যত বেশি, কার্যকরভাবে প্রশিক্ষণের জন্য তত বেশি ডেটা প্রয়োজন।
- গণনার পরিমাণ। যত বেশি ওজন, মডেলটি প্রশিক্ষণ এবং ব্যবহার করার জন্য তত বেশি গণনার প্রয়োজন। আপনার হার্ডওয়্যারের ক্ষমতা অতিক্রম করা সহজ।
- স্মৃতির পরিমাণ। আপনার মডেলের ওজন যত বেশি, ট্রেন এবং পরিবেশনকারী এক্সিলারেটরগুলিতে তত বেশি মেমরির প্রয়োজন। এটিকে দক্ষতার সাথে স্কেল করা খুব কঠিন।
- অন-ডিভাইস মেশিন লার্নিং (ODML) সমর্থন করার অসুবিধা। আপনি যদি স্থানীয় ডিভাইসগুলিতে আপনার ML মডেল চালানোর আশা করছেন (সেগুলি পরিবেশন করার বিপরীতে), আপনাকে আপনার মডেলকে ছোট করার দিকে মনোনিবেশ করতে হবে এবং ওজনের সংখ্যা কমাতে চাইবেন৷
- ভেক্টরের মধ্যে অর্থপূর্ণ সম্পর্কের অভাব । খাদ্যের জন্য এক-হট এনকোডিং-এর ভেক্টর মানগুলি খাদ্য আইটেমের মিল সম্পর্কে কোনও অর্থপূর্ণ তথ্য প্রদান করে না। গাণিতিকভাবে, সূচক 1 ("হট ডগ") সূচক 4999 ("শাওয়ার্মা") থেকে সূচক 2 ("সালাদ") এর কাছাকাছি, যদিও একটি হট ডগ সালাদের তুলনায় শাওয়ারমার (দুটোই মাংস এবং রুটি ধারণ করে) এর সাথে বেশি মিল রয়েছে। .
এই মডিউলে, আপনি শিখবেন কিভাবে এম্বেডিং তৈরি করতে হয়, স্পার্স ডেটার নিম্ন-মাত্রিক উপস্থাপনা, যা এই উভয় সমস্যার সমাধান করে।