۱. مقدمه
این وبلاگ به جزئیات دقیق معماری ترانسفورمر میپردازد. هر بخش از این مجموعه شامل بینش نظری و همچنین بینشی از نقطه نظر کدگذاری در هر واحد/مفهومی است که معماری ترانسفورماتور را در بر میگیرد، همانطور که در زیر نشان داده شده است. هر بخش مربوطه به جزئیات موارد زیر خواهد رفت:
· نشانهگذاری جمله و تعبیه ورودی
· رمزگذاری موقعیتی
· نرمالسازی لایهها
· Self-Attention
· Multi-Head Attention
· و غیره
با این حال، قبل از غوطهوری در مواد تشکیل دهنده فوق، من احساس کردم که مستند کردن موارد زیر ضروری است:
o اولا - اصول اساسی یادگیری عمیق
o ثانیا - تکامل مدلهای زبان
با بررسی مجدد 2 مبحث فوق با جزئیات (مقداری) مطالب مربوط به ترانسفورماتور بهتر درک میشود. از این رو، من احساس کردم که قطعاً مفید است که قبل از فرو رفتن در کار ترانسفورمرز، زمان و تلاش خود را برای موضوعات فوق صرف کنم. این مقاله به جزئیات اصول اساسی یادگیری عمیق میپردازد و جنبههای زیر را پوشش میدهد:
· بخش 2 تعاریف هوش مصنوعی، یادگیری ماشینی و یادگیری عمیق را بازبینی میکند.
· بخش 3 اثربخشی/اهمیت یادگیری عمیق را تشریح میکند
· بخش 4 مفهوم پرسپترون را که به تصویر شبکه عصبی منتهی میشود بازبینی میکند.
· بخش 5 در مورد مفهوم پرسپترون، شبکههای عصبی صحبت میکند
· بخش 6 به آموزش شبکه عصبی، تابع هزینه/تابع هدف/ضرر تجربی و بهینهسازی ضرر میپردازد.
· بخش 7 پسانتشار را نشان میدهد که تکنیکی برای محاسبه گرادیان با استفاده از قانون زنجیرهای تفاضلی است.
· منظمسازی در بخش 8 مورد بحث قرار گرفته است.
نیازی به ذکر نیست، تمام محتوای مورد بحث در زیر مجموعهای از یادداشتهای من از دورههای مختلفی است که تاکنون گذراندهام، ویدیوهای YouTube که تماشا کردهام و پستهای وبلاگ دیگران که بهعنوان منبع باز موجود است. این برای مرجع آینده مستند شده است، با این حال، اگر خواندن این محتوا برای کسی مفید باشد، واضح است که خوشحال خوشحال خواهم بود.
2. هوش مصنوعی، یادگیری ماشینی و یادگیری عمیق
هوش مصنوعی:
صحبت از هوش، یعنی پردازش اطلاعات به گونهای که بتوانیم از آن برای استنباط برخی تصمیمات و اقدامات آینده استفاده کنیم. حوزه هوش مصنوعی شامل ساخت الگوریتمهای رایانهای است که دقیقاً همان کار را انجام میدهند: پردازش اطلاعات برای استنتاج برخی تصمیمات آینده.
یادگیری ماشینی:
یادگیری ماشینی زیرمجموعهای از هوش مصنوعی است که بهویژه بر یادگیری ماشینها بر اساس برخی تجربیات انسانی/واقعی تمرکز دارد. تکنیکهای آماری برای توانمند ساختن ماشینها برای بهبود با تجربه استفاده میشود.
یادگیری عمیق:
یادگیری عمیق زیرمجموعهای از یادگیری ماشینی است که از شبکههای عصبی چندلایه برای استخراج الگوهای موجود در دادهها استفاده میکند تا شبکه یاد بگیرد وظایفی را که در غیر این صورت به هوش انسانی نیاز دارد، انجام دهد.
این مقاله به جنبههای اساسی یادگیری عمیق میپردازد که بر روی یادگیری مستقیم وظایف مختلف رایانه از دادههای خام تمرکز دارد.
شکل: تصویری از هوش مصنوعی، یادگیری ماشینی و یادگیری عمیق
3. یادگیری عمیق چه چیزی برای ارائه دارد؟
الگوریتمهای یادگیری ماشین سنتی معمولاً ویژگیها (الگوها) را در دادهها تعریف میکنند و معمولاً یک انسان با دانش تخصصی این ویژگیها را کشف میکند – ایده کلیدی یادگیری عمیق این است که به جای اینکه انسان این ویژگیها را تعریف کند، ماشین الگوهایی را در دادهها استخراج میکند. که میتواند از آنها برای تصمیمگیری استفاده کند.
به عنوان مثال، برای یک الگوریتم تشخیص چهره، یک شبکه عصبی عمیق یاد میگیرد که برای تشخیص چهره، ابتدا خط، لبههایی را شناسایی میکند که میتوان آنها را با هم ترکیب کرد تا ویژگیهای سطح متوسط مانند گوشهها و منحنیها را به دست آورد که به نوبه خود میتوان آنها را با هم ترکیب کرد. در لایههای عمیقتر شبکه عصبی، ویژگیهای سطح بالایی مانند چشم، گوش، گره و غیره را تشکیل میدهند و سپس همه اینها با هم قادر به تشخیص چهره خواهند بود.
همانطور که در شکل زیر نشان داده شده است، تمام یادگیریها به صورت سلسله مراتبی از لایههای پایین شبکه شروع میشود.
شکل: یادگیری سلسله مراتبی ویژگیها در شبکههای عصبی عمیق
4. بلوک ساختمانی یادگیری عمیق: پرسپترون
اجازه دهید اکنون با بلوک ساختمانی اساسی هر شبکه عصبی که ممکن است ایجاد شود - که یک نورون واحد است، شروع کنیم. در زبان یادگیری عمیق، یک نورون منفرد پرسپترون نامیده میشود. پرسپترون یک نورون منفرد است و حالت داخلی آن با مجموعهای از ورودیهای x1 تا xn نشان داده میشود که در وزنهای مربوطه ضرب میشوند و با هم جمع میشوند - همچنین یک عبارت بایاس که به عنوان w0 نشان داده شده است، همانطور که در شکل زیر نشان داده شده است اضافه میکنیم.
حالت داخلی یک نورون منفرد (پرسپترون)
سپس، عدد واحد را پس از جمع میگیریم و آن را از یک تابع فعالسازی غیر خطی عبور میدهیم و خروجی نهایی پرسپترون را تولید میکنیم که ممکن است مطابق شکل زیر y_bar نامیده شود.
خروجی نهایی پرسپترون
این فرآیند به صورت ریاضی با معادله زیر نشان داده می شود:
نمایش ریاضی فرآیند فوق
هدف از عملکرد فعالسازی:
هدف تابع فعالسازی غیرخطی، معرفی غیرخطیها به دادهها است/ تقریباً تمام دادههای دنیای واقعی ماهیت خطی دارند، بنابراین، اگر بخواهیم با آن مجموعههای داده سروکار داشته باشیم، به مدلهایی نیاز داریم که غیرخطی نیز باشند تا مدلها میتوانند انواع الگوها را در دادهها ثبت کنند. برای درک بهتر این موضوع، اجازه دهید بگوییم که یک مجموعه داده داریم که در شکل زیر نشان داده شده است:
مجموعه داده غیر خطی
فرض کنید با توجه به این مجموعه داده، باید یک مرز تصمیم بسازیم، یعنی مرزی که نقاط قرمز و سبز را در شکل بالا جدا میکند. حال، اگر از یک خط مستقیم برای جدا کردن نقاط سبز و قرمز استفاده کنیم، بهترین کاری که میتوانیم انجام دهیم این است که مانند شکل زیر از هم جدا کنیم:
خط مستقیم (رویکرد خطی) برای ساختن مرز تصمیم.
بنابراین، مسئله را نمیتوان به طور موثر با استفاده از یک رویکرد خطی حل کرد و ما باید به غیرخطی بودن متوسل شویم که به مقابله با چنین مسائلی کمک میکند. توابع فعالسازی غیرخطی به ما امکان میدهند با دادههای غیرخطی مقابله کنیم که شبکههای عصبی را بسیار قدرتمند میکند.
مرز تصمیمگیری پس از استفاده از توابع فعالسازی خطی
علاوه بر این، ممکن است تاکید شود که از آنجایی که ما فقط ورودیها را با وزنهای مربوطه ضرب میکنیم و آنها را با هم جمع میکنیم، تا زمانی که با استفاده از توابع فعالسازی غیرخطی، غیرخطیها را معرفی نکنیم، مسئله به صورت یک مسئله خطی باقی میماند.
انواع توابع فعالسازی غیر خطی:
برخی از انواع توابع فعال سازی عبارتند از
· تابع فعالسازی سیگموئید
· تابع فعالسازی Tan hyperbolic/ Hyperbolic Tangent
· تابع فعالسازی ReLu
این موارد در شکل زیر نشان داده شده است:
توابع فعالسازی
5. پرسپترون به شبکه عصبی
در ادامه بحث بالا: حالا، بیایید پرسپترون (تک) را بگیریم و چیزی قابل توجهتر بسازیم!
حال فرض کنید 2 خروجی از تابع میخواهیم. ما به سادگی یک پرسپترون دیگر اضافه میکنیم - این پرسپترون اضافه شده / دوم مجموعه وزنهای خاص خود را خواهد داشت. هر پرسپترون خروجی قطعه مرتبط خود را کنترل میکند.
شبکه عصبی تک لایه با 2 پرسپترون
علاوه بر این، چنین پرسپترونهایی را میتوان برای تشکیل یک شبکه عصبی تک لایه مانند زیر روی هم قرار داد:
شبکه عصبی تک لایه
یک شبکه عصبی عمیق را میتوان با انباشتن لایههای متوالی بیشتر همانطور که در شکلهای زیر نشان داده شده است، ساخت:
شبکه عصبی عمیق با 3 لایه پنهان
با این تصویر، میتوانیم تصور/تفسیر[1] کنیم که ورودیهای دادهشده (در ابتدا) به یک فضای بعدی جدید با مقادیر نزدیکتر به آنچه میخواهیم (یعنی نزدیکتر به خروجی مورد نظر ما) تبدیل میشوند و این تبدیل باید آموخته شود. و این در بخش بعدی که مربوط به تابع ضرر (یا تابع هدف[2]) است، توضیح داده شده است.
6. آموزش شبکه عصبی
تابع ضرر:
پس از ساختن شبکه عصبی (تک/چند لایه) و اگر تازه شروع به استفاده از شبکه - با مقادیر تصادفی وزن - برای پیشبینی خروجی کنیم، شبکه به درستی پیشبینی نمیکند زیرا هنوز آموزش ندیده است. این شبکه اطلاعات در مورد مسئله را ندارد!
برای آموزش شبکه، باید تابع ضرر را بسازیم که به ما میگوید خروجی پیشبینی شده چقدر از خروجی واقعی فاصله دارد. از دست دادن شبکه هزینههای ناشی از پیشبینی نادرست را اندازهگیری میکند. تابع ضرر به عنوان تابع هدف یا تابع هزینه یا ضرر تجربی[3] نیز نامیده میشود و معیاری از ضرر کل در کل مجموعه داده است. از نظر ریاضی، تابع ضرر به صورت زیر بیان میشود:
تابع هدف / ضرر
همانطور که ممکن است از معادله بالا متوجه شود، تابع ضرر تابعی از ورودیها و وزنها است - یعنی خروجی پیشبینی شده و خروجی واقعی.
به حداقل رساندن ضرر:
آموزش شبکه عصبی نه تنها مستلزم تعیین فاصله خروجی پیشبینیشده از خروجی واقعی است، بلکه کاهش تلفات را نیز شامل میشود. بنابراین، از نظر ریاضی میخواهیم وزنهای شبکه را پیدا کنیم که منجر به کمترین ضرر ممکن در کل مجموعه داده شود. معادله ریاضی به صورت زیر نمایش داده می شود:
تصویر ریاضی به حداقل رساندن ضرر
ضرر آنتروپی متقاطع
برای یک مسئله دستهبندی دودویی، تابع ضرر به کار رفته ضرر آنتروپی متقاطع است که به صورت زیر نشان داده میشود:
تصویر ریاضی ضرر آنتروپی متقاطع
میانگین ضرر مربعات خطا:
ضرر میانگین مربعات خطا میتواند برای مدلهای رگرسیونی استفاده شود که میتوانند اعداد حقیقی پیوسته را که به صورت زیر نشان داده شدهاند، تولید کنند:
تصویر ریاضی میانگین ضرر مربعات خطا
بهینهسازی ضرر: چگونه ضرر را به حداقل برسانیم؟
تابع ضرر تابع وزنها خواهد بود - برای یک مسئله دو بعدی، این تابع ضرر را میتوان به صورت زیر تجسم کرد:
تغییر تابع ضرر برای مقادیر مختلف وزن
در منظر فوق میخواهیم کمترین ضرر را پیدا کنیم که با کمترین نقطه مطابقت دارد.
این کار به صورت ریاضی از طریق مراحل زیر انجام میشود:
۱. ابتدا از یک فضای تصادفی شروع میکنیم و ضرر را در مکان خاص محاسبه میکنیم.
۲. سپس محاسبه میکنیم که ضرر چگونه تغییر میکند - به عنوان مثال، گرادیان ضرر را محاسبه میکنیم. فرآیند محاسبه گرادیان به عنوان "پسانتشار[4]" شناخته میشود.
۳. گرادیان به ما میگوید که چگونه ضرر به عنوان تابعی از وزنها تغییر میکند.
۴. وزنها را در جهت مخالف شیب به روز میکنیم.
۵. روند بالا را ادامه میدهیم تا به پایینترین نقطه برسیم.
الگوریتم فوق به طور رسمی به عنوان نزول گرادیان نامیده میشود. به طور رسمی، مراحل در الگوریتم Gradient Descent ممکن است به صورت زیر برجسته شوند:
· وزن های شبکه را به صورت تصادفی مقداردهی کنید.
· حلقه بزنید تا موارد زیر همگرا شوند:
1) گرادیان را محاسبه کنید
2) وزن ها را در جهت مخالف شیب به روز کنید
نمایش ریاضی شیب و به روز رسانی وزن
وزنها در جهت مخالف شیب به روز میشوند. پارامتر η گام کوچکی است که در جهت مخالف شیب برمیداریم و معمولاً به آن «نرخ یادگیری[5]» میگویند.
3) وزنهها را برگردانید.
7. پس انتشار:
فرآیند محاسبه گرادیان به عنوان پس انتشار نامیده میشود. از نظر ریاضی، برای یک شبکه عصبی تک لایه با دو نورون همانطور که در زیر نشان داده شده است، گرادیان با استفاده از قانون زنجیره تفاضلی - به عقب از تابع ضرر در سراسر خروجی - به شرح زیر محاسبه میشود:
بازنمایی حرکت به سمت عقب از تابع ضرر به محاسبه گرادیان با استفاده از قانون زنجیره تفاضلی (پسانتشار)
ریاضیات محاسبات گرادیان
الگوریتم پس انتشار ده ها سال قدمت دارد و مقاله (1986) را می توانید در اینجا پیدا کنید:
https://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backprop_old.pdf
باید تاکید کرد که چشمانداز تابع هزینه درگیر در یک شبکه عصبی عمیق بسیار پیچیده از آنچه در بالا نشان داده شده است!
تابع ضرر در یک شبکه عصبی عمیق
تنظیم میزان یادگیری: η
تنظیم نرخ یادگیری میتواند عواقب بسیار بزرگی در هنگام ساخت شبکه عصبی داشته باشد، داشتن نرخ یادگیری بسیار کم باعث میشود که سفر به پایینترین نقطه در چشمانداز بسیار کند شود (همگرایی کند است[6]) در حالی که اگر نرخ یادگیری بالا باشد، محاسبه ممکن است دور بزند. نقطه حداقل سراسری همانطور که به طور مستقیم در زیر نشان داده شده است.
نرخ یادگیری بیش از حد
در عمل یک فرآیند تطبیقی دنبال میشود که در آن "نرخ یادگیری" با چشم انداز "تطبیق" مییابد. وقتی میگوییم "تطبیق"، به این معنی است که میزان یادگیری را میتوان کوچکتر یا بزرگتر کرد بسته به موارد زیر:
· شیب چقدر بزرگ است
· یادگیری چقدر سریع اتفاق میافتد.
· اندازه وزنهها
· و غیره
جزئیات بیشتر را می توانید در اینجا پیدا کنید: https://www.ruder.io/optimizing-gradient-descent/
8. منظمسازی[7]:
در مورد شبکههای عصبی، منظمسازی معمولاً با استفاده از “Dropouts” انجام می شود. در Dropouts، در حین آموزش، اساساً به طور تصادفی تعدادی زیرمجموعه از نورونها را در شبکه عصبی انتخاب میکنیم و با احتمال کمی این نورونها را هرس میکنیم. ما به طور تصادفی این نورونها را در تکرارهای مختلف در طول تمرین روشن و خاموش میکنیم.
این اساساً شبکه عصبی را مجبور میکند تا مجموعهای از مدلهای مختلف را بیاموزد. این یک تکنیک بسیار قدرتمند است و به تعمیم بهتر کمک میکند.
Dropouts - هرس نورونها در طول تکرار تمرین
1. مقدمه:
این ادامه مجموعه وبلاگهای گراف است و سیزدهمین وبلاگ از این مجموعه است. در این وبلاگ، یک جنبه بسیار جالب از یادگیری ماشین گراف را مورد بحث قرار خواهیم داد! این وبلاگ به تئوری شبکههای عصبی گراف، فراتر از بحثهایی که در برخی از وبلاگهای قبلی در حال انجام است، میپردازد:
· مقدمهای بر شبکههای عصبی گراف
· گرافهای ناهمگن و گراف رابطهای شبکههای عصبی کانولوشن (RGCN)
در بحثهایی که تاکنون انجام شده، نحوه طراحی شبکههای عصبی گراف، نحوه تنظیم خط لوله آموزش – استنتاج را دیدهایم و در مورد موارد زیر صحبت کردهایم:
الف) تنظیم گراف ورودی.
ب) تعریف معماری شبکه عصبی گراف.
ج) استفاده از معماری شبکه عصبی گراف برای ایجاد تعبیه گرهها.
د) همچنین در مورد رسیدن به پیشبینی از تعبه گرهها صحبت کردیم.
ه) ما به وضوح راسهای مختلف پیشبینی را بر اساس دستهبندی گره، پیشبینی پیوند و دستهبندی گراف مورد بحث قرار دادیم.
ی) ما در مورد چگونگی پیشبینی گرهها صحبت کردیم و سپس پیشبینیها را با برچسبهای حقیقت مقایسه کردیم تا از دست دادن را بهینه کنیم و بتوانیم تا انتهای ساختار شبکه عصبی گراف را پسانداز کنیم.
و) و سپس با معیارهای ارزیابی مختلف، میتوان عملکرد مدل را ارزیابی کرد.
نکات بالا در شکل زیر نشان داده شده است.
شکل 1: یک خط لوله آموزشی GNN معمولی
1. مقدمه:
این ادامه مجموعه وبلاگهای من در گرافها است. در این مقاله، من در مورد اجزای آموزشی شبکههای عصبی کانولوشن گراف (GCN) صحبت خواهم کرد.
توضیح داده شد که چگونه شبکههای عصبی گراف تعبیه گرهها را محاسبه میکنند، اما مقاله در مورد تعیین پیشبینیهای نهایی و مراحل در خط لوله آموزشی پس از در دسترس بودن تعبیه گرهها بحث نکرده است. نیمی از شکل زیر نشان داده شده است:
شکل 1: محتوای بیان شده گذشته (نشان داده شده با خطوط نقطه چین)
با این هدف، این مقاله به شرح زیر تنظیم شده است:
· بخش 2 این مقاله به تعریف "گراف محاسباتی" در یک شبکه عصبی گراف و مفهوم ارسال پیام و لایهها در GNN بازنگری میکند و بر این توضیح تأکید میکند که هر گره در یک گراف، معماری شبکه عصبی خود را خواهد داشت.
· بخش 3 در مورد پیشبینی راسها صحبت میکند - پیشبینی راس خروجی مدل نهایی را نشان میدهد. بنابراین، همانطور که پیشبینی میشود، سطح گره، سطح لبه و راسهای پیشبینی سطح گراف در این بخش با جزئیات کافی مورد بحث قرار میگیرند.
· بخش 4 تلاش میکند با مثالهایی درباره یادگیری تحت نظارت در مقابل یادگیری بدون نظارت در گرافها اطلاعاتی ارائه دهد.
· بخش 5 و بخش 6 به جزئیات توابع ضرر و معیارهای ارزیابی برای مسائل رگرسیون و دستهبندی در گرافها میپردازند.
ادامه مطلب ...
1. مقدمه:
این مقاله ادامه سلسله وبلاگهای من در زمینه گرافها است. از این مقاله به بعد، تمرکز این مجموعه بر روی گرافهای ناهمگن و تعبیه گراف دانش خواهد بود. ما با جزئیات کافی در مورد مفاهیم مربوط به "تکمیل گراف دانش" بحث خواهیم کرد - که جزئیات آن با حرکت بیشتر در این وبلاگ و مجموعه مشخص خواهد شد.
تا کنون در سری وبلاگهای گراف از قسمت 1 تا 10، من در مورد گرافها تنها با یک نوع گره و یک نوع رابطه بحث کرده بودم. اکنون قصد داریم مفاهیم مربوط به شبکههای کانولوشن گراف ساده را به شبکههای کانولوشن گراف رابطهای که چندین نوع گره یا لبه دارند، گسترش دهیم، یعنی: چندین نوع اتصال.
گرافهای ناهمگن به این دلیل نامیده میشوند که دارای نوع ناهمگنی از موجودیتها هستند - انواع گره و یال. از طریق این مقاله در مورد موارد زیر بحث خواهیم کرد:
در ابتدا، ما در مورد شبکههای کانولوشن گراف رابطهای (RGCNs) صحبت خواهیم کرد که از انواع گرهها و انواع رابطه مراقبت میکنند.
سپس در مورد گرافهای دانش صحبت خواهیم کرد که یک کلاس از گرافهای ناهمگن هستند. ما در مورد تعبیه گراف دانش و نحوه ایجاد تعبیه گراف دانش و همچنین تکمیل گراف دانش که یک کار بسیار رایج در زندگی یک تحلیلگر گراف / مهندس هوش مصنوعی است صحبت خواهیم کرد. این بحث بخشی از مقاله دوازدهم / سیزدهم این مجموعه خواهد بود.
این مقاله به شرح زیر تنظیم شده است:
· ابتدا در بخش 2 این مقاله با چند مثال به تعریف گرافهای ناهمگن میپردازیم.
· در بخش 3، مفاهیم زیربنایی شبکههای عصبی کانولوشنال گراف ساده (GCNs)، مفاهیمی که شامل: گراف محاسباتی یک گره، فرمولبندی یک لایه واحد از GCN - عملیات مربوط به ارسال پیام و تجمیع را مرور میکنیم. ·
· پس از بررسی مفاهیم مربوط به GCNها، تفاوت اساسی بین GCN و RGCNS - شبکههای عصبی کانولوشن گراف رابطهای در بخش 4 را درک میکنیم.
· ریاضی پشت تعریف ارسال پیام و تجمیع در RGCNها در بخش 5 توضیح داده شده است.
· بخش 6 به RGCNها عمیقتر میشود - درک مسائل موجود در RGCNها و روشهای حل این مسائل.
· بخشهای 7 تا 10 عمدتاً در مورد آموزش و فرآیند ارزیابی در RGCNها برای دستهبندی گرهها و مسائل پیشبینی پیوند است. تاکید بیشتری بر مسائل پیشبینی لبه شده است، زیرا در یک مسئله پیشبینی لبه در گرافها باید با مسائل متفاوت از یک مسئله ML معمولی برخورد کرد.
2. گرافهای ناهمگن و گرافهای رابطهای شبکههای عصبی کانولوشن (RGCN):
گرافهای ناهمگن چیست؟
یک گراف ناهمگن با مجموعهای از گرههای “V” تعریف میشود، گرهها میتوانند انواع مختلفی داشته باشند، مجموعهای از یالها که گرههای مختلف را به هم متصل میکنند، و هر یال ممکن است نوع رابطه متفاوتی داشته باشد همانطور که در شکل 1 و شکل 2 نشان داده شده است.
بنابراین، این وضعیت ممکن است به صورت نمادین به صورت زیر نمایش داده شود:
· یک گراف ناهمگن به صورت زیر تعریف میشود:
معادله: بازنمایی نمادین یک گراف.
· گرههایی با نوع “i” به صورت:
معادله: بازنمایی نمادین یک گره از نوع i
· مجموعهای از یالها که گرههای مختلف را به هم متصل میکنند و هر یال ممکن است نوع رابطه متفاوتی داشته باشد که به صورت زیر نمایش داده میشود:
معادله: بازنمایی نمادین مجموعهای از یالها از انواع رابطه بین گرههای vi و vj
· هر گره از انواع مختلفی است – “T” مجموعهای از گرهها است:
معادله: بازنمایی نمادین یک نوع گره
نمونههایی از گرافهای ناهمگن:
مثال 1: یکی از نمونههای رایج گراف ناهمگن در زمینه زیست پزشکی است که در آن میتوانید موجودیتهای مختلف زیست پزشکی و رابطه بین آنها را بگیرید و آن را به عنوان یک گراف ناهمگن نشان دهید. به عنوان مثال در حوزه زیست پزشکی میتوان موجودیتهای مختلفی داشت، مانند: دارو، بیماری، عارضه جانبی، پروتئینها، مسیرها و انواع مختلفی از رابطه بین انواع مختلف موجودات داریم.
این در شکل 1 زیر نشان داده شده است. ما یک نوع گره متفاوت برای بیماری مانند میگرن داریم و یک نوع گره متفاوت مانند Fluvestrant داریم که از طریق رابطه "درمان" که در زیر نشان داده شده است به بیماری مانند نئوپلاسم پستان متصل است (یا بیماری را درمان میکند):
شکل 1: گراف دانش زیست پزشکی
در مثال بالا از گراف دانش زیست پزشکی، ما داریم:
· گره مثال: میگرن
· رابطه مثال: (فولوسترانت، درمان، نئوپلاسم پستان)
· نوع گره نمونه: پروتئین
· نوع لبه مثال: علل
همانطور که در شکل بالا نشان داده شده است، میتوانیم انواع مختلفی از رابطه بین دارو و عوارض جانبی که ممکن است ایجاد کند داشته باشیم.
این نمونهای از گراف ناهمگن با انواع مختلف موجودیتها و انواع مختلف روابط بین آنها است.
مثال 2: مثال دیگری از گراف ناهمگن یک گراف رویداد است که در شکل 2 زیر نشان داده شده است:
شکل 2: گرافهای رویداد
در اینجا دوباره، میتوانیم گرهها/موجودات مختلف داشته باشیم: یک نوع گره میتواند یک پرواز یا یک فرودگاه باشد، میتوانیم مقصد یک پرواز را به عنوان نوع لبه یا نوع رابطه "لغو شده توسط[1]" داشته باشیم، همانطور که در شکل بالا نشان داده شده است.
3. بازبینی شبکههای عصبی کانولوشنال گراف ساده (GCN):
اکنون، با توجه به یک گراف ناهمگن و انواع مختلف روابط، میخواهیم شبکههای پیچیده گراف ساده را برای مدیریت این نوع ناهمگنی گسترش دهیم. برای گسترش GCNهای ساده به RGCN، باید بتوانیم انواع گرههای مختلف را مدیریت کنیم، لبههایی با انواع روابط متفاوت. تا کنون، ما شبکههای کانولوشن گراف را بر روی گرافهای ساده تعریف کردهایم که عبارتند از: یک نوع گره و یک نوع رابطه باید گسترش یابد تا گرافهای ناهمگن پیچیدهتر ایجاد شود.
اجازه دهید ابتدا کار GCNهای ساده را به یاد بیاوریم - یعنی - گراف یک نوع گره و یک نوع رابطه همانطور که در مقالههای قبلی این مجموعه مورد بحث قرار گرفت:
· مقدمهای بر شبکههای عصبی گراف: قسمت 8 از سری گراف
· یادگیری عمیق با گرافها: قسمت 9 از سری وبلاگ های گراف
کار شبکههای عصبی کانولوشنال گراف ساده (GCN):
من در مورد مفاهیم مربوط به گراف محاسباتی و ارسال پیام در قسمت 9 از این سری که در بالا به آن اشاره شد بحث کرده بودم. گرافی که در شکل زیر نشان داده شده است:
شکل 3: یک گراف با مجموعهای از گره های V
و با در نظر گرفتن گره A به عنوان گره هدف، گراف محاسباتی مربوطه آن به شکل زیر خواهد بود:
شکل 4: گراف محاسباتی گره A
شکل 5: گراف محاسباتی گره A - جعبهها شبکههای عصبی را نشان میدهند که در آن تبدیل خطی و غیرخطیها اعمال میشود.
معماری فوق را میتوان به صورت زیر توجیه کرد:
· گره A همانطور که در شکل 4/5 در بالا نشان داده شده است، قرار است اطلاعاتی را از همسایگان شبکه بگیرد. همسایگان A هستند B، C و D. این اطلاعات یک پرش است. این را میتوان به چندین پرش از اطلاعات باز کرد.
· اگر بخواهیم هاپ دیگری را در نظر بگیریم، گره D اطلاعات را از همسایگان خود A و گره C از A، B، E و F (یعنی همسایههای C) و گره B نیز اطلاعات را از همسایگان خود A و C میگیرد.
۱. در مرحله بعد، اگر شکل بالا (شکل 4/5) ساختار شبکه باشد: پیامها (تعبیهها) از گره A و C به گره B، از گرههای A، B، E و F به گره C و از گره A. به گره C و پیامهای A به گره D باید تجمیع و تبدیل شوند.
۲. به طور مشابه، پیام B باید قبل از ارسال آن به A جمعآوری و تبدیل شود و در سایر گرهها نیز همینطور است. تبدیل پارامتری خواهد شد و پارامترها باید یاد بگیرند.
سپس غیرخطی بودن را برای تبدیل ویژگی اضافه کردیم. غیرخطیها میتوانند ReLu یا سیگموئید باشند. بنابراین، از نظر ریاضی به عنوان یک لایه GCN میتواند به صورت زیر نمایش داده شود:
معادله - ریاضیات در GCN ساده - معادله یک لایه
معادله بالا نشان میدهد که یک گره v روی همسایههای خود میرود u نمایش لایه قبلی را نرمال میکند، جمع میکند و تبدیل میکند و آن را از طریق یک غیر خطی به پایان میرساند.
نکته اصلی در مورد تفاوت بین شبکههای عصبی گراف و شبکههای عصبی وانیلی این است که در شبکههای عصبی گراف، هر گره دارای معماری شبکه عصبی خاص خود است. همانطور که در شکل زیر نشان داده شده است، هر گره در شبکه گراف میتواند گراف محاسباتی خود را بر اساس شبکه اطراف همسایگی خود تعریف کند:
شکل 6: هر گره از گراف دارای معماری شبکه عصبی خاص خود است - گراف محاسباتی خود.
4. گراف عملیات کانولوشن در GCNهای رابطهای:
پس از درک GCNهای رابطهای (بخشهای 1 و 2) و یادآوری عملیات کانولوشن گراف در یک GCN ساده (بخش 3)، اکنون سعی میکنیم بفهمیم که وقتی انواع گرههای متعدد و انواع روابط داریم، عملیات کانولوشن چیست.
گراف زیر را در نظر بگیرید که چندین نوع رابطه دارد:
شکل 7: گراف ناهمگن - گراف با انواع روابط چندگانه
لبههایی که هر رابطه را نشان میدهند با یک رنگ منحصر به فرد نشان داده شدهاند. روشی که میتوانیم GCNها را به گرافهای ناهمگن تعمیم دهیم، با استفاده از وزنهای شبکه عصبی مختلف یا پارامترهای شبکه عصبی مختلف برای انواع روابط مختلف است که در شکل زیر نشان داده شده است:
شکل 8: تعمیم GCNها به گرافهای ناهمگن - با استفاده از وزنهای منحصر به فرد برای هر نوع رابطه
این بدان معناست که وقتی ما در حال تبدیل پیام هستیم، ماتریس یکسان “W” را برای هر یال ورودی اعمال نمیکنیم، اما بسته به نوع رابطه، ماتریس “W” متفاوتی را اعمال میکنیم. بنابراین، برای سه نوع رابطه، از سه ماتریس وزنی مختلف همانطور که در شکل بالا نشان داده شده است استفاده خواهیم کرد.
حال، اگر به گراف محاسباتی گره A نگاه کنیم، مانند شکل زیر خواهد بود:
شکل 9: گراف ورودی و گراف محاسباتی برای گره A
همانطور که ممکن است از شکل بالا متوجه شویم، پیامی که از B و D به سمت گره A میآید با استفاده از همان عملگر “W” تبدیل میشود زیرا پیام در امتداد نوع رابطه "r1" حرکت میکند در حالی که پیام از گره C به سمت گره A با استفاده از عملگر متفاوتی که در امتداد لبه رابطهای "r2" حرکت میکند، تبدیل میشود.
5. بازنمایی ریاضی GCNهای رابطهای:
ماتریس تبدیل “W” بر اساس نوع رابطه نمایه خواهد شد. بنابراین، در یک GCN رابطهای، محاسبه پیام در سطح (l + 1) به صورت زیر نوشته میشود:
معادله: ریاضیات در یک لایه RGCN
طبق معادله بالا، انواع روابط را جمعبندی میکنیم. برای هر نوع رابطه، ما به همسایهها نگاه میکنیم، تبدیل مخصوص رابطه “r” را میگیریم و همسایهها را میگیریم و پیامهای متصل به گره “v”را بر اساس رابطه “r”میگیریم و تعبیه از گره “v” از لایه قبلی و تبدیل آن میگیریم.
بنابراین، همانطور که در معادله بالا مشاهده میشود، برای هر لایه و هر رابطه “w” داریم. Cv,r پارامتر نرمالسازی است - که درجه گره است. من در مورد درجه گره در بخش 5 از قسمت 1 مجموعه خود در گرافها بحث کردهام. در گرافهای غیرجهتدار، Node Degree تعداد یالهای مجاور یک گره معین را نشان میدهد. به عنوان مثال، گره A در شکل زیر دارای درجه 4 است زیرا 4 لبه به آن متصل است.
شکل 10: درجه گره در گرافهای بدون جهت
چگونه میتوان این را به عنوان پیام به اضافه انبوه نوشت؟
پیام:
برای هر همسایه یک رابطه معین:
معادله: پیام - تعبیههای تبدیل شده از همسایه گرهها بر روی درجه گره عادی شده است.
حلقه خود (گرهها دارای تبدیل تعبیه شده خود هستند):
معادله: حلقه خود پیام - تغییر شکل بر روی تعبیه خود
تجمیع:
این شامل جمعبندی پیامهای همسایهها و حلقه خود و سپس اعمال تجمیع میشود:
معادله: تجمیع پیامهای تبدیل شده همسایگان یک گره و self-loop
به این شبکههای عصبی کانولوشنال گراف رابطهای گفته میشود که در آن ما اپراتورهای مختلف تبدیل پیام را بر اساس تعبیه لایه قبلی/نوع رابطه بین یک جفت گره داریم.
6. مسائل در GCNهای رابطهای:
با GCNهای رابطهای، برای هر رابطه “r”، ما به ماتریسهای “L” نیاز داریم - یعنی: برای هر لایه، ماتریسهای تبدیل متفاوت هستند و برای هر رابطه متفاوت هستند.
بیان: ماتریسهای L برای هر رابطه – “L” تعداد لایهها را نشان میدهد
اندازه ماتریس Wr بعد تعبیه لایه بالایی x بعد تعبیه لایه پایینی است: dl+1 × d(l). بنابراین، ما برای هر لایه و هر نوع رابطه یک چنین ماتریسی داریم. از آنجا که گرافهای ناهمگن و به ویژه گرافهای دانش میتوانند چندین نوع رابطه داشته باشند، ما میتوانیم هزاران ماتریس از این قبیل را بدست آوریم. پارامترهای مدل با انواع رابطه رشد میکنند. از این رو مدل برای آموزش بیش از حد بزرگ میشود و به دلیل تعداد زیاد پارامترها، برازش بیش از حد به یک مسئله رایج تبدیل میشود.
دو رویکرد برای کاهش تعداد پارامترها در طول آموزش RGCN وجود دارد:
· با استفاده از ماتریس Block Diagonal
· پایه / یادگیری فرهنگ لغت
بلوک کردن رویکرد مورب برای کاهش پارامترهای مدلهای RGCN:
اجازه دهید ابتدا در مورد استفاده از ماتریسهای Block Diagonal برای کاهش پارامترها در حین آموزش صحبت کنیم - ایده اصلی آنها در اینجا این است که ماتریس های تبدیل Wr را پراکنده کنیم و یکی از راههای پراکنده کردن این ماتریسها این است که یک ساختار مورب بلوک را به گونه ای غیر صفر اعمال کنیم. عناصر ماتریس فقط بر روی بلوکهای خاص ماتریسهای تبدیل/وزن “Wr” قرار دارند که در شکل زیر نشان داده شده است:
شکل 11: ماتریس مورب بلوک عناصر غیرصفر را فقط بر روی بلوکهای خاص سازه نشان میدهد.
این تعداد عناصر غیر صفر را کاهش میدهد، به این معنی که در طول محاسبات شما فقط باید پارامترها را در امتداد عناصر غیر صفر تخمین بزنید. بنابراین، اگر فرض کنیم که Wr از ماتریسهای بلوک بُعد پایینتر “B” تشکیل شده باشد، تعداد پارامترها با یک عامل “B” کاهش مییابد. بنابراین، اگر از ماتریسهای بلوک با ابعاد پایین B استفاده کنید، تعداد پارامترها از d(l+1) × d(l) به B × d(l) / B × d(l+1)/B کاهش مییابد.
بیان: کاهش در پارامترها در نتیجه قطر بلوکی بودن ماتریسهای وزن
با استفاده از ماتریسهای Block Diagonal چه چیزی را از دست میدهید؟
ما برخی از اطلاعات را با استفاده از ماتریسهای مورب بلوک از دست میدهیم - بعد تعبیه دور از یکدیگر قادر به تعامل با یکدیگر نیستند - فقط بعد تعبیه در امتداد موجودیتهای غیر صفر قادر به تعامل با یکدیگر خواهند بود. یعنی: فقط نورونهایی که در امتداد عناصر غیر صفر قرار دارند - نورونهایی که در امتداد همان بلوک قرار دارند - قادر به تبادل اطلاعات با یکدیگر خواهند بود.
یادگیری پایه برای کاهش پارامترهای مدلهای RGCN:
ایده دوم برای مقیاسپذیرتر کردن RGCNها، به اشتراک گذاشتن وزنها بین روابط است. یعنی ما نمیخواهیم روابط مستقل از یکدیگر باشند، بلکه میخواهیم این روابط اطلاعاتی را به اشتراک بگذارند. این را میتوان با نمایش ماتریس تبدیل Wr به عنوان یک ترکیب خطی از ماتریسهای “Basis” به زیبایی به دست آورد. به این ماتریسهای پایه «دیکشنری» نیز گفته میشود. یعنی - ماتریس wight "Wr" به عنوان یک ترکیب خطی نشان داده میشود - که یک مجموع وزنی از ماتریسهای دیکشنری Vb است. Vb در تمام روابط مشترک است. این معمولاً به عنوان "آموزش پایه" یا "یادگیری دیکشنری" شناخته میشود.
این ممکن است به صورت زیر نمایش داده شود:
معادله - ماتریس وزن برای رابطه “r” به صورت ترکیب خطی ماتریسهای پایه B نشان داده شده است
در اینجا، arb وزن اهمیت مربوط به رابطه برای ماتریس دیکشنری “b” است.
بنابراین، هر رابطهای باید یاد بگیرد که arb وزنی برای هر پایه ماتریس یک عدد اسکالر است. این به طور قابل توجهی تعداد پارامترها را کاهش میدهد. “B” ممکن است کوچک باشد - مثلاً 10 و شما ممکن است هزاران رابطه داشته باشید که برای آنها arb است: 1000 اسکالر باید یاد بگیرید. این از طریق عبارت زیر مشخص میشود:
بیان - هر رابطه باید عوامل اهمیت “B” را بیاموزد که در آن “B” تعداد ماتریسهای پایه است
پس از صحبت در مورد مقیاسپذیری GCNها با استفاده از Block Diagonal و Basis Learning، اجازه دهید در مورد اینکه چگونه میتوان پیشبینیهای مختلف را بر روی گرافهای ناهمگن تعریف کرد، صحبت کنیم.
7. دستهبندی موجودیت / گره با استفاده از RGCs
در مورد کار پیشبینی شامل دستهبندی گره/دستهبندی موجودیت، همه چیز متفاوت نیست. RGCN بازنمایی یا تعبیه را برای هر گره محاسبه میکند و بر اساس آن تعبیه یک پیشبینی راس ایجاد میشود.
به عنوان مثال، اگر بخواهیم گرهها را به کلاسهای مختلف “k” دستهبندی کنیم، آنگاه پیشبینی راس نهایی شامل تبدیل خطی یک بردار تعبیهکننده خواهد بود - یعنی گرفتن بردار تعبیه لایه نهایی و ضرب در یک ماتریس وزن و سپس آن را از طریق یک تابع غیرخطی/فعالسازی عبور دهید و سپس یک Softmax داشته باشید تا احتمال یک کلاس مشخص را پیشبینی کنید. خروجی شامل یک خروجی راس “k” برای کلاسهای مختلف “k” است.
شکل 12: وظیفه دستهبندی گره - هر پیشبینی راس شامل تبدیل تعبیه با استفاده از ماتریس وزن و استفاده از غیر خطی بودن است.
8. پیشبینی نهاد / پیوند
دستهبندی - تقسیم لبهها به انواع مختلف برای آموزش / اعتبارسنجی و آزمایش
برای پیشبینی پیوند، ما به مسائل کمی متفاوت برخورد میکنیم. پیوندها/لبه ها ممکن است انواع مختلفی داشته باشند - یعنی انواع مختلف رابطه - و از بین انواع مختلف رابطه، برخی ممکن است رایج و برخی غیر معمول باشند. برای هر نوع رابطه، آنها را به موارد زیر تقسیم میکنیم:
· لبههای پیام آموزشی
· لبههای نظارت آموزشی
· لبههای اعتبارسنجی
· لبههای تست
ما این کار را برای همه انواع رابطه انجام میدهیم و سپس همه یالها را ادغام میکنیم - یعنی به طور مستقل انواع لبهها را تقسیم میکنیم و سپس آنها را ادغام میکنیم. این بدان معنی است که حتی برای انواع روابط نادر[2]، برخی از نمونهها در آموزش، برخی در اعتبارسنجی و برخی در مجموعه آزمایشی خواهند بود. این تقسیم مستقل لبههای هر نوع رابطه، دستهبندی نامیده میشود.
در شکل زیر، گراف اصلی نشان داده شده در سمت چپ را داریم و لبهها به لبههای پیام آموزشی، لبههای نظارت آموزشی، لبههای اعتبارسنجی و لبههای آزمایشی که در سمت راست با رنگهای منحصربهفرد نشان داده شده است، تقسیم شدهاند. تقسیم باید برای هر نوع رابطه انجام شود زیرا فرکانس یالهای یک نوع رابطه خاص در کل گراف ممکن است بیشتر/کمتر باشد. هنگامی که تقسیم انجام شد، لبههای پیام آموزشی، لبههای نظارت آموزشی، اعتبارسنجی و لبههای آزمایشی همانطور که در شکل 14 نشان داده شده است، ادغام میشوند.
شکل 13: گراف اصلی و یالها به پیام آموزشی، نظارت آموزشی، اعتبارسنجی و لبههای آزمایش تقسیم میشوند.
شکل 14: تقسیم پیشبینی پیوند
رسمی کردن پیشبینی پیوند در گرافهای ناهمگن:
اکنون ببینیم چگونه میتوانیم پیشبینی پیوند را در گرافهای ناهمگن رسمی کنیم. گراف زیر را در نظر بگیرید:
شکل 15: گراف ورودی نمونه
تصور کنید که میخواهیم احتمال وجود Edge را بین گرههای E و A پیشبینی کنیم و آن یال از نوع رابطه 3 است که در شکل بالا نشان داده شده است. اجازه دهید فرض کنیم که لبه یک لبه نظارت آموزشی است و تمام یال های دیگر لبه های پیام آموزشی هستند.
روشی که ما میخواهیم RGCN به یالها امتیاز دهد این است که: ما جاسازی لایه نهایی گره E و سپس تعبیه لایه نهایی گره A را میگیریم و سپس یک تابع امتیازدهی خاص رابطهای “f” خواهیم داشت که این تعبیهها را میگیرد و تبدیل به یک ارزش واقعی مینماید.
معادله: تابع امتیازدهی خاص رابطه برای پیوند از E به A
یعنی - ما تعبیه گره E را میگیریم، یک تبدیل خطی را با ضرب آن در ماتریس وزن انجام میدهیم و سپس حاصل ضرب نقطهای را با تعبیه A میگیریم و آن را از یک تابع فعالسازی و به دنبال آن یک Softmax عبور میدهیم.
احتمال به دست آمده نشان میدهد که آیا پیوندی بین گره E و A وجود دارد یا خیر. این یکی از راههای فرموله کردن مسئله است. اکنون روند آموزش را ببینیم.
9. RGCN برای نهاد/پیشبینی پیوند: خلاصه فرآیند آموزش
گراف را مانند شکل زیر در نظر بگیرید:
شکل 16: گراف ورودی نمونه
الف) فرض کنیم که لبه E تا A لبه نظارت است
ب) فرض کنیم تمام یالهای دیگر که با خطوط ثابت در شکل 16 در بالا نشان داده شدهاند، لبههای پیام آموزشی هستند.
ج) از یالهای پیام آموزشی برای پیشبینی احتمال وجود یال نظارت آموزشی استفاده میکنیم: این یال از E تا A در این مثال است.
د) کار دیگری که باید به عنوان بخشی از پیشبینی پیوند انجام دهیم، ایجاد نمونههای منفی است. یعنی باید لبههای منفی ایجاد کنیم.
ه) یکی از راههای ایجاد لبه منفی، برهم زدن لبه نظارت است.
به عنوان مثال، در گراف شکل 16، اگر لبه نظارتی را از E تا A داشته باشیم، یکی از راههای ایجاد لبه منفی، خراب کردن دم لبه نظارت است. سپس، در این گراف مثال، اگر یال نظارتی را از E تا A داشته باشیم، یکی از راههای ایجاد یال منفی این است که دم یال او را خراب کنیم. بنابراین، ما راس را در E نگه میداریم اما دم را خراب میکنیم به طوری که لبه اکنون از E به C (یا E به B) نسبت به E به A اشاره میکند.
و) باید توجه داشت که لبه منفی به لبه پیام آموزشی یا لبه نظارت آموزشی تعلق ندارد - برای مثال، لبه گره E تا C یک لبه نظارت آموزشی است نه یک لبه منفی. بنابراین باید در نمونهبرداری از لبههای منفی دقت کنیم. RGCN برای امتیاز دادن به لبههای مثبت و منفی استفاده میشود.
ی) تابع ضرری که میخواهیم بهینهسازی کنیم، افت آنتروپی متقاطع استاندارد است که میخواهیم امتیاز لبه نظارت تمرین (لبه مثبت) را به حداکثر برسانیم و امتیاز یال منفی را به حداقل برسانیم. بنابراین جریمه را به صورت زیر مینویسیم:
معادله - تابع از دست دادن آنتروپی متقاطع - به حداکثر رساندن امتیاز لبههای نظارت تمرین و به حداقل رساندن امتیاز یالهای منفی
و سپس یک بهینهساز مانند نزول گرادیان تصادفی برای بهینهسازی پارامترهای GCN خواهیم داشت که امتیاز احتمال بالایی را به لبه نظارت تمرین و امتیاز پایین را به لبههای منفی اختصاص میدهد.
10. RGCN برای نهاد/پیشبینی پیوند: فرآیند ارزیابی
با آموزش مدل، به سمت اعتبار سنجی حرکت میکنیم - تا عملکرد مدل را تأیید کنیم.
اجازه دهید فرض کنیم که یال اعتبارسنجی مورد نظر ما بین گره E و گره D مطابق شکل زیر است. ما علاقهمندیم بدانیم که آیا لبه از نوع r3 است یا خیر
شکل 17: فرآیند ارزیابی در RGCN - لبه اعتبارسنجی نوع رابطه "r3" از E تا D
ما علاقهمندیم بدانیم که آیا این از نوع r3 است یا خیر. اکنون لبههای پیام آموزشی و یالهای نظارت آموزشی برای انتشار پیام استفاده میشوند و باید لبه را از E به D مانند شکل 17 در بالا امتیاز دهیم. امتیاز این یال از E تا D باید بیشتر از امتیاز تمام یال های منفی باشد.
مراحل ارزیابی به شرح زیر خواهد بود:
· از RGCN برای محاسبه امتیاز از E تا D (E, r3, D) استفاده کنید.
· امتیاز تمام یالهای منفی (E تا B و E تا F) را محاسبه کنید.
· امتیاز تمام یالها را به دست آورید، یعنی آنها را رتبهبندی کنید. رتبه E تا D بالاتر از امتیاز خروجی E تا F و E تا B خواهد بود.
· معیارها را محاسبه کنید: Hits@k Rk < = k. بالاتر بهتر است نشان دهد که هر چند وقت یکبار یال مثبت بهتر از سایر یالهای منفی رتبهبندی شده است.
11. خلاصه این مقاله:
این مقاله جنبههای زیر از RGCNها را پوشش میدهد:
· گرافهای ناهمگن چیست؟
· گرافهای دانش و گرافهای ناهمگن
· شبکههای عصبی گراف ساده (GCN) در مقابل شبکههای عصبی گراف رابطهای (RGCN)
· مسئله اضافه برازش در RGCNها
· رویکرد قطری بلوک و ماتریسهای پایه برای رسیدگی به اضافه برازش در RGCNها
· حل مسئله دستهبندی گره در گرافهای ناهمگن با RGCN
· حل مسائل پیشبینی پیوند در گرافهای ناهمگن با RGCN
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 ارائه میدهند.
وبلاگهای بعدی من بر روی معماریهای مختلف شبکههای گراف، گرافهای دانش و غیره تمرکز خواهند کرد!