টেনসরফ্লোতে একটি হট এনকোডিং কী?


11

আমি বর্তমানে টেনসরফ্লোতে একটি কোর্স করছি যা তারা tf.one_hot ব্যবহার করে (সূচকগুলি, গভীরতা)। এখন আমি বুঝতে পারছি না যে এই সূচকগুলি কীভাবে বাইনারি ক্রমে পরিবর্তিত হয়।

কেউ দয়া করে আমাকে সঠিক প্রক্রিয়াটি ব্যাখ্যা করতে পারেন ???

উত্তর:


14

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

এ জাতীয় কাজ করার সহজতম উপায় হ'ল ম্যাপিং তৈরি করা যেখানে:

লাল -> 1
হলুদ -> 2
নীল -> 3

এবং প্রতিটি স্ট্রিংকে এর ম্যাপ করা মান দিয়ে প্রতিস্থাপন করুন।

তবে এটি আমাদের এমএল মডেলটিতে অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া তৈরি করতে পারে যেমন সংখ্যার সাথে কথা বলার সময় মনে হতে পারে যে নীল> হলুদ (কারণ 3> 2) বা সেই লাল + হলুদ = নীল (কারণ 1 + 2 = 3)। এই ডেটাগুলি শ্রেণিবদ্ধ ছিল এবং তারপরে পূর্ণসংখ্যার হিসাবে ম্যাপ করা হয়েছিল এমনটি মডেলটির জানার কোনও উপায় নেই।

এই সমস্যার সমাধান হ'ল হট এনকোডিং যেখানে আমরা এন নতুন বৈশিষ্ট্য তৈরি করি , যেখানে এন মূল বৈশিষ্ট্যের অনন্য মানের সংখ্যা of আমাদের নমুনাতে এন এর সমান হবে 3, কারণ আমাদের 3 টি অনন্য রঙ রয়েছে (লাল, হলুদ এবং নীল)।

এই বৈশিষ্ট্যগুলি প্রত্যেকটি বাইনারি হতে হবে এবং মিলা চাই এক এই স্বতন্ত্র মান রয়েছে তা। আমাদের উদাহরণে প্রথম বৈশিষ্ট্যটি বাইনারি বৈশিষ্ট্যযুক্ত যা আমাদের বলবে যে নমুনাটি লাল বা না, দ্বিতীয়টি হলুদ এবং তৃতীয় নীল রঙের জন্য একই জিনিস।

এই ধরণের রূপান্তরের উদাহরণ নীচে চিত্রিত:

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


3

গভীরতা: এক উত্তাপ মাত্রার গভীরতা নির্ধারণকারী একটি স্কেলার।

সূচকসমূহ: সূচকগুলির একটি টেন্সর।

এটি টেনসরফ্লো ডকুমেন্টেশনে দেওয়া উদাহরণ।
1. শুধুমাত্র সূচক এবং গভীরতা নির্দিষ্ট করে (অন_ভ্যালুয়ের ডিফল্ট মান 1 এবং অফ_ভ্যালু 0 হয়)

 indices = [0, 1, 2]
    depth = 3
    tf.one_hot(indices, depth)  # output: [3 x 3]
    # [[1., 0., 0.],
    #  [0., 1., 0.],
    #  [0., 0., 1.]]
  1. অন_ভ্যালু এবং অফ_ভ্যালু নির্দিষ্ট করে
সূচকগুলি = [0, 2, -1, 1]
গভীরতা = 3
tf.one_hot (সূচকগুলি, গভীরতা, অন_ভ্যালু = 5.0, অফ_ভ্যালু = 0.0, অক্ষ = -1)
## আউটপুট: [4 x 3]
    # [[৫.০, ০.০, ০.০], # এক_হট্ট (0)
    # [০.০, ০.০, ৫.০], # ওয়ান_হোট (২)
    # [০.০, ০.০, ০.০], # ওয়ান_হোট (-১)
    # [0.0, 5.0, 0.0]] # ওয়ান_হোট (1)

আপনি গিটহাবের কোডও দেখতে পারেন


টিএফ ডকটি আরও বোধগম্য: tensorflow.org/api_docs/python/tf/one_hot
dturvene
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.