logo

Kas yra neuroninis tinklas?

Neuroniniai tinklai yra skaičiavimo modeliai, imituojantys sudėtingas žmogaus smegenų funkcijas. Neuroninius tinklus sudaro tarpusavyje sujungti mazgai arba neuronai, kurie apdoroja duomenis ir mokosi iš jų, todėl mašininio mokymosi metu galima atlikti tokias užduotis kaip modelio atpažinimas ir sprendimų priėmimas. Straipsnyje nagrinėjama daugiau apie neuroninius tinklus, jų veikimą, architektūrą ir kt.

kitas skaitytuvas

Turinys



Neuroninių tinklų evoliucija

Nuo XX amžiaus ketvirtojo dešimtmečio neuroninių tinklų srityje buvo padaryta daug dėmesio vertų pažangų:

  • 1940–1950 m.: ankstyvosios koncepcijos
    Neuroniniai tinklai prasidėjo pristačius pirmąjį matematinį dirbtinių neuronų modelį, kurį sukūrė McCulloch ir Pitts. Tačiau skaičiavimo suvaržymai apsunkino pažangą.
  • 1960–1970: Perceptronai
    Šią epochą apibrėžia Rosenblatto darbas apie perceptronus. Perceptronai yra vieno sluoksnio tinklai, kurių pritaikymas apsiribojo problemomis, kurias būtų galima išspręsti linijiniu būdu atskirai.
  • 1980-ieji: Backpropagation ir Connectionism
    Daugiasluoksnis tinklas treniruotis tapo įmanoma Rumelharto, Hintono ir Williamso išradimas atgalinio dauginimo metodo. Pabrėžus mokymąsi per tarpusavyje sujungtus mazgus, konnekcionizmas sulaukė patrauklumo.
  • 1990-ieji: bumas ir žiema
    Dėl programų vaizdų identifikavimo, finansų ir kitose srityse neuroniniai tinklai išaugo. Tačiau neuroninių tinklų tyrimai patyrė žiemą dėl pernelyg didelių skaičiavimo išlaidų ir išpūstų lūkesčių.
  • 2000-ieji: atgimimas ir gilus mokymasis
    Didesni duomenų rinkiniai, naujoviškos struktūros ir patobulintos apdorojimo galimybės paskatino sugrįžti. Gilus mokymasis parodė nuostabų efektyvumą daugelyje disciplinų, naudodamas daugybę sluoksnių.
  • 2010-ieji – dabartis: gilaus mokymosi dominavimas
    Konvoliuciniai neuroniniai tinklai (CNN) ir pasikartojantys neuroniniai tinklai (RNN), dvi gilaus mokymosi architektūros, dominavo mašinų mokymuisi. Jų galią pademonstravo žaidimų, vaizdo atpažinimo ir natūralios kalbos apdorojimo naujovės.

Kas yra neuroniniai tinklai?

Neuroniniai tinklai iš duomenų išskirkite identifikavimo ypatybes, nesant iš anksto užprogramuoto supratimo. Tinklo komponentai apima neuronus, ryšius, svorius, paklaidas, sklidimo funkcijas ir mokymosi taisyklę. Neuronai gauna įvestis, valdomos slenksčių ir aktyvinimo funkcijų. Ryšiai apima svorius ir paklaidas, reguliuojančias informacijos perdavimą. Mokymasis, svorių ir paklaidų koregavimas vyksta trimis etapais: įvesties skaičiavimas, išvesties generavimas ir kartotinis tobulinimas, pagerinantis tinklo įgūdžius atliekant įvairias užduotis.

Jie apima:



  1. Neuroninį tinklą imituoja nauja aplinka.
  2. Tada dėl šio modeliavimo keičiami laisvieji neuroninio tinklo parametrai.
  3. Tada neuroninis tinklas nauju būdu reaguoja į aplinką dėl jo laisvųjų parametrų pokyčių.
nn-Geeksforgeeks


Neuroninių tinklų svarba

Neuroninių tinklų gebėjimas nustatyti modelius, išspręsti sudėtingus galvosūkius ir prisitaikyti prie besikeičiančios aplinkos yra labai svarbus. Jų gebėjimas mokytis iš duomenų turi platų poveikį, pradedant nuo revoliuciją sukeliančių technologijų, tokių kaip natūralios kalbos apdorojimas ir savarankiškai vairuojančius automobilius, siekiant automatizuoti sprendimų priėmimo procesus ir padidinti efektyvumą daugelyje pramonės šakų. Dirbtinio intelekto plėtra labai priklauso nuo neuroninių tinklų, kurie taip pat skatina inovacijas ir daro įtaką technologijų krypčiai.

