Vodič za strojno učenje za početnike: Što je, osnove ML-a

⚡ Pametni sažetak

Strojno učenje je obitelj računalnih algoritama koji se poboljšavaju iz primjera umjesto da budu eksplicitno kodirani, kombinirajući podatke sa statističkim alatima kako bi predvidjeli rezultate koje ljudi mogu pretvoriti u praktične odluke.

  • 🔘 Pravila se uče, ne pišu: Tradicionalno programiranje kodira svako pravilo ručno, dok model izvodi pravilo iz uparenih ulaza i izlaza.
  • ☑️ Dvije faze: Učenje otkriva obrasce i sažima ih u model; zaključivanje primjenjuje taj model na nikad viđene podatke.
  • Dvije široke obitelji: Nadzirano učenje treba označene rezultate, dok nenadzirano učenje pronalazi strukturu bez njih.
  • 🧪 Izbor algoritma slijedi cilj: Regresija predviđa kontinuirane vrijednosti, klasifikacija dodjeljuje oznake, a klasteriranje grupira slične zapise.
  • 🛠️ Podaci su pravo ograničenje: Premalo podataka ili podaci bez raznolikosti stvaraju model koji se ne može generalizirati.
  • Gdje se isplati: Otkrivanje prijevara u bankarstvu, otkrivanje slika u zdravstvu, predviđanje potražnje u cijelom lancu opskrbe.

Vodič za strojno učenje za početnike: Osnove strojnog učenja

Što je strojno učenje?

Strojno učenje je sustav računalnih algoritama koji mogu učiti iz primjera kroz samousavršavanje, bez da ih programer eksplicitno kodira. Strojno učenje dio je umjetna inteligencija koji kombinira podatke sa statističkim alatima kako bi predvidio rezultat koji se može koristiti za dobivanje praktičnih uvida.

Proboj dolazi s idejom da stroj može samostalno učiti iz podataka (tj. primjera) kako bi proizveo točne rezultate. Strojno učenje usko je povezano s data mining i Bayesovo prediktivno modeliranje. Stroj prima podatke kao ulaz i koristi algoritam za formuliranje odgovora.

Tipičan zadatak strojnog učenja je davanje preporuke. Za one koji imaju Netflix račun, sve preporuke filmova ili serija temelje se na povijesnim podacima korisnika. Tehnološke tvrtke koriste učenje bez nadzora poboljšati korisničko iskustvo personalizacijom preporuka.

Strojno učenje se također koristi za razne zadatke kao što su otkrivanje prijevara, prediktivno održavanje, optimizacija portfelja i automatizacija zadataka.

Strojno učenje nasuprot tradicionalnom programiranju

Tradicionalno programiranje značajno se razlikuje od strojnog učenja. U tradicionalnom programiranju, programer kodira sva pravila u konzultaciji sa stručnjakom u industriji za koju se softver razvija. Svako pravilo temelji se na logičkoj osnovi; stroj proizvodi izlaz slijedeći logičku izjavu. Kada sustav postane složeniji, potrebno je napisati više pravila i njegovo održavanje može brzo postati neodrživo. Dijagram u nastavku prikazuje taj tok, gdje podaci i rukom pisana pravila ulaze, a odgovori izlaze.

Tradicionalni tok programiranja: podaci plus ručno kodirana pravila daju izlaz
Tradicionalno programiranje

Strojno učenje namijenjeno je prevladavanju ovog problema. Stroj uči kako su ulazni i izlazni podaci povezani i sam piše pravilo. Programeri ne moraju pisati nova pravila svaki put kada postoje novi podaci. Algoritmi se prilagođavaju novim podacima i iskustvu kako bi s vremenom poboljšali učinkovitost. Drugi dijagram invertira prvi: podaci i poznati odgovori ulaze, a pravilo izlazi.

Tok strojnog učenja: podaci i poznati odgovori daju pravilo

Strojno učenje

Kako funkcionira strojno učenje?

