Programmēšana

Kas ir mašīnmācīšanās? Izlūkošana, kas iegūta no datiem

Mašīnmācīšanās definēta

Mašīnmācība ir mākslīgā intelekta nozare, kas ietver metodes vai algoritmus, lai automātiski izveidotu modeļus no datiem. Atšķirībā no sistēmas, kas veic uzdevumu, ievērojot precīzus noteikumus, mašīnmācīšanās sistēma mācās no pieredzes. Tā kā uz noteikumiem balstīta sistēma katru reizi uzdevumu veiks vienādi (labāk vai sliktāk), mašīnmācīšanās sistēmas veiktspēju var uzlabot, apmācot, pakļaujot algoritmu vairāk datu.

Mašīnmācīšanās algoritmus bieži iedala uzraudzībā (apmācības dati ir apzīmēti ar atbildēm) un bez uzraudzības (visas etiķetes, kas var pastāvēt, netiek parādītas apmācības algoritmā). Pārvaldītās mašīnmācīšanās problēmas tiek sīkāk iedalītas klasifikācija (paredzot neskaitāmas atbildes, piemēram, nokavēta hipotēkas maksājuma varbūtību) un regresija (paredzot skaitliskas atbildes, piemēram, to logrīku skaitu, kas nākamajā mēnesī tiks pārdoti jūsu Manhetenas veikalā).

Nepieskatīta mācīšanās tiek tālāk sadalīta kopu veidošana (atrast līdzīgu priekšmetu grupas, piemēram, skriešanas apavus, staigāšanas apavus un kleitu apavus), asociācija (atrast kopīgas priekšmetu secības, piemēram, kafiju un krējumu) un izmēru samazināšana (projekcija, objektu izvēle un iezīmju iegūšana).

Mašīnmācīšanās pielietojumi

Mēs dzirdam par mašīnmācīšanās lietojumiem ikdienā, lai gan ne visi no tiem ir nelegāli panākumi. Pašpiedziņas automašīnas ir labs piemērs, kur uzdevumi svārstās no vienkāršiem un veiksmīgiem (palīdzība stāvvietā un braukšana pa šoseju) līdz sarežģītiem un nedrošiem (pilnīga transportlīdzekļa vadība pilsētas apstākļos, kas ir izraisījusi vairākus nāves gadījumus).

Spēļu mašīnmācīšanās ir ļoti veiksmīga pārbaudītājiem, šahiem, šogiem un Go, jo viņi ir pārspējuši cilvēku pasaules čempionus. Automātiskā valodas tulkošana lielā mērā ir bijusi veiksmīga, lai gan daži valodu pāri darbojas labāk nekā citi, un daudzus automātiskos tulkojumus cilvēku tulki joprojām var uzlabot.

Automātiskā runas teksts darbojas diezgan labi cilvēkiem ar galvenajiem akcentiem, bet ne tik labi cilvēkiem ar dažiem spēcīgiem reģionāliem vai nacionāliem akcentiem; veiktspēja ir atkarīga no pārdevēju izmantotajiem mācību komplektiem. Automātiskai sociālo mediju noskaņojuma analīzei ir samērā labs panākumu līmenis, iespējams, tāpēc, ka apmācību komplekti (piemēram, Amazon produktu vērtējumi, kas savieno komentāru ar skaitlisku punktu skaitu) ir lieli un viegli pieejami.

Automātiska recenziju pārbaude ir pretrunīga joma. Amazon nācās atsaukt savu iekšējo sistēmu, jo apmācīja paraugu aizspriedumus, kuru dēļ tā pazemināja visu sieviešu pieteikumus par darbu.

Citām šobrīd lietojamām atkārtošanas skrīninga sistēmām var būt tendence uz apmācību, kas liek viņiem paaugstināt kandidātus, kuri ir līdzīgi pašreizējiem darbiniekiem, veidiem, kuriem juridiski nav nozīmes (piemēram, jauni, balti, vīriešu dzimuma kandidāti no augstākās klases angliski runājošiem rajoniem, kuri spēlēja komandas sporta veidi biežāk izturēs skrīningu). Microsoft un citu cilvēku pētniecības centieni ir vērsti uz netiešo aizspriedumu novēršanu mašīnmācībā.

