Садржај
Увод
Савремена вештачка интелигенција
Да ли машина може да мисли?
Области вештачке интелигенције
Уска, општа и супер интелигенција
Програмирање вођено подацима
Пример програмирања вођеног подацима
Зашто нам је потребно програмирање вођено подацима?
Основни појмови машинског учења
Врсте машинског учења
Hands-on зона
Jupyter свеске за вежбу
Платформа Google Colab
Библиотеке NumPy, Matplotlib и Pandas
Улога података
Подаци
Како настају скупови података?
Популарни скупови података
Јавно доступни скупови података
Припрема података
Експлоративна анализа скупа података
Креирање репрезентације скупа података
Скупови за тренирање, валидацију и тестирање
Линеарна регресија
Модел линеарне регресије
Градијентни спуст
Оцењивање модела линеарне регресије
Вишеструка линеарна регресија
Класификација
Задатак класификације
Како оцењујемо модел класификације?
Логистичка регресија
Алгоритам к-најближих суседа
Хиперпараметри
Преприлагођавање
Генерализација, потприлагођавање и преприлагођавање
Унакрсна валидација
Регуларизација
Неуронске мреже - увод
Неуронске мреже
Обучавање неуронских мрежа
TensorFlow Playground
Неуронске мреже - врсте и примена
Учење репрезентације података
Конволутивне неуронске мреже
Рекурентне неуронске мреже
Механизам пажње и трансформери
Кластеровање
Кластеровање
Алгоритам к-средина
Одређивање броја кластера
Друштвено битни аспекти развоја вештачке интелигенције
Друштвено битни аспекти развоја вештачке интелигенције

Класификација

Веровао или не, до сада си се већ много пута сусрео са задатком класификације. Када сређујеш собу па раздвајаш папириће које ћеш да задржиш или бациш или када разврставаш своје фотографије на оне са екскурзије, теткиног рођендана или излета са пријатељима, ти у ствари обављаш задатак класификације: имаш на уму неке групе и када погледаш папирић или фотографију, одлучујеш о томе којој групи припада. И многи програми са којима се сусрећеш, обављају задатак класификације. Рецимо, твој имејл клијент разликује пожељну и непожељну пошту и захваљујући овој његовој особини успеваш да избегнеш многе замке и преваре на интернету. Такође, на друштвеним мрежама често добијаш препоруке за повезивање са новим особама - програм који је у позадини друштвене мреже активно процењује да ли ти је нека особа потенцијални пријатељ или не (обично прати пријатеље твојих пријатеља и добија идеје). Пошто не сумњамо да си експерт у сређивању собе и фајлова на рачунару, хајде да научимо како ове вештине усвајају програми!

Врсте класификације

На самом почетку је важно нагласити да нису све класификације исте. Зато ћемо прво сазнати које класификације постоје и шта их то карактерише. Примери разврставања папирића или разврставања поште су примери бинарне класификације зато што имамо само две групе: папириће за бацање и папириће за чување, тј. пожељну и непожељну пошту. Групе у свету машинског учења зовемо класама па ћемо се надаље држати тог термина. Да би класе могли да разликујемо, придружујемо им имена која приближавају шта заправо оне садрже. На пример, ”папирићи за бацање” и ”непожељна пошта” су довољно јасна имена. Имена су често одређена и лабелама, које се појављују у скупу података над којим се примењује задатак класификације.


Ако имамо више од две класе, говоримо о задатку вишекласне класификације. На пример, такав је задатак разврставања фотографија по догађајима где сваки догађај може да представља једну класу. Можемо направити три директоријума, тј. три класе, дати им имена ”екскурзија”, ”теткин рођендан” и ”излет”, а потом сваку од фотографија придружити једној од ових класа тако што ћемо је ставити у одговарајући директоријум.


О различитим врстама класификације, можемо размишљати и на основу критеријума припадности. На пример, један имејл може бити или пожељан или непожељан, не може припадати истовремено и класи пожељних и класи непожељних имејлова. Слично је и са фотографијама и класама које смо увели. Са друге стране, један новински чланак може да буде истовремено и на тему културе, путовања и хране, па га можемо придружити већем броју класа - оној која представља културу, оној која представља путовања и оној која представља храну. Како у овом случају инстанце имају више обележја, тј. лабела, ову врсту класификације називамо вишелабеларном класификацијом. Иако је врло занимљива и корисна, вишелабеларну класификацију нећемо покрити даљим садржајима већ ћемо се усредсредити на бинарну и вишекласну класификацију.

