Садржај
Друштвено битни аспекти развоја вештачке интелигенције

TensorFlow Playground

Сада када знаш шта су то неуронске мреже и како се тренирају, можеш и да покушаш да направиш и истренираш своју мрежу!

TensorFlow Playground је графичко окружење које ће ти приближити како заправо изгледа тренирати једну неуронску мрежу. Moжеш му приступити на адреси https://playground.tensorflow.org/ па онда наставити да читаш и пратиш даље. Није ти потребан посебан налог или додатни софтвер, све ће се извршавати у твом прегледачу. У прозору који ће те сачeкати видећеш одмах много квадратића који представљају неуроне и линија које представљају везе између њих!

../_images/tf1.png

Интерфејс окружења TensorFlow Playground


На врху странице TensorFlow Playground се налази трака која ти омогућава да одабереш тип задатка, а затим и да, када креираш мрежу која решава задатак, започнеш њено тренирање. Тип задатка, који може да буде класификациони или регресиони, можеш да одабереш у пољу Problem type са крајње десне стране. Преко поља Learning rate можеш да утичеш на величину корака учења који се користи током одређивања најбољих вредности параметара. У пољу Activation можеш да одабереш неку од понуђених активационих функција. Поља Regularization и Regularization rate утичу на регуларизацију појединачних слојева неуронске мреже, слично као у лекцији о регуларизацији и примеру линеарне регресије. Само тренирање мреже започиње се кликом на стрелицу са леве стране. Број епоха тренирања ће се исписивати у пољу Iterations.

../_images/tf2.png

Почетна трака са опцијама за подешавање тренирањa


За почетак се можеш опробати у неком од понуђених класификационих задатака. Сви класификациони задаци су задаци бинарне класификације, има их укупно четири и представљени су иконицама које описују скупове података који се у њима користе. Инстанце које припадају позитивној класи су обојене плавом бојом док су инстанце које припадају негативној класи обојене наранџастом бојом. Скупове можеш да одабереш у секцији Data са леве стране екрана. За вежбу ћемо у старту одабрати скуп представљен концентричним круговима - преостали скупови су спирала, четири квадранта која одговарају задатку учења ексклузивне дисјункције и два кластера података. Подешавањима која се налазе у овој секцији можеш да утичеш и на размеру скупа за тренирање и скупа за тестирање (подразумевано су ова два скупа једнаких величина) и ниво преклапања класа (параметар Noise). Величина пакетића за тренирање је подразумевано постављена на вредност 10 (параметар Batch size).

../_images/tf3.png

Секција Features се односи на улазни слој и атрибуте мреже. Како су скупови са којима се ради скупови тачака у равни, атрибут \(x_1\) представља вредност x координате а атрибут \(x_2\) вредност y координате. Могуће је одабрати и атрибуте \(x_1^2\), \(x_2^2\) , \(x_1x_2\), као и \(sin(x_1)\) и \(sin(x_2)\).


Број слојева неуронске мреже можеш да контролишеш опцијом Hidden layers. Кликом на дугме + додаје се нови скривени слој, док се кликом на дугме - брише скривени слој. Број неурона у појединачним слојевима контролише се, такође, кликом на дугмиће + и -. Мрежа која се на овај начин креира је потпуно повезана неуронска мрежа. Везе између неурона су приказане испрекиданим линијама и њихова боја и дебљина су усклађене са вредностима параметара који их прате. Кликом на сваку од ових линијица се може појединачно подесити вредност параметра.


Када креираш мрежу, потребно је да кликнеш на стрелицу за почетак тренирања. У панелу са десне стране који се зове Output моћи ћеш да пратиш успешност тренирања визуелно или преко исцртавања кривих функције грешке и приказа њихових вредности.

../_images/tf4.png

Проблем са концентричним круговима података који смо одабрали за вежбу није линеаран - не може се повући права која раздваја скуп плавих и скуп наранџастих инстанци. Зато је потребно да научимо неки комплекснији нелинеарни модел. Можемо прво опробати мрежу која има улазе \(x_1\) и \(x_2\) и један скривени слој са два неурона која користе ReLU активациону функцију. Приметићемо да након неке епохе мрежа стагнира са учењем па ако је зауставимо после 500 епоха, добијамо приказ као на доњој слици. Сам проблем није идеално решен јер нема јасне границе између класа. Видимо да је први неурон скривеног слоја научио да класификује инстанце на леве и десне (квадратић tfk1) а други неурон на оне испод и изнад главне дијагонале (квадратић tfk2) тако да комбинујући ова знања добијамо границу као на слици. Задржавањем на два неурона и испробавањем и других активационих функција резултати неће бити задовољавајући (то обавезно провери!).

../_images/tf5.png

Ако сада креирамо мрежу која има улазе \(x_1\) и \(x_2\) и један скривени слој са три неурона која користе ReLU активациону функцију, добићемо приказ као на доњој слици. Сада успевамо да финије раздвојимо инстанце - први неурон је научио да уочава оне које су у доњем десном углу, други да их хоризонтално (благо искошено) раздваја, а трећи вертикално (благо искошено). Сва ова знања су условљена и природом активационе функције коју смо користили. Комбинујући их свакако можемо да стигнемо до боље границе између класа.

../_images/tf6.png

Опробајмо се сада са истом комбинацијом, али уз коришћење сигмоидне активације. У сличном броју епоха смо стигли до овалније границе. Видимо и да су сада неурони научили да разликују инстанце и према неким мало другачијим критеријумима и то подједнако успешно.

../_images/tf7.png

Постоји још много мрежа које могу решити овај задатак - настави даље да експериментишеш и откријеш своју мрежу. За крај вежбе можеш оставити задатак са спиралом јер је он најизазовнији. Ево како може да изгледа једна мрежа која га прати!

../_images/tf8.png

У пракси се за креирање и обучавање неуронских мрежа користе библиотеке као што су TensorFlow, Keras, PyTorch, JAX и друге. Оне кроз свој АПИ нуде функционалности којима се описују слојеви мреже, подешавају оптимизациони алгоритми и прати цео процес тренирања. Уз ове основне функционалности, библиотеке дефинишу и технике праћења преприлагођавања, мере за евалуацију модела, као и механизме за контролу и распоређивање хардверских ресурса. Ове библиотеке се обично упарују и са библиотекама које цео процес тренирања финије приказују графички. Такве су, рецимо, библиотеке TensorBoard и Weights & Biasis. Ту су и многобројни алати прилагођени специфичним задацима.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+