Kaip veikia neuroniniai tinklai?

Supraskime pavyzdį, kaip veikia neuroninis tinklas:



Apsvarstykite neuroninį tinklą el. pašto klasifikavimui. Įvesties sluoksnis apima tokias funkcijas kaip el. pašto turinys, siuntėjo informacija ir tema. Šie įėjimai, padauginti iš pakoreguotų svorių, praeina per paslėptus sluoksnius. Mokymų metu tinklas išmoksta atpažinti šablonus, rodančius, ar el. laiškas yra šlamštas, ar ne. Išvesties sluoksnis su dvejetaine aktyvinimo funkcija numato, ar el. laiškas yra šlamštas (1), ar ne (0). Kadangi tinklas nuolat tikslina savo svorius naudodamas atgalinį platinimą, jis puikiai skiria šlamštą ir teisėtus el. laiškus, parodydamas neuroninių tinklų praktiškumą tokiose realiose programose kaip el. pašto filtravimas.

Neuroninio tinklo darbas

Neuroniniai tinklai yra sudėtingos sistemos, imituojančios kai kurias žmogaus smegenų veikimo ypatybes. Jį sudaro įvesties sluoksnis, vienas ar daugiau paslėptų sluoksnių ir išvesties sluoksnis, sudarytas iš sujungtų dirbtinių neuronų sluoksnių. Du pagrindinio proceso etapai vadinami backpropagation ir sklidimas pirmyn .

nn-ar-Geeksforgeeks


Pirmyn dauginimasis

  • Įvesties sluoksnis: Kiekviena įvesties sluoksnio funkcija yra pavaizduota tinklo mazgu, kuris gauna įvesties duomenis.
  • Svoriai ir jungtys: Kiekvieno neuroninio ryšio svoris rodo, koks stiprus yra ryšys. Treniruotės metu šie svoriai keičiami.
  • Paslėpti sluoksniai: Kiekvienas paslėpto sluoksnio neuronas apdoroja įvestis, padaugindamas jas iš svorių, sudėdamas ir tada perduodamas per aktyvinimo funkciją. Tai darant įvedamas nelinijiškumas, leidžiantis tinklui atpažinti sudėtingus modelius.
  • Išvestis: Galutinis rezultatas gaunamas kartojant procesą, kol pasiekiamas išvesties sluoksnis.

Atgalinis dauginimas

  • Nuostolių apskaičiavimas: Tinklo išvestis įvertinama pagal realias tikslo vertes, o skirtumui apskaičiuoti naudojama nuostolių funkcija. Regresijos problemai spręsti Vidutinė kvadrato klaida (MSE) dažniausiai naudojama kaip išlaidų funkcija.
    Praradimo funkcija: MSE = frac{1}{n} Sigma^{n}_{i=1} (y_{i} - hat y_{i})^2
  • Gradiento nusileidimas: Tada tinklas naudoja gradiento nusileidimą, kad sumažintų nuostolius. Siekiant sumažinti netikslumą, svoriai keičiami atsižvelgiant į nuostolio išvestinę kiekvieno svorio atžvilgiu.
  • Svorių reguliavimas: Svoriai koreguojami kiekvienoje jungtyje taikant šį kartotinį procesą arba dauginimas atgal , atgal visame tinkle.
  • Treniruotės: Mokymosi su skirtingais duomenų pavyzdžiais metu visas pirminio sklidimo, nuostolių skaičiavimo ir atgalinio skleidimo procesas atliekamas kartotiškai, todėl tinklas gali prisitaikyti ir mokytis iš duomenų šablonų.
  • Aktyvinimo funkcijos: Modelio netiesiškumas įvedamas aktyvinimo funkcijomis, tokiomis kaip ištaisytas tiesinis vienetas (ReLU) val sigmoidinė . Jų sprendimas, ar paleisti neuroną, yra pagrįstas visa svertine įvestimi.

Neuroninio tinklo mokymasis

1. Mokymasis su prižiūrimu mokymusi

Į prižiūrimas mokymasis , neuroniniam tinklui vadovauja mokytojas, turintis prieigą prie abiejų įvesties-išvesties porų. Tinklas sukuria išėjimus pagal įvestis, neatsižvelgdamas į aplinką. Palyginus šiuos išėjimus su mokytojo žinomais norimais išėjimais, generuojamas klaidos signalas. Siekiant sumažinti klaidų skaičių, tinklo parametrai keičiami iteratyviai ir sustabdomi, kai našumas pasiekia priimtiną lygį.