Шта мислиш, којој врсти класификације припадају следећи задаци:

  • разврставање ђубрета за рециклажу,

  • утврђивање исправности програма,

  • одређивање језика документа,

  • провера валидности банкарске трансакције,

  • предлог следеће речи при куцању СМС порукице?

Класификација из угла машинског учења

Када о задатку класификације размишљамо из угла машинског учења, интересују нас дискретна пресликавања, тј. пресликавања која улазним променљивама могу да придруже једну од коначно много вредности. Најчешће је број класа мањи, изражен једноцифреним бројем, али се можеш присетити и скупа ImageNet и такмичења класификације слика у којем се користи 1000 класа. Променљиве које могу да узму коначан број вредности смо називали категоричким па о класификацији можемо да говоримо као о пресликавању које карактерише категоричка циљна променљива.

\[\begin{split}\begin{equation} F(x)= \begin{cases} 0 & \text{ако је } x <0\\ \frac{1}{2} & \text{ако је } 0\le x < 1 \\ 1 & \text{ако је } x \ge 1 \end{cases} \end{equation}\end{split}\]

Пример једне дискретне функције


Како је класификација задатак надгледаног машинског учења, скуп података који се користи за обучавање модела садржи парове улаза и очекиваних излаза. Улази могу бити слике, текстуалне поруке или табеларни подаци и за њихову припрему важе све смернице које смо дискутовали у лекцији о припремама скупа података. Излаз увек представља име класе. Иако смо имена класа увели са циљем да лакше пратимо задатак класификације, када стигнемо до дела припреме података, морамо и њих да трансформишемо у нумеричке вредности. Ту се можемо водити припремама о којима смо дискутовали за рад са категоричким атрибутима: пресликавањем скупа вредности или one-hot кодирањем.


Ако је реч о бинарној класификацији, обично имена класа пресликамо у вредности 0 и 1. На пример, појављивање имена класе ”непожељна пошта” заменимо вредношћу 0, а појављивање имена ”пожељна пошта” вредношћу 1. Често се за инстанце које имају лабелу 0 каже да припадају негативној класи, а за инстанце који имају лабелу 1 да припадају позитивној класи.


Када је у питању вишекласна класификација, за припрему циљне променљиве користимо one-hot кодирање. На пример, за задатак разврставања фотографија по догађајима трансформисаћемо излазе у векторе дужине три јер имамо тачно три класе: ”екскурзија”, ”теткин рођендан” и ”излет”. Даље ћемо свакој од ових вредности придружити вектор који на одговарајућој позицији има јединицу, а на свим преосталим позицијама нуле. То ће, редом, бити вредности (1, 0, 0), (0, 1, 0) и (0, 0, 1). Oвде је важно да се доследно придржавамо одабраног редоследа класа.


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


Замислимо да располажемо трима класама: црвеном, зеленом и плавом. Приступ ”један против свих” подразумева да треба да научимо три бинарна класификатора: један који разликује зелену класу од преосталих (уније црвене и плаве класе), један који разликује плаву класу од преосталих (уније зелене и црвене класе) и један који разликује црвену класу од преосталих (уније зелене и плаве класе). Када треба да класификујемо нову инстанцу, покрећемо сваки од три бинарна класификатора и над добијеним резултатима примењујемо принцип највеће поузданости: инстанца се придружује класи чији је класификатор најсигурнији. Видећемо ускоро како се процењује сигурност класификатора.

https://petljamediastorage.blob.core.windows.net/root/Media/Default/Kursevi/OnlineNastava/specit4_ai/klas2.png

Приступ „један против свих”


Замислимо опет да располажемо трима класама: црвеном, зеленом и плавом. Приступ ”један на један” подразумева да обучимо бинарне класификаторе који могу да разликују сваки од парова класа: црвену и зелену, зелену и плаву, и црвену и плаву. У општем случају, ако имамо \(n\) класа, број бинарних класификатора које треба да обучимо је \(\frac{n\cdot (n-1)}{2}\). Када треба да класификујемо нову инстанцу, покрећемо сваки од научених класификатора и над добијеним резултатима примењујемо принцип већинског гласања: инстанца се придружује класи за коју гласа највећи број класификатора.

https://petljamediastorage.blob.core.windows.net/root/Media/Default/Kursevi/OnlineNastava/specit4_ai/klas3.png

Приступ ”један на један”

Претходна лекција
Следећа лекција
A- A+
Тема
Темa

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.