Tokie terminai, kaip „mašininis mokymasis“, „gilus mokymasis“, „neuroniniai tinklai“, „dirbtinis intelektas“ ar „A.I.“, „duomenų mokslas“ ir dar daugiau, buvo paskutiniųjų kelių metų technologijų žodžiai. Dėl patobulintos skaičiavimo galios ir padidėjusio turimų duomenų kiekio, metodai, kurie buvo žinomi dešimtmečius, dabar gali būti pritaikyti prasmingoje praktikoje.

Bet ką jie iš tikrųjų reiškia?

Matematinės lygtys mašinoms suteikia pagrindinį supratimą apie tai, ko išmokome kaip žmones.

Daugelis iš mūsų žino apie 10 000 pėdų paaiškinimą, sakydami: „Viskas susiję su kompiuterių mokymu išspręsti mums iškilusias problemas“, tačiau tikriausiai daugelis žmonių nežino, kas iš tikrųjų vyksta po gaubtu. Mašinų mokymosi pagrindai yra pakankamai paprasti, pakankamai intuityvūs ir, dar svarbiau, yra pakankamai įdomūs, kad juos kas nors galėtų pasirinkti per palyginti trumpą laiką.

Šis paprastas paaiškinimas, kaip mokymasis kompiuteriu yra naudojamas mokant kompiuterį, yra skirtas tiems, kurie neturi žinių apie kompiuterinius mokymus, arba tiems, kurie nori pradėti nuo pradžios.

Geriausio filmo linija

Daugelis iš mūsų gali prisiminti ką nors iš mokyklos, vadinamą „geriausiai tinkančia linija“, atsižvelgiant į grafike pavaizduotus duomenų taškus. Labiausiai tinkanti linija yra linija, nubrėžta per taškus taip, kad ji atspindėtų tai, ką duomenys rodo. Tai gali atrodyti taip:

Linija, geriausiai tinkanti per nubraižytus duomenų taškus. Visi vaizdai: Danas Harrisas

Ši sąvoka iš tikrųjų yra mašininis mokymasis pats paprasčiausias. Užuot patys nubrėžę šiuos taškus ir bandę nubrėžti sau tinkamiausią liniją, galime duoti duomenis kompiuteriui.

Pvz., Galime įsivaizduoti, kad aukščiau esančiame grafike pateikti duomenys yra batų dydis ir aukštis daugybei žmonių. Kairėje apačioje esantis taškas rodo žmogų, trumpesnį už kitus, kurio kojos mažesnės, o viršutiniame dešiniajame kampe esantis asmuo žymi asmenį, kuris yra aukštesnis ir turi didesnes kojas. Kadangi batų dydis ir aukštis nėra visiškai koreliuojami, ne visi punktai atitinka teiginį, kad „aukštesni žmonės turi didesnes kojas“, tačiau geriausiai tinkanti linija rodo, kad tai tiesa.

Atsižvelgdami į tai, kas labiausiai tinka, galime pagrįstai spėlioti apie naujus duomenis. Tarkime, kad radai batą. Galite nustatyti, koks jis yra, ir tada kreiptis į schemą, kad išsiaiškintumėte apie batų savininko aukštį:

Spėlioti naudodamasi tinkamiausia linija.

Paprasta, tiesa? Kompiuteriniame mokyme tai vadinama „tiesine regresija“. Neleisk, kad vardas tavęs gąsdintų. Jei jūs suprantate viską aukščiau, tada jūs suprantate tiesinę regresiją. Tai paprasta mašininio mokymosi technika, naudojama padėti numatyti tiesinės formos duomenų rinkinius.

Mašininio mokymosi tiesinės regresijos procesas vyksta taip:

  1. Surinkite duomenų taškus.
  2. Duokite duomenų taškus programai, kuri gali jiems pritaikyti tiesinę regresiją, kad atitiktų tinkamiausią liniją.
  3. Norėdami prognozuoti naujus duomenis, naudokite tinkamiausią eilutę.

