Преглед садржаја[Сакрити][Прикажи]
Технике дубоког учења познате као „неуралне мреже графова“ (ГНН) раде у домену графа. Ове мреже су у последње време нашле примену у разним областима, укључујући компјутерски вид, системе препорука и комбинаторну оптимизацију, да споменемо само неке.
Поред тога, ове мреже се могу користити за представљање сложених система, укључујући друштвене мреже, мреже за интеракцију протеин-протеин, графове знања и друге у неколико области проучавања.
Нееуклидски простор је место где функционишу подаци графикона, за разлику од других типова података као што су слике. Да би се класификовали чворови, предвиделе везе и подаци кластера, користи се анализа графова.
У овом чланку ћемо испитати графикон Неуронске мреже детаљно, његове врсте, као и дати практичне примере користећи ПиТорцх.
Дакле, шта је Граф?
Граф је тип структуре података састављен од чворова и врхова. Везе између различитих чворова одређене су врховима. Ако је правац назначен у чворовима, каже се да је граф усмерен; иначе је неусмерено.
Добра примена графова је моделирање односа између различитих појединаца у а Друштвена мрежа. Када се ради о сложеним околностима, као што су везе и размене, графикони су од велике помоћи.
Користе их системи препорука, семантичка анализа, анализа друштвених мрежа и препознавање образаца
. Креирање решења заснованих на графовима је потпуно нова област која нуди проницљиво разумевање сложених и међусобно повезаних података.
Графичка неуронска мрежа
Графичке неуронске мреже су специјализовани типови неуронских мрежа које могу да раде на формату података графа. Уграђивање графова и конволуционе неуронске мреже (ЦНН) имају значајан утицај на њих.
Неуралне мреже графова се користе у задацима који укључују предвиђање чворова, ивица и графова.
- ЦНН-ови се користе за класификацију слика. Слично, да би се предвидела класа, ГНН се примењују на мрежу пиксела која представља структуру графикона.
- Категоризација текста коришћењем рекурентних неуронских мрежа. ГНН се такође користе са архитектурама графова где је свака реч у фрази чвор.
Да би се предвидели чворови, ивице или комплетни графови, неуронске мреже се користе за креирање ГНН-а. Предвиђање на нивоу чвора, на пример, може да реши проблем као што је откривање нежељене поште.
Предвиђање везе је типичан случај у системима препорука и може бити пример проблема предвиђања по ивици.
Графички типови неуронских мрежа
Постоје бројни типови неуронских мрежа, а конволуционе неуронске мреже су присутне у већини њих. У овом делу ћемо научити о најпознатијим ГНН-овима.
Графичке конволуционе мреже (ГЦН)
Они су упоредиви са класичним ЦНН-има. Карактеристике стиче гледањем у оближње чворове. Функцију активације користе ГНН да додају нелинеарност након агрегирања вектора чворова и слања излаза у густи слој.
Састоји се од конволуције графа, линеарног слоја и функције активације неученика, у суштини. ГЦН-ови долазе у две главне варијанте: спектралне конволуционе мреже и просторне конволуционе мреже.
Мреже аутоматског енкодера графикона
Користи енкодер да научи како да представи графиконе и декодер да покуша да реконструише улазне графиконе. Постоји слој уског грла који повезује енкодер и декодер.
Пошто аутоматски енкодери раде одличан посао у руковању равнотежом класа, они се често користе у предвиђању везе.
Неуралне мреже са понављајућим графовима (РГНН)
У мултирелационим мрежама, где један чвор има бројне релације, он учи оптимални образац дифузије и може да управља графовима. Да би се повећала глаткоћа и смањила прекомерна параметризација, регуларизатори се користе у овом облику граф неуронске мреже.
Да би се постигли бољи резултати, РГНН-овима је потребна мања процесорска снага. Користе се за генерисање текста, препознавање говора, машинско превођење, опис слика, означавање видео записа и сумирање текста.
Мреже неуронских графова са затвореном заштитом (ГГНН)
Када су у питању дугорочни зависни задаци, они надмашују РГНН. Укључивањем чворова, ивица и временских капија у дугорочне зависности, неуронске мреже са графовима са затварањем побољшавају неуронске мреже са рекурентним графом.
Капије функционишу слично као ГРУ (Гатед Рецуррент Унитс) по томе што су навикли да позивају и заборављају податке у различитим фазама.
Имплементација Грапх Неурал Нетворк користећи Питорцх
Специфично питање на које ћемо се фокусирати је уобичајено питање категоризације чворова. Имамо велику друштвену мрежу тзв мусае-гитхуб, који је састављен из отвореног АПИ-ја, за ГитХуб програмере.
Ивице показују међусобне односе следбеника између чворова, који представљају програмере (кориснике платформе) који су били звезда у најмање 10 складишта (имајте на уму да реч узајамни означава неусмерени однос).
На основу локације чвора, спремишта са звездицом, послодавца и адресе е-поште, преузимају се карактеристике чвора. Предвиђање да ли је корисник ГитХуб-а веб програмер или а програмер за машинско учење је наш задатак.
Назив радног места сваког корисника служио је као основа за ову функцију циљања.
Инсталирање ПиТорцх-а
За почетак, прво морамо да инсталирамо ПиТорцх. Можете га конфигурисати према вашој машини из ovde. ево моје:
Увоз модула
Сада увозимо потребне модуле
Увоз и истраживање података
Следећи корак је да прочитате податке и нацртате првих пет и последњих пет редова из датотеке са ознакама.
Само две од четири колоне — ид чвора (тј. корисник) и мл_таргет, што је 1 ако је корисник члан заједнице машинског учења и 0 у супротном — су релевантне за нас у овој ситуацији.
С обзиром да постоје само две класе, сада можемо бити сигурни да је наш задатак питање бинарне класификације.
Као резултат значајних класних неравнотежа, класификатор може само да претпостави која је класа већина, а не да процењује недовољно заступљену класу, чинећи класну равнотежу још једним кључним фактором који треба узети у обзир.
Исцртавање хистограма (дистрибуције фреквенција) открива одређену неравнотежу јер има мање класа из машинског учења (ознака=1) него из других класа.
Феатуре Енцодинг
Карактеристике чворова нас обавештавају о особинама које су повезане са сваким чвором. Имплементацијом нашег метода за кодирање података, можемо тренутно кодирати те карактеристике.
Желимо да искористимо овај метод да инкапсулирамо мали део мреже (рецимо, 60 чворова) за приказ. Код је наведен овде.
Дизајнирање и приказивање графикона
Користићемо геометријску бакљу. податке за изградњу нашег графикона.
За моделирање једног графикона са различитим (опционим) својствима, користе се подаци који су једноставни Питхон објекат. Користећи ову класу и следеће атрибуте — који су сви тензори бакље — креираћемо наш објекат графа.
Облик вредности к, који ће бити додељен кодираним карактеристикама чвора, је [број чворова, број карактеристика].
Облик и је [број чворова] и биће примењен на ознаке чворова.
индекс ивица: Да бисмо описали неусмерени граф, морамо да проширимо оригиналне индексе ивица како бисмо омогућили постојање две различите усмерене ивице које повезују иста два чвора, али показују у супротним смеровима.
Пар ивица, од којих једна показује од чвора 100 до 200, а друга од 200 до 100, је потребан, на пример, између чворова 100 и 200. Ако су наведени индекси ивица, онда се овако може представити неусмерени граф. [2,2*број оригиналних ивица] ће бити тензорски облик.
Креирамо наш метод цртања графа да бисмо приказали графикон. Први корак је трансформација наше хомогене мреже у НетворкКс граф, који се затим може нацртати помоћу НетворкКс.драв.
Направите наш ГНН модел и обучите га
Почињемо са кодирањем целог скупа података извршавањем кодирања података са лигхт=Фалсе, а затим позивањем конструисаног графа са лигхт=Фалсе да бисмо направили цео граф. Нећемо покушавати да нацртамо овај велики графикон јер претпостављам да користите локалну машину која има ограничене ресурсе.
Маске, које су бинарни вектори који идентификују који чворови припадају свакој специфичној маски користећи цифре 0 и 1, могу се користити за обавештавање фазе обуке који чворови треба да буду укључени током обуке и да се фази закључивања каже који су чворови тест подаци. Бакља геометријска.трансформише.
Подела на нивоу чвора се може додати коришћењем маске за обуку, вал маске и својства тест маске класе АддТраинВалТестМаск, која се може користити за прављење графикона и омогућавање да одредимо како желимо да се конструишу наше маске.
Ми само користимо 10% за обуку и користимо 60% података као скуп тестова, док користимо 30% као сет за валидацију.
Сада ћемо сложити два ГЦНЦонв слоја, од којих први има излазни број обележја који је једнак броју карактеристика у нашем графикону као улазним карактеристикама.
У другом слоју, који садржи излазне чворове једнак броју наших класа, примењујемо релу активациону функцију и снабдевамо латентне карактеристике.
Индекс ивице и тежина ивице су две од многих опција к које ГЦНЦонв може да прихвати у функцији унапред, али у нашој ситуацији су нам потребне само прве две променљиве.
Упркос чињеници да ће наш модел моћи да предвиди класу сваког чвора на графу, још увек морамо да одредимо тачност и губитак за сваки скуп посебно у зависности од фазе.
На пример, током тренинга желимо само да користимо сет за обуку да бисмо утврдили тачност и губитак тренинга, и зато су наше маске корисне.
Да бисмо израчунали одговарајући губитак и тачност, дефинисаћемо функције маскираног губитка и маскиране тачности.
Обука модела
Сада када смо дефинисали сврху обуке за коју ће се бакља користити. Адам је главни оптимизатор.
Обуку ћемо спроводити током одређеног броја епоха, водећи рачуна о тачности валидације.
Такође приказујемо губитке и тачност тренинга кроз различите епохе.
Недостаци графичке неуронске мреже
Коришћење ГНН-а има неколико недостатака. Када да користимо ГННа и како да побољшамо перформансе наших модела машинског учења, биће нам јасно након што их боље разумемо.
- Док су ГНН плитке мреже, обично са три слоја, већина неуронских мрежа може ићи дубоко да би побољшала перформансе. Због овог ограничења нисмо у могућности да радимо на врхунцу на великим скуповима података.
- Теже је тренирати модел на графовима, јер је њихова структурна динамика динамична.
- Због високих рачунарских трошкова ових мрежа, скалирање модела за производњу представља изазов. Скалирање ГНН-а за производњу биће изазовно ако је ваша структура графикона огромна и компликована.
Zakljucak
Током протеклих неколико година, ГНН су се развили у моћне и ефикасне алате за проблеме машинског учења у домену графова. У овом чланку је дат основни преглед граф неуронских мрежа.
Након тога можете започети креирање скупа података који ће се користити за обуку и тестирање модела. Да бисте разумели како функционише и за шта је способан, можете ићи много даље и обучити га користећи другу врсту скупа података.
Срећно кодирање!
Ostavite komentar