burbulų rūšiavimas algoritme

2. Mokymasis be priežiūros

Lygiaverčių išvesties kintamųjų nėra mokymasis be priežiūros . Pagrindinis jo tikslas yra suprasti gaunamų duomenų (X) pagrindinę struktūrą. Nėra instruktoriaus, kuris galėtų patarti. Vietoj to numatomas duomenų modelių ir ryšių modeliavimas. Tokie žodžiai kaip regresija ir klasifikacija yra susiję su prižiūrimu mokymusi, o neprižiūrimas mokymasis – su grupavimu ir asociacija.

3. Mokymasis stiprinant mokymąsi

Sąveikaujant su aplinka ir grįžtamuoju ryšiu atlygio ar nuobaudų forma tinklas įgyja žinių. Tinklo tikslas yra rasti politiką ar strategiją, kuri optimizuotų kaupiamąjį atlygį laikui bėgant. Ši rūšis dažnai naudojama žaidimų ir sprendimų priėmimo programose.

Neuroninių tinklų tipai

Yra septyni neuroninių tinklų tipai, kuriuos galima naudoti.

  • Perdavimo tinklai: A grįžtamasis neuroninis tinklas yra paprasta dirbtinio neuroninio tinklo architektūra, kurioje duomenys iš įvesties į išvestį juda viena kryptimi. Jis turi įvesties, paslėptus ir išvesties sluoksnius; grįžtamojo ryšio kilpų nėra. Dėl paprastos architektūros jis tinkamas daugeliui programų, tokių kaip regresija ir modelio atpažinimas.
  • Daugiasluoksnis perceptronas (MLP): MLP yra grįžtamojo ryšio neuroninio tinklo tipas su trimis ar daugiau sluoksnių, įskaitant įvesties sluoksnį, vieną ar daugiau paslėptų sluoksnių ir išvesties sluoksnį. Jis naudoja netiesines aktyvinimo funkcijas.
  • Konvoliucinis neuroninis tinklas (CNN): A Konvoliucinis neuroninis tinklas (CNN) yra specializuotas dirbtinis neuroninis tinklas, skirtas vaizdo apdorojimui. Jis naudoja konvoliucinius sluoksnius, kad automatiškai išmoktų hierarchines ypatybes iš įvesties vaizdų, kad būtų galima efektyviai atpažinti ir klasifikuoti vaizdus. CNN sukėlė kompiuterinio matymo revoliuciją ir yra labai svarbios atliekant tokias užduotis kaip objektų aptikimas ir vaizdo analizė.
  • Pasikartojantis neuroninis tinklas (RNN): Dirbtinis neuroninio tinklo tipas, skirtas nuosekliam duomenų apdorojimui, vadinamas a Pasikartojantis neuroninis tinklas (RNN). Jis tinkamas programoms, kuriose kontekstinės priklausomybės yra labai svarbios, pvz., laiko eilučių numatymas ir natūralios kalbos apdorojimas, nes jame naudojamos grįžtamojo ryšio kilpos, leidžiančios informacijai išlikti tinkle.
  • Ilgalaikė trumpalaikė atmintis (LSTM): LSTM yra RNN tipas, skirtas įveikti nykstančio gradiento problemą treniruojant RNN. Jis naudoja atminties ląsteles ir vartus, kad galėtų pasirinktinai skaityti, rašyti ir ištrinti informaciją.

Paprastas neuroninio tinklo įgyvendinimas

Python3

import> numpy as np> # array of any amount of numbers. n = m> X>=> np.array([[>1>,>2>,>3>],> >[>3>,>4>,>1>],> >[>2>,>5>,>3>]])> # multiplication> y>=> np.array([[.>5>, .>3>, .>2>]])> # transpose of y> y>=> y.T> # sigma value> sigm>=> 2> # find the delta> delt>=> np.random.random((>3>,>3>))>-> 1> for> j>in> range>(>100>):> > ># find matrix 1. 100 layers.> >m1>=> (y>-> (>1>/>(>1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt))))))>*>((>1>/>(> >1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt)))))>*>(>1>->(>1>/>(> >1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt)))))))> ># find matrix 2> >m2>=> m1.dot(delt.T)>*> ((>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))> >*> (>1>->(>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))))> ># find delta> >delt>=> delt>+> (>1>/>(>1> +> np.exp(>->(np.dot(X, sigm))))).T.dot(m1)> ># find sigma> >sigm>=> sigm>+> (X.T.dot(m2))> # print output from the matrix> print>(>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))>
>
>