S tim kontrastom, sljedeće pitanje je što se zapravo događa unutar koraka učenja.

Strojno učenje je mozak u kojem se odvija svo učenje. Način na koji stroj uči sličan je načinu na koji uči ljudsko biće. Ljudi uče iz iskustva: što više znamo, lakše možemo predvidjeti. Po analogiji, kada se suočimo s nepoznatom situacijom, vjerojatnost uspjeha je manja nego u poznatoj situaciji. Strojevi se obučavaju na isti način. Da bi dao točno predviđanje, stroj vidi primjer. Kada stroju damo sličan primjer, on može shvatiti ishod. Međutim, kao i čovjek, ako mu se da prethodno neviđeni primjer, stroj ima poteškoća s predviđanjem.

Osnovni ciljevi strojnog učenja su učenje i zaključivanje. Prije svega, stroj uči otkrivanjem obrazaca, a to otkriće omogućuju podaci. Jedan ključni dio posla znanstvenika podataka je pažljivo odabrati koje će podatke pružiti stroju. Popis atributa koji se koriste za rješavanje problema naziva se vektor značajkiVektor značajki možete zamisliti kao podskup podataka koji se koristi za rješavanje problema.

Stroj koristi algoritme za pojednostavljenje stvarnosti i pretvaranje ovog otkrića u model. Faza učenja se stoga koristi za opisivanje podataka i njihovo sažimanje u model, kao što je prikazano u nastavku.

Faza učenja: podaci za učenje prolaze kroz algoritam za izgradnju modela

Na primjer, stroj pokušava razumjeti odnos između plaće pojedinca i vjerojatnosti odlaska u otmjeni restoran. Ispada da stroj pronalazi pozitivnu vezu između plaće i odlaska u luksuzni restoran: to je model.

Zaključujući

Kada je model izgrađen, moguće je testirati njegovu moć na dosad neviđenim podacima. Novi podaci se transformiraju u vektor značajki, prolaze kroz model i daju predviđanje. Ovo je vrijedan dio strojnog učenja. Nema potrebe za ažuriranjem pravila ili ponovnim treniranjem modela - možete koristiti prethodno trenirani model za donošenje zaključaka na temelju novih podataka, točno kao što je prikazano na dijagramu ispod.

Faza zaključivanja: novi podaci prolaze kroz obučeni model kako bi se dalo predviđanje

Život programa strojnog učenja je jednostavan i može se sažeti u sljedećim točkama:

  1. Definirajte pitanje
  2. Prikupiti podatke
  3. Vizualizirajte podatke
  4. Algoritam vlaka
  5. Testirajte algoritam
  6. Prikupi povratne informacije
  7. Usavršite algoritam
  8. Ponavljajte korake od 4 do 7 dok rezultati ne budu zadovoljavajući
  9. Koristite model za predviđanje

Jednom kada algoritam postane dobar u izvlačenju pravih zaključaka, primjenjuje to znanje na nove skupove podataka.

Strojno učenje Algorithms i gdje se koriste?

Donja tablica grupira najčešće algoritme prema vrsti zadatka koji rješavaju.

Algoritmi strojnog učenja grupirani u nadzirane i nenadzirane zadatke

Strojno učenje Algorithms

Strojno učenje može se grupirati u dva široka zadatka učenja: pod nadzorom i bez nadzoraDvije daljnje obitelji nalaze se između i iza njih - polunadzirano učenje, koje miješa mali označeni skup s velikim neoznačenim, i učenje učvršćivanja, gdje agent uči iz nagrada, a ne iz označenih odgovora.

Nadzirano učenje

Algoritam koristi podatke za obuku i povratne informacije od ljudi kako bi naučio odnos između zadanih ulaza i zadanog izlaza. Na primjer, praktičar može koristiti marketinške troškove i vremensku prognozu kao ulazne podatke za predviđanje prodaje limenki.

Možete koristiti nadzirano učenje kada su izlazni podaci poznati. Algoritam će tada predviđati na temelju novih podataka.

