Neuroniniai tinklai skamba paslaptingai, kol nustoja. Jei kada nors susimąstėte, kas yra neuroninis tinklas dirbtiniame intelekte? Ir ar tai tik matematika su puošnia skrybėle, esate tinkamoje vietoje. Mes išlaikysime praktiškumą, įterpsime mažų nukrypimų ir, taip, keletą jaustukų. Išeidami žinosite, kas yra šios sistemos, kodėl jos veikia, kur jos neveikia ir kaip apie jas kalbėti nemojuojant rankomis.
Straipsniai, kuriuos galbūt norėsite perskaityti po šio:
🔗 Kas yra dirbtinio intelekto šališkumas?
Dirbtinio intelekto sistemų šališkumo supratimas ir strategijos, skirtos užtikrinti sąžiningumą.
🔗 Kas yra nuspėjamasis dirbtinis intelektas
Kaip nuspėjamasis dirbtinis intelektas naudoja modelius būsimiems rezultatams prognozuoti.
🔗 Kas yra dirbtinio intelekto treneris
Dirbtinio intelekto mokymų specialistų vaidmens ir atsakomybės tyrimas.
🔗 Kas yra kompiuterinis matymas dirbtiniame intelekte?
Kaip dirbtinis intelektas interpretuoja ir analizuoja vaizdinius duomenis naudodamas kompiuterinę regą.
Kas yra neuroninis tinklas dirbtiniame intelekte? 10 sekundžių atsakymas ⏱️
Neuroninis tinklas – tai paprastų skaičiavimo vienetų, vadinamų neuronais, rinkinys, kuris perduoda skaičius į priekį, mokymo metu koreguoja savo ryšio stiprumą ir palaipsniui mokosi duomenų modelius. Kai išgirstate apie gilųjį mokymąsi , tai paprastai reiškia neuroninį tinklą su daugybe sukrautų sluoksnių, kuris automatiškai mokosi funkcijų, o ne koduojate jas rankiniu būdu. Kitaip tariant: daugybė mažų matematinių dalių, sumaniai išdėstytų, apmokytų duomenimis, kol jos tampa naudingos [1].
Kuo naudingas neuroninis tinklas? ✅
-
Reprezentacijos galia : Tinkamai parinkus architektūrą ir dydį, tinklai gali aproksimuoti labai sudėtingas funkcijas (žr. Universaliąją aproksimacijos teoremą) [4].
-
Mokymasis nuo galo iki galo : užuot rankiniu būdu konstravęs funkcijas, modelis jas atranda [1].
-
Apibendrinimas : gerai sureguliuotas tinklas ne tik įsimena – jis veikia su naujais, nematomais duomenimis [1].
-
Mastelio keitimas : Didesni duomenų rinkiniai ir didesni modeliai dažnai gerina rezultatus... iki praktinių ribų, tokių kaip skaičiavimo pajėgumai ir duomenų kokybė [1].
-
Perkeliamumas : vienoje užduotyje išmoktos savybės gali padėti kitai (mokymosi perkėlimas ir tikslinimas) [1].
Maža lauko pastaba (pavyzdinis scenarijus): maža produktų klasifikavimo komanda rankomis sukurtas funkcijas pakeičia kompaktišku CNN, prideda paprastus papildymus (apvertimus / apkirpimus) ir stebi, kaip sumažėja patvirtinimo klaida – ne todėl, kad tinklas yra „stebuklingas“, o todėl, kad tiesiogiai iš pikselių išmoko daugiau naudingų funkcijų.
„Kas yra neuroninis tinklas dirbtiniame intelekte?“ paprastai ir su abejotina metafora 🍞
Įsivaizduokite kepyklos liniją. Į vidų patenka ingredientai, darbuotojai pakoreguoja receptą, ragautojai skundžiasi, o komanda vėl atnaujina receptą. Tinkle įvesties duomenys teka sluoksniais, nuostolių funkcija įvertina išvestį, o gradientai stumia svorius, kad kitą kartą būtų geriau. Kaip metafora, tai nėra tobula – duona nėra diferencijuojama – bet ji laikosi [1].
Neuroninio tinklo anatomija 🧩
-
Neuronai : mažyčiai skaičiuotuvai, taikantys svertinę sumą ir aktyvinimo funkciją.
-
Svoriai ir poslinkiai : reguliuojamos rankenėlės, kurios apibrėžia, kaip signalai sujungiami.
-
Sluoksniai : įvesties sluoksnis gauna duomenis, paslėpti sluoksniai juos transformuoja, išvesties sluoksnis atlieka prognozę.
-
Aktyvinimo funkcijos : Netiesiniai posūkiai, tokie kaip ReLU, sigmoidinė, tanh ir softmax, suteikia mokymuisi lankstumo.
-
Nuostolių funkcija : prognozės klaidingumo balas (kryžminė entropija klasifikacijai, MSE regresijai).
-
Optimizatorius : Tokie algoritmai kaip SGD ar Adam naudoja gradientus svoriams atnaujinti.
-
Reguliarizavimas : tokie metodai kaip iškritimas arba svorio mažinimas, siekiant išvengti modelio per didelio pritaikymo.
Jei norite oficialaus požiūrio (bet vis tiek skaitomo), atvirame vadovėlyje „Deep Learning“ ) aptariama visa tema: matematikos pagrindai, optimizavimas ir apibendrinimas [1].
Aktyvinimo funkcijos, trumpai, bet naudingai ⚡
-
ReLU : nulis neigiamiems skaičiavimams, tiesinis teigiamiems. Paprasta, greita, efektyvu.
-
Sigmoidas : suspaudžia reikšmes nuo 0 iki 1 – naudinga, bet gali sukelti prisotinimą.
-
Tanh : Kaip sigmoidinė, bet simetriška aplink nulį.
-
„Softmax“ : neapdorotus balus paverčia tikimybėmis skirtingose klasėse.
Nereikia įsiminti kiekvienos kreivės formos – tiesiog žinokite kompromisus ir dažniausiai pasitaikančius numatytuosius nustatymus [1, 2].
Kaip iš tikrųjų vyksta mokymasis: paremtas fonu, bet ne baisus 🔁
-
Tiesioginis perdavimas : duomenys perduodami sluoksnis po sluoksnio, kad būtų gauta prognozė.
-
Skaičiavimo nuostoliai : palyginkite prognozę su tiesa.
-
Atgalinis sklidimas : naudodami grandinės taisyklę, apskaičiuokite nuostolių gradientus kiekvieno svorio atžvilgiu.
-
Atnaujinimas : Optimizavimo priemonė šiek tiek pakeičia svorius.
-
Kartoti : Daug epochų. Modelis mokosi palaipsniui.
Praktinės intuicijos, paremtos vaizdine medžiaga ir su kodu susijusiais paaiškinimais, ieškokite klasikinėse CS231n pastabose apie „backprop“ ir optimizavimą [2].
Pagrindinės neuroninių tinklų šeimos trumpai 🏡
-
Tiesioginio perdavimo tinklai (MLP) : Paprasčiausias tipas. Duomenys juda tik į priekį.
-
Konvoliuciniai neuroniniai tinklai (CNN) : puikiai tinka vaizdams dėl erdvinių filtrų, kurie aptinka kraštus, tekstūras, formas [2].
-
Pasikartojantys neuroniniai tinklai (RNN) ir variantai : sukurti tokioms sekoms kaip tekstas ar laiko eilutės, išlaikant tvarkos pojūtį [1].
-
Transformeriai : Atkreipkite dėmesį į santykių modeliavimą skirtingose sekos pozicijose vienu metu; dominuojantis kalboje ir už jos ribų [3].
-
Grafų neuroniniai tinklai (GNN) : veikia su grafų mazgais ir briaunomis – naudingi molekulėms, socialiniams tinklams, rekomendacijoms [1].
-
Automatiniai kodavimo įrenginiai ir VAE : Išmokite suspaustų reprezentacijų ir generuokite variantus [1].
-
Generatyviniai modeliai : nuo GAN iki difuzijos modelių, naudojami vaizdams, garsui ir net kodui [1].
CS231n užrašai yra ypač naudingi CNN tinklams, o „Transformer“ straipsnis yra pagrindinis dėmesio pagrindu veikiančių modelių šaltinis [2, 3].
Palyginimo lentelė: dažniausiai naudojami neuroninių tinklų tipai, kam jie skirti, kainos ir veikimo principai 📊
| Įrankis / tipas | Auditorija | Brangūs | Kodėl tai veikia |
|---|---|---|---|
| Išankstinis grįžtamasis ryšys (MLP) | Pradedantieji, analitikai | Žemas-vidutinis | Paprasti, lankstūs, tinkami baziniai lygiai |
| CNN | Vizijos komandos | Vidutinis | Vietiniai modeliai + parametrų bendrinimas |
| RNN / LSTM / GRU | Sekos žmonės | Vidutinis | Laikina atmintis... fiksuoja tvarką |
| Transformatorius | NLP, multimodalinis | Vidutinio aukšto | Dėmesys sutelkiamas į svarbius santykius |
| GNN | Mokslininkai, recys | Vidutinis | Pranešimų perdavimas grafuose atskleidžia struktūrą |
| Automatinis kodavimo įrenginys / VAE | Tyrėjai | Žemas-vidutinis | Išmoksta suspaustus atvaizdavimus |
| GAN / Difuzija | Kūrybinės laboratorijos | Vidutinio aukšto | Priešiška arba iteracinė slopinimo magija |
Pastabos: kainodara priklauso nuo skaičiavimo ir laiko; jūsų rida gali skirtis. Vienas ar du langeliai sąmoningai yra skirti plepėti.
„Kas yra neuroninis tinklas dirbtiniame intelekte?“ palyginti su klasikiniais mašininio mokymosi algoritmais ⚖️
-
Funkcijų inžinerija : klasikinė mašininė mokymasis (ML) dažnai remiasi rankinėmis funkcijomis. Neuroniniai tinklai automatiškai mokosi funkcijų – tai didelis privalumas dirbant su sudėtingais duomenimis [1].
-
Duomenų poreikis : tinklai dažnai pasižymi didesniu duomenų kiekiu; mažas duomenų kiekis gali būti palankesnis paprastesniems modeliams [1].
-
Skaičiavimas : Tinklai mėgsta greitintuvus, tokius kaip GPU [1].
-
Našumo ribos : nestruktūrizuotiems duomenims (vaizdams, garsui, tekstui) dažniausiai dominuoja gilieji tinklai [1, 2].
Mokymo eiga, kuri iš tikrųjų veikia praktiškai 🛠️
-
Apibrėžkite tikslą : klasifikavimas, regresija, reitingavimas, generavimas – pasirinkite atitinkamą nuostolį.
-
Duomenų laužymas : padalinkite į apmokymus / patvirtinimus / testus. Normalizuokite funkcijas. Subalansuokite klases. Vaizdams apsvarstykite papildymus, pvz., apvertimus, apkarpymus, mažus triukšmus.
-
Architektūros pasirinkimas : pradėkite nuo paprastų elementų. Padidinkite pajėgumus tik tada, kai reikia.
-
Mokymo ciklas : Duomenų paketavimas. Perdavimas pirmyn. Nuostolių apskaičiavimas. Atgalinis pateikimas. Atnaujinimas. Metrikų registravimas.
-
Reguliarizuoti : atsisakymas, svorio kritimas, ankstyvas sustojimas.
-
Įvertinimas : Naudokite hiperparametrų patvirtinimo rinkinį. Galutiniam patikrinimui laikykite bandymų rinkinį.
-
Atsargiai siųskite : stebėkite poslinkį, patikrinkite, ar nėra šališkumo, planuokite atšaukimus.
Norint parengti išsamius, į kodą orientuotus mokymo kursus su tvirta teorija, patikimi šaltiniai yra atviras vadovėlis ir CS231n užrašai [1, 2].
Per didelis pritaikymas, apibendrinimas ir kiti niekšai 👀
-
Perteklinis pritaikymas : modelis įsimena mokymo ypatybes. Ištaisykite jas naudodami daugiau duomenų, stipresnį reguliavimą arba paprastesnes architektūras.
-
Nepakankamas pritaikymas : modelis yra per paprastas arba mokymai pernelyg baikštūs. Padidinkite pajėgumus arba treniruokitės ilgiau.
-
Duomenų nutekėjimas : informacija iš testo rinkinio patenka į mokymą. Tris kartus patikrinkite savo padalijimus.
-
Prastas kalibravimas : modelis, kuris yra patikimas, bet klaidingas, yra pavojingas. Apsvarstykite kalibravimą arba kitokį nuostolių svorinį taikymą.
-
Paskirstymo pokytis : realaus pasaulio duomenys juda. Stebėkite ir prisitaikykite.
Apibendrinimo ir reguliavimo teorijai remtis standartinėmis nuorodomis [1, 2].
Saugumas, interpretuojamumas ir atsakingas diegimas 🧭
Neuroniniai tinklai gali priimti svarbius sprendimus. Nepakanka, kad jie gerai veiktų lyderių lentelėje. Jums reikia valdymo, matavimo ir mažinimo veiksmų visame gyvavimo cikle. NIST dirbtinio intelekto rizikos valdymo sistema apibrėžia praktines funkcijas – VALDYTI, ŽEMĖLAPĮ PRISTATYTI, MATUOTI, VALDYTI – kurios padeda komandoms integruoti rizikos valdymą į projektavimą ir diegimą [5].
Keletas greitų patarimų:
-
Šališkumo patikrinimai : vertinkite pagal demografinius segmentus, kai tai tinkama ir teisėta.
-
Aiškinamasis aspektas : naudokite tokius metodus kaip išskirtinumas ar savybių priskyrimas. Jie netobuli, tačiau naudingi.
-
Stebėjimas : nustatykite įspėjimus apie staigius metrikos kritimus arba duomenų dreifą.
-
Žmonių priežiūra : informuokite žmones apie sprendimus, turinčius didelį poveikį. Jokių didvyriškų veiksmų, tik higiena.
Dažnai užduodami klausimai, kuriuos slapta turėjai 🙋
Ar neuroninis tinklas iš esmės yra smegenys?
Įkvėpta smegenų, taip, bet supaprastintai. Tinklų neuronai yra matematinės funkcijos; biologiniai neuronai yra gyvos ląstelės su sudėtinga dinamika. Panaši vibracija, labai skirtinga fizika [1].
Kiek sluoksnių man reikia?
Pradėkite nuo mažų matmenų. Jei trūksta pritaikymo, padidinkite plotį arba gylį. Jei per daug pritaikote, sureguliuokite arba sumažinkite talpą. Nėra stebuklingo skaičiaus; yra tik patvirtinimo kreivės ir kantrybė [1].
Ar man visada reikia GPU?
Ne visada. Maži modeliai, veikiantys su kukliais duomenimis, gali būti apmokyti naudojant procesorius, tačiau vaizdams, dideliems teksto modeliams ar dideliems duomenų rinkiniams greitintuvai sutaupo daugybę laiko [1].
Kodėl žmonės sako, kad dėmesys yra galinga jėga?
Kadangi dėmesys leidžia modeliams sutelkti dėmesį į svarbiausias įvesties dalis, nežengiant griežtai tam tikra tvarka, tai fiksuoja globalius ryšius, o tai yra labai svarbu kalbos ir multimodalinėms užduotims [3].
Ar „Kas yra neuroninis tinklas dirbtiniame intelekte?“ skiriasi nuo „Kas yra gilusis mokymasis“?
Gilusis mokymasis yra platesnis požiūris, kuriame naudojami gilieji neuroniniai tinklai. Taigi klausimas „Kas yra neuroninis tinklas dirbtiniame intelekte?“ yra tas pats, kas klausimas apie pagrindinį veikėją; gilusis mokymasis yra visas filmas [1].
Praktiški, šiek tiek subjektyvūs patarimai 💡
-
teikite pirmenybę paprastoms pradinėms linijoms . Net mažas daugiasluoksnis perceptronas gali pasakyti, ar duomenis galima išmokti.
-
Užtikrinkite savo duomenų srauto atkuriamumą . Jei negalite jo paleisti pakartotinai, negalite juo pasitikėti.
-
Mokymosi tempas yra svarbesnis nei manote. Išbandykite tvarkaraštį. Apšilimas gali padėti.
-
kompromisų dėl partijos dydžio . Didesnės partijos stabilizuoja gradientus, bet gali skirtingai apibendrinti.
-
Kai painiojate, nubraižykite nuostolių kreives ir svorio normas ... Nustebtumėte, kaip dažnai atsakymas pateikiamas grafikuose.
-
Dokumentuokite prielaidas. Ateities „tu“ greitai pamiršta dalykus [1, 2].
Giluminis nukrypimas: duomenų vaidmuo arba kodėl šiukšlės įeina ir vis tiek reiškia šiukšles išeina 🗑️➡️✨
Neuroniniai tinklai stebuklingai neištaiso klaidingų duomenų. Iškreiptos etiketės, anotacijų klaidos ar siauras imčių sudarymas atsispindės modelyje. Kuruokite, audituokite ir papildykite. O jei nesate tikri, ar jums reikia daugiau duomenų, ar geresnio modelio, atsakymas dažnai būna erzinančiai paprastas: abu – bet pradėkite nuo duomenų kokybės [1].
„Kas yra neuroninis tinklas dirbtiniame intelekte?“ – trumpi apibrėžimai, kuriuos galite naudoti pakartotinai 🧾
-
Neuroninis tinklas yra sluoksniuotas funkcijų aproksimatorius, kuris mokosi sudėtingų modelių, koreguodamas svorius naudodamas gradiento signalus [1, 2].
-
Tai sistema, kuri transformuoja įvestis į išvestis per nuoseklius netiesinius žingsnius, apmokyta sumažinti nuostolius [1].
-
Tai lankstus, duomenų reikalaujantis modeliavimo metodas, kuris klesti naudojant nestruktūrizuotus įvesties duomenis, tokius kaip vaizdai, tekstas ir garsas [1, 2, 3].
Per ilga, neskaičiau ir baigiamosios pastabos 🎯
Jei kas nors jūsų paklaustų, kas yra neuroninis tinklas dirbtiniame intelekte, štai trumpas atsakymas: neuroninis tinklas yra paprastų vienetų rinkinys, kuris žingsnis po žingsnio transformuoja duomenis, mokydamasis transformacijos, sumažindamas nuostolius ir sekdamas gradientais. Jie yra galingi, nes keičia mastelį, automatiškai mokosi funkcijų ir gali atvaizduoti labai sudėtingas funkcijas [1, 4]. Jie rizikingi, jei ignoruojate duomenų kokybę, valdymą ar stebėjimą [5]. Ir jie nėra magija. Tiesiog matematika, skaičiavimai ir gera inžinerija – su žiupsneliu skonio.
Papildoma literatūra, kruopščiai atrinkta (papildoma medžiaga be citatų)
-
Stanfordo CS231n užrašai – prieinami ir praktiški: https://cs231n.github.io/
-
„DeepLearningBook.org“ – kanoninė nuoroda: https://www.deeplearningbook.org/
-
NIST dirbtinio intelekto rizikos valdymo sistema – atsakingo dirbtinio intelekto gairės: https://www.nist.gov/itl/ai-risk-management-framework
-
„Dėmesys yra viskas, ko jums reikia“ – straipsnis „Transformer“: https://arxiv.org/abs/1706.03762
Nuorodos
[1] Goodfellow, I., Bengio, Y. ir Courville, A. Gilusis mokymasis . MIT Press. Nemokama internetinė versija: skaitykite daugiau
[2] Stanfordo CS231n. Konvoliuciniai neuroniniai tinklai vizualiniam atpažinimui (kurso užrašai): skaitykite daugiau
[3] Vaswani, A., Shazeer, N., Parmar, N. ir kt. (2017). Dėmesys yra viskas, ko jums reikia . NeurIPS. arXiv: skaitykite daugiau
[4] Cybenko, G. (1989). Sigmoidinės funkcijos aproksimacija superpozicijomis . „Mathematics of Control, Signals and Systems“ , 2, 303–314. Springer: skaitykite daugiau
[5] NIST. Dirbtinio intelekto rizikos valdymo sistema (DI RMF) : skaitykite daugiau