Teknologian jakaminen

[Machine Learning] 12. Selitys tukivektorikoneen (SVM - Support Vector Machine) algoritmiperiaatteesta, joka on yksi kymmenestä suosituimmasta algoritmista

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 · Abstrakti

Lisää kuvan kuvaus tähän

Tukivektorikone (SVM) on tehokas valvottu oppimisalgoritmi, jota käytetään laajalti luokittelu- ja regressioongelmissa. Se erottaa eri tietopisteluokat etsimällä piirreavaruudesta optimaalisen hypertason. Tavoitteena on maksimoida kahden tyyppisten datapisteiden välinen aika, mikä parantaa mallin yleistyskykyä. SVM:n avainkäsitteitä ovat hypertasot, intervallit, tukivektorit ja ydinfunktiot. Ydinfunktio mahdollistaa SVM:n käsittelevän epälineaarisia ongelmia ja löytää lineaarisesti erotettavia hypertasoja yhdistämällä tiedot korkeamman ulottuvuuden tilaan. Lisäksi pehmeitä marginaali- ja regularisointitekniikoita käytetään käsittelemään datan epätäydellistä lineaarista erotettavuutta samalla kun ohjataan mallin monimutkaisuutta ja estetään ylisovitus. SVM:n toteutus sisältää sopivan ydinfunktion valinnan, konveksin kvadraattisen ohjelmointiongelman rakentamisen ja ratkaisemisen sekä opetetun mallin arvioinnin ja soveltamisen. Sen etuja ovat, että malli on yksinkertainen, helppo toteuttaa ja sillä on hyvä yleistyskyky, mutta siinä on korkea laskennallinen monimutkaisuus, se on herkkä ytimen toiminnoille ja parametrien valinnalle ja voi kohdata suorituskyvyn pullonkauloja suuria tietojoukkoja käsiteltäessä.

2. Henkilökohtainen esittely

🏘️🏘️个人主页:Vuorten ja jokien käyttö lahjana
🎖️🎖️:Rising Star Creator Python-kentällä, CSDN Rising Star -sertifiointi, CSDN-sisältökumppani, Alibaba Cloud Community Expert Blogger, Rising Star -ohjelman mentori ja on-the-job Data Analyst.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Lisää kuvan kuvaus tähän

🐘 希望大家能持续支持,共同向前迈进!😁
Jos artikkeli on mielestäsi arvokas,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐

3. Peruskäsitteet

Support Vector Machine (SVM) on tehokas koneoppimisalgoritmi, jota käytetään pääasiassa luokittelu- ja regressioongelmien ratkaisemiseen. Se perustuu tilastollisen oppimisteorian rakenteelliseen riskien minimoimisen periaatteeseen ja erottaa eri tietokategoriat etsimällä piirreavaruudesta optimaalisen päätösrajan eli hypertason. Tämän hypertason valinnalla pyritään maksimoimaan lyhin etäisyys datapisteistä hypertasoon, jota kutsutaan marginaaliksi. Mitä suurempi väli, sitä parempi mallin yleistyskyky yleensä on.

SVM:n ydin on tukivektori, joka on joukko datapisteitä, jotka ovat kriittisiä hypertason sijainnin ja suunnan määrittämisessä. Ne ovat hypertason lähimpiä pisteitä. Jos tiedot eivät ole lineaarisesti erotettavissa, SVM kartoittaa alkuperäisen datan korkeamman ulottuvuuden avaruuteen ottamalla käyttöön ydinfunktion ja löytää tästä uudesta avaruudesta lineaarisesti erotettavan hypertason. Yleisesti käytettyjä ydinfunktioita ovat lineaariset ytimet, polynomiytimet, radial Base Function (RBF) -ytimet jne.

Käsitelläkseen kohinaa ja poikkeavuuksia tiedoissa SVM ottaa käyttöön pehmeän marginaalin käsitteen, joka mahdollistaa joidenkin datapisteiden virheellisen luokittelun vastineeksi paremmasta yleistyssuorituskyvystä. Samalla mallin monimutkaisuutta hallitaan regularisointiehdoilla ylisovituksen välttämiseksi. SVM:n opetusprosessi sisältää yleensä kuperan neliöllisen ohjelmointiongelman ratkaisemisen optimaalisten hypertasoparametrien löytämiseksi.