Automātiska patoloģijas un radioloģijas attēlu klasifikācija ir sasniegusi līmeni, kurā tā var palīdzēt (bet neaizstāt) patologus un radiologus noteiktā veida patoloģiju noteikšanā. Tikmēr sejas identifikācijas sistēmas ir gan pretrunīgas, ja tās darbojas labi (privātuma apsvērumu dēļ), gan mēdz nebūt tik precīzas sievietēm un krāsainiem cilvēkiem kā baltajiem vīriešiem (apmācības iedzīvotāju neobjektivitātes dēļ).

Mašīnmācīšanās algoritmi

Mašīnmācība ir atkarīga no vairākiem algoritmiem, lai datu kopu pārvērstu modelī. Kurš algoritms darbojas vislabāk, ir atkarīgs no tā, kādu problēmu jūs risināt, no pieejamajiem skaitļošanas resursiem un datu veida. Neatkarīgi no tā, kādu algoritmu vai algoritmus izmantojat, vispirms dati būs jātīra un jāsaskaņo.

Apspriedīsim visbiežāk sastopamos algoritmus katra veida problēmai.

Klasifikācijas algoritmi

Klasifikācijas problēma ir uzraudzīta mācīšanās problēma, kas prasa izvēli starp divām vai vairākām klasēm, parasti nodrošinot katras klases varbūtības. Izņemot neironu tīklus un dziļu mācīšanos, kam nepieciešami daudz augstāki skaitļošanas resursu līmeņi, visbiežāk izmantotie algoritmi ir Naive Bayes, Lēmumu koks, Loģistiskā regresija, K-tuvākie kaimiņi un Support Vector Machine (SVM). Varat arī izmantot ansambļa metodes (modeļu kombinācijas), piemēram, Random Forest, citas Bagging metodes un veicināšanas metodes, piemēram, AdaBoost un XGBoost.

Regresijas algoritmi

Regresijas problēma ir uzraudzīta mācīšanās problēma, kas prasa modelim paredzēt skaitli. Vienkāršākais un ātrākais algoritms ir lineārā (vismazāko kvadrātu) regresija, taču ar to nevajadzētu apstāties, jo tas bieži dod viduvēju rezultātu. Citi izplatīti mašīnmācīšanās regresijas algoritmi (bez neironu tīkliem) ir Naivie Beiji, Lēmumu koks, K-tuvākie kaimiņi, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost un XGBoost. Jūs ievērosiet, ka regresijas un klasifikācijas mašīnmācīšanās algoritmi nedaudz pārklājas.

Klasterizācijas algoritmi

Klasteru problēma ir nepieskatīta mācību problēma, kas prasa modelim atrast līdzīgu datu punktu grupas. Vispopulārākais algoritms ir K-Means Clustering; citi ietver: Mean-Shift Clustering, DBSCAN (uz blīvuma balstītu lietojumprogrammu telpisko klasteru izveidi ar troksni), GMM (Gausa maisījuma modeļi) un HAC (Hierarchical Agglomerative Clustering).

Dimensiju samazināšanas algoritmi

Dimensiju samazināšana ir nepieskatīta mācīšanās problēma, kas liek modelim nomest vai apvienot mainīgos, kas maz vai vispār neietekmē rezultātu. To bieži lieto kopā ar klasifikāciju vai regresiju. Dimensiju samazināšanas algoritmi ietver mainīgo ar daudzām trūkstošām vērtībām noņemšanu, mainīgo ar mazu dispersiju noņemšanu, Lēmumu koks, Nejaušs mežs, mainīgo noņemšanu vai apvienošanu ar augstu korelāciju, Atpakaļ Feature Elimination, Forward Feature Selection, Factor Analysis un PCA (Principal Component Analysis).

Optimizācijas metodes

Apmācība un novērtēšana pārrauga mācību algoritmus pārvērš modeļos, optimizējot to parametru svaru, lai atrastu vērtību kopu, kas vislabāk atbilst jūsu datu patiesībai. Algoritmi to optimizētājiem bieži paļaujas uz visstiprākā nolaišanās variantiem, piemēram, uz stohastisko gradienta nolaišanos (SGD), kas būtībā ir visstingrākais nobrauciens, kas veikts vairākas reizes no nejaušinātām sākumpunktiem.

