stub Дэмжих вектор машин гэж юу вэ? - Нэгдсэн.AI
бидэнтэй хамт холбоно
AI мастер анги:

AI 101

Дэмжих вектор машин гэж юу вэ?

mm
шинэчлэгдсэн on

Дэмжих вектор машин гэж юу вэ?

Туслах вектор машинууд нь машин сургалтын ангилагчийн нэг төрөл бөгөөд хамгийн алдартай ангилагчдын нэг юм. Туслах вектор машинууд нь тоон таамаглал, ангилал, хэв маягийг таних ажилд онцгой ач холбогдолтой.

Дэмжлэгийн вектор машинууд нь өгөгдлийн цэгүүдийн хоорондох шийдвэрийн хил хязгаарыг зурах замаар ажилладаг бөгөөд өгөгдлийн цэгүүдийг ангиудад хамгийн сайн тусгаарладаг (эсвэл хамгийн ерөнхийд тооцогдох боломжтой) шийдвэрийн хил хязгаарыг зорьдог. Дэмжлэгийн вектор машиныг ашиглах зорилго нь цэгүүдийн хоорондох шийдвэрийн хил хязгаарыг аль болох их байлгах бөгөөд ингэснээр өгөгдсөн өгөгдлийн цэг ба хилийн шугамын хоорондох зайг хамгийн их байлгах явдал юм. Энэ бол хэрхэн хурдан тайлбар юм вектор машинуудыг дэмжих (SVMs) ажиллуулах, гэхдээ SVM хэрхэн ажилладаг талаар илүү гүнзгий судалж, тэдгээрийн үйл ажиллагааны логикийг ойлгохын тулд хэсэг хугацаа зарцуулцгаая.

Вектор машинуудыг дэмжих зорилго

X ба Y тэнхлэгт заасан шинж чанарууд дээр үндэслэн олон тооны өгөгдлийн цэг бүхий графикийг төсөөлөөд үз дээ. График дээрх өгөгдлийн цэгүүдийг хоёр өөр кластерт чөлөөтэй хувааж болох бөгөөд өгөгдлийн цэгийн хамаарах кластер нь өгөгдлийн цэгийн ангиллыг заана. Одоо бид хоёр ангиудыг бие биенээсээ тусгаарласан шугамыг зурж, нэг ангийн бүх өгөгдлийн цэгийг шугамын нэг талд, нөгөө талд нь өөр ангид хамаарах бүх өгөгдлийн цэгүүдийг олохыг хүсч байна гэж бодъё. шугамын. Энэхүү тусгаарлах шугамыг гиперплан гэж нэрлэдэг.

Та дэмжих вектор машиныг хотын хэмжээнд "зам" үүсгэж, замын хоёр талдаа хотыг дүүрэг болгон тусгаарладаг гэж бодож болно. Замын нэг талд байгаа бүх барилгууд (өгөгдлийн цэгүүд) нэг дүүрэгт харьяалагддаг.

Дэмжлэгийн вектор машины зорилго нь зөвхөн гипер хавтгай зурж, өгөгдлийн цэгүүдийг хуваахаас гадна хамгийн том захын зайтай, эсвэл хуваах шугам болон аливаа өгөгдлийн цэгийн хоорондох хамгийн их зайтай тусгаарлагдсан өгөгдлийн цэгүүдийг гипер хавтгай зурах явдал юм. “Зам” зүйрлэл рүү буцах юм бол хот төлөвлөгч хурдны замын төлөвлөгөөг зурсан бол хурдны замыг байшин болон бусад барилга байгууламжтай хэт ойр байлгахыг хүсдэггүй. Хурдны зам болон хоёр талын барилгуудын хоорондох зай их байх тусмаа сайн. Энэ зөрүү том байх тусам ангилагч нь таамаглалдаа илүү "итгэлтэй" байх болно. Хоёртын ангиллын хувьд зөв гипер хавтгайг зурна гэдэг нь хоёр өөр ангийн яг голд байрлах гипер хавтгайг сонгоно гэсэн үг юм. Хэрэв шийдвэрийн хил/гипер хавтгай нь нэг ангиас хол байвал нөгөө ангид ойртоно. Тиймээс гиперплан нь хоёр өөр ангийн хоорондох зайг тэнцвэржүүлэх ёстой.