Tai vadinama „mašinų mokymusi“, nes kompiuteris (arba mašina) sužinojo (arba sukūrė matematinę lygtį: šiuo atveju viena eilutei) apie tai, kaip yra susiję batų dydžiai ir aukščiai. Matematinė lygtis suteikia mašinai pagrindinį supratimą apie tai, ko išmokome kaip žmogų: Apskritai, aukštesni žmonės turi didesnes kojas.

Kiti scenarijai, kai galėtumėte naudoti tiesinę regresiją, yra namo kainos atspėjimas pagal tai, kiek kambarių jis turi, arba spėjimas, kiek tetų ir dėdžių turi vaikas, kiek dovanų jie turi po savo eglute.

Tiesinės regresijos problema

Tiesinė regresija yra puiki, kai duomenys yra šiek tiek panašūs į liniją, kaip aprašyta aukščiau pateiktame pavyzdyje. Bet kaip gerai sužinoti apie duomenų rinkinių formas, kurios neatrodo kaip linijos? Galbūt duomenys atrodo maždaug taip:

Duomenų taškai, kurie iš tikrųjų neturi linijinės formos.

Pridėjus šiuos duomenis labiausiai tinkančią eilutę, gali atrodyti taip:

Netiesiniai duomenų taškai su tinkamiausia linija.

Tinkamiausias duomenų suderinimo būdas yra tinkamas darbas, tačiau panašu, kad jis galėtų būti padarytas daug geriau. Kadangi duomenų forma nėra visiškai tiesi, nubrėžta linija netinka duomenims. Tai yra mokymosi mašinomis problema, vadinama „nepakankamu pritaikymu“: „Tinkamiausios“ eilutės duomenys nelabai tinka duomenims. Bet jei pakeisime liniją, kuri geriausiai tinka lenkti, tai gali padaryti geriau.

Netiesiniai duomenų taškai su išlenktąja linija geriausiai tinka.

Galime lengviau įsivaizduoti, kaip panaudoti šią kreivę tiksliam ir išsilavinusiam spėjimui padaryti taip, kaip mes darėme tiesia linija, kuri geriausiai tinka. Tai paprastas tiesinės regresijos pratęsimas, žinomas kaip „polinominė regresija“. Vėlgi, neleiskite, kad vardas jūsų gąsdintų. Jei suprantate, kodėl išlenktos linijos gali būti naudingesnės už tieses, nustatant duomenų rinkinio formą, tada jūs suprantate, kaip naudinga daugianario regresija.

Dabar, kai galime sukurti modelį, tai yra, rasti tinkamiausią duomenų taškų rinkinio liniją ar kreivę, duomenims, kurie turi tiesią ar išlenktą formą, mes jau baigėme, ar ne? Net nepanašu. Bet mes galime remtis šiomis sąvokomis.

Modelio tikslumo pasirinkimas

Polinominės regresijos problema yra ta, kad prieš naudodamiesi turime nuspręsti, kiek lankstumo suteikti, o tai gali būti sudėtinga. Grįžkime prie mūsų pirmojo duomenų rinkinio:

Tiesinis duomenų taškų rinkinys.

Anksčiau mes naudojome tiesinę regresiją, norėdami tiesia linija per šiuos duomenų taškus. Bet vietoj to, mes galėjome panaudoti daugiabriaunę regresiją, norėdami pateikti duomenų, kurie geriausiai atitiktų tiesę, kreivę. Tai gali atrodyti maždaug taip:

Linijinis duomenų rinkinys su kubine geriausiai tinkančia kreive.

Vienas dalykas, susijęs su polinomine regresija, yra tai, kad mes galime tiksliai pasakyti, kokia kreivai norime, kad būtų geriausiai tinkanti kreivė. Kuo jis kreiviausias, tuo daugiau lankstumo jis gali apibūdinti duomenų rinkinį. Aukščiau esančios kreivės yra gana paprastos, tačiau mes galėjome eiti toliau ir rasti tinkamiausią kreivę, tokią kaip ši:

Linijinis duomenų rinkinys su ketvirčiu geriausiai tinkančia kreive.

Arba mes galėjome padaryti labiausiai tinkančią liniją dar kreivesnę už kažką panašaus:

Linijinis duomenų rinkinys su sekstine geriausiai tinkančia kreive.