Kopējie SGD uzlabojumi pievieno faktorus, kas koriģē gradienta virzienu, pamatojoties uz impulsu, vai koriģē mācīšanās ātrumu, pamatojoties uz progresu no vienas datu caurlaišanas (ko sauc laikmets vai partiju) uz nākamo.

Neironu tīkli un dziļa mācīšanās

Neironu tīklus iedvesmoja bioloģiskās vizuālās garozas arhitektūra. Dziļa mācīšanās ir paņēmienu kopums, lai mācītos neironu tīklos, kas ietver lielu skaitu “slēpto” slāņu, lai identificētu pazīmes. Starp ieejas un izejas slāņiem atrodas slēptie slāņi. Katrs slānis sastāv no mākslīgiem neironiem, bieži ar sigmoid vai ReLU (Rectified Linear Unit) aktivācijas funkcijām.

Pārraides tīklā neironi tiek sakārtoti atsevišķos slāņos: viens ievades slānis, jebkurš slēpto apstrādes slāņu skaits un viens izvades slānis, un katra slāņa izejas nonāk tikai nākamajā slānī.

Pārraides tīklā ar īsceļu savienojumiem daži savienojumi var pāriet pāri vienam vai vairākiem starpslāņiem. Atkārtotos neironu tīklos neironi var sevi ietekmēt vai nu tieši, vai netieši, izmantojot nākamo slāni.

Neironu tīkla uzraudzīta mācīšanās tiek veikta tāpat kā jebkura cita mašīnmācīšanās: jūs prezentējat tīklu ar apmācības datu grupām, salīdzināt tīkla izvadi ar vēlamo izeju, ģenerējat kļūdu vektoru un koriģējat tīklu, pamatojoties uz kļūdu vektoru , parasti izmantojot backpropagation algoritmu. Apmācību datu partijas, kas tiek palaistas kopā pirms korekciju piemērošanas, sauc par laikmetiem.

Tāpat kā visu mašīnmācīšanās gadījumā, jums jāpārbauda neironu tīkla prognozes, izmantojot atsevišķu testa datu kopu. To nedarot, jūs riskējat izveidot neironu tīklus, kas tikai iegaumē viņu ieguldījumu, nevis iemācās būt vispārēji pareģotāji.

Izrāviens neironu tīkla redzes laukā bija Yann LeCun 1998. gada LeNet-5, septiņu līmeņu konvolucionālais neironu tīkls (CNN), lai atpazītu ar roku rakstītus ciparus, kas digitalizēti 32x32 pikseļu attēlos. Lai analizētu augstākas izšķirtspējas attēlus, tīklam būtu nepieciešami vairāk neironu un vairāk slāņu.

Konvolucionālie neironu tīkli vizuālās garozas simulēšanai parasti izmanto konvolucionālos, apvienošanas, ReLU, pilnībā savienotos un zaudēšanas slāņus. Konvolucionārais slānis pamatā ņem daudzu mazu reģionu, kas pārklājas, integrālus. Apvienošanas slānis veic nelineāras lejupējas atlases veidu. ReLU slāņi, kurus es minēju iepriekš, izmanto nepiesātinošās aktivizācijas funkciju f (x) = max (0, x).

Pilnībā savienotā slānī neironiem ir pilni savienojumi ar visām iepriekšējā slāņa aktivizācijām. Zaudējumu slānis aprēķina, kā tīkla apmācība soda par novirzi starp prognozētajām un patiesajām etiķetēm, klasifikācijai izmantojot Softmax vai cross-entropia zaudējumus vai regresijai - Eiklida zaudējumus.

Dabas valodas apstrāde (NLP) ir vēl viena nozīmīga dziļas mācīšanās joma. Papildus mašīntulkošanas problēmai, kuru risina Google tulkotājs, galvenie NLP uzdevumi ietver automātisku apkopošanu, līdzreferences izšķirtspēju, diskursa analīzi, morfoloģisko segmentēšanu, nosaukto entītiju atpazīšanu, dabiskās valodas ģenerēšanu, dabiskās valodas izpratni, runas daļēju marķēšanu, noskaņojumu analīze un runas atpazīšana.

Papildus CNN tīkliem NLP uzdevumi bieži tiek risināti ar atkārtotiem neironu tīkliem (RNN), kas ietver Long-Short Term Memory (LSTM) modeli.