Тусгаарлах гиперпланг тооцоолох

Тэгэхээр туслах вектор машин нь хамгийн сайн тусгаарлах гиперплан/шийдвэрийн хил хязгаарыг хэрхэн тодорхойлох вэ? Энэ нь математикийн томьёог ашиглан боломжит гиперпланг тооцоолох замаар хийгддэг. Бид гиперпланг тооцоолох томъёог авч үзэхгүй туйлын нарийн, гэхдээ шугамыг алдартай налуу/шугамын томъёогоор тооцоолно:

Y = сүх + б

Үүний зэрэгцээ шугамууд нь цэгүүдээс бүтдэг бөгөөд энэ нь ямар ч гипер хавтгайг дараах байдлаар тодорхойлж болно гэсэн үг юм: Загварын жингээр тодорхойлогддог, санал болгож буй гипер хавтгайтай параллель байрлах цэгүүдийн багцыг заасан офсет/хязгаарлалтаар өөрчилсөн шинж чанаруудын олонлогоор тодорхойлно. (“d”).

SVM нь олон гипер хавтгай зурдаг. Жишээлбэл, хилийн шугам нь нэг гипер хавтгай боловч ангилагчийн авч үздэг өгөгдлийн цэгүүд нь гипер хавтгай дээр байдаг. x-ийн утгыг өгөгдлийн багц дахь шинж чанарууд дээр үндэслэн тодорхойлно. Жишээлбэл, хэрэв танд олон хүний ​​өндөр, жин бүхий өгөгдлийн багц байсан бол "өндөр" ба "жин" шинж чанарууд нь "X"-ийг тооцоолоход ашигладаг функцууд байх болно. Санал болгож буй гипер хавтгай ба хуваах гипер хавтгайн хоёр талд байрлах янз бүрийн "тусламжийн векторууд" (өгөгдлийн цэгүүд) хоорондын зайг дараах томъёогоор тооцоолно.

W * X - б

Та SVM-ийн цаад математикийн талаар илүү ихийг уншиж болох ч, хэрэв та тэдгээрийн талаар илүү ойлгомжтой ойлгохыг хайж байгаа бол зорилго нь санал болгож буй тусгаарлах гипер хавтгай/хилийн шугам болон түүнтэй параллель гүйх бусад гипер хавтгайн хоорондын зайг нэмэгдүүлэх явдал гэдгийг мэдэж аваарай ( мөн өгөгдлийн цэгүүд байдаг).

Зураг: ZackWeinberg Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Олон ангиллын ангилал

Одоогоор тайлбарласан процесс нь хоёртын ангиллын даалгаварт хамаарна. Гэсэн хэдий ч SVM ангилагчийг хоёртын бус ангиллын даалгаварт ашиглаж болно. Гурав ба түүнээс дээш ангитай өгөгдлийн багц дээр SVM ангиллыг хийхдээ илүү олон хилийн шугам ашигладаг. Жишээлбэл, ангиллын даалгавар нь хоёр биш гурван ангитай бол өгөгдлийн цэгүүдийг анги болгон хуваахын тулд хоёр хуваах шугамыг ашиглах бөгөөд нэг ангиас бүрдэх бүс нь нэг биш хоёр хуваах шугамын хооронд байрлана. Ангилагч нь зөвхөн хоёр анги болон шийдвэрийн хилийн хоорондох зайг тооцоолохын оронд шийдвэрийн хил болон өгөгдлийн багц дахь олон ангиллын хоорондох зайг авч үзэх ёстой.

Шугаман бус тусгаарлалт