Atrodo, kad kiekviena iš aukščiau pateiktų kreivių geriau ir geriau apibūdina duomenų rinkinį, tačiau kažkas jaučiasi šiek tiek negerai, ypač paskutiniame pavyzdyje. Suteikdamas daugianario regresijai daug lankstumo sprendžiant tinkamiausios kreivės kreivumą, ji per daug stengėsi pereiti tiesiai per daugelį duomenų taškų. Rezultatas yra kreivė, kuri prognozuoti atrodo ne tokia naudinga, kaip tiesioji linija, kuri geriausiai tinka.

Pvz., Jei dar kartą pritaikysime batų dydžio ir aukščio pavyzdį, grafike pridėję keletą spėjimų, kad labai kreivi geriausiai tinkanti kreivė suteikia tą patį aukštį dviem skirtingais batų dydžiais:

Geriausiai tinka kreivė, kuri neatitinka duomenų.

Ši mašinų mokymosi problema vadinama „per dideliu pritaikymu“ ir yra priešinga nepakankamam įrengimui. Tai reiškia, kad mūsų sukurta tinkamiausia kreivė nėra labai gerai apibendrinta. Tai labai gerai suderina mūsų turimus duomenis, tačiau nepadeda daryti pagrįstų spėjimų apie bet kokius naujus duomenis. Vienas pagrindinių mokymosi mašinomis rūpesčių yra rasti tinkamiausią liniją ar kreivę, kuri yra pakankamai kreivi, kad būtų galima imituoti bendrą duomenų rinkinio formą, tačiau nėra tokia kreivi, kad jos negalima apibendrinti, kad būtų galima spėti apie nauji duomenų taškai.

Čia patenka polinominė regresija. Turime aiškiai pasakyti daugianarę regresiją, kaip kreivai norime, kad kreivė būtų tinkamiausia, prieš ją naudodamiesi. Tai nėra lengva nuspręsti, ypač kai duomenys sudėtingesni.

Iki šiol pavyzdžiuose mūsų duomenų taškai buvo tik dviejų matmenų - pavyzdžiui, batų dydžio ir kito aukščio -, tai reiškia, kad mes sugebėjome juos parodyti dvimatėse diagramose. Tai darant gana lengva pastebėti bendrą duomenų formą. Tačiau tai ne dažnai būna mašininio mokymosi problemose, kurios turi daugiau nei dvi dimensijas. Ir jei mes nežinome, kokia yra šių duomenų forma, mes iš tikrųjų negalime pasakyti polinomos regresijos, kaip kreivai formuoti tinkamiausią liniją.

Įdedant šiek tiek papildomų pastangų, neuroniniai tinklai taip pat gali būti naudojami atsakyti į „taip“ / „ne“ klausimus apie duomenis, užuot pateikus skaičius.

Vienas variantas yra išbandyti daugianarę regresiją daugybę kartų su skirtingais lankstumo lygiais ir pamatyti, kuri veikia geriausiai. Tačiau mums tikrai reikia mašininio mokymosi technikos, kuri turi lankstumo, kad ji būtų tokia kreivi, kokia ji turi būti, bet taip pat riboja jos kreivumą, kad galėtume gerai atlikti apibendrindami naujus duomenis.

Ši lankstumo problema yra tada, kai duomenų mokslininkai paprastai pereina nuo tiesinės ir polinominės regresijos, kad vietoje to naudotųsi neuroniniu tinklu. Vienintelis neuroninis tinklas yra labai panašus į daugianarę regresiją, nes jis gali išmokti labai kreivų formų duomenų rinkinius. Jie neišsprendžia perteklinio komplektavimo savarankiškai, tačiau, derinant jį su technika, vadinama sureguliavimu, viskas paprastai pasiteisina.

Išsami informacija apie tai, kaip veikia neuroniniai tinklai ir normalizavimas, nėra labai svarbi norint suprasti mašininio mokymosi pagrindus. Svarbiausi dalykai, kuriuos reikia atsiminti, yra tai, kad neuroniniai tinklai labai gerai mokosi sudėtingų duomenų rinkinių formų - labiau nei tiesinė ar polinominė regresija - ir kad sureguliavimas padeda išvengti neuroninio tinklo netinkamo duomenų naudojimo.