Postoje dvije kategorije nadziranog učenja:

  • Klasifikacijski zadatak
  • Regresijski zadatak

Klasifikacija

Zamislite da želite predvidjeti spol kupca za reklamu. Započet ćete prikupljanjem podataka o visini, težini, poslu, plaći, košarici i tako dalje iz svoje baze podataka kupaca. Znate spol svakog od svojih kupaca i to može biti samo muškarac ili žena. Cilj klasifikatora je dodijeliti vjerojatnost da je kupac muškarac ili žena (tj. oznaku) na temelju prikupljenih informacija (tj. značajki). Kada model nauči prepoznavati muško ili žensko, možete koristiti nove podatke za predviđanje. Na primjer, upravo ste primili nove informacije od nepoznatog kupca i želite znati je li kupac muškarac ili žena. Ako klasifikator predviđa muško = 70%, to znači da je algoritam 70% siguran da je taj kupac muškarac i 30% siguran da je kupac žena.

Oznaka može imati dvije ili više klasa. Gornji primjer strojnog učenja ima samo dvije klase, ali ako klasifikator treba predvidjeti objekte, može imati desetke klasa (npr. čaša, stol, cipele - svaki objekt predstavlja klasu).

Regresija

Kada je izlaz kontinuirana vrijednost, zadatak je regresija. Na primjer, financijski analitičar možda treba predvidjeti vrijednost dionice na temelju niza značajki kao što su kapital, prethodni rezultati dionica i makroekonomski indeksi. Sustav će biti obučen za procjenu cijene dionice s najmanjom mogućom pogreškom.

U donjoj tablici navedeni su nadzirani algoritmi s kojima ćete se najčešće susresti i zadatak za koji je svaki od njih prikladan.

Algoritam Description Tip
Linearna regresija Pronalazi način povezivanja svake značajke s izlazom kako bi se pomoglo u predviđanju budućih vrijednosti. Regresija
Logistička regresija Proširenje linearne regresije koje se koristi za zadatke klasifikacije. Izlazna varijabla je binarna (npr. samo crna ili bijela), a ne kontinuirana (npr. beskonačan popis potencijalnih boja) Klasifikacija
Stablo odlučivanja Visoko interpretabilna klasifikacija ili regresijski model koji dijeli vrijednosti značajki podataka u grane na čvorovima odlučivanja (npr. ako je značajka boja, svaka moguća boja postaje nova grana) dok se ne donese konačna odluka Regresija
Klasifikacija
Naivni Bayes Bayesova metoda je metoda klasifikacije koja koristi Bayesov teorem. Teorem ažurira prethodno znanje o događaju s neovisnom vjerojatnošću svake značajke koja može utjecati na događaj. Regresija
Klasifikacija
Podrška vektorski stroj Za zadatak klasifikacije obično se koristi Support Vector Machine ili SVM. SVM algoritam pronalazi hiperravninu koja optimalno dijeli klase. Najbolje ga je koristiti s nelinearnim rješavačem. Regresija (nije baš česta)
Klasifikacija
Slučajna šuma Algoritam je izgrađen na stablu odlučivanja kako bi se drastično poboljšala točnost. Slučajna šuma generira mnoga jednostavna stabla odlučivanja i koristi metodu 'većinskog glasova' kako bi odlučila koju oznaku vratiti. Za zadatak klasifikacije, konačno predviđanje bit će ono s najviše glasova; za zadatak regresije, prosječno predviđanje svih stabala je konačno predviđanje. Regresija
Klasifikacija
AdaBoost Tehnika klasifikacije ili regresije koja koristi mnoštvo modela za donošenje odluke, ali ih odvaguje na temelju njihove točnosti u predviđanju ishoda Regresija
Klasifikacija
Stabla koja povećavaju gradijent Stabla s pojačavanjem gradijenta su najsuvremenija tehnika klasifikacije/regresije. Fokusira se na pogrešku koju su počinila prethodna stabla i pokušava je ispraviti. Regresija
Klasifikacija

