نوشته های وبلاگ

پیاده سازی خودکدگذار در TensorFlow

پیاده سازی خودکدگذار در TensorFlow

در این قسمت یکی از کاربردهای شبکه های عصبی در یادگیری نظارت شده (با ناظر) بر روی داده های برچسب خورده، معرفی می‌شود. خودکدگذار یا خودرمزنگارها (Autoencoder) شبکه هایی با هستند که با هدف یادگیری بازنمایی فشرده از داده ها استفاده می شوند. در این فرآیند ویژگی هایی که از داده ها استخراج و در بازنمایی دخالت داده می شوند، بدون دخالت و درگیری ناظر انسانی استخراج می شوند.در ادامه به بررسی مفصل تر خودرمزنگارها خواهیم پرداخت.

خودکدگذار

حال فرض کنید که ما فقط مجموعه ای برچسب نخورده از نمونه های آموزشی \(\{{{x}^{(1)}},{{x}^{(2)}},{{x}^{(3)}},\ldots \}\) را داریم که \({{x}^{(i)}}\in {{\Re }^{n}}\).

شبکه ی عصبی خودکدگذار یک الگوریتم  یادگیری بدون ناظر است که از Backpropagation  (پسخوراند) استفاده می کند، به طوری که مقدار هدف را برابر ورودی میگرد. یعنی \({{y}^{(i)}}={{x}^{(i)}}\).

شکل زیر یک معماری خودکدگذار را نشان می دهد.

خودگذار تلاش می کند که تابع \({{h}_{W,b}}(x)\approx x\)  را یاد بگیرد. به عبارتی دیگر تلاش می کند که تخمینی از تابع هویت را فرا گیرد، پس خروجی \(\hat{x}\) شبیه \(x\) است.  تابع هویت به شکل یک تابع بدیهی است که تلاش می شود فراگرفته شود. اما با قرار دادن محدودیت هایی در شبکه مانند محدود کردن تعداد نرون های لایه پنهان، می توان ساختاری جالب درباره داده ها کشف کرد. به عنوان مثال دیگر فرض کنید که داده های ورودی شدت نور پیکسل هایی از یک تصویر ۱۰*۱۰ هستند پس اندازه ورودی \(n=100\) است و فرض کنید که شبکه ای با تعداد ۵۰ نرون در لایه پنهان (دوم) داریم. و خروجی شبکه ما نیز با ورودی  یکسان است ( \(y\in {{\Re }^{100}}\) ). چون فقط ۵۰ نرون در لایه پنهان شبکه وجود دارد، اگر با این شبکه به آموزش بپردازیم، شبکه بازنمایی فشرده ای از ورودی را فرا می گیرد. یعنی فقط بردار توابع فعالسازی نرون های لایه پنهان داده شده\({{a}^{(2)}}\in {{\Re }^{50}}\)، باید تلاش کند که تصویر ۱۰۰ پیکسلی ورودی را «بازسازی» کند.

اگر ورودی کاملا تصادفی باشد ، هر \(\textstyle x_i\) از یک IID  گاوسی مستقل از دیگر ویژگی ها ساخته می شود آنگاه این عمل فشرده سازی، دشوار تر خواهد بود.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

3 + 1 =