Katso alla olevaa kuvaa Kaksiulotteisessa ympäristössä pisteet R, S, G ja muut pisteet, jotka ovat lähellä keskimusta viivaa, voivat olla tukivektoreita linja.
Lisää kuvan kuvaus tähän

4. Tukivektorit ja hypertasot

Tukivektorit ja hypertasot ovat tukivektorikoneen (SVM) -algoritmin ydinkäsitteitä. Seuraavassa selitän nämä kaksi käsitettä yksityiskohtaisesti:

4.1 Hypertaso

Matematiikassa hypertaso on lineaarinen aliavaruus, jonka ulottuvuus on pienempi kuin avaruus, jossa se sijaitsee. Esimerkiksi kaksiulotteisessa avaruudessa hypertaso on suora viiva kolmiulotteisessa avaruudessa, se on taso korkeamman ulottuvuuden avaruudessa, se on silti lineaarinen raja, mutta sitä voi olla vaikea ymmärtää intuitiivisesti.

SVM:ssä hypertasoa käytetään tietojen luokittelemiseen eri luokkiin. Kaksiulotteisessa avaruudessa voit kuvitella hypertason suorana viivana, joka jakaa tilan kahteen osaan, joista jokainen sisältää yhden tietopisteluokan. Korkeamman ulottuvuuden avaruudessa hypertaso on korkeamman ulottuvuuden lineaarinen raja, joka myös erottaa datapisteet.

4.2 Tukivektorit

Tukivektorit ovat niitä datapisteitä, jotka sijaitsevat lähimpänä hypertasoa. Ne ovat tärkeimpiä tietopisteitä, joita SVM käyttää koulutuksen aikana hypertason sijainnin määrittämiseen. Jos poistat jonkin näistä pisteistä, se muuttaa hypertason sijaintia ja suuntaa.

Tukivektorit ovat tärkeitä, koska ne määrittelevät rajat (eli välit) datapisteiden välillä. SVM:n tavoitteena on löytää hypertaso, joka maksimoi etäisyyden (välin) lähimpien tukivektorien (eli hypertasoa lähimpänä olevien datapisteiden) ja hypertason välillä. Tämän intervallin koko on tärkeä indikaattori mallin yleistyskyvystä.

4.3 Ytimen temppu

Todellisissa sovelluksissa tiedot eivät välttämättä ole lineaarisesti erotettavissa. Tällä hetkellä SVM voi käyttää ydintekniikoita epälineaaristen ongelmien ratkaisemiseen. Ydinfunktio voi kartoittaa alkuperäisen datan korkeamman ulottuvuuden avaruuteen ja löytää lineaarisesti erotettavan hypertason uudesta avaruudesta. Yleisesti käytettyjä ydinfunktioita ovat lineaariset ytimet, polynomiytimet, radial Base Function (RBF) -ytimet jne.

4.4 Pehmeä marginaali ja tasaus

Kun käsitellään todellista dataa, ei ehkä ole mahdollista löytää täydellistä hypertasoa, joka erottaa täysin kaikki datapisteet. Tällä hetkellä SVM esitteli pehmeän marginaalin käsitteen, mikä mahdollisti joidenkin datapisteiden luokittelun väärin vastineeksi paremmista yleistysominaisuuksista. Samalla mallin monimutkaisuutta ohjataan regularisointitermillä (yleensä normaalivektorin normilla) ylisovituksen välttämiseksi.

Lisää kuvan kuvaus tähän

5. SVM-algoritmin periaate

5.1 Etäisyyskaava pisteestä hypertasoon

Piste-hypertaso-etäisyyskaavaa käytetään laskemaan lyhin etäisyys pisteestä tiettyyn hypertasoon. Hypertaso voidaan ilmaista seuraavalla yhtälöllä n-ulotteisessa avaruudessa:
Lisää kuvan kuvaus tähän
sisään:
w on n-ulotteinen normaalivektori, joka on kohtisuorassa hypertasoon nähden.
x on n-ulotteinen piste, joka sijaitsee avaruudessa.
b on hypertason bias-termi.
Pystyetäisyys d pisteestä x tähän hypertasoon voidaan laskea seuraavalla kaavalla:
Lisää kuvan kuvaus tähän
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Maksimivälin optimointimalli

