۰
subtitle
ارسال: #۱
  
نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
می خوایم که یک شبکه عصبی حالا از نوع هب یا پرسپترون داشته باشیم که به عنوان ورودی یک ماتریس یا ارایه ۵×۵ رو دریافت می کنه
ما فقط دو تا حالت خاص از جایگشت های ممکن یک ها و صفر ها در این ماتریس مد نظرمون هست
برای خروجی شبکه باید ۱ بیت در نظر بگیریم که بشه دو تا کلاس یا باید ۲ بیت در نظر بگیریم که بشه برای هر جایگشت یک کلاس و برای ۲ به توان ۲۵ منهای دو تا حالت بقیه هم یک کلاس؟سر جمع سه کلاس
ایا می تونیم این رو ساده کنیم و همون دو تا کلاس و در نتیجه یک بیت خروجی در نظر بگیریم؟
حالا در ادامه مثلا برای اموزش در شبکه ی پرسپترون ما میایم تمام حالت های ورودی ها رو برای اموزش به شبکه می دیم اما ۲ به توان ۲۵ حالت خیلی زیاده چه کار کنیم که ساده سازی کنیم و این همه حالت مختلف برای پردازش ندیم به شبکه ؟
اگر تعداد کم بود شاید می شد با جدول های کارنو و ... ساده سازی کرد اما ۲۵ تا ورودی غیر ممکن می شه !
اگر کتابی هم در این زمینه می دونین لطفا بهم معرفی کنین
ما فقط دو تا حالت خاص از جایگشت های ممکن یک ها و صفر ها در این ماتریس مد نظرمون هست
برای خروجی شبکه باید ۱ بیت در نظر بگیریم که بشه دو تا کلاس یا باید ۲ بیت در نظر بگیریم که بشه برای هر جایگشت یک کلاس و برای ۲ به توان ۲۵ منهای دو تا حالت بقیه هم یک کلاس؟سر جمع سه کلاس
ایا می تونیم این رو ساده کنیم و همون دو تا کلاس و در نتیجه یک بیت خروجی در نظر بگیریم؟
حالا در ادامه مثلا برای اموزش در شبکه ی پرسپترون ما میایم تمام حالت های ورودی ها رو برای اموزش به شبکه می دیم اما ۲ به توان ۲۵ حالت خیلی زیاده چه کار کنیم که ساده سازی کنیم و این همه حالت مختلف برای پردازش ندیم به شبکه ؟
اگر تعداد کم بود شاید می شد با جدول های کارنو و ... ساده سازی کرد اما ۲۵ تا ورودی غیر ممکن می شه !
اگر کتابی هم در این زمینه می دونین لطفا بهم معرفی کنین
۰
ارسال: #۲
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
می گم چطوره پیش پردازش کنم
بعد دو تا الگویی ک مطلوبن رو به دو تا ورودی دو یا یک بیتی ساده کنم (بسته به اینکه باید سه تا کلاس داشته باشم یا دو تا) بعد دیگه ورودی شبکه من نمی شه یک بردار ۲۵ بیتی می شه دو تا بیت
همچین کار یمی تونم بکنم؟
مثل حالتی که عکس ها رو از RGB به باینری تبدیل می کردیم برای ورودی به شبکه توی متلب؟
بعد دو تا الگویی ک مطلوبن رو به دو تا ورودی دو یا یک بیتی ساده کنم (بسته به اینکه باید سه تا کلاس داشته باشم یا دو تا) بعد دیگه ورودی شبکه من نمی شه یک بردار ۲۵ بیتی می شه دو تا بیت
همچین کار یمی تونم بکنم؟
مثل حالتی که عکس ها رو از RGB به باینری تبدیل می کردیم برای ورودی به شبکه توی متلب؟
۰
ارسال: #۳
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
حالا هی جواب ندید
من ول کن نیستم
اگر اطلاعی دارید بهم بگید اصلا تا چه حد اجازه ساده سازی برای پیش پردازش داریم ؟
من ول کن نیستم
اگر اطلاعی دارید بهم بگید اصلا تا چه حد اجازه ساده سازی برای پیش پردازش داریم ؟
۰
ارسال: #۴
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
من اطلاعاتم از شبکه عصبی محدوده؛
تا جائیکه میدونم لازم نیست (نباید) شما تمام ۲ به توان ۲۵ حالت ممکن رو به عنوان مجموعه داده آموزشی در نظر بگیرید؛ کار شبکه اینه که چندتا پترن نمونه بهش بدیم و خودش یاد بگیره با بقیه پترن ها چکار کنه؛
میتونید برنامتون رو چندین بار و هر بار با تعداد مشخصی پترن ورودی اجرا کنید طوریکه اون دو تا پترن خاص همیشه در ورودی ها باشن؛
مثلا می تونید هر بار دو تا سطر ماتریس های ورودی رو تغییر بدید و بقیه سطرها رو ثابت برابر ۰ یا ۱ در نظر بگیرید؛ یعنی اندازه مجموعه آموزشی میشه حدود ۱۰۰۰ تا پترن؛ و بعد در فاز تست می تونید هر کدوم از پترن هایی که در فاز یادگیری لحاظ نکردید رو به شبکه بدید؛
تا جائیکه میدونم لازم نیست (نباید) شما تمام ۲ به توان ۲۵ حالت ممکن رو به عنوان مجموعه داده آموزشی در نظر بگیرید؛ کار شبکه اینه که چندتا پترن نمونه بهش بدیم و خودش یاد بگیره با بقیه پترن ها چکار کنه؛
میتونید برنامتون رو چندین بار و هر بار با تعداد مشخصی پترن ورودی اجرا کنید طوریکه اون دو تا پترن خاص همیشه در ورودی ها باشن؛
مثلا می تونید هر بار دو تا سطر ماتریس های ورودی رو تغییر بدید و بقیه سطرها رو ثابت برابر ۰ یا ۱ در نظر بگیرید؛ یعنی اندازه مجموعه آموزشی میشه حدود ۱۰۰۰ تا پترن؛ و بعد در فاز تست می تونید هر کدوم از پترن هایی که در فاز یادگیری لحاظ نکردید رو به شبکه بدید؛
ارسال: #۵
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
(۱۳ اسفند ۱۳۹۲ ۱۰:۵۲ ب.ظ)Ghiasoddin نوشته شده توسط: من اطلاعاتم از شبکه عصبی محدوده؛
تا جائیکه میدونم لازم نیست (نباید) شما تمام ۲ به توان ۲۵ حالت ممکن رو به عنوان مجموعه داده آموزشی در نظر بگیرید؛ کار شبکه اینه که چندتا پترن نمونه بهش بدیم و خودش یاد بگیره با بقیه پترن ها چکار کنه؛
میتونید برنامتون رو چندین بار و هر بار با تعداد مشخصی پترن ورودی اجرا کنید طوریکه اون دو تا پترن خاص همیشه در ورودی ها باشن؛
مثلا می تونید هر بار دو تا سطر ماتریس های ورودی رو تغییر بدید و بقیه سطرها رو ثابت برابر ۰ یا ۱ در نظر بگیرید؛ یعنی اندازه مجموعه آموزشی میشه حدود ۱۰۰۰ تا پترن؛ و بعد در فاز تست می تونید هر کدوم از پترن هایی که در فاز یادگیری لحاظ نکردید رو به شبکه بدید؛
سلام
خیلی ممنون که جوابمو دادین
در شبکه پرسپترون ک فکر کنم باید تمام داده ها رو برای اموزش به شبکه بدیم و فاز تستشم فقط از الگوهای تکراری می شه بهش بدیم
اشتباه می کنم ؟
ارسال: #۶
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
ارسال: #۷
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
(۱۴ اسفند ۱۳۹۲ ۱۲:۱۸ ق.ظ)blackhalo1989 نوشته شده توسط:(14 اسفند ۱۳۹۲ ۱۲:۱۳ ق.ظ)ایزدی نوشته شده توسط: سلاممجموعه آموزش و تست باید از هم مستقل باشن وگرنه جواب بایاس میشه.
خیلی ممنون که جوابمو دادین
در شبکه پرسپترون ک فکر کنم باید تمام داده ها رو برای اموزش به شبکه بدیم و فاز تستشم فقط از الگوهای تکراری می شه بهش بدیم
اشتباه می کنم ؟
وای من بد جوری گیج شدم
استادم گفتن که برای تست دو جور الگو می تونیم استفاده کنیم
یا الگوی دوست که همون الگوی های ورودی اموزش هستن
یا الگوی نا اشنا که الگو های جدید یا الگو های نویزی شده هستن
پس من غلط برداشت کردم و می تونیم یه تعداد محدود از احتمالات ورودی رو به شبکه برای اموزش بدیم
ولی برای تست می توینم هم از تکراری ها هم از جدیدا استفاده کنیم
درست گفتم الان یا بازم دارم اشتباه می کنم ؟
مثل اینکه اصلا هیچی از مبحث یاد نگرفتم
ارسال: #۸
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
(۱۴ اسفند ۱۳۹۲ ۰۱:۳۶ ق.ظ)ایزدی نوشته شده توسط: وای من بد جوری گیج شدم
استادم گفتن که برای تست دو جور الگو می تونیم استفاده کنیم
یا الگوی دوست که همون الگوی های ورودی اموزش هستن
یا الگوی نا اشنا که الگو های جدید یا الگو های نویزی شده هستن
پس من غلط برداشت کردم و می تونیم یه تعداد محدود از احتمالات ورودی رو به شبکه برای اموزش بدیم
ولی برای تست می توینم هم از تکراری ها هم از جدیدا استفاده کنیم
درست گفتم الان یا بازم دارم اشتباه می کنم ؟
مثل اینکه اصلا هیچی از مبحث یاد نگرفتم
همونطور که آقای blackhalo گفتن مجموعه تست باید مجزا باشه؛ کار شبکه عصبی اینه که با دادن یکسری ورودی (نه همه ورودی های ممکن) وزن های بهینه خودشو به دست بیاره طوریکه بتونه ورودی های جدید (اونهایی که در آموزش بهش داده نشده) رو هم برچسب بزنه؛ کل داده های شما همون ۲ به توان ۲۵ تاست؛ از بین این تعداد شما می تونید نصفشو بردارید (یعنی نصف المان های ماتریسهای ورودی رو ثابت و بقیه رو متغیر در نظر بگیرید) و دوباره از نصفه برداشته شده، حدودا ۷۰ درصدشو برای اموزش و بقیه رو برای تست استفاده می کنید؛ میتونید اینکار رو چند بار انجام بدید و میانگین کل اجراها رو به عنوان دقت نهایی شبکه لحاظ کنید؛
( امیدوارم درست گفته باشم (: )
۰
ارسال: #۹
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
البته نصف هم خیلی زیاده. در کاربرد های واقعی ما مقدار کمی داده برچسب خورده داریم برای همین هم semi supervised learning مطرح شد.
۰
ارسال: #۱۰
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
امروز تونستم یه وقت از استادم بگیرم
گفتن باید ۷۰ درصد برای اموزش به شبکه اختصاص بدی
تقریبا می شه ۲۲ ملیون و چهار صد هزار داده !!! تازه فقط واسه اموزش و تمام داده های باقی مانده هم باید برای تست به کار برن
ولی تا جایی ک من یادمه برای کارای تصویری که کلا پایگاه داده های خیلی خیلی کوچیک تری از این حرفا در نظر می گرفتیم
شما مساله هایی با این وسعت ورودی حل کردید ؟
وقتی درباره پیش پردازش صحبت کردم
روش هایی ک بتونم تعداد بیت های ورودی رو با یه سری ساده سازیا کمتر کنم
مثلا از ۲۵ بیت ورودی برای شبکه فقط چهار بیت یا ۸ اینا بفرستم
گفتن نه نمی تونید فرمت ورودی رو تغییر بدید باید همون ۲۵ بیتی باشه
گفتن تعریف پیش پردازش اینه که که نویز ها رو حذف کنیم
و برام توضیحش دادن
پس من چه کارایی رو می تونم واسه ساده شدن مساله استفاده کنم ؟
گفتن باید ۷۰ درصد برای اموزش به شبکه اختصاص بدی
تقریبا می شه ۲۲ ملیون و چهار صد هزار داده !!! تازه فقط واسه اموزش و تمام داده های باقی مانده هم باید برای تست به کار برن
ولی تا جایی ک من یادمه برای کارای تصویری که کلا پایگاه داده های خیلی خیلی کوچیک تری از این حرفا در نظر می گرفتیم
شما مساله هایی با این وسعت ورودی حل کردید ؟
وقتی درباره پیش پردازش صحبت کردم
روش هایی ک بتونم تعداد بیت های ورودی رو با یه سری ساده سازیا کمتر کنم
مثلا از ۲۵ بیت ورودی برای شبکه فقط چهار بیت یا ۸ اینا بفرستم
گفتن نه نمی تونید فرمت ورودی رو تغییر بدید باید همون ۲۵ بیتی باشه
گفتن تعریف پیش پردازش اینه که که نویز ها رو حذف کنیم
و برام توضیحش دادن
پس من چه کارایی رو می تونم واسه ساده شدن مساله استفاده کنم ؟
۰
ارسال: #۱۱
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
در مسایل واقعی هیچ وقت تمام حالات ورودی رو به مساله نمیدن. اصلا خیلی وقت ها ممکن نیست این کار انجام بشه چون برای این کار باید تمامی داده ها برچسب بخوره.
در مسایل واقعی اینطوریه که ما یه مجموعه از داده های برچسب خورده (یعنی یه مجموعه داده که خروجی به ازای اونها مشخصه) رو داریم. این مجموعه داده ها خیلی کمتر از تمامی حالاته (در حالتی که ورودی پیوسته باشه اصلا ممکن نیست تمامی حالات رو داشته باشیم). سپس این مجموعه رو به نسبت ۲ و ۱ میشکنیم به مجموعه آموزش و مجموعه تست. سپس لرنر رو روی مجموعه آموزش، آموزش میدیم و روی مجموعه تست دقتشو به دست میاریم.
در صورتی که داده هامون کم باشه از روش های دیگه ای برای مجموعه تست و مجموعه آموزش استفاده می کنیم (مثل k-fold)
میشه با روش های کاهش بعد ابتدا بعد داده های ورودی رو کاهش داد و سپس اونها رو به سیستم بدیم.
برای اینکه درکی از روند کار داشته باشید باید درس الگوشناسی آماری رو گذرونده باشید.
موضوع تز ارشد من بازشناسی گفتار با استفاده از شبکه های عصبی بود.
۲۵ ورودی اصلا زیاد نیست.
در مسایل واقعی اینطوریه که ما یه مجموعه از داده های برچسب خورده (یعنی یه مجموعه داده که خروجی به ازای اونها مشخصه) رو داریم. این مجموعه داده ها خیلی کمتر از تمامی حالاته (در حالتی که ورودی پیوسته باشه اصلا ممکن نیست تمامی حالات رو داشته باشیم). سپس این مجموعه رو به نسبت ۲ و ۱ میشکنیم به مجموعه آموزش و مجموعه تست. سپس لرنر رو روی مجموعه آموزش، آموزش میدیم و روی مجموعه تست دقتشو به دست میاریم.
در صورتی که داده هامون کم باشه از روش های دیگه ای برای مجموعه تست و مجموعه آموزش استفاده می کنیم (مثل k-fold)
میشه با روش های کاهش بعد ابتدا بعد داده های ورودی رو کاهش داد و سپس اونها رو به سیستم بدیم.
برای اینکه درکی از روند کار داشته باشید باید درس الگوشناسی آماری رو گذرونده باشید.
موضوع تز ارشد من بازشناسی گفتار با استفاده از شبکه های عصبی بود.
۲۵ ورودی اصلا زیاد نیست.
ارسال: #۱۲
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
(۱۴ اسفند ۱۳۹۲ ۰۸:۲۰ ب.ظ)blackhalo1989 نوشته شده توسط: در مسایل واقعی هیچ وقت تمام حالات ورودی رو به مساله نمیدن. اصلا خیلی وقت ها ممکن نیست این کار انجام بشه چون برای این کار باید تمامی داده ها برچسب بخوره.
در مسایل واقعی اینطوریه که ما یه مجموعه از داده های برچسب خورده (یعنی یه مجموعه داده که خروجی به ازای اونها مشخصه) رو داریم. این مجموعه داده ها خیلی کمتر از تمامی حالاته (در حالتی که ورودی پیوسته باشه اصلا ممکن نیست تمامی حالات رو داشته باشیم). سپس این مجموعه رو به نسبت ۲ و ۱ میشکنیم به مجموعه آموزش و مجموعه تست. سپس لرنر رو روی مجموعه آموزش، آموزش میدیم و روی مجموعه تست دقتشو به دست میاریم.
در صورتی که داده هامون کم باشه از روش های دیگه ای برای مجموعه تست و مجموعه آموزش استفاده می کنیم (مثل k-fold)
میشه با روش های کاهش بعد ابتدا بعد داده های ورودی رو کاهش داد و سپس اونها رو به سیستم بدیم.
برای اینکه درکی از روند کار داشته باشید باید درس الگوشناسی آماری رو گذرونده باشید.
موضوع تز ارشد من بازشناسی گفتار با استفاده از شبکه های عصبی بود.
۲۵ ورودی اصلا زیاد نیست.
یعنی شما می گید بی خیال ساده سازی شم دیگه ؟
۰
ارسال: #۱۳
  
RE: نحوه ی ساده سازی ورودی های شبکه های عصبی برای کاهش بار محاسبات
چیزی به اسم ساده سازی وجود نداره. تنها چیزی که هست کاهش ابعاد ورودی هست که اونم در چنین شرایطی اعمال نمیشه. مثلا ما یه پروژه داشتیم که ۵۰۰۰ یا ۵۰۰۰۰ (یادم نیست دقیق) ورودی داشت و اونجا ابعاد ورودی رو کاهش دادیم.
ضمن اینکه وقتی دارید راجع به شبکه های عصبی فکر می کنید جدول کارنو و اینارو از حافظه تون پاک کنید. هوش مصنوعی تقریبا هیچ وابستگی ای به لیسانس نداره (حداقل تو دانشکاه ما).
ضمن اینکه وقتی دارید راجع به شبکه های عصبی فکر می کنید جدول کارنو و اینارو از حافظه تون پاک کنید. هوش مصنوعی تقریبا هیچ وابستگی ای به لیسانس نداره (حداقل تو دانشکاه ما).
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close