1. مقدمه:
پس از بحث در مورد یک نمای کلی از شبکههای عصبی گراف در مقاله قبلی من در اینجا: مقدمهای بر شبکههای عصبی گراف: بخش 8 از سری گرافهای من و همچنین اصول اساسی یادگیری عمیق در این مقاله، اکنون زمان آن رسیده است که به عمق بیشتری بپردازیم. مفاهیم مربوط به شبکههای عصبی گراف – و این موضوع تمرکز این مقاله خواهد بود. هدف کلی تعمیم معماری شبکههای عصبی به گونهای است که بتوان آنها را برای گرافها کاربردی کرد.
ایده اصلی محتوای این مقاله بر درک موارد زیر متمرکز خواهد بود:
· شبکه محلی در یک گراف.
· درک کنید که گراف محاسباتی برای هر گره در شبکه چیست.
· درک آنچه که یک لایه واحد از یک شبکه گراف را تشکیل میدهد.
· و سپس درک کنید که چگونه میتوانیم چندین لایه را روی شبکه عصبی روی هم قرار دهیم.
این مقاله بر روی توصیف پارامترهای مدل و فرآیند آموزش شبکه عصبی گراف و امکانات آموزش شبکه عصبی گراف به صورت نظارت شده و بدون نظارت متمرکز خواهد بود.
شکل 1: گراف محاسباتی برای یک گره در شبکه
با در نظر گرفتن موارد فوق، این مقاله به شرح زیر تنظیم شده است:
· بخش 2 یک نمای کلی از ترکیب یک گراف، نمایش عددی و معماری آن از نظر جهت یا بدون جهت ارائه میدهد.
· بخش 3 تلاش میکند توضیح دهد که چرا رویکرد شبکه عصبی کلاسیک - از نظر معماری / ساختار شبکه عصبی برای گرافها مناسب نیست.
· بخش 4 جزئیات مهمی را در مورد اینکه چگونه یک شبکه عصبی گراف ایده مفهومی را از شبکههای عصبی کانولوشن به عاریت میگیرد و سپس در مورد شباهت عملیات کانولوشن در یک شبکه عصبی کانولوشن و عملیات کانولوشن در یک شبکه عصبی گراف توضیح میدهد. این بخش تاکید میکند که چرا پردازش یک گراف نسبت به پردازش تصاویر یا متون چالش برانگیز است. این بخش از نکات برجسته است!
· بخش 5 و 6 کار یک شبکه عصبی کانولوشن گراف را همراه با مفهوم یک گراف محاسباتی و معماری آن توضیح میدهد.
· بخشهای 7، 8 و 9 در مورد لایه ها در یک شبکه عصبی کانولوشن گراف، تجمعات و عملیات تبدیل در این لایهها و ریاضیات درگیر در محاسبات است.
· در نهایت، ما یک بخش نتیجهگیری داریم که کل مقاله را خلاصه میکند!
2. راه اندازی کلی یک شبکه گراف:
فرض کنید یک گراف “G” داریم که شامل موارد زیر است:
الف) مجموعهای از رئوس / گرهها
ب) یک ماتریس مجاورت که گراف را نشان میدهد.
اجازه دهید همچنین فرض کنیم که هر گره دارای یک بردار ویژگی گره X، مرتبط با آن است. ویژگی های گره ممکن است مطابق با:
· نمایه کاربر یا تصویر کاربر در گراف شبکه اجتماعی، یا
· اطلاعات عملکردی ژن، نمایه بیان ژن در شبکه شامل زیست پزشکی
· در مواردی که هیچ ویژگی گرهی در شبکه وجود ندارد و تنها بر ساختار گراف تأکید می شود، دانشمندان داده اغلب از درجه گره یا یک درجه گرم رمزگذاری[1] گره به عنوان ویژگیهای گره استفاده میکنند.
فرض کنید که N(v) مجموعه همسایگان یک گره معین v را نشان میدهد.
شکل 2: یک گراف با مجموعهای از گرههای “v”
3. رویکرد ساده برای اعمال شبکههای عصبی عمیق در گرافها:
یک رویکرد ساده برای اعمال شبکههای عصبی عمیق ممکن است این باشد که گراف را از طریق ماتریس مجاورت آن نشان دهیم و هر گره را با ویژگی گره اضافه کنیم (یعنی: هر سطر را اضافه کنیم. از ماتریس مجاورت) با ویژگیهای گره همانطور که در شکل 3 نشان داده شده است. هر ردیف از ماتریس مجاورت ممکن است به عنوان یک مثال آموزشی در نظر گرفته شود و تعداد کل ستونهای ماتریس مجاورت معادل تعداد کل ویژگیهای مدل است. سپس میتوان به تغذیه این اطلاعات به شبکه عصبی همانطور که در شکل زیر نشان داده شده است فکر کرد:
شکل 3: هر ردیف از ماتریس مجاورت دارای ویژگیهای گره متناظر است که به عنوان یک نمونه آموزشی واحد در نظر گرفته شده است.
شکل 4: تغذیه هر نمونه آموزشی در یک شبکه عصبی.
با این حال، اگرچه در ظاهر این رویکرد ممکن است منطقی به نظر برسد، مسائل متعددی در ارتباط با آن وجود دارد:
۱) اولاً، تعداد پارامترهای مدل برابر با تعداد گرهها به اضافه تعداد ویژگیهای گره خواهد بود در حالی که تعداد نمونههای آموزشی برابر با تعداد گرهها است. بنابراین، تعداد پارامترهای یادگیری بیشتر از تعداد نمونههای آموزشی خواهد بود که باعث میشود آموزش ناپایدار و به راحتی بیش از حد برازش شود.
۲) مسئله دیگری که پیش میآید این است که این رویکرد نمیتواند برای گرافهایی با اندازههای مختلف قابل اجرا باشد. به عنوان مثال، اگر همانطور که در مثال بالا نشان داده شده است، یک گراف از هفت گره نسبت به یک گراف از پنج گره داشته باشیم، نحوه اعمال همان مدل نامشخص میشود.
۳) موضوع دیگر، با رویکرد توصیف شده، حساس بودن آن به ترتیب گره است. در مثال نشان داده شده بالا، ورودی بر اساس ترتیب گره تعریف شده توسط: A، B، C، D و E است، اما برای گرافها ترتیب گره ثابتی وجود ندارد و بنابراین یادگیری باید مستقل / ثابت از ترتیب گره باشد - اما این با توجه به رویکرد فوق چنین نیست. این را میتوان به راحتی از شکل 4 در بالا تفسیر کرد.
4. گراف شبکههای عصبی: تعمیم شبکههای عصبی کانولوشن
شبکههای عصبی گراف اساسا این ایده را از شبکههای عصبی کانولوشن (CNN) وام گرفته و آن را به گرافها تعمیم میدهند. اجازه دهید این جنبه مهم یادگیری عمیق با گرافها را درک کنیم!
مروری بر شبکههای عصبی کانولوشنال و عملیات کانولوشنال:
بیایید بگوییم که یک تصویر داریم که شبکهای از پیکسلها است. در شبکههای عصبی کانولوشن، عملیات کانولوشنی را تعریف میکنیم که در یک سری مراحل روی تصویر میلغزد تا کل تصویر را پوشش دهد، همانطور که در شکل زیر نشان داده شده است:
شکل 5: عملیات کانولوشن روی یک تصویر در CNN
ما عملیات کانولوشنی را تعریف میکنیم که در یک سری مراحل روی تصویر میلغزد تا کل تصویر را پوشش دهد. در هر مرحله، مقداری تجمع بر روی مقادیر پیکسل انجام میدهیم. در طول هر مرحله از پنجره کشویی، یک مقدار پیکسل جدید دریافت میکنیم و پس از یک سری مراحل، یک تصویر جدید با اندازههای مختلف دریافت میکنیم. این فرآیند از طریق دنبالهای از لایههای کانولوشن تکرار میشود که با هم یک شبکه عصبی کانولوشن را تشکیل میدهند همانطور که در شکل زیر نشان داده شده است:
شکل 6: شبکه عصبی کانولوشن روی یک تصویر
در شبکههای گراف، هدف تعمیم مفهوم عملیات کانولوشنی فراتر از شبکههای ساده یا شبکهای از پیکسلها به یک توپولوژی با شکل دلخواه مانند گرافها و همچنین استفاده از ویژگیهای گره همانطور که در بخش 2 در بالا توضیح داده شد، است.
۴.۱ تصاویر در مقابل گرافها:
برخلاف تصاویر که به صورت یک شبکه ساده از پیکسلها نشان داده می شوند، شبکه گراف از نظر توپولوژی بسیار پیچیده است، همانطور که در شکل زیر نشان داده شده است:
شکل 7: توپولوژی پیچیده یک شبکه گراف
تعریف یک پنجره کشویی به عنوان n شبکه عصبی کانولوشن که بخشی از پیکسلها را میپوشاند، امکان پذیر نیست زیرا توپولوژی ثابت/منظم[2] در گرافها همانطور که در شکل بالا نشان داده شده است وجود ندارد.
در مورد تصاویر، یک لایه شبکه عصبی کانولوشنیک یک فیلتر 3×3 میگیرد، یک تبدیل اعمال میکند و یک پیکسل جدید ایجاد میکند که در شکل زیر نشان داده شده است:
شکل 8: عملیات کانولوشنی منفرد روی یک تصویر
سپس فیلتر را میگیریم و آن را به صورت مرحلهای در کل تصویر میکشیم و همان تجمیع را انجام میدهیم. این روند تا زمانی ادامه مییابد که کل تصویر پوشانده شود و کل فرآیند را از طریق لایههای مختلف کانولوشن پوشش دهیم.
عملیات کانولوشن در گرافها:
ما در گرافها چیزی شبیه به عملیات کانولوشن در تصاویر انجام میدهیم. در یک گراف، اگر بخواهیم عملگر کانولوشن را بر حسب یک پنجره کشویی اعمال کنیم، در این صورت، مرکز پنجره کشویی را خواهیم داشت که گره در مرکز است، همانطور که در شکل زیر نشان داده شده است. این مرکز است که قرار است اطلاعات همسایگان را مطابق شکل زیر جمعآوری کند:
شکل 9: عملیات کانولوشن اعمال شده بر روی تصاویر و عملیات کانولوشن اعمال شده بر روی گرافها.
در مورد یک تصویر، میتوانیم مرکز را به عنوان پیکسل در مرکز فیلتر 3×3 و همسایه را بقیه پیکسلهای فیلتر در نظر بگیریم.
بنابراین، مفهوم اساسی که باید درک شود این است که عملگرهای کانولوشن واقعاً در تصاویر انجام میدهند - آنها اطلاعات را از همسایگان، پیکسل ها تغییر میدهند، آنها را ترکیب میکنند (تجمع میکنند) و نوع جدیدی از تصویر را ایجاد میکنند. عملیات مشابه در گرافها اتفاق میافتد – در گرافها عملگرهای کانولوشن در حال جمعآوری اطلاعات از گرههای همسایه، جمعآوری آن و ایجاد یک جاسازی / پیام[3] جدید هستند.
5. شبکههای عصبی کانولوشن گراف در واقع چگونه کار میکنند؟
در شبکههای عصبی کانولوشنال گراف، ایده این است که همسایگی یک گره، معماری شبکه عصبی آن را تعریف میکند. یعنی: ساختار گراف در اطراف گره مورد نظر ساختار شبکه عصبی را تعریف میکند.
شکل 10: همسایگی گره ساختار شبکه عصبی را تعریف میکند.
بنابراین، اگر بخواهیم برای گره “i” که در شکل زیر مشخص شده است پیشبینی کنیم، گره “i” اطلاعات را از گرههای همسایه میگیرد و همسایهها اطلاعات را از همسایگان میگیرند. اطلاعات همسایهها قرار است در لبههای شبکه منتشر یا تبدیل شوند.
شکل 10 الف: انتشار اطلاعات به گره هدف “i” از هاپهای مجاور آن
بنابراین، میتوان محاسبات را در شبکه عصبی گراف به عنوان یک فرآیند 2 مرحلهای در نظر گرفت:
در مرحله اول، گراف محاسباتی گره را تعیین میکنیم.
در مرحله دوم، اطلاعات را در طول گراف محاسباتی منتشر و تبدیل میکنیم.
گراف محاسباتی معماری یا ساختار شبکه عصبی زیرین[4] را تعریف میکند. در این روش، شبکه با انتشار اطلاعات ساختار گراف و در نهایت آموزش تعبیه گره، یاد میگیرد. باید تاکید کرد که یک گراف محاسباتی که در شکل 9/10 در بالا مشخص شده است، باید برای هر گره در گراف فرموله شود تا بتوان تعبیه آن را یاد گرفت.
در بخش، اکنون، اجازه دهید جزئیات محاسبه را در گراف محاسباتی یک گره ببینیم تا فرآیند را بهتر درک کنیم.
6. مثالی از محاسبات در گراف محاسباتی یک گره
اجازه دهید از طریق یک مثال به توضیح و بحث بخش 4 و بخش 5 عمیقتر بپردازیم. یک گراف نمونه با 6 گره همانطور که در شکل زیر نشان داده شده است را در نظر بگیرید:
شکل 11: نمونه گراف ورودی شش گره.
هدف از این مسئله، ایجاد تعبیههای گره بر اساس همسایگی محلی گره مورد نظر است. بنابراین، گره A را به عنوان گره هدف در نظر میگیریم. ساختار شبکه عصبی که قرار است محاسبات روی آن انجام شود تا بتوان گره A را پیشبینی کرد، همانطور که در شکل 12/13 زیر نشان داده شده است.
شکل 12: گراف ورودی و معماری شبکه عصبی برای گره A
شکل 13: جعبهها شبکههای عصبی را نشان میدهند که در آن تبدیلهای خطی و غیرخطیها اعمال میشوند همانطور که در پاراگرافهای بعدی توضیح داده شد.
معماری فوق را میتوان به صورت زیر توجیه کرد:
· گره A همانطور که در شکل 11/12 در بالا نشان داده شده است، قرار است اطلاعاتی را از همسایگان شبکه بگیرد. همسایگان A هستند B، C و D. این اطلاعات یک پرش است. این را میتوان به چندین پرش از اطلاعات باز کرد.
· اگر بخواهیم هاپ دیگری را در نظر بگیریم، گره D اطلاعات را از همسایگان خود A و گره C از A، B، E و F (یعنی همسایههای C) و گره B نیز اطلاعات را از همسایگان خود A و C میگیرد.
در مرحله بعد، اگر شکل بالا (شکل 12/13) ساختار شبکه باشد:
۱) پیامها (تعبیه ها) از گره A و C به گره B، از گره های A، B، E و F به گره C و از گره A به گره C و پیام ها از A به گره D باید تبدیل شوند، با هم تجمیع و به B منتقل شد.
۲) به طور مشابه، پیام B باید قبل از ارسال به A تبدیل/تجمع شود و همین امر در مورد سایر گرهها نیز وجود دارد. تبدیل پارامتری خواهد شد و پارامترها باید یاد بگیرند.
نکته اصلی در مورد تفاوت بین شبکههای عصبی گراف و شبکههای عصبی وانیلی این است که در شبکههای عصبی گراف، هر گره دارای معماری شبکه عصبی خاص خود است. هر گره در شبکه گراف میتواند گراف محاسباتی خود را بر اساس شبکه اطراف همسایگی خود تعریف کند، همانطور که در شکل زیر نشان داده شده است:
شکل 14: هر گره گراف دارای معماری شبکه عصبی خاص خود است - گراف محاسباتی خود.
گراف محاسباتی هر یک از گرهها: A، B، C، D، E و F بر اساس همسایگی محلی آنها مطابق شکل 14 بالا نشان داده شده است. بسته به همسایگی محلی آن، معماری شبکه عصبی گره ممکن است مانند گره D طولانی و باریک باشد یا مانند گره C یا گره A که در همان شکل مشخص شده است عریضتر باشد. مهمترین واقعیتی که باید درک شود این است که هر گره در گراف، گراف محاسباتی خود و در نتیجه معماری شبکه عصبی خود را شامل میشود.
بنابراین، آموزش یک شبکه عصبی گراف شامل آموزش چندین شبکه عصبی برای گره مربوطه خواهد بود - آموزش به طور همزمان انجام میشود و ساختار هر شبکه عصبی توسط محله محلی تعیین میشود.
7. لایهها در یک شبکه عصبی گراف
شبکه عصبی مربوط به یک گره در گراف میتواند عمق دلخواه داشته باشد همانطور که در شکل 15 در زیر نشان داده شده است:
شکل 15: گراف محاسباتی یک گره میتواند تعداد دلخواه پرش را از همسایگی خود (عمق دلخواه) در خود جای دهد.
میتوان تعداد دلخواه لایه ایجاد کرد. گرهها در هر لایه دارای تعبیه خواهند بود و جاسازی در لایه 0 به عنوان ویژگی ورودی آن X همانطور که در شکل 15 در بالا نشان داده شده است، مقداردهی اولیه میشود. بنابراین، برای لایه 0، تعبیه گره A و C، ویژگی گره (بردار ویژگی) برای گره A و C خواهد بود و تعبیه برای لایه 1، تجمیع بردارهای ویژگی گره A و C به اضافه تعبیه خودش خواهد بود.
بنابراین، برای همسایگی محلی طولانی K-hops، ما به یک شبکه عصبی لایه K نیاز داریم. بنابراین، تعبیه لایه K اطلاعاتی را از گرههایی که K-hops دور هستند دریافت میکند.
8. تجمع و تحولات همسایگی
پس از تعریف مفهوم چگونگی ایجاد یک گراف محاسباتی برای هر گره بر اساس همسایگی محلی در بخشهای 5 تا 7، اجازه دهید در مورد تحولی که در یک شبکه عصبی اتفاق میافتد صحبت کنیم.
پس از ترسیم گراف محاسباتی مربوط به گره A در گراف همانطور که در شکل 15 نشان داده شده است، اکنون این سوال مطرح میشود که در شکل زیر در کادرها چه اتفاقی میافتد:
شکل 16: تجمعات/تبدیلها در جعبه (شبکه عصبی) چیست؟
بنابراین، ما باید ببینیم؛ چگونه تبدیل را تعریف کنیم، چگونه پارامترسازی کنیم و چگونه یاد بگیریم.
نکته مهمی که باید به آن توجه داشت این است که – چون ترتیب گرهها در یک گراف دلخواه است، این بدان معناست که عملگر تجمیع در یک گراف باید جایگشت ثابت باشد. یعنی - اگر گرهها را به هر ترتیبی نظم دهید، تجمع باید همیشه ثابت بماند. بنابراین، تابع تجمع همسایگی باید جایگشت یا نظم ثابت باشد.
رویکرد اصلی، میانگینگیری اطلاعات از همسایگان و اعمال یک شبکه عصبی است. از آنجایی که میانگین/مجموع[5] جایگشتی ثابت است، میتوان از آن به عنوان شکلی از تجمع در بلوکهای ورودی استفاده کرد، همانطور که در شکل 17 زیر نشان داده شده است.
شکل 17: میانگین اطلاعات از همسایگان برای تبدیل خطی و اعمال غیر خطیها به شبکه عصبی منتقل میsشود.
هنگامی که پیامها جمع شدند، شبکه عصبی مربوط به بلوک را همانطور که در شکل 16/17 در بالا نشان داده شده است اعمال میکنیم. استفاده از شبکه عصبی به این معنی است که یک تبدیل خطی و به دنبال آن یک غیر خطی اعمال میکنیم و یک پیام سطح بعدی ایجاد میکنیم. این همان چیزی است که در کادر شکل 17 همانطور که در بالا اشاره شد اتفاق میافتد. ریاضیات تبدیل و کاربرد غیرخطیها/فعالسازیها در بخش بعدی (بخش 9) مورد بحث قرار میگیرد.
تمایز کلیدی بین معماریهای مختلف شبکههای عصبی گراف در مورد نحوه ادغام است - یعنی: چگونه اطلاعات از گرههای فرزندان تجمیع و ترکیب میشوند و با اطلاعات والدین ترکیب میشوند.
9. ریاضیات در محاسبات شبکه عصبی گراف
همانطور که در بخش 8 ذکر شد، رویکرد اصلی این است که میخواهیم پیامهای دریافتی از فرزندان را میانگین بگیریم: یعنی از همسایههای گره هدف میآیند و یک شبکه عصبی برای آنها اعمال میکنیم. اجازه دهید ریاضیات درگیر در اینجا را درک کنیم که اساساً با ریاضیات عملیات در شبکههای عصبی معمولی/وانیلی[6] تفاوتی ندارد.
در نظر بگیرید:
که در آن، h تعبیه است، و زیرنویس نشان دهنده گره است، و بالانویس نشان دهنده لایه شبکه عصبی است. همانطور که در بخشهای قبل، لایه 0 ذکر شد، تعبیه گره v به سادگی بازنمایی ویژگی آن است که با xv در بالا نشان داده شده است.
بنابراین،
hv0 نشان دهنده تعبیه گره لایه 0 است که با بازنمایی ویژگی آن مشخص میشود.
در مرحله بعد، ما میخواهیم تعبیههای مرتبه بالاتر را در لایههای بعدی ایجاد کنیم.
بنابراین، در Layer-1، خواهیم داشت:
این همان کاری است که ما اساساً در ریاضی فوق انجام میدهیم:
· ما تعبیه گره را در لایه قبلی میگیریم، آن را با ماتریس B تبدیل میکنیم. این عبارت است:
· ما همچنین تعبیههای همسایهها را میگیریم، آنها را جمع و میانگین میکنیم. این عبارت است:
· ما میانگین تعبیه را با ضرب یک ماتریس W تبدیل میکنیم
سپس غیر خطی بودن/فعالسازی[7] را اعمال میکنیم:
این یک لایه از شبکه عصبی را تشکیل میدهد. این را میتوان چندین بار در چندین تکرار/چند لایه انجام داد و هر چیزی که بازنمایی نهایی پنهان باشد، تعبیه نهایی گره است. این نوع استاندارد فرآیند/مراحل در یک شبکه عصبی معمولی است که در لایههای پنهان شبکه انجام میشود.
10. آموزش مدل شبکه کانولوشن گراف
در مرحله بعد، ما باید مدل شبکه کانولوشن گراف را آموزش دهیم که در آن هر گره معماری محاسباتی خود را دارد که در زیر نشان داده شده است:
شکل 18: معماری محاسباتی یک گره از گراف
ما پارامترها را (همانطور که در بخش 9 مورد بحث قرار گرفت - ماتریسهای W و B) به گرادیان نزولی تصادفی وارد میکنیم و پارامترها باید مطابق با تابع ضرر زیر آموزش داده شوند:
با در نظر گرفتن معادله بالا، پارامترهایی که باید آموزش داده شوند عبارتند از:
· Wk - ماتریس وزن برای تجمع همسایگی
· Bk - ماتریس وزن برای تبدیل بردار پنهان خود گره.
نکته مهمی که باید به آن توجه داشت این است که همه گرههای شبکه از ماتریسهای تبدیل یکسانی استفاده میکنند: Wl و Bl بنابراین امکان میدهند تعبیهها برای گرههای دیده نشده در گراف تولید شوند، همانطور که در بخش 11 بحث شد.
10.1 تنظیم تحت نظارت یا بدون نظارت در طول آموزش:
تعبیه گره zv تابع گره ورودی است و آموزش میتواند در یک تنظیمات نظارت شده یا بدون نظارت اتفاق بیفتد. در تنظیمات نظارت شده، جایی که برچسبهای گره در دسترس هستند، تابع ضرر را فرموله میکنیم و پیشبینی میکنیم که اختلاف بین پیشبینی و حقیقت را به حداقل میرساند.
در یک تنظیمات بدون نظارت که در آن برچسبهای گره در دسترس نیستند، شباهت را در شبکه با استفاده از شباهت جاکارد[8] (معمولاً) همانطور که در بخش XX قسمت Y از این سری گراف توضیح داده شده است، تعیین میکنیم. تابع از دست دادن به عنوان تفاوت بین شباهت در شبکه و شباهت در فضای تعبیه فرموله می شود - که با حاصلضرب نقطه تعبیه گره در فضای تعبیه نشان داده می شود.
مانند سایر مسائل، برای آموزش نظارت شده، ما از دست دادن آنتروپی متقاطع را برای مسائل دستهبندی همانطور که در معادله زیر نشان داده شده است، تعریف می کنیم:
در معادله بالا:
· zv: ورودی کدگذاری شده از تعبیه گرهها است.
· ϴ: اوزان دستهبندی هستند
· yv: برچسبهای گره
11. نتیجهگیری: خلاصه مباحث بخش 1 تا 10
از بحثهای بخشهای 1 تا 9، اکنون میتوانیم طراحی مدل را به صورت زیر در نظر بگیریم:
با ارائه یک گراف:
شکل 20: گراف مثال
ما میخواهیم تعبیه گره هدف را محاسبه کنیم. همانطور که در شکل زیر نشان داده شده است، گراف محاسباتی گرههای موجود در گره را میسازیم:
شکل 21: گراف محاسباتی یک گره هدف
ما تابع تجمع همسایگی و تابع ضرر را مانند آنتروپی متقاطع تعریف کرده و مدل را آموزش میدهیم. به طور معمول، برای آموزش، دستهای از گرهها را مطابق شکل زیر انتخاب میکنیم.
شکل 22: آموزش مدل برای دستهای از گرافهای محاسباتی.
استفاده از مدل آموزش دیده بر روی گرههای "دیده نشده":
هنگامی که مدل آموزش داده شد، میتوانیم مدل یا گرهها/گرههای «دیدهنشده» را که هرگز روی آنها آموزش داده نشدهاند، اعمال کنیم. این بدان معناست که مدل اکنون برخلاف تعبیههای گرهای که در شبکههای کمعمق مانند یک مدل skip-gram آموزش داده شدهاند، قابلیت القایی دارد. این امکانپذیر است زیرا همان پارامترهایی که W و b بودند (همانطور که در بخش 10 ذکر شد) در همه گرهها به اشتراک گذاشته میشوند.
شکل 23: پارامترهای مشترک در تمام گرافهای محاسباتی در شبکه، پیشبینی گرههای دیده نشده را امکانپذیر میکند.
بنابراین، به شبکههای عصبی گراف اجازه تعمیم گرههای «دیده نشده» را میدهد. به عنوان مثال، در شبکههای زیست پزشکی میتوانیم مدل را روی یک ارگانیسم (که یک شبکه گراف است) آموزش دهیم و از مدل برای پیشبینی روی ارگانیسم دیگر (شبکه دیگر) استفاده کنیم، همانطور که در شکل زیر نشان داده شده است:
شکل 24: پیشبینی شبکههای دیده نشده ارگانیسمها
پیشبینی گرههای دیدهنشده برای شبکههایی که در حال تکامل هستند بسیار مفید است – زیرا میتوانید یک عکس فوری از شبکه بگیرید، یک گراف محاسباتی ایجاد کنید، عبور دهید و تعبیه گرههای دیده نشده را پیشبینی کنید.
بنابراین، بخشهای 1 تا 10 شرح مفصلی از شبکههای عصبی گراف، تفاوت بین شبکههای عصبی وانیلی و شبکههای عصبی گراف، مقایسه بین شبکههای عصبی کانولوشن و شبکههای عصبی گراف، تابع از دست دادن و فرآیند آموزش در GNN ارائه میدهند.
وبلاگهای بعدی من بر روی معماریهای مختلف شبکههای گراف، گرافهای دانش و غیره تمرکز خواهند کرد!