Učenje bez nadzora

U nenadziranom učenju, algoritam istražuje ulazne podatke bez da mu je zadana eksplicitna izlazna varijabla (npr. istražuje demografske podatke kupaca kako bi identificirao uzorke).

Možete ga koristiti kada ne znate kako klasificirati podatke i želite da algoritam pronađe uzorke i grupira podatke umjesto vas. Glavni nenadzirani algoritmi sažeti su u nastavku.

Naziv algoritma Description Tip
K-znači grupiranje Stavlja podatke u neke grupe (k) od kojih svaka sadrži podatke sličnih karakteristika (kao što je određeno modelom, a ne unaprijed od strane ljudi) Clustering.
Gaussov model mješavine Generalizacija k-znači klasteriranja koja pruža veću fleksibilnost u veličini i obliku grupa (klastera) Clustering.
Hijerarhijsko grupiranje Dijeli klastere duž hijerarhijskog stabla kako bi se formirao klasifikacijski sustav. Može se koristiti za grupiranje kupaca kartica vjernosti. Clustering.
Sustav preporuka Pomaže u definiranju relevantnih podataka za davanje preporuke. Clustering.
PCA/t-SNE Uglavnom se koristi za smanjenje dimenzionalnosti podataka. Algoritmi smanjuju broj značajki na 3 ili 4 vektora s najvećim odstupanjima. Smanjenje dimenzija

Kako odabrati algoritam strojnog učenja

Postoji mnogo algoritama strojnog učenja, a izbor algoritma ovisi o cilju, a ne o modi.

U primjeru strojnog učenja u nastavku, zadatak je predvidjeti vrstu cvijeta među tri sorte. Predviđanja se temelje na duljini i širini latice. Slika prikazuje rezultate deset različitih algoritama. Slika gore lijevo je sam skup podataka, s podacima klasificiranim u tri kategorije: crvena, svijetloplava i tamnoplava. Neke grupepings su vidljivi. Na primjer, na drugoj slici sve u gornjem lijevom kutu pripada crvenoj kategoriji, srednji dio sadrži mješavinu nesigurnosti i svijetloplave boje, dok donji dio odgovara tamnoj kategoriji. Ostale slike prikazuju kako različiti algoritmi pokušavaju klasificirati iste podatke.

Deset algoritama uspoređenih na istom skupu podataka o cvijeću tri klase

Nakon što je kandidat odabran, njegova kvaliteta se ocjenjuje na temelju podataka koje nikada nije vidio, obično s matrica zabune i iz toga izvedene brojke točnosti, preciznosti i prisjećanja.

Izazovi i ograničenja strojnog učenja

Primarni izazov strojnog učenja je nedostatak podataka ili nedostatak raznolikosti unutar skupa podataka. Stroj ne može učiti ako nema dostupnih podataka. Skup podataka kojem nedostaje raznolikosti također otežava stroju, jer stroju treba heterogenost da bi naučio smislen uvid. Rijetko je da algoritam može...tracinformacije kada nema ili ima malo varijacija. Uobičajeno pravilo je imati najmanje 20 opažanja po skupini kako bi se stroju pomoglo u učenju; ispod toga, i evaluacija i predviđanje pate.

Količina podataka nije jedino ograničenje. Modeli obučeni na pristranim povijesnim zapisima reproduciraju tu pristranost, složene modele je teško objasniti regulatoru ili kupcu, a svaki model degradira kako se mijenja svijet na kojem je obučen.

Primjena strojnog učenja

Gore navedene tehnike već se koriste u većini industrija. Primjeri u nastavku odnose se na opću pomoć i odnose se na specifične sektore.