Jo vairāk slāņu ir dziļā neironu tīklā, jo vairāk aprēķina, lai modeli apmācītu uz centrālā procesora. Neironu tīklu aparatūras paātrinātāji ietver GPU, TPU un FPGA.

Mācīšanās pastiprināšanas ceļā

Pastiprināšanas mācības apmāca aktieris vai aģents atbildēt uz vide tādā veidā, kas dažus maksimizē vērtība, parasti ar izmēģinājumu un kļūdu. Tas atšķiras no uzraudzītas un nepieskatītas mācīšanās, taču to bieži apvieno.

Piemēram, DeepMind’s AlphaGo, lai iemācītos spēlēt (darbība) Go spēli (vide), vispirms iemācījās atdarināt cilvēku Go spēlētājus no liela vēsturisko spēļu datu kopas (mācekļa mācīšanās). Pēc tam tā uzlaboja spēli ar izmēģinājumiem un kļūdām (mācīšanās pastiprināšana), spēlējot lielu skaitu Go spēļu pret neatkarīgiem gadījumiem.

Robotu vadība ir vēl viena problēma, kurai uzbruka ar dziļu pastiprināšanas mācīšanās metodēm, kas nozīmē mācīšanos pastiprināt, kā arī dziļus neironu tīklus, kur dziļi neironu tīkli bieži ir apmācīti CNN, lai izvilktu funkcijas no video rāmjiem.

Kā izmantot mašīnmācīšanos

Kā rīkoties, lai izveidotu mašīnmācīšanās modeli? Sāciet ar datu tīrīšanu un kondicionēšanu, turpiniet ar funkciju projektēšanu un pēc tam izmēģiniet visus jēgpilnos mašīnmācīšanās algoritmus. Dažām problēmu klasēm, piemēram, redzes un dabiskās valodas apstrādei, algoritmi, kas, visticamāk, darbosies, ietver dziļu mācīšanos.

Datu tīrīšana mašīnmācībai

Savvaļā nav tādas lietas kā tīri dati. Lai dati būtu noderīgi mašīnmācībai, tie ir agresīvi jāfiltrē. Piemēram, jūs vēlaties:

  1. Apskatiet datus un izslēdziet visas kolonnas, kurās trūkst daudz datu.
  2. Apskatiet datus vēlreiz un izvēlieties kolonnas, kuras vēlaties izmantot (funkciju izvēle) jūsu prognozei. To var atkārtot atkārtojot.
  3. Izslēdziet visas rindas, kurās atlikušajās kolonnās joprojām trūkst datu.
  4. Labojiet acīmredzamas drukas kļūdas un apvienojiet līdzvērtīgas atbildes. Piemēram, ASV, ASV, ASV un Amerika būtu jāapvieno vienā kategorijā.
  5. Izslēdziet rindas, kuru dati ir ārpus diapazona. Piemēram, ja analizējat taksometru braucienus Ņujorkā, vēlēsities filtrēt rindas ar pikapu vai izlaišanas platumu un garumu, kas atrodas ārpus lielpilsētas rajona.

Jūs varat darīt daudz vairāk, taču tas būs atkarīgs no savāktajiem datiem. Tas var būt garlaicīgs, taču, ja mašīnmācības cauruļvadā iestatāt datu attīrīšanas soli, to varat mainīt un atkārtot pēc vēlēšanās.

Datu kodēšana un normalizēšana mašīnmācībai

Lai mašīnu klasifikācijai izmantotu kategoriskus datus, teksta etiķetes jākodē citā formā. Ir divi kopīgi kodējumi.

Viens ir etiķetes kodējums, kas nozīmē, ka katra teksta etiķetes vērtība tiek aizstāta ar skaitli. Otrs ir vienas karstās kodēšana, kas nozīmē, ka katra teksta etiķetes vērtība tiek pārvērsta kolonnā ar bināro vērtību (1 vai 0). Lielākajai daļai mašīnmācīšanās ietvaru ir funkcijas, kas pārveido jūsu vietā. Parasti priekšroka tiek dota vienreizējai kodēšanai, jo etiķešu kodēšana dažkārt var sajaukt mašīnmācīšanās algoritmu domājot, ka kodētā kolonna ir sakārtota.

$config[zx-auto] not found$config[zx-overlay] not found