برخی از ویژگیهای شما ممکن است مقادیر مجزایی باشند که در یک رابطه منظم نیستند. به عنوان مثال می توان به نژاد سگ ها، کلمات یا کدهای پستی اشاره کرد. این ویژگی ها به عنوان دسته بندی شناخته می شوند و به هر مقدار یک دسته می گویند. شما می توانید مقادیر مقوله ای را به صورت رشته یا اعداد زوج نشان دهید، اما نمی توانید این اعداد را مقایسه کنید یا آنها را از یکدیگر کم کنید.
اغلب، شما باید ویژگی هایی را که حاوی مقادیر صحیح هستند به عنوان داده های طبقه بندی به جای داده های عددی نشان دهید. به عنوان مثال، یک ویژگی کد پستی را در نظر بگیرید که در آن مقادیر اعداد صحیح هستند. اگر به اشتباه این ویژگی را به صورت عددی نشان میدهید، از مدل میخواهید که یک رابطه عددی بین کدهای پستی مختلف پیدا کند. برای مثال، شما انتظار دارید که مدل تعیین کند که کد پستی 20004 دو برابر (یا نصف) سیگنال کد پستی 10002 است.
اگر تعداد دستههای یک فیلد داده کم باشد، مانند روز هفته یا پالت محدود رنگ، میتوانید برای هر دسته یک ویژگی منحصر به فرد ایجاد کنید. مثلا:
شکل 1: یک ویژگی منحصر به فرد برای هر دسته.
سپس یک مدل می تواند وزن جداگانه ای برای هر رنگ یاد بگیرد. برای مثال، شاید مدل بتواند یاد بگیرد که خودروهای قرمز گرانتر از خودروهای سبز هستند.
سپس می توان ویژگی ها را ایندکس کرد.
شکل 2: ویژگی های نمایه شده.
به این نوع نقشه برداری واژگان می گویند.
واژگان
در یک واژگان، هر مقدار نشان دهنده یک ویژگی منحصر به فرد است.
Index Number | Category |
---|---|
0 | Red |
1 | Orange |
2 | Blue |
... | ... |
مدل شاخص را از رشته جستجو می کند و 1.0 را به شکاف مربوطه در بردار ویژگی و 0.0 را به تمام شکاف های دیگر در بردار ویژگی اختصاص می دهد.
شکل 3: فرآیند پایان به انتها برای نگاشت دسته ها به بردارهای ویژگی.
نکته در مورد نمایش پراکنده
اگر دستههای شما روزهای هفته هستند، ممکن است، برای مثال، جمعه را با بردار ویژگی [0، 0، 0، 0، 1، 0، 0] نشان دهید. با این حال، بیشتر پیادهسازیهای سیستمهای ML این بردار را در حافظه با نمایشی پراکنده نشان میدهند. یک نمایش رایج فهرستی از مقادیر غیر خالی و شاخص های مربوط به آنها است - برای مثال، 1.0 برای مقدار و [4] برای شاخص. این به شما امکان می دهد حافظه کمتری را صرف ذخیره مقدار زیادی 0s کنید و ضرب ماتریس کارآمدتری را ممکن می سازد. از نظر ریاضیات اساسی، [4] معادل [0، 0، 0، 0، 1، 0، 0] است.
خارج از Vocab (OOV)
همانطور که دادههای عددی حاوی مقادیر پرت هستند، دادههای طبقهبندی نیز چنین هستند. به عنوان مثال، مجموعه ای از داده ها را در نظر بگیرید که حاوی توضیحات خودروها است. یکی از ویژگی های این مجموعه داده می تواند رنگ خودرو باشد. فرض کنید رنگهای رایج خودرو (سیاه، سفید، خاکستری و غیره) به خوبی در این مجموعه داده نشان داده شدهاند و هر یک از آنها را در یک دسته قرار میدهید تا بتوانید یاد بگیرید که این رنگهای مختلف چگونه بر ارزش تأثیر میگذارند. با این حال، فرض کنید این مجموعه داده شامل تعداد کمی خودرو با رنگهای عجیب و غریب (به رنگ ارغوانی، پوس، آووکادو) است. به جای اینکه به هر یک از این رنگ ها یک دسته بندی جداگانه بدهید، می توانید آنها را در یک دسته بندی فراگیر به نام خارج از Vocab ( OOV ) قرار دهید. با استفاده از OOV، سیستم زمان را برای آموزش هر یک از آن رنگهای کمیاب تلف نمیکند.
هش کردن
گزینه دیگر این است که هر رشته (دسته) را در فضای فهرست موجود خود هش کنید. هش کردن اغلب باعث برخورد می شود، اما شما به مدل تکیه می کنید که برخی از نمایش های مشترک دسته ها را در همان شاخص یاد می گیرد که برای مشکل داده شده به خوبی کار می کند.
برای عبارات مهم، هش کردن میتواند بدتر از انتخاب یک واژگان باشد، زیرا به دلیل برخوردها برخورد میشود. از سوی دیگر، هش کردن نیازی به جمع آوری واژگان ندارد، که اگر توزیع ویژگی در طول زمان به شدت تغییر کند، سودمند است.
شکل 4: نگاشت آیتم ها به واژگان.
ترکیبی از هش و واژگان
می توانید یک رویکرد ترکیبی داشته باشید و هش را با واژگان ترکیب کنید. از واژگانی برای مهم ترین دسته ها در داده های خود استفاده کنید، اما سطل OOV را با چندین سطل OOV جایگزین کنید و از هش برای اختصاص دسته ها به سطل ها استفاده کنید.
دستههای موجود در سطلهای هش باید یک شاخص مشترک داشته باشند، و مدل احتمالاً پیشبینی خوبی نخواهد داشت، اما ما مقداری حافظه را برای تلاش برای یادگیری دستههای خارج از دایره لغات خود اختصاص دادهایم.
شکل 5: رویکرد ترکیبی ترکیبی از واژگان و هش کردن.
نکته ای در مورد جاسازی ها
از دوره تصادف یادگیری ماشینی به یاد بیاورید که تعبیه یک ویژگی طبقه بندی شده است که به عنوان یک ویژگی با ارزش پیوسته نشان داده می شود. مدل های عمیق اغلب شاخص ها را از یک شاخص به یک جاسازی تبدیل می کنند.
شکل 6: بردارهای ویژگی پراکنده از طریق جاسازی
تغییرات دیگری که در مورد آن صحبت کردیم می توانند روی دیسک ذخیره شوند، اما جاسازی ها متفاوت هستند. از آنجایی که تعبیهها آموزش داده میشوند، تبدیل دادههای معمولی نیستند، بلکه بخشی از مدل هستند. آنها با وزنه های مدل دیگر آموزش می بینند و از نظر عملکردی معادل یک لایه وزنه هستند.
در مورد تعبیه های از پیش آموزش دیده چطور؟ تعبیههای از پیش آموزشدیده هنوز معمولاً در طول آموزش قابل تغییر هستند، بنابراین از نظر مفهومی هنوز بخشی از مدل هستند.