Povećanje: Strojno učenje pomaže ljudima u njihovim svakodnevnim zadacima, osobnim ili komercijalnim, bez potpune kontrole nad rezultatima. Takvo strojno učenje koristi se na različite načine, kao što su virtualni asistenti, analiza podataka i softverska rješenja. Primarna svrha je smanjenje pogrešaka uzrokovanih ljudskom pristranošću.

Automatizacija: Strojno učenje radi potpuno autonomno u bilo kojem području bez potrebe za ljudskom intervencijom. Na primjer, roboti obavljaju bitne procesne korake u proizvodnim pogonima.

Financijska industrija: Strojno učenje sve je popularnije u financijskoj industriji. Banke uglavnom koriste strojno učenje za pronalaženje obrazaca unutar podataka, ali i za sprječavanje prijevara.

Vladine organizacije: Vlade koriste strojno učenje za upravljanje javnom sigurnošću i komunalnim uslugama. Uzmimo za primjer Kinu i njen veliki program prepoznavanja lica, gdje aplikacije umjetne inteligencije koriste se za identifikaciju osoba koje prelaze ulicu bez prelaza.

Zdravstvena industrija: Zdravstvo je bilo jedna od prvih industrija koja je koristila strojno učenje, počevši s detekcijom slika.

Marketing: Široka upotreba umjetne inteligencije u marketingu ostvaruje se zahvaljujući obilnom pristupu podacima. Prije doba masovnih podataka, istraživači su razvili napredne matematičke alate poput Bayesove analize za procjenu vrijednosti kupca. S procvatom podataka, marketinški odjeli oslanjaju se na umjetnu inteligenciju za optimizaciju odnosa s kupcima i marketinških kampanja.

Primjer strojnog učenja u lancu opskrbe

Strojno učenje daje snažne rezultate za vizualno prepoznavanje uzoraka, otvarajući mnoge potencijalne primjene u fizičkom pregledu i održavanju u cijeloj mreži opskrbnog lanca.

Nenadzirano učenje može brzo pretraživati ​​usporedive obrasce u raznolikom skupu podataka. Zauzvrat, stroj može provoditi inspekciju kvalitete u cijelom logističkom središtu i označavati pošiljke s oštećenjima i istrošenošću.

Na primjer, IBMWatsonova platforma može odrediti brodping oštećenje kontejnera. Watson kombinira vizualne i sistemske podatke kako bi track, izvještavati i davati preporuke u stvarnom vremenu.

U prošlosti su se upravitelji zaliha uvelike oslanjali na ručne metode za procjenu i predviđanje zaliha. Kada se kombiniraju veliki podaci i strojno učenje, moguće su bolje tehnike predviđanja, s prijavljenim poboljšanjima od 20 do 30 posto u odnosu na tradicionalne alate za predviđanje. Što se tiče prodaje, to se prevodi u povećanje od 2 do 3 posto zahvaljujući potencijalnom smanjenju troškova zaliha.

Primjer strojnog učenja u Google Automobil

Svi znaju Google automobil. Automobil je prekriven laserima na krovu koji mu govore gdje se nalazi u odnosu na okolno područje. Sprijeda ima radar koji automobil obavještava o brzini i kretanju svih automobila oko njega. Koristi sve te podatke ne samo kako bi shvatio kako voziti automobil, već i kako bi predvidio što će vozači oko njega učiniti. Impresivno je to što automobil obrađuje gotovo gigabajt podataka u sekundi.

Senzori autonomnih automobila koji u stvarnom vremenu hrane modele strojnog učenja

Zašto je strojno učenje važno?

Strojno učenje je do sada najbolji alat za analizu, razumijevanje i identificiranje uzoraka u podacima. Jedna od glavnih ideja iza strojnog učenja jest da se računalo može naučiti automatizirati zadatke koji bi za ljudsko biće bili iscrpljujući ili nemogući. Jasna razlika od tradicionalne analize je u tome što strojno učenje može donositi odluke uz minimalnu ljudsku intervenciju.

Uzmimo sljedeći primjer: agent za maloprodaju može procijeniti cijenu kuće na temelju osobnog iskustva i poznavanja tržišta.