Optimointimalli lineaarisesti erotettavassa tapauksessa
Kun data on lineaarisesti erotettavissa, eli on olemassa hypertaso, joka pystyy täydellisesti erottamaan eri datapisteluokat, SVM:n tavoitteena on löytää hypertaso, jossa kaksi lähintä datapistettä (eli tukivektorit) ovat hypertasoa. Maksimoi etäisyys. Tätä etäisyyttä kutsutaan marginaaliksi.
Hypertaso voidaan ilmaista seuraavasti:
Lisää kuvan kuvaus tähän
Maksimimarginaalin optimointiongelma
SVM:n tavoitefunktio on maksimoida intervalli, joka voidaan ilmaista seuraavasti:
Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähänEsittelyssä Lagrange-kertoimet
Lisää kuvan kuvaus tähän
kaksoisongelma
Lisää kuvan kuvaus tähän

6. Slack-muuttujat

Tukivektorikoneissa (SVM) slack-muuttujat (Slack Variables) ovat mekanismi, joka otetaan käyttöön käsittelemään epälineaarisia erotettavissa olevia tilanteita tietojoukoissa. Ihanteellisessa tilanteessa, jos data on lineaarisesti erotettavissa, SVM voi löytää hypertason, joka erottaa täysin eri tietopisteluokat ja maksimoi marginaalin. Todellisessa maailmassa monet tietojoukot eivät kuitenkaan ole täysin lineaarisesti erotettavissa, mikä edellyttää löysämuuttujien käyttöä, jotta jotkut datapisteet voidaan luokitella väärin, mikä parantaa mallin yleistyskykyä.Lisää kuvan kuvaus tähän

6.1 Slack-muuttujien määrittely

Lisää kuvan kuvaus tähän

6.2 Optimointimallin muuttaminen

Lisää kuvan kuvaus tähän
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Pehmeät ja kovat marginaalit

  • Kova marginaali: SVM, joka ei ota käyttöön löysiä muuttujia, edellyttää, että kaikki datapisteet ovat marginaalin ulkopuolella tai sen rajalla, eli virheluokittelu ei ole sallittua.
  • Pehmeä marginaali: SVM ottaa käyttöön löysät muuttujat, jotka sallivat joidenkin datapisteiden olla marginaalin rajan sisällä, mikä mahdollistaa tietyn asteisen luokitteluvirheen. Ytimen temppuja ja löysät muuttujat.

6.4 Ytimen temppuja ja löysät muuttujat

Jopa epälineaarisen erotettavuuden tapauksessa SVM voi silti löytää hypertason maksimimarginaalilla käyttämällä ytimen temppua datan kartoittamiseen korkeadimensionaaliseen tilaan yhdistettynä löysään muuttujiin.

7. Ytimen toiminto

Ydintoiminto on tärkeä työkalu tukivektorikoneessa (SVM), jonka avulla SVM voi käsitellä tehokkaasti epälineaarisia ongelmia korkean ulottuvuuden avaruudessa. Ydinfunktion perusideana on kartoittaa alkuperäinen data matalaulotteisesta avaruudesta korkeadimensionaaliseen avaruuteen kartoituksen avulla ja löytää datan lineaarinen erotettavuus tässä korkeadimensionaalisessa avaruudessa.
Lisää kuvan kuvaus tähän

7.1 Ytimen toiminnan peruskäsitteet

Lisää kuvan kuvaus tähän

7.2 Yleisesti käytetyt ydinfunktiot

Lisää kuvan kuvaus tähän

7.3 Ytimen funktion rooli

  1. Käsittele epälineaarisia ongelmia: Kartoitamalla korkeadimensionaaliseen avaruuteen ydinfunktio tekee datasta, joka on alun perin lineaarisesti erottamaton pieniulotteisessa avaruudessa, lineaarisesti erotettavissa korkeadimensionaalisessa avaruudessa.
  2. Paranna mallin ilmaisukykyä: Eri ytimen toiminnot voivat siepata datan erilaisia ​​ominaisuuksia ja parantaa mallin ilmaisukykyä.
  3. Vähennä laskennan monimutkaisuutta: Ytimen funktioiden käyttäminen voi välttää suoran laskennan suuriulotteisessa avaruudessa, mikä vähentää laskennan monimutkaisuutta.