Дээр тайлбарласан процесс нь өгөгдөл нь шугаман салгах боломжтой тохиолдолд хамаарна. Бодит байдал дээр өгөгдлийн багцыг бараг хэзээ ч бүрэн салгах боломжгүй гэдгийг анхаарна уу, энэ нь SVM ангилагчийг ашиглахдаа ихэвчлэн ашиглах шаардлагатай болно гэсэн үг юм. хоёр өөр техник: зөөлөн маржин ба цөмийн заль мэх. Янз бүрийн ангиллын өгөгдлийн цэгүүд хоорондоо холилдож, нөгөө ангийн "кластер" дахь нэг ангид хамаарах зарим тохиолдлуудыг авч үзье. Та ангилагчийг эдгээр тохиолдлуудыг хэрхэн зохицуулах вэ?

Шугаман бус салангид өгөгдлийн багцыг боловсруулахад ашиглаж болох нэг тактик бол "зөөлөн маржин" SVM ангилагчийг ашиглах явдал юм. Зөөлөн маржин ангилагч нь буруу ангилагдсан хэд хэдэн өгөгдлийн цэгийг хүлээн авснаар ажилладаг. Энэ нь өгөгдлийн цэгүүдийн кластеруудыг тус тусын ангилалд хамаарах ихэнх тохиолдлуудыг агуулж байгаа тул бие биенээсээ хамгийн сайн тусгаарлах шугамыг зурахыг хичээх болно. Зөөлөн маржин SVM ангилагч нь ангилагчийн нарийвчлал ба маржин гэсэн хоёр шаардлагыг тэнцвэржүүлсэн хуваах шугамыг үүсгэхийг оролддог. Энэ нь буруу ангиллыг багасгахын зэрэгцээ ахиу хэмжээг нэмэгдүүлэхийг хичээх болно.

SVM-ийн алдааны хүлцлийг "C" хэмээх гиперпараметрийг ашиглан тохируулж болно. С утгыг хянадаг Ангилагч шийдвэрийн хил хязгаарыг зурахдаа хэдэн туслах векторыг харгалзан үздэг. С утга нь буруу ангилалд ногдуулдаг торгууль бөгөөд энэ нь С утга их байх тусам ангилагч нь дэмжих вектор багасч, зөрүү багасна гэсэн үг юм.

Цөм нь өгөгдлийг хуурч, шугаман бус хэлбэрээр хувиргадаг. Зураг: Шию Жү Викмедиа Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Цөмийн трик нь өгөгдлийн багц дахь функцүүдэд шугаман бус хувиргалтыг ашиглах замаар ажилладаг. Цөмийн трик нь өгөгдлийн багцад байгаа боломжуудыг авч, шугаман бус математик функцуудыг ашиглан шинэ боломжуудыг бий болгодог. Эдгээр шугаман бус хувиргалтыг хэрэглэснээс гарах үр дүн нь шугаман бус шийдвэрийн хил хязгаар юм. SVM ангилагч нь шугаман шийдвэрийн хил хязгаарыг зурахаар хязгаарлагдахаа больсон тул дэмжлэгийн векторуудын жинхэнэ тархалтыг илүү сайн бүрдүүлдэг муруй шийдвэрийн хил хязгаарыг зурж, буруу ангиллыг хамгийн бага хэмжээнд хүргэж чадна. Хамгийн алдартай SVM шугаман бус цөмүүдийн хоёр нь Radial Basis Function ба Polynomial юм. Олон гишүүнт функц нь одоо байгаа бүх шинж чанаруудын олон гишүүнт хослолыг үүсгэдэг бол Радиал суурь функц нь төв цэг/цэг хоорондын зайг бусад бүх цэг хүртэлх зайг хэмжих замаар шинэ боломжуудыг үүсгэдэг.

Мэргэшсэн блоггер, программист Машины сургалт болон Гүн сурах сэдвүүд. Даниел бусад хүмүүст хиймэл оюун ухааны хүчийг нийгмийн сайн сайхны төлөө ашиглахад тусална гэж найдаж байна.