Stroj se može obučiti da znanje tog stručnjaka prevede u značajke. Značajke su sve karakteristike kuće, susjedstva, ekonomskog okruženja i tako dalje koje utječu na razliku u cijeni. Stručnjaku je vjerojatno trebalo godinama da svlada umijeće procjene cijene kuće, a stručnost se poboljšava nakon svake prodaje.

Stroju su potrebni milijuni podatkovnih točaka (tj. primjera) da bi savladao ovu umjetnost. Na samom početku učenja, stroj griješi, slično kao mlađi prodavač. Nakon što stroj vidi dovoljno primjera, ima dovoljno znanja da napravi procjenu, i to s visokom točnošću. Stroj je također u stanju ispraviti svoje pogreške kako pristižu novi kupci.

Većina velikih tvrtki shvatila je vrijednost strojnog učenja i čuvanja podataka. McKinsey Global Institute procijenio je godišnju vrijednost svih analitičkih tehnika na 9.5 bilijuna do 15.4 bilijuna dolara, a otprilike 40 posto toga - oko 3.5 bilijuna do 5.8 bilijuna dolara godišnje - pripisao je naprednim tehnikama umjetne inteligencije temeljenim na dubokim neuronskim mrežama, kako je navedeno u njegovom Bilješke s granice umjetne inteligencije istraživanje.

Tamo gdje su pravila poznata, ali neprecizna, a ne odsutna, pristup temeljen na pravilima, kao što je nejasna logika može biti bolje prikladan od naučenog modela, pa se dvije tehnike često uspoređuju prije početka projekta.

Pitanja i odgovori

Polu-nadzirano učenje se odvija na malom označenom skupu plus velikom neoznačenom skupu, što pomaže kada je označavanje skupo. Ojačavanje učenja uopće nema oznaka: agent djeluje, prima nagradu ili kaznu i prilagođava svoju politiku tijekom mnogo pokušaja.

Ugniježđeni su. Umjetna inteligencija je najširi cilj strojne inteligencije, strojno učenje je podskup koji uči iz podataka, a duboko učenje je podskup strojnog učenja izgrađenog na višeslojnim neuronskim mrežama.

Prekomjerno prilagođavanje se događa kada model memorira skup za učenje, uključujući njegov šum, a zatim ne uspije na novim podacima. Unakrsna validacija, jednostavniji modeli, regularizacija, rani prekidping i više primjera obuke su uobičajene obrane.

Model uvijek dobro ocjenjuje redove u koje je prilagođen, tako da taj rezultat ništa ne dokazuje. Zadržavanje testnog skupa - a često i zasebnog validacijskog skupa za podešavanje - jedina je poštena procjena performansi na podacima koje model nikada nije vidio.

Poznavanje osnovne statistike i vjerojatnosti, linearne algebre na razini vektora i matrica te jednog skriptnog jezika. Praktično rukovanje podacima na početku je važnije od napredne matematike, stoga je čišćenje i istraživanje stvarnog skupa podataka najbolja prva vježba.

Python potencijalni klijenti, sa scikit-learn za klasične modele i TensorFlow ili PyTorch za neuronske mreže. R ostaje jak za statističko modeliranje i vizualizaciju, dok je SQL neizbježan za samo dohvaćanje podataka za učenje.

Prediktivni modeli daju oznaku ili broj za zadani ulaz. Generativni modeli uče distribuciju podataka i iz njih proizvode nove uzorke - tekst, slike ili kod. Oba se treniraju na podacima, ali samo se jedan procjenjuje isključivo na temelju točnosti.

GitHub kopilot brzo izrađuje predloške: učitava skup podataka, dijeli ga, prilagođava procjenitelju i prikazuje rezultate. Revpregledajte svaki prijedlog, jer cjevovod koji izgleda uvjerljivo i dalje može procuriti podatke o testiranju u trening i napuhati rezultat.

Sažmite ovu objavu uz: