Vai pastāv standarta un pieņemta metode, kā izvēlēties slāņu skaitu un mezglu skaitu katrā slānī neironu tīklā, kas darbojas uz priekšu? Mani interesē automatizēti neironu tīklu veidošanas veidi.
Es saprotu, ka uz šo jautājumu ir atbildēts, bet es nedomāju, ka līdzšinējā atbilde patiešām ir saistīta ar jautājumu, izņemot norādīšanu uz saiti, kas vispārīgi saistīta ar jautājuma tēmu. Konkrēti, saitē ir aprakstīta viena programmatiska tīkla konfigurēšanas metode, bet tā nav "[a] standarta un pieņemta metode" tīkla konfigurēšanai. Ievērojot nelielu skaidru noteikumu kopumu, var programmatiski iestatīt kompetentu tīkla arhitektūru (t. i., neironu slāņu skaitu un veidu un katrā slānī ietilpstošo neironu skaitu). Ievērojot šo shēmu, iegūsiet kompetentu arhitektūru, bet, iespējams, ne optimālu. Taču, kad šis tīkls ir inicializēts, apmācības laikā konfigurāciju var iteratīvi pielāgot, izmantojot vairākus palīgalgoritmus; viens no šiem algoritmiem darbojas, pēc noteikta apmācības laikmetu skaita atdalot mezglus, pamatojoties uz (nelielām) svaru vektora vērtībām, citiem vārdiem sakot, likvidējot nevajadzīgos/pārpalikušos mezglus (vairāk par to tālāk). Tātad katram NN ir trīs veidu slāņi: ieejas, slēptie un izvades.
Pašlaik es strādāju pie empīriska pētījuma par šo jautājumu (tuvojas procesora simulāciju gadsimts mūsu HPC iekārtā!). Mans padoms būtu izmantot "lielu" tīklu un regularizāciju, ja izmantojat regularizāciju, tad tīkla arhitektūra kļūst mazāk svarīga (ar nosacījumu, ka tā ir pietiekami liela, lai atspoguļotu pamatfunkciju, ko vēlamies attēlot), bet jums ir pareizi jānoregulē regularizācijas parametrs.
Viena no arhitektūras izvēles problēmām ir tā, ka tā ir diskrēta, nevis nepārtraukta modeļa sarežģītības kontrole, un tāpēc tā var būt mazliet strups instruments, jo īpaši, ja ideālā sarežģītība ir zema.
Tomēr uz to visu attiecas teorēma, ka, lai gan regularizācija ir efektīva vairumā gadījumu, vienmēr būs gadījumi, kad arhitektūras atlase darbojas labāk, un vienīgais veids, kā noskaidrot, vai tas attiecas uz konkrēto problēmu, ir izmēģināt abas pieejas un veikt savstarpēju pārbaudi.
Ja man būtu jāveido automatizēts neironu tīklu konstruktors, es izmantotu Radforda Nīla (Radford Neal's) hibrīda Monte Karlo (HMC) uz izlases metodi balstītu Bejsa pieeju, kā arī izmantotu lielu tīklu un integrētu svarus, nevis optimizētu viena tīkla svarus. Tomēr tas ir skaitliski dārgi un nedaudz "melnā māksla", bet profesora Neala sasniegtie rezultāti liecina, ka tas ir tā vērts!
Cik man zināms, nav iespējams automātiski izvēlēties slāņu un neironu skaitu katrā slānī. Bet ir tīkli, kas var automātiski veidot savu topoloģiju, piemēram, EANN (evolūcijas mākslīgie neironu tīkli, kas izmanto ģenētiskos algoritmus, lai attīstītu topoloģiju).
Pastāv vairākas pieejas, un vairāk vai mazāk mūsdienīga pieeja, kas, šķiet, dod labus rezultātus, ir NEAT (Neuro Evolution of Augmented Topologies).