Подршка векторској машини (СВМ) у машинском учењу

Суппорт Вецтор Мацхине је међу најпопуларнијим алгоритмима машинског учења. Ефикасан је и може се тренирати у ограниченим скуповима података. Али шта је то?

Шта је машина вектора подршке (СВМ)?

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

Како функционише СВМ?

Размотримо једноставан проблем класификације где имамо податке који имају две карактеристике, к и и, и један излаз – класификацију која је или црвена или плава. Можемо нацртати имагинарни скуп података који изгледа овако:

С обзиром на овакве податке, задатак би био да се направи граница одлуке. Граница одлуке је линија која раздваја две класе наших тачака података. Ово је исти скуп података, али са границом одлуке:

Са овом границом одлуке, онда можемо да предвидимо којој класи припада тачка података, с обзиром на то где се налази у односу на границу одлуке. Алгоритам Суппорт Вецтор Мацхине креира најбољу границу одлуке која ће се користити за класификацију тачака.

Али шта подразумевамо под најбољом границом одлуке?

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

Обука машине за векторе подршке, стога, укључује покушај да се пронађе линија која максимизира маргину између вектора подршке.

Такође је важно напоменути да пошто је граница одлуке позиционирана у односу на векторе подршке, они су једине детерминанте положаја границе одлуке. Остале тачке података су, дакле, сувишне. И стога, обука захтева само векторе подршке.

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

  ХТТПС је скоро свуда. Па зашто Интернет сада није безбедан?

Нелинеарно одвојиви подаци

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

У овом случају, раздвајање података помоћу линије је немогуће. Али можемо створити још једну особину, з. А ова карактеристика се може дефинисати једначином: з = к^2 + и^2. Можемо додати з као трећу осу равни да бисмо је учинили тродимензионалном.

Када погледамо 3Д дијаграм из угла тако да је к-оса хоризонтална док је з-оса вертикална, ово је поглед који добијамо нешто што изгледа овако:

З-вредност представља колико је тачка удаљена од почетка у односу на друге тачке у старој КСИ равни. Као резултат, плаве тачке ближе пореклу имају ниске з-вредности.

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

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

Да би мапирање ових карактеристика било ефикасније, СВМ користи трик кернела.

СВМ у машинском учењу

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

  • Класификација текста: Класификација текстуалних података као што су коментари и рецензије у једну или више категорија
  • Препознавање лица: Анализирање слика за откривање лица ради ствари као што је додавање филтера за проширену стварност
  • Класификација слика: Машине за подршку векторима могу ефикасно класификовати слике у поређењу са другим приступима.

Проблем класификације текста

Интернет је препун много и пуно текстуалних података. Међутим, велики део ових података је неструктуриран и неозначен. Да бисмо боље користили ове текстуалне податке и боље их разумели, постоји потреба за класификацијом. Примери времена када је текст класификован су:

  • Када су твитови категорисани у теме тако да људи могу да прате теме које желе
  • Када је е-пошта категорисана као друштвена, промотивна или непожељна
  • Када су коментари класификовани као мржње или опсцени на јавним форумима

Како СВМ ради са класификацијом природног језика

Суппорт Вецтор Мацхине се користи за класификацију текста у текст који припада одређеној теми и текст који не припада теми. Ово се постиже прво претварањем и представљањем текстуалних података у скуп података са неколико функција.

  7 напредних Цхроме функција за брже претраживање

Један од начина да се то уради је креирање функција за сваку реч у скупу података. Затим за сваку тачку текстуалних података бележите колико пута се свака реч појављује. Претпоставимо да се у скупу података појављују јединствене речи; имаћете карактеристике у скупу података.

Поред тога, обезбедићете класификације за ове тачке података. Иако су ове класификације означене текстом, већина СВМ имплементација очекује нумеричке ознаке.

Због тога ћете морати да конвертујете ове ознаке у бројеве пре тренинга. Када је скуп података припремљен, користећи ове карактеристике као координате, можете користити СВМ модел да класификујете текст.

Креирање СВМ-а у Питхон-у

Да бисте креирали машину за векторску подршку (СВМ) у Питхон-у, можете користити СВЦ класу из библиотеке склеарн.свм. Ево примера како можете да користите СВЦ класу да направите СВМ модел у Питхон-у:

from sklearn.svm import SVC 

# Load the dataset 
X = ... y = ... 

# Split the data into training and test sets 

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19) 

# Create an SVM model 
model = SVC(kernel="linear") 

# Train the model on the training data 
model.fit(X_train, y_train) 

# Evaluate the model on the test data 
accuracy = model.score(X_test, y_test) 

print("Accuracy: ", accuracy) 

У овом примеру прво увозимо СВЦ класу из библиотеке склеарн.свм. Затим учитавамо скуп података и делимо га на скупове за обуку и тестове.