Kaip priversti kompiuterius atsakyti į klausimus

Iki šiol nagrinėtiems metodams - tiesinei regresijai, polinominei regresijai ir neuroniniams tinklams - mes žiūrėjome tik į tai, kaip mokyti kompiuterius suteikti mums skaičių, atsižvelgiant į duomenis, kuriuos mes jam suteikiame. Batų dydžio ir aukščio modelis mums suteikia aukščio numerį, kai suteikiame jam batų dydžio numerį; Panašiai namo kainos modelis pagal kambarių skaičių mums suteikia išlaidų numerį, kai suteikiame kambario numerį.

Bet skaičių išvestis ne visada yra tai, ko norime. Kartais mes norime, kad mašininio mokymosi modelis atsakytų į klausimą. Pvz., Jei parduodate namą, jums gali rūpėti ne tik mašina, kuri išsiaiškins, kiek jūsų namas yra vertas, bet taip pat galbūt norėsite sužinoti, ar namas parduos per šešias savaites.

Geros žinios yra tai, kad yra mašininio mokymosi metodų, panašių į tuos, kuriuos jau matėme, kurie atsako į konkretų klausimą, užuot pateikę skaičių. Kai pateikiame keletą pagrindinių įvesties duomenų, pvz., Kambarių skaičių, kainą ir kvadratinę filmuotą medžiagą, gali būti sukurtas kompiuterinio mokymosi modelis, kad atsakymas „taip“ / „ne“ būtų pateiktas per šešias savaites. Akivaizdu, kad jis niekada negali būti tobulas modelis, nes būsto rinka nesilaiko tikslių taisyklių, tačiau mašininio mokymosi modeliai naudojami atsakymams į šio tipo klausimus labai tiksliai (atsižvelgiant į duomenų kokybę).

Linijinei regresijai naudojamas analogas būtų tiesinė logistinės regresijos forma. (Vėlgi, neleiskite terminologijai jūsų atsisakyti. Pagrindiniai metodai iš tikrųjų yra labai intuityvūs.) Tai galėtų atsakyti į tokius klausimus kaip „Ar tai el. Pašto šlamštas?“ Arba „Ar rytoj lyja lietus?“ Abu metodai - linijinė ir logistinė regresija - būtų apskaičiuota geriausiai tinkanti linija, tačiau jie skiriasi tuo, kaip jie naudoja tą eilutę. Primename, kad linijinis regresijos modelis, kurį mes naudojome duomenų rinkiniui, numatė mums kitą skaičių:

Logistinė regresija veikia panašiai, tačiau randama tinkamiausia linija, išskirianti duomenis į dvi grupes. Ši eilutė gali būti naudojama numatyti, ar naujas duomenų taškas yra vienoje, ar kitoje grupėje, atsižvelgiant į tai, kurioje linijos pusėje jis yra.

Linijinis logistinės regresijos modelis šlamšto filtravimui.

Kaip ir tiesinės regresijos atveju, logistinę regresiją galima išplėsti, kad būtų naudojamas lenktas linijinis polinominis modelis, turintis daugiau lankstumo pritaikant duomenų formą. Įdedant šiek tiek papildomų pastangų, neuroniniai tinklai taip pat gali būti naudojami atsakyti į „taip“ / „ne“ klausimus apie duomenis, užuot pateikus skaičius.

Jei norime atsakyti į sudėtingesnius klausimus nei tie, kurie ieško atsakymų „taip“ / „ne“, galėtume naudoti metodą, vadinamą daugiainomine logistine regresija, arba galėtume pritaikyti neuroninius tinklus, kad galėtume tvarkyti ir šiuos atvejus. Tokiu būdu sukurti modeliai galės atsakyti į tokį klausimą kaip „Ar rytoj bus lietinga, saulėta ar snieguota?“ „Daugiadomė“ dalis reiškia, kad atsakymas gali būti vienas iš daugelio variantų. Pavyzdyje trys galimi atsakymai būtų lietingi, saulėti arba snieguoti.

Antroji šios mašininio mokymosi serijos dalis dabar yra ir ją galima rasti čia:

Jei jums patinka šis straipsnis ir jo formatas, galbūt norėtumėte peržiūrėti mano serijas ...