پروژه طبقه بندی رنگ با شبکه عصبی SOM با متلب به همراه داکیومنت
در این پست پروژه طبقه بندی رنگ با شبکه عصبی SOM با متلب همراه به داکیومنت را آماده ایم که کدهای آن خط به خط توضیح داده شده است. در ادامه مطلب می توانید تصاویر و فیلمی از خروجی مختلف این پروژه را مشاهده نمائید. همچنین تکه کدی از این پروژه با توضیحات در ادامه قرار داده شده است.
هدف از این پروژه طبقه بندی رنگ های RGB می باشد، یعنی شبکه عصبی ای طراحی کرده ایم که می تواند طیف رنگی نور را تشکیل دهد. طیف رنگی نور ، همان وزن های شبکه SOM می باشد. در اینجا فرض شده است که طیف رنگی ۲۵۶ رنگ است، پس می توانیم با یک ماتریس ۱۶*۱۶ این طیف را نمایش دهیم.
مدل رنگی RGB در این پروژه به صورت تصادفی می باشد. بدین صورت که بعد از اجرا های بیشتر، خروجی های متفاوتی را مشاهده می کنید. بار اولی اجرا خروجی موجود در ادامه مطلب را مشاهده می کنید. به منظور طبقه بندی های مختلف با توجه به نرون برنده و اجرای دوباره برنامه و تنظیم وزن ها، این عملیات صورت گرفته است که با اجرای بیشتر، خروجی های متفاوتی را نیز مشاهده نمایید. چندین بار اجرا و به دست آوردن خروجی های متفاوت، در فیلم موجود در ادامه مشخص است.
تصاویر و فیلم خروجی و تکه کدی از پروژه طبقه بندی رنگ با شبکه عصبی SOM با متلب در ادامه مطلب.
تکه کدی از پروژه طبقه بندی رنگ با شبکه عصبی SOM با توضیحات:
clc
پاک کردن همه نوشته های موجود در command window
clear all
پاک کردن مقدار پارامتر ها و متغیرهای موجود از قبل در workspace
n_inp = 100;
تعداد ورودی ها. در فایل ارسالی شما آماده است که بین ۰ تا ۲۵۵ باشد.
می توانید این مقدار را تغییر بدهید. (نرون ورودی)
input = rand(n_inp,3);
ساخت یک دیتاست (ظرف پیمایش)
out_row = 16;
طیف ۱۶x16 . این قسمت برای سطر طیف می باشد. (۱۶x16) نرون لایه خروجی
که این قسمت برای سطر آن بود
out_col = 16;
طیف ۱۶x16 . این قسمت برای ستون طیف می باشد. (۱۶x16) نرون
لایه خروجی که این قسمت برای ستون آن بود
دو قطعه کد بالا برای ۱۶x16 نرون در لایه خروجی است که ماتریس را طوری نوشته ایم که دو متغیره می باشد
و می تواند مقدار آن را به صورت به فرض ۱۶x25 یا ۶۰x60 نیز بنویسد و کاملا قابل تغییر می باشد.
w = rand(50,50,3);
وزن ماتریس که دارای سه مولفه است (رنگ آبی و قرمز و سبز که عدد ۳ نشان دهنده آن است) و دو عدد
۵۰ که مشاهده می شود جهت رسم برداری می باشند در واحد x و y
figure,image(w);
نمایش فیگور (نمایش طیف رنگ)
s0 = 100;
پس از اینکه دیتاست یعنی ظرف پیمایش ساخته شد و طیف رنگ ورودی خود را دریافت کرد
آن را به شکل یک ماتریس نمایش می دهیم. در واقع این مقدار ۱۰۰x100 است
که به صورت ماتریسی ننوشته ایم که به سادگی قابل تغییر باشد.
eta = 0.4;
حالت های اجرا و کارایی (Performance) برای SOM که در واقع تکرار در آموزش می باشد.
تصویر خروجی ۱:
تصویر خروجی ۲:
مشاهده ویدئو در این باره