Затим креирамо СВМ модел инстанцирањем СВЦ објекта и навођењем параметра кернела као ‘линеарног’. Затим обучавамо модел на подацима о обуци користећи методу уклапања и процењујемо модел на подацима теста користећи метод скора. Метода оцењивања враћа тачност модела, коју штампамо на конзоли.

Такође можете навести друге параметре за СВЦ објекат, као што је Ц параметар који контролише јачину регуларизације и гама параметар, који контролише коефицијент кернела за одређена језгра.

Предности СВМ-а

Ево листе неких предности коришћења машина за векторе подршке (СВМ):

  • Ефикасан: СВМ су генерално ефикасни за обуку, посебно када је број узорака велики.
  • Отпоран на буку: СВМ-ови су релативно робусни на буку у подацима о обуци јер покушавају да пронађу класификатор максималне маргине, који је мање осетљив на буку од других класификатора.
  • Меморијски ефикасан: СВМ-ови захтевају само да подскуп података за обуку буде у меморији у било ком тренутку, што их чини ефикаснијим за меморију од других алгоритама.
  • Ефикасан у високодимензионалним просторима: СВМ-ови и даље могу добро да раде чак и када број карактеристика премашује број узорака.
  • Свестраност: СВМ-ови се могу користити за задатке класификације и регресије и могу да рукују различитим типовима података, укључујући линеарне и нелинеарне податке.
  Индексирајте све датотеке интерне меморије, укључен ОС [Android]

Сада, хајде да истражимо неке од најбољих ресурса за учење Суппорт Вецтор Мацхине (СВМ).

Ресурси за учење

Увод у подршку векторских машина

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

То вам даје чврсту основу за теорију Машине за векторе подршке.

Подршка апликацијама векторских машина

Док се прва књига фокусирала на теорију помоћних векторских машина, ова књига о апликацијама помоћних векторских машина фокусира се на њихове практичне примене.

Сагледава како се СВМ-ови користе у обради слике, детекцији шаблона и компјутерском виду.

Подршка векторским машинама (информационе науке и статистика)

Сврха ове књиге о машинама са векторима подршке (наука о информацијама и статистика) је да пружи преглед принципа који стоје иза ефикасности машина за векторе подршке (СВМ) у различитим апликацијама.

Аутори истичу неколико фактора који доприносе успеху СВМ-а, укључујући њихову способност да добро раде са ограниченим бројем подесивих параметара, њихову отпорност на различите врсте грешака и аномалија, и њихове ефикасне рачунарске перформансе у поређењу са другим методама.

Учење са кернелима

„Учење помоћу кернела“ је књига која читаоце упознаје са подршком векторских машина (СВМ) и сродним техникама кернела.

Дизајниран је тако да читаоцима пружи основно разумевање математике и знање које им је потребно да почну да користе алгоритме кернела у машинском учењу. Књига има за циљ да пружи темељан, али приступачан увод у СВМ и методе кернела.

Подржите векторске машине помоћу Сци-кит Леарн

Овај онлајн курс Суппорт Вецтор Мацхинес витх Сци-кит Леарн мреже пројекта Цоурсера подучава како да имплементирате СВМ модел користећи популарну библиотеку машинског учења, Сци-Кит Леарн.

Поред тога, научићете теорију која стоји иза СВМ-а и одредити њихове предности и ограничења. Курс је почетнички и траје око 2,5 сата.

Подршка векторских машина у Питхон-у: концепти и код

Овај плаћени онлајн курс о Суппорт Вецтор Мацхинес у Питхон-у од Удеми-а има до 6 сати инструкција заснованих на видео записима и долази са сертификатом.

Покрива СВМ-ове и како они могу бити солидно имплементирани у Питхон-у. Штавише, покрива пословне апликације Суппорт Вецтор Мацхинес.

Машинско учење и вештачка интелигенција: подршка векторским машинама у Питхон-у

У овом курсу о машинском учењу и вештачкој интелигенцији научићете како да користите машине за векторе подршке (СВМ) за различите практичне примене, укључујући препознавање слика, откривање нежељене поште, медицинску дијагнозу и регресиону анализу.

Користићете програмски језик Питхон за имплементацију МЛ модела за ове апликације.

Завршне речи

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

Такође смо видели како изгледа његова имплементација помоћу сцикит-леарн-а. Осим тога, говорили смо о практичним применама и предностима Суппорт Вецтор Мацхинес.

Иако је овај чланак био само увод, додатни ресурси су препоручили да се уђе у детаље, објашњавајући више о машинама за подршку векторима. С обзиром на то колико су свестрани и ефикасни, СВМ-ови су вредни разумевања да би се развили као научници података и МЛ инжењери.

Затим можете погледати врхунске моделе машинског учења.