Išvestis:

[[0.99999325 0.99999375 0.99999352]  [0.99999988 0.99999989 0.99999988]  [1. 1. 1. ]]>

Neuroninių tinklų privalumai

Neuroniniai tinklai yra plačiai naudojami daugelyje skirtingų programų, nes jie turi daug privalumų:

  • Pritaikymas: Neuroniniai tinklai yra naudingi veiklai, kai ryšys tarp įvesties ir išvesties yra sudėtingas arba nėra tiksliai apibrėžtas, nes jie gali prisitaikyti prie naujų situacijų ir mokytis iš duomenų.
  • Rašto atpažinimas: Jų modelių atpažinimo įgūdžiai leidžia jiems efektyviai atlikti tokias užduotis kaip garso ir vaizdo identifikavimas, natūralios kalbos apdorojimas ir kiti sudėtingi duomenų modeliai.
  • Lygiagretus apdorojimas: Kadangi neuroniniai tinklai iš prigimties gali apdoroti lygiagrečiai, jie vienu metu gali apdoroti daugybę užduočių, o tai pagreitina ir pagerina skaičiavimų efektyvumą.
  • Netiesiškumas: Neuroniniai tinklai gali modeliuoti ir suprasti sudėtingus duomenų ryšius dėl neuronuose aptinkamų nelinijinių aktyvinimo funkcijų, kurios pašalina linijinių modelių trūkumus.

Neuroninių tinklų trūkumai

Neuroniniai tinklai, nors ir galingi, neturi trūkumų ir sunkumų:

kas yra ymail
  • Skaičiavimo intensyvumas: Didelio neuroninio tinklo mokymas gali būti daug pastangų reikalaujantis ir daug skaičiavimo reikalaujantis procesas, reikalaujantis daug skaičiavimo galios.
  • Juodoji dėžutė Gamta: Kaip juodosios dėžės modeliai, neuroniniai tinklai kelia problemų svarbiose programose, nes sunku suprasti, kaip jie priima sprendimus.
  • Per didelis pritaikymas: Perteklinis pritaikymas yra reiškinys, kai neuroniniai tinklai į atmintį įtraukia mokymo medžiagą, o ne nustato duomenų šablonus. Nors sureguliavimo metodai padeda tai sumažinti, problema vis dar egzistuoja.
  • Reikalingi dideli duomenų rinkiniai: Siekiant efektyvaus mokymo, neuroniniams tinklams dažnai reikia didelių, pažymėtų duomenų rinkinių; kitu atveju jų veikimas gali nukentėti dėl neišsamių arba iškreiptų duomenų.

Dažnai užduodami klausimai (DUK)

1. Kas yra neuroninis tinklas?

Neuroninis tinklas yra dirbtinė sistema, sudaryta iš tarpusavyje susijusių mazgų (neuronų), apdorojančių informaciją, modeliuojama pagal žmogaus smegenų struktūrą. Jis naudojamas mašininio mokymosi darbuose, kai modeliai išgaunami iš duomenų.

2. Kaip veikia neuroninis tinklas?

Sujungtų neuronų sluoksniai apdoroja duomenis neuroniniuose tinkluose. Tinklas apdoroja įvesties duomenis, keičia svorius treniruotės metu ir sukuria išvestį, atsižvelgdamas į aptiktus modelius.

3. Kokie yra įprasti neuroninių tinklų architektūros tipai?

Grįžtamieji neuroniniai tinklai, pasikartojantys neuroniniai tinklai (RNN), konvoliuciniai neuroniniai tinklai (CNN) ir ilgalaikės trumpalaikės atminties tinklai (LSTM) yra bendrų architektūrų pavyzdžiai, kurių kiekviena yra sukurta tam tikrai užduočiai.

4. Kuo skiriasi prižiūrimas ir neprižiūrimas mokymasis neuroniniuose tinkluose?

Prižiūrimo mokymosi metu pažymėti duomenys naudojami neuroniniam tinklui treniruoti, kad jis išmoktų susieti įvestis su atitinkamomis išvestimis. Neprižiūrimas mokymasis veikia su nepažymėtais duomenimis ir ieško duomenų struktūrų ar šablonų .

5. Kaip neuroniniai tinklai tvarko nuoseklius duomenis?

Grįžtamojo ryšio kilpos, kurias apima pasikartojantys neuroniniai tinklai (RNN), leidžia jiems apdoroti nuoseklius duomenis ir laikui bėgant užfiksuoti priklausomybes ir kontekstą.