اخبار ، مقالات و تحقیقات گروهی را دنبال کنید.
آموزش کاربردی شبکه عصبی در پردازش تصاویر ماهواره ای در محیط متلب – آموزش شبکه عصبی در متلب
آموزش شبکه عصبی در متلب شامل بیش از ۵ ساعت آموزش کاربردی است و با مشاهده این آموزش کاملا بر این مبحث در نرم افزار متلب مسلط خواهید شد.
محققان علوم مختلف و مهندسان از دیرباز رویای ساختن یک ماشین یا وسیله اتوماتیک که دارای هوش باشد، را در سر می پروراندند. اگرچه اولین مقالات مرتبط با شبکه های عصبی مصنوعی (ANN) بیش از ۵۰ سال پیش منتشر شدند، اما این موضوع در اوایل دهه ۹۰ مورد توجه ویژه قرار گرفت و هنوز هم از پتانسیل تحقیق بالایی برخوردار است.
برنامه های مربوط به سیستم های هوشمند، طیف گسترده ای را شامل می شوند که عبارتند از:
- تجزیه و تحلیل داده های سنجش از دور از قبیل ماهواره ها
- طبقه بندی الگوی گفتار و نوشتار
- تشخیص چهره
- پیش بینی سهام در بازار مالی
- شناسایی ناهنجاری در تصاویر پزشک
- کنترل ابزار و وسایل الکترونیکی
شبکه های عصبی مصنوعی مدل های محاسباتی هستند که از سیستم عصبی موجودات زنده الهام گرفته شده اند که بخشی از آن در شکل زیر نشان داده شده است.
آنها توانایی به دست آوردن و ذخیره دانش (مبتنی بر اطلاعات) را دارند و می توانند به عنوان مجموعه واحدهای پردازشی، که توسط سلول های عصبی مصنوعی نشان داده می شوند، تعریف شوند. واحدهای پردازشی توسط اتصالات فراوان (سیناپس های مصنوعی) به هم پیوسته هستند، که این کار توسط بردارها و ماتریس های وزنی سیناپسی انجام می شوند (شکل زیر).
مهمترین ویژگی های مربوط به ساز و کارهای مبتنی بر شبکه عصبی مصنوعی عبارتند از:
الف) سازگاری با تجربه
پارامترهای داخلی شبکه (معمولاً وزن سیناپسی آن) با بررسی نمونه های پی در پی (الگوها، نمونه ها یا اندازه گیری ها) مربوط به رفتار فرآیند تنظیم می شوند و بدین ترتیب امکان کسب دانش توسط تجربه فراهم می شود.
ب) توانایی یادگیری
با استفاده از یک روش یادگیری، شبکه می تواند رابطه موجود بین چندین متغیر را استخراج کند.
ج) قابلیت تعمیم
پس از اتمام فرایند یادگیری، شبکه می تواند دانش کسب شده را تعمیم دهد و تخمین راه حل هایی را که تاکنون ناشناخته است، ممکن می سازد.
د) سازماندهی داده
براساس اطلاعات ذاتی یک فرآیند خاص، شبکه می تواند این اطلاعات را سازماندهی کند. بنابراین می تواند خوشه بندی الگوهای با خصوصیات مشترک را انجام دهد.
ه) تحمل خطا
به لطف تعداد زیاد ارتباطات بین نورون های مصنوعی، اگر بخشی از ساختار داخلی آن تا حدی خراب شود، شبکه عصبی به یک سیستم با قابلیت تحمل خطا تبدیل می شود.
و) ذخیره سازی توزیع شده
دانش در مورد رفتار یک فرآیند خاص که توسط یک شبکه عصبی آموخته شده است در هر یک از چندین سیناپس بین سلول های عصبی مصنوعی ذخیره می شود. بنابراین باعث بهبود استحکام معماری در صورت وجود برخی از سلول های عصبی می شود.
شبکه های عصبی مصنوعی می توانند در مسائل مرتبط با مهندسی و علوم استفاده شوند. این شبکه ها به صورت بالقوه دارای توانایی حل مسائل زیر هستند:
- تخمین تابع
- کنترل فرآیند
- تشخیص / طبقه بندی الگو
- خوشه بندی داده ها
- سیستم پیش بینی
- بهینه سازی سیستم
مشخصات محصول آموزشی
- مدرس: دکتر محمد کاکوئی
- تخصص: متخصص برنامه نویسی، یادگیری ماشین، پردازش تصویر در MATLAB و سنجش از دور در Google Earth Engine
- موضوع: آموزش کاربردی شبکه عصبی در متلب (MATLAB)
- نرم افزار: متلب (MATLAB)
- ماهواره: لندست-۸ و سنتینل-۲ و تصاویر هوایی با رزولوشن ۳۰ و ۵ سانتی متر
- فرمت آموزش: ویدئوهای آموزشی MP4
- طول آموزش: حدودا ۵ ساعت و ۱۸ دقیقه
- کد تمرینی: دارد
تهیه آموزش:
به منظور تهیه این محصول آموزشی بر روی دکمه زیر کلیک کنید:
توضیحات محصول آموزشی
شبکه های عصبی از عناصر ساده ای تشکیل شده اند که به صورت موازی کار می کنند. این عناصر از سیستم عصبی بیولوژیکی الهام گرفته شده اند. مانند طبیعت ، عملکرد شبکه تا حد زیادی توسط اتصالات بین عناصر تعیین می شود. ما می توانیم با تنظیم مقادیر اتصالات (وزن ها) بین عناصر، یک شبکه عصبی را برای انجام یک عملکرد خاص آموزش دهیم.
معمولاً شبکه های عصبی تنظیم و یا آموزش داده می شوند، به طوری که یک ورودی خاص منجر به یک خروجی هدف خاص می شود. چنین وضعیتی در شکل زیر نشان داده شده است. در آنجا، شبکه بر اساس مقایسه خروجی و هدف تنظیم می شود و این کار تا زمانی که خروجی شبکه با هدف مطابقت داشته باشد، تکرار می شود. به طور معمول تعداد زیادی از این جفت های ورودی / هدف، در این یادگیری نظارت شده، برای آموزش یک شبکه استفاده می شوند.
آموزش دسته ای یک شبکه با ایجاد تغییر در وزن و بایاس و بر اساس کل مجموعه ای از بردارهای ورودی انجام می شود. آموزش افزایشی، وزن و بایاس های شبکه را مطابق نیاز پس از ارائه هر بردار ورودی تغییر می دهد. شبکه های عصبی برای انجام کارکردهای پیچیده در زمینه های مختلف کاربرد از جمله شناسایی الگو آموزش داده می شوند.
جعبه ابزار شبکه عصبی در متلب (MATLAB) به گونه ای توضیح داده شده است که در صورت بهره مندی از این آموزش می توانید بدون مشکل از ساختار گرافیکی GUI و توابع آن استفاده کنید. برای این کار، در ویدئو ۱ اصول اولیه مدل نورون و معماری شبکه های عصبی ارائه شده است. همچنین در مورد توانایی های شبکه های عصبی در حل مسائل مختلف و روش های آموزش آنها توضیحاتی ارایه شده است.
در ویدئوی دوم، نحوه فراخوانی داده های آموزشی و داده های اصلی توضیح داده می شوند. در نتیجه این بخش، باقی ویدئوها با بهره گیری از این بخش، داده های مورد نیاز را آماده می کنند. در این ویدئو داده لندست ۸ و دادهای آموزش با هدف آنها با فرمت CSV فراخوانی می شوند.
در ویدئوهای سوم و چهارم، مدل نورون و معماری یک شبکه عصبی توصیف می کند که چگونه یک شبکه ورودی خود را به یک خروجی تبدیل می کند. این تحول را می توان به عنوان یک محاسبه مشاهده کرد. مدل و معماری هر کدام محدودیت هایی را در مورد آنچه که یک شبکه عصبی خاص می تواند محاسبه کند، تعیین می کند. در ویدئوی سوم از رابط کاربر گرافیکی (GUI) برای آموزش شبکه عصبی استفاده می شود. در ویدئوی چهارم، این کار با کد نویسی در MATLAB انجام می شود.
در ویدئوی پنجم، کاربردهای زیر با کمک شبکه عصبی آموزش می بینند و به مناطق مد نظر اعمال می شوند. در ویدئوی ششم، مباحث خلاصه شده به صورت اجمالی مرور و موضوعات مختلف جمع بندی می شوند.
معرفی و بخشی از ویدئوی آموزشی
عناوین آموزشی
عناوین آموزشی شامل موارد زیر می باشد:
ویدئوی شماره ۱: مبانی شبکه عصبی
- سیستم عصبی موجودات زنده و شبکه عصبی مصنوعی
- نرون، وزن ها و بایاس
- تابع نرون (Active Function)
- لایه ورودی، لایه مخفی و لایه خروجی
- ریاضیات شبکه عصبی
- فرآیند آموزش شبکه عصبی
- مثال آموزش شبکه پرسپترون
- معیار ارزیابی آموزش شبکه عصبی و جلوگیری از Underfitting و Overfitting
- توانایی شبکه های عصبی مختلف در تفکیک فضای داده
ویدئوی شماره ۲: فراخوانی داده ها
- خواندن داده TIF
- انجام تنظیمات مربوط به اندازه تصویر
- تغییر چیدمان تصویر به شکل ماتریسی و ستونی
- خواند داده آموزش با فرمت CSV
ویدئوی شماره ۳: آموزش شبکه عصبی با GUI متلب
- بررسی Transfer Function های موجود در متلب
- مرور ساختار الگوریتمهای آموزشی موجود در متلب
- بررسی معیارهای کارایی (MSE، SSE و …. )
- شبکه عصبی پرسپترون، شبکه عصبی پیشخور (Feed Forward)، رقابتی (Competitive) و ….
- آموزش و اجرای شبکه های عصبی با GUI های مختلف
ویدئوی شماره ۴: آموزش شبکه عصبی با کدنویسی
- کدنویسی آموزش شبکه عصبی
- ذخیره شبکه آموزش دیده در قالب تابع
- بررسی مولفه های مختلف قابل تنظیم در کدهای شبکه عصبی
ویدئوی شماره ۵: چند مثال کاربردی
- طبقه بندی و خوشه بندی در کاربردهای مختلف
- طبقه بندی پوشش زمین (Land Cover) با داده سنتینل-۲
- شناسایی ساختمان ها در تصاویر هوایی با رزولوشن ۳۰ سانتی متر
- برچسب زنی مفهومی (Semantic Labeling) با تصاویر هوایی با رزولوشن ۵ سانتی متر
ویدئوی شماره ۶: جمع بندی
- خلاصه سازی از موارد آموزشی
- جمع بندی موارد ارائه شده
تهیه آموزش:
به منظور تهیه این محصول آموزشی بر روی دکمه زیر کلیک کنید:
آموزش های مرتبط با نرم افزار متلب:
- آموزش و شرح مباحث علوم ژئوماتیک و جغرافیا در محیط متلب
- آموزش جامع پردازش تصاویر سنجش از دور با نرم افزار متلب (MATLAB)
- آموزش ترسیم انواع مختلف نمودارها در محیط MATLAB
- آموزش مدل سازی در سیستم اطلاعات جغرافیایی (GIS) و محیط نرم افزار MATLAB – آموزش مدلسازی در GIS
55 دیدگاه. ارسال دیدگاه جدید
سلام، طلفا اموزش cnnبرای طبقه بندی تصاویر هم بذارید. ممنون
سلام
آموزش (Training) شبکه های CNN و شبکه های عمیق، نیازمند سیستم قدرتمند یا سامانه های cloud است. با توجه به فیدبکی که از این محصول به دست میاد در مورد قدرت سیستم های پردازشی کاربران تخمینی به دست میاد و میتوان در مورد سودمند بودن این اموزش تصمیم گیری کرد.
اما ان شالله در رابطه با به کارگیری شبکه های از قبل آموزش دیده، محصولی تولید خواهد شد.
موفق باشید
سلام و وقب بخیر،عذر میخوام امکان تهیه ی منحنی انعکاس هردرخت (با داشتن مختصات آن) در بازه ی ۴۰۰ تا ۲۵۰۰ نانومتر بصورت ۱nm ،۱nm با استفاده از تصاویر سنتینل-۲ هست؟
سلام و وقت بخیر
سنتینل-۲ یک ماهواره MultiSpectral هست و شما به یک ماهواره HyperSpectral برای این هدف نیاز دارید.
موفق باشید
با سلام و احترام
متاسفانه بنده در این زمینه تستی رو انجام ندادم و اطلاعات کافی ندارم. تا جایی که میدونم باندهای سنتینل ۲ از لحاظ طیفی این قابلیت را ندارد که تغییرات بازتابی را بصورت ۱ نانومتر ۱ نانومتر نمایش دهد. در این گونه از موارد باید از داده های ابرطیفی استفاده شود.
موفق باشید
با سلام
لبه قرمز چیست ؟
۱٫افزایش ناگهانی بازتاب طیفی در محدوده ۰٫۸میکرومتر
۲٫افزایش ناگهانی بازتاب طیفی در محدوده ۰٫۷میکرومتر
در کتاب های سنجش از دوری گفته محدوده نزدیک به ۰٫۸ اما اکثرا شنیدیم محدوده ۰٫۸ ممنون میشم راهنماییم کنید که جواب درست کدومه.
سلام
در واقع هر دو تا تعریف درسته
باند قرمز در حدود ۰٫۶۷ میکرومتر و باند مادون قرمز در حدود ۰٫۸۵ نانومتر هست.
و عموما به تصاویری که در فرکانس های بین این دو بگیریم (یا در همین حدود!)، Red Edge میگوییم. می توانید به باندهای Red Edge سنتنیل-۲ نگاه کنید و ببینید در چه فرکانس هایی قرار دارد.
موفق باشید
سلام
طریقه استخراج داده های NC در نرم افزار متلب به چه شکل هست؟
سلام
سوال تان را واضح بپرسید
دستورات سری nc شامل ncread و …. برای داده های nc استفاده میشود
موفق باشید
سلام ببخشد این آموزشی که شما تهیه کردید برای پیش بینی هم کاربرد دارد؟
سلام
پیش بینی در چه موضوعی؟
پیش بینی سهام در بازار مالی
شبکه عصبی به صورت بالقوه توانایی این کار رو داره و از شبکه های عصبی که در این محصول آموزش داده میشود هم میشود استفاده کرد.
اما تمرکز کاربرد شبکی عصبی در اینجا مبتنی بر پردازش تصاویر ماهواره ای است.
سلام آقای کاکوئی لطفا میشه ایمیل شما را داشته باشیم؟
سلام
kakooey.m@gmail.com
با عرض سلام و خسته نباشید
آقای مهندس ممنون بابت مطالب عالی که ارائه کردید
فقط برای من یک مسئله که خیلی اهمیت داره و حل نشد در این آموزش، در ارتباط با طبقه بندی تصاویر به شکل SUPERVISED و با داشتن نقاط LABEL دار و یا هر نوع داده ای که از قبل LABEL خورده و کلاس های مشخی داره (نقشه های طبقه بندی شده براساس روش های ماشین لرنینگ سنتی، یا هر روش دیگری) و معرفی اون به عنوان TARGET به چه نحو باید این کار رو انجام بدیم
سلام و سلامت باشید
در تمام آموزش از داده های دارای Label که در فرمت csv ذخیره شده بود برای آموزش شبکه استفاده شده و بعد از آموزش شبکه، آن را به یک تصویر اعمال کردیم.
منظور شما چیست؟
سلام،
منظور بنده در مورد تفکیک تصویر به کلاس های با Label مشخص هست
و نه صرفا خوشه بندی
ممنون
سلام مجدد
آموزش ها را مجددا بررسی کنید
به جز شبکه LVQ که یک شبکه خوشه بندی است، بقیه شبکه ها مبتنی بر Label ها آموزش دیدند و به طبقه بندی پوشش منطقه در تصاویر پرداختیم.
برای تست علاوه بر تصاویر سنتینل-۲ و لندست-۸ که طبقه بندی LC با شبکه عصبی در آن ها انجام شد، از تصاویر هوایی با رزولوشن ۵ سانتی متر نیز بهره بردیم و در یک کاربرد Semantic Classification این طبقه بندی را براساس Label های موجود، انجام دایدم.
موفق باشید
سلام جناب کاکوئی وقتتون بخیر
برای تهیه نقشه همبستگی بین دو پارامتر( در طی ۳۰ سال و با فرمت انسی )بطوری که هر پیکسل در تاخیر زمانی (لگی)که ماکزیمم همبستگی مشاهده میشه, همبستگی رو نمایش بده. در محیط متلب احتیاج به آموزش یا همکاری شما دارم. این امکان برای شما وجود داره?
با تشکر
سلام
مطمئن نیستم که در مسئله شما بتونم کمک کنم
در هر حال میتوانید با ایمیل در ارتباط باشید
Kakooey.m@gmail.com
موفق باشید
سلام وقت بخیر
آیا در این محصول شبکه عصبی mlp هم آموزش داده میشه؟
سلام
بله، شبکه عصبی چند لایه پرسپترون نیز در این آموزش وجود دارد و در توضیحات محصول نیز بیان شده است.
سلام وقت بخیر
ببخشید اگه میشه یه توضیحی بفرمایید که چه استفاده ای از این اموزش میشه در مقاله نویسی کرد و در چه موضوعاتی میتوان بکار برد ، ممنون میشم توضیح کامل و مصداقی بفرمایید با تشکر
سلام
کاربرد شبکه عصبی به قدری متنوع است که واقعا ظلمه اگر به چند مورد اشاره شود.
مثلا در مقاله زیر از شبکه عصبی استفاده شده است
https://www.mdpi.com/2072-4292/12/21/3561
پی نوشت: خود شبکه های عمیق نیز نوعی شبکه عصبی هستند که امروزه محبوبیت بالایی دارند!
اگر به راهنمایی دقیق تر نیاز دارید، موضوع کاری خود را بفرمایید.
موفق باشید
سلام
من در بخش داده ها مشکل دارم.
من از شبکه عصبی در تشخیص هدف (Target detection) در تصاویر فراطفی بر اساس تطابق امضا های طیفی استفاده می کنم.
داده های من فقط یک تصویر فراطیفی و امضای طیفی آزمایشگاهی عارضه مورد نظرم است که این داده ها به ترتیب داده های test و train هستند. اما شما در آموزش از داده target هم استفاده می کنید. این داده چیست و یا چگونه باید تهیه یا ایجاد شود؟
سلام
تصاویر فراطیفی به عنوان ورودی input و امضای طیفی آزمایشگاهی به عنوان خروجی target در نظر گرفته میشود. فرض میکنیم شما 1000 نمونه از این ورودی ها و خروجی ها دارید که اینها را به train و test افراز میکنید. باقی موارد مربوط به انتخاب الگوریتم و اعمال آن است.
موفق باشید
سلام
من از ورژن R2022a متلب استفاده می کنم و دستوراتی مانند nntool اجرا نمیشه و نرم افزار دستورات جدید مانند nnstart را پیشنهاد می کند که محیط GUI با قبلی ها متفاوت است.
تصویر من 360 باند طیفی دارد و ابعاد 130*90 دارد یعنی با تنظیم سطری تصویر ورودی با ابعاد 360 سطر در 11700 ستون میشود.
تارگت هم که باید منحنی امضای طیفی آزمایشگاهی باشد مقادیرش بین 350 تا 2500 نانومتر است. یعنی 1 سطر و 2150 ستون می شود.
در مورد ابعاد داده ها نرم افزار خطا می دهد که باید تعداد نمونه ها در هر دو با هم برابر باشند. البته در آموزش داده های شما ابعادش با هم برابر اند، اما با همین داده هایی که من استفاده می کنم در مقالات شبکه عصبی با همه ی نمونه های داده انجام شده است.
شما چه راهکاری پیش نهاد می کنید؟
من برای انجام پروژه ام به راهنمایی و تجربه شما نیاز دارم، میشه در فضایی که راحت تر باشه با هم در ارتباط باشیم؟
سلام
در اصل قضیه تفاوتی وجود نداره. فرض کنید شما N تصویر دارید که به ازای هر کدام منحنی امضای طیفی آزمایشگاهی دارید. یعنی در هر صورت و جدای از نوع الگوریتم (شبکه عصبی یا هر روش supervised دیگر)؛ تعداد ورودی با تعداد خروجی یکی است و تفاوت در تعداد ویژگی های ورودی و خروجی است! به نظرم شما نیاز به استاد مشاور برای راهنمایی بیشتر در انجام پایان نامه دارید.
موفق باشید
سلام و ضمن خسته نباشید
بله با استاد مشاور و راهنما در ارتباط هستم.
در مورد این آموزش:
ابعاد تصویر که به عنوان ورودی در نظر می گیرم 360*130*90 است که اگر به صورت سطری چیده شود، ماتریسی با ابعاد 11700*360 ایجاد می شود.
تارگت هم که یک منحنی امضای طیفی است به ازای هر طول موج از بازه بین 350 تا 2500 نانومتر یک مقدار بازتاب داریم، یعنی ماتریسی با ابعاد 2150*1 ایجاد می شود.
الان در متلب با در نظر گرفتن این داده ها به عنوان ورودی و تارگت خطای زیر را نمایش می دهد.
Inputs and targets have different numbers of samples
اما شما در آموزش علاوه بر تصویر ورودی، در یک فایل با عنوان L8_mosaic_2013_training_LC2 داده ی train و target با ابعاد برابر دارید و بعد از آموزش شبکه، بر روی تصویر اصلی simulation انجام می دهید.
سلام
یعنی شما یک تصویر با ابعاد مورد نظر دارید و برای این تصویر یک منحنی امضای طیفی به عنوان تارگت دارید. کل پایگاه داده شما همین است؟
و اینکه هدف نهایی چیست؟ فرض کنید یک شبکه عصبی یا هر الگوریتم supervised دیگری دارید، میخواهید برای شما چه کار انجام دهد؟
خسته نباشید
من می خواهم دقیقا کاری که در این مقاله انجام شده است را انجام بدم و از داده های همین مقاله هم استفاده می کنم.
Identification of most useful spectral ranges in improvement of target detection using hyperspectral data
من روش های تشخیص هدف ACE و CEM و MF و SAM را با کد نویسی انجام داده ام. الان می خواهم با استفاده از روش این مقاله، پر کاربرد ترین محدوده طیفی را تشخیص بدم و دوباره این الگوریتم ها را با این محدوده طیفی جدید انجام بدم که نتیجه را خیلی بهتر خواهد کرد.
در این مقاله که عنوان را برای شما که متخصص هستید فرستاده ام، فقط بخش 2 و بخش 3.1 که یک صفحه می باشد کافی است ببینید و کامل متوجه سوال من می شوید. در مورد داده و نحوه آماده سازی و شبکه استفاده شده و ورودی ها و خروجی های شبکه توضیح داده است، فقط در مورد مشکلی که الان برای من به وجود آمده است توضیحی نداده است.
با تشکر
سلام. فقط بخش های مربوط از مقاله را اینجا کپی میکنم که توضیح داده های target و تقسیم بندی به train و test در آن واضح است!
The subset contains three artificial fabric targets namely red_felt, blue_felt and red_cotton. There are seven instances each of these three targets. Red_felt targets have been referred as RF1–RF7, blue_felt targets as BF1–BF7 and red_cotton targets as RC1–RC7. Targets with IDs 1, 2 and 4 in respect of all the fabrics are full pixel, and targets with IDs 3 and 5 are sub pixel. Target with IDs 6 and 7 of all the three fabric targets are occluded under the tree and are not considered in this study.
The dataset used for this part of the study consists of laboratory measured reflectance spectra of three fabric targets obtained in the spectral range 390–2450 nm. There are three fabric targets namely red_felt (RF), blue_felt (BF) and red_cotton (RC) and these have been placed on three backgrounds namely spectralon (B1), black satin (B2) and black table (B3). Thus, spectra of a total of nine target-background pairs of three fabric targets placed on three backgrounds have been used as input data. For each target background, 30 samples of its spectra are available. Thus for all target-background pairs, a total of 30×9 reflectance spectra are available. Out of these 30 samples, 20 samples have been used for training the ANN whereas 10 samples have been used for its testing.
Further, each of the reflectance spectrum has been measured for a complete optical wavelength range i.e. 390–2450 nm. For investigating influence of different wavelength regions on target detectability, each reflectance spectrum (composed of full wavelength range) has been divided into eight subset spectra covering different wavelength regions namely VIS (400–700 nm), NIR (700–1000 nm), VNIR (400–1000 nm), SWIR1 (1000–1200 nm), SWIR2 (1000–1700 nm), SWIR3 (1800–2000 nm), SWIR4 (2100–2450 nm) and FULL (390–2450 nm). These sub regions have been chosen after carrying out several trial experiments. Therefore, 160 samples (i.e. 20 samples X 8 subsets) for training and 80 sample (i.e. 10 samples X 8 subsets) for testing have been used.
سلام …
تصاویر ماهواره ای و ground troth استفاده شده در این آموزش در فایل دانلودی موجود است ؟
سلام
تمامی داده های استفاده در آموزش در فایل دانلودی موجود است.
موفق باشید
سلام و خسته نباشید جناب دکتر
من در رابطه با موضوع target detection با تطابق امضا های طیفی با استفاده از شبکه عصبی کار می کنم.
مشکل قبلی حل شد و با داده های خودم انجام دادم.
زمانی که خروجی تولید میشه، در نهایت یک تصویر رو نمایش میدیم. که تصویر به تعداد کلاس هایی که موجوده طبقه بندی میشه و یک رنگ از درجات خاکستری به هر کلاس داده میشه. که در این آموزش تعداد کلاس ها ۱۶ هستند و هر کلاس یا برچسب هم نشان دهنده یک نوع عاضه متفاوت هستند. یعنی ۱۶ عارضه متفاوت.
اما من در داده های خودم ۳ کلاس یا برچسب دارم و هر ۳ برچسب هم نمایانگر فقط یک نوع عارضه هستند. در تصویر نهایی که نمایش می دهیم، طوری هست که هر پیکسل از تصویر حتما یکی از شماره کلاس ها به آن اختصاص داده شده است. اما در واقعیت تعداد کمی از پیکسل های تصویر من به عنوان تارگت مورد نظر هستند و نباید کل پیکسل های تصویر حتما در یک کلاس قرار بگیرند.
چه راه کاری هست که مثلا با حد آستانه گذاری یا هر روش دیگری در شبکه تعیین کرد که پیکسل هایی که به طور مثال تا ۶۰ درصد شباهت داشتند را وارد کلاس کند و در غیر این صورت طبقه بندی نشوند و به نحوی از پیکسل های طبقه بندی شده متفاوت باشند.
با احترام
سلام
من دقیقا متوجه مشکل شما نشدم ولی سعی میکنم با توجه به توضیحات شما راهنمایی کنم.
سوال آخرتان در مورد میزان مشابهت میتوانید از طبقه خروجی قبل از Softmax یک نسبت به عنوان عدم قطعیت محاسبه کنید و مواردی که عدم قطعیت بالایی دارند را در نظر نگیرید. البته اگر شما 3 کلاس دارید و یک background یعنی اینکه شما حداقل 4 کلاس دارید و میتوانید 4 کلاس را آموزش دهید. اگر در کلاس background تفاوت طیفی زیاد است، مثلا با خوشه بندی یک ساختار اولیه N خوشه ای در Background ایجاد کنید و با این پیش پردازش کلاس های شما 3+N میشود که شامل 3 کلاس اصلی و N کلاس Background است که این N کلاس در واقع برای شما اهمیت ندارند و در حکم یک کلاس هستند.
موفق باشید
سلام جناب دکتر
احتمالا من سوال را پیچیده پرسیدم.
در آموزش وقتی که متغیر output رو خروجی میگیرید یک ماتریس با سطر هایی به تعداد کلاس ها (16) و ستون هایی به تعداد کل پیکسل های تصویر به دست می آید.
نویسنده مقالاتی که با شبکه عصبی کار کردن میگن که خروجی صفر و یک بدست می آید. که صفر نشان دهنده نبود عارضه و یک نشان دهنده وجود عارضه است.
اما خروجی ما درجه خاکستری داره به تعداد کلاس ها.
من موقعیت مکانی پیکسل تارگت را می دانم. اگر دو پیکسل تارگت که یکی DN قوی و یکی دیگر با DN ضعیف باشد را در نظر بگیرم و در هر سطر از خروجی output حد استانه گذاری کنم که هر مقداری از درایه های این متغیر مقدارش بین این دو DN بود رو با رنگ سفید نماش بده و مابقی را رنگ سیاه بهش بدم قاعدتا باید تصویری نمایش بده که تارگت هایی که به درستی شناسایی شدند سفید و مابقی سیاه باشند.
این کار را در روش های target detection مانند ACE و CEM و MF و… انجام دادم درسته اما در این پروژه خروجی اشتباه هست.
کد را با دقت نوشتم و دقیق مثل مقاله جلو رفتم، یا از output به آن صورت نمی توان استفاده کرد یا احتمال دارد که در قسمت آماده سازی داده برای train و target نکته ای باشد که باید کد را شما ببینید تا تشخیص بدید که مشکل از کجا هست.
اگر وقت دارید با هم جلسه ای داشته باشیم تا بهتر بررسی کنیم و هرطور که شما فرمودید من در خدمتم.
با تشکر
سلام
شما نباید آستانه گذاری کنید. شما به ازای هر پیکسل یک بردار ۱۶ تایی دارید و کلاس مربوط به این پیکسل متناظر با بزرگترین مقدار در این بردار است. برای مرحله آخر میتوانید کلاس متناظر با object مدنظر را به عنوان خروجی در نظر بگیرید.
خیلی ممنون از این که هر بار وقت گذاشتید و پاسخ دادید.
این بردار را که میفرمایید اگه پیدا کنم بسیار عالی خواهد بود. این بردار با چه نامی در خروجی ها وجود دارد و یا چگونه می توان به آن دسترسی پیدا کرد؟
با احترام
سلام
جناب دکتر این جمله که در مورد بردار 16 تایی توضیح دادید و گفتید که کلاس مربوط به پیکسل همان بزرگ ترین عدد میشه خیلی عالی و مفید بود. سوال قبلی که پرسیدم را نادیده بگیرید. حد آستانه گذاری این بار جواب داد و خروجی دقیقا همان چیزی است که می خواستم.
من دیتا هایی که دارم به کلی، یعنی هم تصویر و هم برچسب ها خیلی متفاوت با داده های این آموزش هست و به همین دلیل بود که تنظیم و اجرای کد برام دشوار بود.
اما آموزشتون خیلی عالیه، امید وارم خیلی ها که هنوز تا حالا تهیه نکردند سریع تر تهیه کنند.
با احترام
سلام
همین جمله ای که خودتان نوشتید را کپی میکنم «در آموزش وقتی که متغیر output رو خروجی میگیرید یک ماتریس با سطر هایی به تعداد کلاس ها (16) و ستون هایی به تعداد کل پیکسل های تصویر به دست می آید.». یعنی به ازای هر پیکسل شما برداری به اندازه 16 دارید. کافی است که در هر بردار مشخص کنید که شاخص بزرگترین مقدار چیست.
موفق باشید
سلام
من طبق آموزش خروجی گرفتم. اما با داده های دیگه ای انجام دادم. از 70 درصد داده ها برای آموزش شبکه، یعنی در ایجاد train و target استفاده کردم. الان با 30 درصد باقی مانده چطوری باید شبکه را test کنم؟
با تشکر
سلام
با وردی دلخواه و شبکه آموزش دیده میتوانید خروجی را predict کنید Y = predict(net,data) و با معیار دلخواه خروجی حاصل را با خروجی مورد انتظار مقایسه کنید.
موفق باشید
خیلی ممنون
من در شبکه عصبی تازه کارم خواهشا یکم بیشتر توضیح بدید. یک تابع genFunction استفاده کردید که امکان این رو میده که شبکه آموزش دیده رو داشته باشیم. اما وقتی شما استفاده میکنید ازش، همان تصویر قبلی (x_in) را به عنوان ورودی در نظر می گیرید و کاری به train و target نداشتید. اگر من هم همین کار رو انجام بدم، با این حال از 30 درصد داده که برای تست شبکه است استفاده نکردم.
از تابع predict که می فرمایید در چه بخش یا مرحله ای از کد استفده کنم و این که در این تابع، data همان تصویر است یا داده های 30 درصد؟
جواب قبلی شما را متوجه شدم، می خواهم تصویرم همان تصویر قبلی باشه که شبکه را به وسیله آن آموزش دادم و ضرایب شبکه را هم به صورت فریز شده داریم، ولی به جای 70 درصد داده ها از 30 درصد باقیمانده باید استفاده کنم.فقط لطفا طوری بهم توضیح بدید که اینجا من بتونم کد را بنویسم و درست تنظیم کنم.
با احترام
سلام
یعنی چی ” خواهم تصویرم همان تصویر قبلی باشه که شبکه را به وسیله آن آموزش دادم”؟
این 30 درصد و 70 درصد داده ها یعنی چی؟ مثلا شما 100 تصویر داشتید و از 70 تا برای آموزش شبکه استفاده کردید و 30 تای آن را کنار گذاشتید؟
نه جناب دکتر به این صورت که توضیح دادم منظورم هست:
تصویری که برای ورودی به شبکه به صورت سطری آماده می کنم ابعادش 1000×357 به دست می آید. و هر بار دست نخورده از آن استفاده می کنم.
تعداد 90 داده آموزشی به همراه برچسب دارم(90×357). با 60 عدد این ها (60×357) و تصویری که آماده کرده ام (1000×357)، شبکه را آموزش می دهم. یک تصویر خروجی به دست می آید که آن را ذخیره می کنم.
الان که شبکه آموزش دیده را دارم و ضرایب آن به دست آمده است، با این ضرایب و تصویری که در مرحله اول آماده کرده ام و همچنین با استفاده از 30 عدد از داده های آموزشی که قصد دارم برای تست شبکه از آن ها استفاده کنم (30×357)، شبکه را اجرا می کنم. این بار خروجی جدیدی به دست می آید که از 30 داده آموزشی و ضرایب به دست آمده از آموزش شبکه در مرحله قبلی به دست آمده است.
در نهایت با مقایسه این دو تصویر با استفاده از یک معیار، مثلا خطای RMSE، می توان به دست آورد که دقت شبکه چقدر است.
به این صورت چگونه باید انجام داد؟
با احترام
سلام و ادب
جناب دکتر لطفا اگر هستید من منتظر پاسخ شما هستم.
با تشکر
با عرض سلام
دکتر گفتن اصلا متوجه سوالتون نمیشن.
یک طور دیگه ای بنویسید که خواننده کاملا متوجه بشه
ممنون از شما
سلام خدمت شما اساتید گرامی
طبق آموزش می پرسم و بعدا با داده های خودم درست می کنم که متوجه بشید.
جناب دکتر شما بعد آموزش شبکه، با دستور genFunction یک تابع تولید کردید که با این کار یک شبکه آموزش داده شده دارید که ضرایب آن به دست آمده اند. اکنون برای استفاده های بعدی از این شبکه، دیگر نیازی به آموزش مجدد شبکه ندارید و کافی است هر بار ورودی را که x_in است به آن معرفی کنید و تابع تولید شده با این x_in ورودی و ضرایب به دست آمده در اولین بار که شبکه را آموزش دادید و همچنین با استفاده از داده های train و target که 16 کلاس هستند و این 16 کلاس هم باز در اولین بار که شبکه را آموزش دادید، به شبکه معرفی کرده اید شبکه را اجرا کنید و خروجی بگیرید.
من هم دقیقا می خوام همین کاری که شما انجام داده اید را انجام بدهم. یعنی همان x_in را به شبکه که آموزش داده شده معرفی کنم تا با ضرایبی که به صورت ثابت از اولین آموزش شبکه به دست آمده شبکه را اجرا کنم و از آن استفاده کنم اما با این تفاوت که به جای استفاده از 16 کلاس، از چند کلاس جدید و متفاوت از 16 تا استفاده کنم.
این کلاس های جدید را چگونه به تابع تولید شده یا همان شبکه آموزش داده شده معرفی کنم که بر اساس این چند کلاس جدید و با ضرایب به دست آمده و همچنین همان x_in ورودی طبقه بندی را انجام دهم؟
با تشکر و احترام
سلام
زمانی که شما شبکه را آموزش دادید، نمیتوانید تعداد کلاس های خروجی آن را تغییر دهید. مگر آنکه مجددا شبکه را آموزش دهید.
سلام و خسته نباشید
جناب دکتر در آموزشتون بعد آموزش شبکه از دستون output = net(x_in) استفاده کردید و به ازای هر پیکسل یک بردار ۱۶ تایی به دست آوردید که از این بردار می توان تصویر خروجی را ایجاد کرد.
میشه لطف کنید بگید دقیقا این دستور در پایتون چی هست؟
در پایتون بعد اموزش شبکه یا مدل عصبی، از دستور model.predict_classes(x_in) استفاده میکنم که شماره کلاس را خروجی می دهد و برداری که بر اساس آن این شماره کلاس ها را تعیین میکند را نمیش نمیدهد.
سلام
احتمالا در لایه قبلی قرار دارد! البته بستگی دارد به اینکه کلاس های شما به شکل one hat تعریف شده باشد یا categorical.
سلام وقتتون بخیر . داده های target موجود در فایل csv رو چجور تهیه کنیم ؟!؟ در این اموزش به صورت اماده بود و توضیحی ارائه نفرمودین ک چجور میشه یک سری برای train بسازیم .
سلام
داده ها وابسته به مسئله شما است. ممکنه کلاس پوشش اراضی، یا نوع کشت باشه. ممکنه رطوبت خاک، ارتفاع ساختمان و.. باشد.
شما یک مسئه دارید که داده هدف را برای شما مشخص میکند. برای مدل سازی هم از داده های ماهواره ای به عنوان متغیر مستقل استفاده میکنید و داده واقعی مسئه خودتون رو میسازید.
موفق باشید