Kujifunza kwa kina mitandao ya neva. Zaidi ya uenezi wa nyuma na tabaka zinazoweza kutofautishwa. Mtandao wa neva ni nini

Kutoka kwa makala utajifunza nini kujifunza kwa kina ni. Nakala hiyo pia ina rasilimali nyingi ambazo unaweza kutumia ili kujua eneo hili.

Katika ulimwengu wa kisasa, kutoka kwa huduma ya afya hadi utengenezaji, kujifunza kwa kina hutumiwa kila mahali. Kampuni zinageukia teknolojia hii kutatua shida ngumu kama vile utambuzi wa usemi na kitu, Tafsiri ya mashine Nakadhalika.

Mojawapo ya mafanikio ya kuvutia zaidi mwaka huu ilikuwa AlphaGo kumshinda mchezaji bora wa dunia wa Go. Mbali na Go, mashine zimeshinda watu katika michezo mingine: cheki, chess, reversi, na Jeopardy.

Labda kushinda mchezo wa bodi haionekani kufaa kwa suluhisho matatizo ya kweli, hata hivyo, hii sivyo kabisa. Go iliundwa ili isishindwe na akili bandia. Ili kufanya hivyo, angehitaji kujifunza jambo moja muhimu kwa mchezo huu - angavu ya mwanadamu. Sasa, kwa msaada wa maendeleo haya, inawezekana kutatua matatizo mengi ambayo yalikuwa hayapatikani kwa kompyuta kabla.

Kwa wazi, kujifunza kwa kina bado ni mbali na kamili, lakini tayari kunakaribia kuwa muhimu kibiashara. Kwa mfano, haya magari yanayojiendesha yenyewe. Kampuni zinazojulikana kama Google, Tesla na Uber tayari zinajaribu kutambulisha magari yanayojiendesha kwenye barabara za jiji.

Ford Atabiri Ongezeko Kubwa la Hisa ya Kuendesha Kibinafsi Gari ifikapo 2021. Serikali ya Marekani pia imeweza kuunda seti ya sheria za usalama kwa ajili yao.

Kujifunza kwa kina ni nini?

Ili kujibu swali hili, unahitaji kuelewa jinsi linavyoingiliana na kujifunza kwa mashine, mitandao ya neva na akili bandia. Ili kufanya hivyo, tunatumia njia ya taswira kwa kutumia miduara ya umakini:

Mduara wa nje ni akili ya bandia kwa jumla (k.m. kompyuta). Zaidi kidogo - kujifunza mashine, na katikati kabisa kuna mafunzo ya kina na mitandao ya neva bandia.

Kwa kusema, kujifunza kwa kina ni jina linalofaa zaidi kwa mitandao ya neva bandia. "Kina" katika kifungu hiki kinarejelea kiwango cha utata (kina) cha mtandao wa neva, ambao mara nyingi unaweza kuwa wa juu juu kabisa.

Waumbaji wa mtandao wa kwanza wa neural waliongozwa na muundo wa kamba ya ubongo. Safu ya msingi ya mtandao, perceptron, kimsingi ni analogi ya hisabati ya niuroni ya kibayolojia. Na, kama katika ubongo, perceptrons kuingiliana na kila mmoja inaweza kuonekana katika mtandao wa neva.

Safu ya kwanza ya mtandao wa neva inaitwa safu ya pembejeo. Kila nodi katika safu hii hupokea taarifa fulani kama pembejeo na kuisambaza kwa nodi zinazofuata katika tabaka zingine. Mara nyingi, hakuna miunganisho kati ya nodi za safu moja, na nodi ya mwisho ya mnyororo hutoa matokeo ya mtandao wa neva.

Nodi zilizo katikati huitwa nodi zilizofichwa kwa sababu hazina miunganisho ya ulimwengu wa nje kama vile pato na nodi za ingizo. Wanaitwa tu wakati tabaka za awali zimeamilishwa.

Kujifunza kwa kina kimsingi ni mbinu ya mafunzo ya mtandao wa neva ambayo hutumia tabaka nyingi kutatua matatizo changamano (kama utambuzi wa usemi) kwa kutumia ruwaza. Katika miaka ya themanini, mitandao mingi ya neva ilikuwa ya safu moja kutokana na gharama kubwa na uwezo mdogo wa data.

Ikiwa tutazingatia kujifunza kwa mashine kama tawi au kibadala cha akili bandia, basi kujifunza kwa kina ni aina maalum ya tawi kama hilo.

Kujifunza kwa mashine hutumia akili ya kompyuta ambayo haitoi jibu mara moja. Badala yake, msimbo utafanya kazi kwenye data ya mtihani na, kulingana na usahihi wa matokeo yake, kurekebisha maendeleo yake. Kwa mafanikio ya mchakato huu, mbinu mbalimbali, programu maalum na sayansi ya kompyuta hutumiwa kuelezea mbinu tuli na algebra ya mstari.

Mbinu za kujifunza kwa kina

Mbinu za kujifunza kwa kina zimegawanywa katika aina mbili kuu:

  • Mafunzo yaliyofundishwa
  • Kujifunza bila kusimamiwa

Njia ya kwanza hutumia data iliyochaguliwa maalum ili kufikia matokeo yaliyohitajika. Inahitaji uingiliaji mwingi wa kibinadamu, kwa sababu data lazima ichaguliwe kwa mikono. Walakini, ni muhimu kwa uainishaji na urekebishaji.

Fikiria kuwa wewe ni mmiliki wa kampuni na unataka kubainisha athari za bonasi kwa urefu wa kandarasi za wasaidizi wako. Kwa data iliyokusanywa mapema, mbinu ya kujifunza inayosimamiwa itakuwa ya lazima na yenye ufanisi sana.

Njia ya pili haimaanishi majibu yaliyotayarishwa mapema na algorithms ya kazi. Inalenga kutambua mifumo iliyofichwa katika data. Kwa kawaida hutumiwa kwa kazi za kuunganisha na kuhusisha, kama vile kupanga wateja kulingana na tabia. "Pia wanachagua na hii" kwenye Amazon ni lahaja ya kazi ya ushirika.

Ingawa kujifunza kusimamiwa mara nyingi ni rahisi, ni zaidi chaguo ngumu bado bora. Kujifunza kwa kina kumejidhihirisha kuwa mtandao wa neva ambao hauhitaji usimamizi wa mwanadamu.

Umuhimu wa Kujifunza kwa Kina

Kompyuta kwa muda mrefu zimetumia teknolojia kutambua vipengele fulani katika picha. Walakini, matokeo yalikuwa mbali na mafanikio. Maono ya kompyuta yamekuwa na athari ya ajabu katika kujifunza kwa kina. Ni mbinu hizi mbili ambazo wakati huu kutatua matatizo yote ya utambuzi.

Hasa, Facebook imefaulu katika kutambua nyuso katika picha kwa kutumia kujifunza kwa kina. Hili si uboreshaji rahisi wa teknolojia, lakini ni hatua ya mabadiliko ambayo hubadilisha imani zote za awali: “Mtu anaweza kuamua kwa uwezekano wa 97.53% ikiwa mtu yuleyule ataonyeshwa katika picha mbili tofauti. Mpango uliotengenezwa na timu ya Facebook unaweza kufanya hivyo kwa uwezekano wa 97.25%, bila kujali mwanga au kama mtu anaangalia kamera moja kwa moja au amegeukia upande wake.

Utambuzi wa usemi pia umepitia mabadiliko makubwa. Timu ya Baidu, mojawapo ya injini za utafutaji zinazoongoza nchini Uchina, imeunda mfumo wa utambuzi wa usemi ambao umeweza kuwashinda wanadamu katika kasi na usahihi wa kuandika maandishi kwa Kiingereza. vifaa vya simu. Kwa Kiingereza na Mandarin.

Kinachofurahisha zaidi ni kwamba kuandika mtandao wa kawaida wa neural kwa lugha mbili tofauti hakuhitaji kazi nyingi: "Kihistoria, watu waliona Kichina na Kiingereza kama lugha mbili tofauti kabisa, kwa hivyo mbinu tofauti kwa kila moja yao ilihitajika," anasema. mkuu wa kituo cha utafiti cha Baidu, Andrew Ng. "Algorithms ya kujifunza sasa imeundwa kwa ujumla kwamba unaweza Tu kujifunza."

Google hutumia mafunzo ya kina kudhibiti nishati katika vituo vya data vya kampuni. Waliweza kupunguza gharama za rasilimali za kupoeza kwa 40%. Hiyo ni kuhusu uboreshaji wa 15% katika ufanisi wa nishati na mamilioni ya dola katika kuokoa.

Huduma ndogo za kujifunza kwa kina

Hapa mapitio mafupi huduma zinazohusiana na kujifunza kwa kina.

Tagger ya Kielelezo. Imeboreshwa na Illustration2Vec, huduma hii hukuruhusu kutia alama kwenye picha kwa ukadiriaji wa "imelindwa", "ya kutiliwa shaka", "hatari", "hakimiliki" au "jumla" ili kuelewa maudhui ya picha mapema.

  • Programu jalizi ya Theano ya Google
  • Inaweza kuhaririwa katika Python na Numpy
  • Mara nyingi hutumiwa kutatua matatizo mbalimbali
  • Sio kusudi la jumla. Kuzingatia maono ya mashine
  • Imehaririwa katika C++
  • Kuna kiolesura katika Python

Kozi za mtandaoni za kujifunza kwa kina

Google na Udacity wameungana ili kuunda kozi isiyolipishwa ya kujifunza kwa kina, sehemu ya Kozi ya Kujifunza Mashine ya Udacity. Mpango huu unaongozwa na watengenezaji wenye uzoefu ambao wanataka kuendeleza uwanja wa kujifunza kwa mashine na, hasa, kujifunza kwa kina.

Chaguo jingine maarufu ni kozi ya kujifunza kwa mashine kutoka kwa Andrew Ng, inayoungwa mkono na Coursera na Stanford.

  1. Kujifunza kwa Mashine - Stanford na Andrew Ng kwenye Coursera (2010-2014)
  2. Kujifunza kwa Mashine - Caltech na Yaser Abu-Mostafa (2012-2014)
  3. Kujifunza kwa Mashine - Carnegie Mellon na Tom Mitchell (Spring 2011)
  4. Mitandao ya Neural ya kujifunza mashine - Geoffrey Hinton kwenye Coursera (2012)
  5. Darasa la mitandao ya Neural- Hugo Larochelle kutoka Université de Sherbrooke (2013)

Vitabu vya kujifunza kwa kina

Ingawa rasilimali katika sehemu iliyotangulia zinatumia msingi wa maarifa mengi, Grokking Deep Learning, kinyume chake, inalenga wanaoanza. Kama waandishi wanavyosema: "Ikiwa umemaliza darasa la 11 na una uelewa mzuri wa jinsi ya kuandika Python, tutakufundisha kujifunza kwa kina."

Mbadala maarufu kwa kitabu hiki ni kitabu chenye mada inayojieleza ya Kitabu cha Kujifunza kwa kina. Ni nzuri sana kwa sababu inashughulikia hesabu zote utakazohitaji ili kuingia katika eneo hili.

  1. "Kujifunza kwa kina" na Yoshua Bengio, Ian Goodfellow na Aaron Courville (2015)
  2. "Mitandao ya Neural na kujifunza kwa kina" na Michael Nielsen (2014)
  3. "Kujifunza kwa kina" kutoka kwa Utafiti wa Microsoft (2013)
  4. "Mafunzo ya Kujifunza kwa Kina" kutoka Maabara ya LISA, Chuo Kikuu cha Montreal (2015)
  5. "neuraltalk" na Andrej Karpathy
  6. "Utangulizi wa algorithms ya maumbile»
  7. "Njia ya kisasa ya akili ya bandia"
  8. "Muhtasari wa ujifunzaji wa kina na mitandao ya neva"

Video na mihadhara

Kujifunza kwa Kina Kurahisishwa ni chaneli nzuri ya YouTube. Hii hapa video yao ya kwanza:

Leo, grafu ni mojawapo ya njia zinazokubalika zaidi za kuelezea mifano iliyoundwa katika mfumo wa kujifunza wa mashine. Grafu hizi za kukokotoa zinajumuisha vipeo vya niuroni vilivyounganishwa na kingo za sinepsi zinazoelezea miunganisho kati ya vipeo.

Tofauti na kichakataji cha picha za scalar kati au vekta, IPU, aina mpya ya kichakataji iliyoundwa kwa ajili ya kujifunza kwa mashine, inaruhusu ujenzi wa grafu hizo. Kompyuta ambayo imeundwa kusimamia grafu - gari kamili kwa miundo ya hesabu ya grafu inayotokana na kujifunza kwa mashine.

Njia moja rahisi ya kuelezea mchakato wa akili ya mashine ni kuibua. Timu ya ukuzaji wa Graphcore imeunda mkusanyiko wa picha kama hizo zinazoonyeshwa kwenye IPU. Inategemea programu ya Poplar, ambayo inaonyesha kazi ya akili ya bandia. Watafiti kutoka kampuni hii pia waligundua kwa nini mitandao ya kina inahitaji kumbukumbu nyingi, na ni suluhisho gani zipo ili kutatua tatizo.

Poplar inajumuisha mkusanyaji wa michoro ambayo iliundwa kutoka chini hadi kutafsiri shughuli za kawaida za kujifunza kwa mashine katika msimbo wa maombi wa IPU ulioboreshwa zaidi. Inakuruhusu kukusanya grafu hizi pamoja kwa kutumia kanuni sawa na POPNN zinazokusanywa. Maktaba ina seti ya aina tofauti za vertex kwa primitives ya jumla.

Grafu ni dhana ambayo programu zote zinategemea. Katika Poplar, grafu hukuruhusu kufafanua mchakato wa kukokotoa, ambapo wima hufanya shughuli na kingo huelezea uhusiano kati yao. Kwa mfano, ikiwa unataka kuongeza nambari mbili pamoja, unaweza kufafanua kipeo chenye pembejeo mbili (nambari ambazo ungependa kuongeza), baadhi ya mahesabu (kitendakazi cha kuongeza nambari mbili), na pato (matokeo).

Kwa kawaida, shughuli na wima ni ngumu zaidi kuliko katika mfano ulioelezwa hapo juu. Mara nyingi hufafanuliwa na programu ndogo zinazoitwa codelets (codenames). Utoaji wa mchoro unavutia kwa sababu hauleti mawazo yoyote kuhusu muundo wa ukokotoaji na hugawanya hesabu katika vipengele ambavyo IPU inaweza kutumia kufanya kazi.

Poplar hutumia uondoaji huu rahisi kujenga sana grafu kubwa, ambazo zinawasilishwa kwa namna ya picha. Uzalishaji wa programu ya grafu inamaanisha tunaweza kuirekebisha kulingana na hesabu mahususi zinazohitajika ili kuhakikisha matumizi bora zaidi ya rasilimali za IPU.

Mkusanyaji hutafsiri utendakazi wa kawaida unaotumiwa katika mifumo ya kujifunza ya mashine kuwa msimbo wa maombi ulioboreshwa zaidi wa IPU. Mkusanyaji wa grafu huunda picha ya kati ya grafu ya kukokotoa, ambayo inawekwa kwenye kifaa kimoja au zaidi cha IPU. Kikusanyaji kinaweza kuonyesha grafu hii ya kukokotoa, kwa hivyo programu iliyoandikwa katika kiwango cha mfumo wa mtandao wa neva huonyesha picha ya grafu ya hesabu inayoendeshwa kwenye IPU.


Grafu ya mzunguko kamili wa mafunzo wa AlexNet katika maelekezo ya mbele na nyuma

Mkusanyaji wa michoro ya Poplar aligeuza maelezo ya AlexNet kuwa grafu ya hesabu ya vipeo milioni 18.7 na kingo milioni 115.8. Mkusanyiko unaoonekana wazi ni matokeo ya mawasiliano yenye nguvu kati ya michakato katika kila safu ya mtandao, na mawasiliano rahisi kati ya tabaka.

Mfano mwingine ni mtandao rahisi na muunganisho kamili, mafunzo kwenye MNIST - seti rahisi ya data ya kuona kwa kompyuta, aina ya "Hujambo, ulimwengu" katika kujifunza kwa mashine. Mtandao rahisi kuchunguza hifadhidata hii husaidia kuelewa grafu ambazo zinaendeshwa na programu za Poplar. Kwa kuunganisha maktaba za grafu na mifumo kama vile TensorFlow, kampuni hutoa mojawapo ya njia rahisi zaidi za kutumia IPU katika programu za kujifunza mashine.

Baada ya grafu kujengwa kwa kutumia mkusanyaji, inahitaji kutekelezwa. Hii inawezekana kwa kutumia Injini ya Grafu. Mfano wa ResNet-50 unaonyesha uendeshaji wake.


Grafu ya ResNet-50

Usanifu wa ResNet-50 unaruhusu uundaji wa mitandao ya kina kutoka kwa sehemu za kurudia. Kichakataji kinapaswa tu kufafanua sehemu hizi mara moja na kuziita tena. Kwa mfano, nguzo ya kiwango cha conv4 inatekelezwa mara sita, lakini imechorwa mara moja tu kwenye grafu. Picha pia inaonyesha anuwai ya maumbo ya tabaka za ubadilishaji, kwani kila moja ina grafu iliyojengwa kulingana na fomu ya asili ya hesabu.

Injini huunda na kudhibiti utekelezaji wa muundo wa kujifunza kwa mashine kwa kutumia grafu inayotolewa na mkusanyaji. Baada ya kutumwa, Injini ya Grafu hufuatilia na kujibu IPU, au vifaa vinavyotumiwa na programu.

Picha ya ResNet-50 inaonyesha mtindo mzima. Katika kiwango hiki ni ngumu kutambua miunganisho kati ya wima ya mtu binafsi, kwa hivyo inafaa kutazama picha zilizopanuliwa. Ifuatayo ni baadhi ya mifano ya sehemu ndani ya tabaka za mtandao wa neva.

Kwa nini mitandao ya kina inahitaji kumbukumbu nyingi?

Alama kubwa za kumbukumbu ni mojawapo ya changamoto kubwa za mitandao ya kina ya neva. Watafiti wanajaribu kupambana na kipimo data kidogo cha vifaa vya DRAM, ambavyo mifumo ya kisasa lazima itumie kuhifadhi idadi kubwa ya uzani na kuwezesha katika mtandao wa kina wa neva.

Usanifu ulitengenezwa kwa kutumia chips za processor, iliyoundwa kwa ajili ya usindikaji mfuatano na uboreshaji wa DRAM kwa kumbukumbu ya msongamano wa juu. Kiolesura kati ya vifaa hivi viwili ni kizuizi kinacholeta vikwazo vya kipimo data na kuongeza matumizi makubwa ya nishati.

Ingawa bado hatuna ufahamu kamili wa ubongo wa mwanadamu na jinsi unavyofanya kazi, inaeleweka kwa ujumla kuwa hakuna hifadhi kubwa tofauti ya kumbukumbu. Inaaminika kuwa kazi hiyo ni ya muda mrefu na kumbukumbu ya muda mfupi katika ubongo wa binadamu umejengwa katika muundo wa neurons + sinepsi. Hata viumbe rahisi kama minyoo, na muundo wa ubongo wa neural zaidi ya 300 tu wa niuroni, wana kiwango fulani cha utendakazi wa kumbukumbu.

Kuunda kumbukumbu katika vichakataji vya kawaida ni njia mojawapo ya kukwepa tatizo la ugumu wa kumbukumbu, kufungua kipimo data kikubwa huku ukitumia nguvu kidogo zaidi. Hata hivyo, kumbukumbu kwenye chip ni ghali na haijaundwa kwa kumbukumbu nyingi sana ambazo zimeambatishwa kwenye CPU na GPU zinazotumika sasa kutoa mafunzo na kusambaza mitandao ya kina ya neva.

Kwa hivyo ni muhimu kuangalia jinsi kumbukumbu inavyotumika leo katika CPU na mifumo ya kujifunza ya kina ya GPU na ujiulize: kwa nini zinahitaji vifaa vikubwa vya kuhifadhi kumbukumbu wakati ubongo wa mwanadamu hufanya kazi vizuri bila wao?

Mitandao ya neva inahitaji kumbukumbu ili kuhifadhi data ya ingizo, uzani, na kuwezesha utendakazi kadiri ingizo linavyoenea kupitia mtandao. Katika ujifunzaji, uanzishaji kwenye ingizo lazima udumishwe hadi iweze kutumika kukokotoa makosa katika viwango vya matokeo.

Kwa mfano, mtandao wa ResNet wa safu 50 una vigezo vya uzani takriban milioni 26 na huhesabu uanzishaji wa mbele milioni 16. Ikiwa unatumia kuelea kwa biti 32 kuhifadhi kila uzito na uwezeshaji, itahitaji takriban 168MB ya nafasi. Kwa kutumia thamani ya chini ya usahihi kuhifadhi uzani na kuwezesha hivi, tunaweza kupunguza nusu au hata kuongeza mara nne mahitaji haya ya hifadhi.

Tatizo kubwa tatizo la kumbukumbu hutokea kwa sababu GPU zinategemea data inayowakilishwa kama vekta mnene. Kwa hiyo, wanaweza kutumia thread moja ya maelekezo (SIMD) kufikia msongamano mkubwa wa kompyuta. CPU hutumia vitengo sawa vya vekta kwa utendakazi wa juu wa kompyuta.

GPU zina upana wa sinepsi wa biti 1024, kwa hivyo hutumia data ya nukta 32-bit inayoelea, kwa hivyo mara nyingi huigawanya katika kundi-dogo la sampuli 32 zinazofanana ili kuunda vekta za data ya 1024-bit. Njia hii ya usawa wa vekta huongeza idadi ya uanzishaji kwa mara 32 na hitaji la uhifadhi wa ndani na uwezo wa zaidi ya 2 GB.

GPU na mashine zingine iliyoundwa kwa aljebra ya matrix pia zinakabiliwa na mzigo wa kumbukumbu kutoka kwa uzani au uanzishaji wa mtandao wa neva. GPU haziwezi kutekeleza kwa ufasaha miingiliano midogo inayotumika katika mitandao ya kina ya neva. Kwa hivyo, mageuzi yanayoitwa "kupunguza" hutumiwa kubadilisha mienendo hii kuwa ya kuzidisha matrix-matrix (GEMM), ambayo GPU zinaweza kushughulikia kwa ufanisi.

Kumbukumbu ya ziada inahitajika pia kuhifadhi data ya ingizo, thamani za muda na maagizo ya programu. Kupima matumizi ya kumbukumbu wakati wa kufunza ResNet-50 kwenye GPU ya hali ya juu kulionyesha kuwa ilihitaji zaidi ya GB 7.5 za DRAM ya ndani.

Wengine wanaweza kufikiria kuwa usahihi wa chini wa hesabu unaweza kupunguza kiwango cha kumbukumbu kinachohitajika, lakini sivyo. Kwa kubadilisha thamani za data hadi nusu ya usahihi wa uzani na uanzishaji, utajaza nusu ya upana wa vekta ya SIMD tu, ukipoteza nusu ya rasilimali za kukokotoa zilizopo. Ili kufidia hili, unapobadilisha kutoka usahihi kamili hadi nusu usahihi kwenye GPU, basi itabidi uongeze ukubwa maradufu wa kundi-dogo ili kulazimisha usawazishaji wa data wa kutosha kutumia hesabu zote zinazopatikana. Kwa hivyo, kuhamia kwenye uzani wa chini wa usahihi na kuwezesha kwenye GPU bado kunahitaji zaidi ya 7.5GB ya kumbukumbu inayobadilika ya ufikiaji bila malipo.

Kwa data nyingi sana za kuhifadhi, haiwezekani kuiweka yote kwenye GPU. Kila safu ya mtandao wa neva wa ushawishi inahitaji kuhifadhi hali ya DRAM ya nje, kupakia safu inayofuata ya mtandao, na kisha kupakia data kwenye mfumo. Matokeo yake, kiolesura cha kumbukumbu cha nje kilicho na kipimo cha bandwidth tayari kinakabiliwa na mzigo wa ziada wa kupakia upya mizani mara kwa mara na kuhifadhi na kurejesha kazi za uanzishaji. Hii inapunguza sana muda wa mafunzo na huongeza kwa kiasi kikubwa matumizi ya nguvu.

Kuna njia kadhaa za kutatua tatizo hili. Kwanza, utendakazi kama vile vitendaji vya kuwezesha vinaweza kufanywa "mahali," kuruhusu data ya ingizo kuandikwa upya moja kwa moja kwenye matokeo. Kwa njia hii kumbukumbu iliyopo inaweza kutumika tena. Pili, fursa ya tumia tena kumbukumbu inaweza kupatikana kwa kuchambua utegemezi wa data kati ya shughuli kwenye mtandao na ugawaji wa kumbukumbu sawa kwa shughuli ambazo hazitumii wakati huo.

Mbinu ya pili ni nzuri sana wakati mtandao mzima wa neva unaweza kuchanganuliwa wakati wa kukusanya ili kuunda kumbukumbu iliyotengwa, kwani uendeshaji wa kumbukumbu umepunguzwa hadi karibu sifuri. Ilibadilika kuwa mchanganyiko wa njia hizi unaweza kupunguza matumizi ya kumbukumbu ya mtandao wa neural kwa mara mbili hadi tatu.
Mbinu ya tatu muhimu iligunduliwa hivi majuzi na timu ya Baidu Deep Speech. Walitumia mbinu mbalimbali za kuhifadhi kumbukumbu ili kufikia kupunguzwa mara 16 kwa matumizi ya kumbukumbu ya vitendaji vya kuwezesha, na kuwaruhusu kutoa mafunzo kwa mitandao yenye tabaka 100. Hapo awali, kwa kiasi sawa cha kumbukumbu, wangeweza kutoa mafunzo kwa mitandao yenye tabaka tisa.

Kuchanganya rasilimali za kumbukumbu na usindikaji hadi kifaa kimoja kuna uwezekano mkubwa wa kuboresha utendakazi na ufanisi wa mitandao ya neva ya kubadilisha, pamoja na aina nyingine za kujifunza kwa mashine. Makubaliano yanaweza kufanywa kati ya kumbukumbu na kukokotoa rasilimali ili kufikia uwiano wa vipengele na utendaji katika mfumo.

Mitandao ya neva na miundo ya maarifa katika mbinu nyingine za kujifunza kwa mashine inaweza kuzingatiwa kama grafu za hisabati. Kuna kiasi kikubwa cha usawaziko kilichojilimbikizia katika grafu hizi. Kichakataji sambamba kilichoundwa kutumia usambamba katika grafu hakitegemei bechi ndogo na kinaweza kupunguza kwa kiasi kikubwa kiasi cha hifadhi ya ndani kinachohitajika.

Matokeo ya utafiti wa sasa yameonyesha kuwa mbinu hizi zote zinaweza kuboresha kwa kiasi kikubwa utendakazi wa mitandao ya neva. GPU za kisasa na CPU zina kumbukumbu ndogo sana kwenye ubao, ni megabaiti chache tu kwa jumla. Miundo mipya ya kichakataji iliyoundwa mahususi kwa ajili ya kumbukumbu ya usawazishaji wa kujifunza kwa mashine na kompyuta kwenye chip, ikitoa utendakazi bora na maboresho ya ufanisi zaidi ya CPU na GPU za leo.

Kujifunza kwa kina ni nini ( kujifunza kwa kina)? Machi 3, 2016

Siku hizi wanazungumza kuhusu teknolojia za kisasa za kujifunza kwa kina kana kwamba ni mana kutoka mbinguni. Lakini je, wasemaji wanaelewa ni nini hasa? Lakini dhana hii haina ufafanuzi rasmi, na inachanganya stack nzima ya teknolojia. Katika chapisho hili nataka kuelezea kama maarufu iwezekanavyo na kimsingi ni nini nyuma ya neno hili, kwa nini ni maarufu sana na teknolojia hizi zinatupa nini.


Kwa kifupi, istilahi hii mpya (kujifunza kwa kina) inahusu jinsi ya kukusanya muhtasari changamano na wa kina zaidi (uwakilishi) kutoka kwa baadhi ya vifupisho rahisi. licha ya ukweli kwamba hata vifupisho rahisi zaidi lazima vikusanywe na kompyuta yenyewe, na sio na mtu. Wale. Sio tena juu ya kujifunza, lakini juu ya kujifunza meta. Kwa kusema kwa mfano, kompyuta yenyewe lazima ijifunze jinsi bora ya kujifunza. Na, kwa kweli, hii ndiyo hasa neno "kina" linamaanisha. Takriban kila mara, neno hili linatumika kwa mitandao ya neva bandia inayotumia zaidi ya safu moja iliyofichwa, kwa hivyo "kirefu" pia inamaanisha usanifu wa kina wa mtandao wa neva.

Hapa kwenye slaidi ya ukuzaji unaweza kuona wazi jinsi ujifunzaji wa kina unavyotofautiana na ujifunzaji wa kawaida. narudia, Jambo la kipekee kuhusu kujifunza kwa kina ni kwamba mashine hupata vipengele vyenyewe(sifa muhimu za kitu ambacho ni rahisi kutenganisha tabaka moja la vitu kutoka kwa lingine) na hutengeneza ishara hizi kwa mpangilio: rahisi zaidi hujumuishwa kuwa ngumu zaidi. Hapo chini tutaangalia hili kwa mfano.

Wacha tuangalie mfano wa shida ya utambuzi wa picha: jinsi ilivyokuwa - tulijaza picha kubwa (1024 × 768 - takriban 800,000 za nambari za nambari) kwenye mtandao wa kawaida wa neural na safu moja na kutazama kompyuta ikifa polepole, ikishindwa na ukosefu. ya kumbukumbu na kutoweza kuelewa ni saizi zipi ni muhimu kwa utambuzi na zipi sio. Bila kutaja ufanisi wa njia hii. Hapa kuna usanifu wa mtandao wa kawaida wa neva (wa kina kifupi).

Kisha wakasikiliza jinsi ubongo unavyotofautisha vipengele, na hufanya hivyo kwa njia ya hali ya juu, na pia waliamua kutoa muundo wa uongozi kutoka kwa picha. Ili kufanya hivyo, ilihitajika kuongeza tabaka zilizofichwa zaidi (tabaka ambazo ziko kati ya pembejeo na pato; kwa kusema, hatua za mabadiliko ya habari) kwenye mtandao wa neva. Ingawa waliamua kufanya hivi mara moja wakati neurons zilivumbuliwa, basi mitandao iliyo na safu moja iliyofichwa ilifunzwa kwa mafanikio. Wale. Kimsingi, mitandao ya kina imekuwepo kwa muda mrefu kama ile ya kawaida, hatukuweza kuwafunza. Nini kimebadilika?

Mnamo 2006, watafiti kadhaa wa kujitegemea walitatua tatizo hili mara moja (mbali na hayo, uwezo wa vifaa ulikuwa tayari umetengenezwa vya kutosha, kadi za video zenye nguvu kabisa zilionekana). Watafiti hawa ni: Geoffrey Hinton (na mwenzake Ruslan Salakhutidinov) na mbinu ya kutoa mafunzo ya awali kwa kila safu ya mtandao wa neva na mashine ya Boltzmann iliyozuiliwa (nisamehe kwa masharti haya...), Yann LeCun na mitandao ya neva inayobadilika, na Yoshuay Bengio iliyo na visimbaji otomatiki vilivyoporomoka. Wawili wa kwanza waliajiriwa mara moja na Google na Facebook, mtawalia. Hapa kuna mihadhara miwili: moja - Hinton, ingine - Lyakuna, ambamo wanaeleza kujifunza kwa kina ni nini. Hakuna mtu anayeweza kukuambia juu ya hii bora kuliko wao. Mwingine baridi hotuba Schmidhuber kuhusu maendeleo ya kujifunza kwa kina, pia moja ya nguzo za sayansi hii. Na Hinton pia ana kozi bora juu ya neurons.

Wenye kina wanaweza kufanya nini? mitandao ya neva Sasa? Wana uwezo wa kutambua na kuelezea vitu; mtu anaweza kusema "wanaelewa" ni nini. Ni kuhusu kuhusu kutambua maana.

Tazama tu video hii ya utambuzi wa wakati halisi wa kile kamera inachoona.

Kama nilivyosema tayari, teknolojia za kujifunza kwa kina ni kundi zima la teknolojia na suluhisho. Tayari nimeorodhesha kadhaa kati yao katika aya hapo juu, mfano mwingine ni huu mitandao ya mara kwa mara, ambazo ndizo hasa zinazotumika kwenye video hapo juu kuelezea kile mtandao unaona. Lakini mwakilishi maarufu zaidi wa darasa hili la teknolojia bado ni mitandao ya neva ya LyaKun. Zimejengwa kwa mlinganisho na kanuni za uendeshaji wa gamba la kuona la ubongo wa paka, ambapo seli zinazojulikana kama rahisi ziligunduliwa ambazo hujibu kwa mistari ya moja kwa moja kwa pembe tofauti, na seli ngumu - majibu ambayo yanahusishwa na uanzishaji. ya seti fulani ya seli rahisi. Ingawa, kuwa waaminifu, LaCun mwenyewe hakuzingatia biolojia, alikuwa akitatua tatizo maalum (tazama mihadhara yake), na kisha yote yalifanana.

Ili kuiweka kwa urahisi sana, mitandao ya convolutional ni mitandao ambapo kipengele kikuu cha kimuundo cha kujifunza ni kikundi (mchanganyiko) wa neurons (kawaida mraba 3x3, 10x10, nk), na sio moja tu. Na katika kila ngazi ya mtandao, kadhaa ya vikundi kama hivyo vinafunzwa. Mtandao hupata michanganyiko ya niuroni ambayo huongeza maelezo kuhusu picha. Katika ngazi ya kwanza, mtandao hutoa vipengele vya msingi zaidi, vya kimuundo rahisi vya picha - mtu anaweza kusema, vitengo vya kujenga: mipaka, viboko, sehemu, tofauti. Juu juu tayari ni mchanganyiko thabiti wa vipengele vya ngazi ya kwanza, na kadhalika juu ya mnyororo. Ningependa kusisitiza kwa mara nyingine tena kipengele kikuu kujifunza kwa kina: mitandao yenyewe huunda vipengele hivi na kuamua ni ipi kati yao ni muhimu zaidi na ambayo sio. Hii ni muhimu kwa sababu katika uwanja wa kujifunza mashine, uundaji wa vipengele ni muhimu na sasa tunahamia kwenye hatua wakati kompyuta yenyewe inajifunza kuunda na kuchagua vipengele. Mashine yenyewe inabainisha safu ya vipengele vya habari.

Kwa hivyo, wakati wa mchakato wa kujifunza (kutazama mamia ya picha), mtandao wa ubadilishaji huunda safu ya vipengele vya viwango tofauti vya kina. Katika ngazi ya kwanza, wanaweza kuonyesha, kwa mfano, vipengele vile (kuonyesha tofauti, pembe, mpaka, nk).


Katika ngazi ya pili, hii itakuwa tayari kuwa kipengele kutoka kwa vipengele vya ngazi ya kwanza. Juu ya tatu - kutoka pili. Lazima uelewe kuwa picha hii ni onyesho tu. Sasa katika matumizi ya viwanda, mitandao hiyo ina kutoka kwa tabaka 10 hadi 30 (ngazi).

Baada ya mtandao kama huo kupata mafunzo, tunaweza kuutumia kwa uainishaji. Baada ya kutoa picha fulani kama ingizo, vikundi vya niuroni kwenye safu ya kwanza vinapita kwenye picha, vikiwashwa katika sehemu hizo ambapo kuna alama inayolingana. kipengele maalum kipengele cha picha. Wale. mtandao huu hugawanya picha katika sehemu - kwanza kwenye mistari, viboko, pembe za mwelekeo, kisha sehemu ngumu zaidi, na mwisho inakuja kumalizia kwamba picha kutoka kwa aina hii ya mchanganyiko wa vipengele vya msingi ni uso.

Zaidi kuhusu mitandao ya uwongo -

"(Manning Publications).

Nakala hiyo imekusudiwa watu ambao tayari wana uzoefu muhimu wa kujifunza kwa kina (kwa mfano, wale ambao tayari wamesoma sura ya 1-8 ya kitabu hiki). Kiasi kikubwa cha maarifa kinachukuliwa.

Kujifunza kwa Kina: Mtazamo wa kijiometri

Jambo la kushangaza zaidi kuhusu kujifunza kwa kina ni jinsi ilivyo rahisi. Miaka kumi iliyopita, hakuna mtu ambaye angeweza kufikiria matokeo ya kushangaza ambayo tungepata katika matatizo ya utambuzi wa mashine kwa kutumia mifano rahisi ya parametric iliyofunzwa na asili ya gradient. Sasa inageuka kuwa tunachohitaji ni kubwa ya kutosha mifano ya parametric iliyofunzwa kubwa ya kutosha idadi ya sampuli. Kama vile Feynman alivyowahi kusema kuhusu Ulimwengu: “ Sio ngumu, kuna mengi tu».

Katika kujifunza kwa kina, kila kitu ni vekta, ambayo ni, nukta V nafasi ya kijiometri. Data ya ingizo ya modeli (hii inaweza kuwa maandishi, picha, n.k.) na shabaha zake kwanza "zimebadilishwa", yaani, kutafsiriwa katika nafasi fulani ya awali ya vekta kama ingizo na nafasi ya vekta lengwa kama pato. Kila safu katika modeli ya kujifunza kwa kina hufanya mageuzi moja rahisi ya kijiometri kwenye data inayopita ndani yake. Pamoja, mlolongo wa tabaka za mfano huunda mageuzi moja ya kijiometri ngumu sana, yaliyogawanywa katika idadi rahisi. Mabadiliko haya changamano yanajaribu kubadilisha nafasi ya data ya ingizo kuwa nafasi inayolengwa, kwa kila nukta. Vigezo vya mabadiliko vinatambuliwa na uzito wa safu, ambayo husasishwa mara kwa mara kulingana na jinsi mtindo unavyofanya vizuri kwa sasa. Kipengele Muhimu mabadiliko ya kijiometri - inapaswa kuwa nini kutofautishwa, yaani, tunapaswa kujua vigezo vyake kupitia kushuka kwa gradient. Intuitively, hii ina maana kwamba morphing ya kijiometri lazima iwe laini na ya kuendelea-kikwazo muhimu.

Mchakato mzima wa kutumia mageuzi haya changamano ya kijiometri kwa data ya ingizo inaweza kuonyeshwa katika 3D kwa kuonyesha mtu anayejaribu kufunua mpira wa karatasi: mpira wa karatasi uliokunjamana ni aina mbalimbali za data ya ingizo ambayo modeli huanza kufanya kazi nayo. Kila harakati ya mtu aliye na mpira wa karatasi ni kama mabadiliko rahisi ya kijiometri yanayofanywa na safu moja. Mlolongo kamili wa ishara zinazojitokeza ni mabadiliko magumu ya mtindo mzima. Miundo ya ujifunzaji wa kina ni mashine za kihesabu za kutendua aina tata za data zenye nyanja nyingi.

Huo ndio uchawi wa kujifunza kwa kina: kugeuza thamani kuwa vekta, katika nafasi za kijiometri, na kisha kujifunza hatua kwa hatua mabadiliko changamano ya kijiometri ambayo hubadilisha nafasi moja hadi nyingine. Kinachohitajika ni nafasi ya ukubwa wa kutosha ili kuwasilisha anuwai kamili ya uhusiano unaopatikana katika data asili.

Mapungufu ya Kujifunza kwa Kina

Aina mbalimbali za matatizo ambayo yanaweza kutatuliwa kwa kutumia mkakati huu rahisi ni karibu kutokuwa na mwisho. Na bado, nyingi kati yao bado haziwezi kufikiwa na mbinu za sasa za kujifunza kwa kina - hata licha ya upatikanaji wa kiasi kikubwa cha data iliyofafanuliwa kwa mikono. Wacha tuseme, kwa mfano, kwamba unaweza kukusanya seti ya data ya mamia ya maelfu - hata mamilioni - ya maelezo ya kazi za lugha ya Kiingereza. programu, iliyoandikwa na wasimamizi wa bidhaa, pamoja na mwaka wa kumbukumbu unaolingana uliotengenezwa na timu za uhandisi ili kukidhi mahitaji haya. Hata ukiwa na data hii, huwezi kufunza modeli ya kujifunza kwa kina ili kusoma tu maelezo ya bidhaa na kutoa msingi wa kanuni unaolingana. Huu ni mfano mmoja tu kati ya mingi. Kwa ujumla, jambo lolote linalohitaji kufikiri - kama vile kupanga programu au kutumia mbinu ya kisayansi, upangaji wa muda mrefu, upotoshaji wa data kwa mtindo wa algoriti - ni zaidi ya uwezo wa miundo ya kujifunza kwa kina, haijalishi ni data ngapi unayotupa. Hata kufundisha mtandao wa neva kutekeleza algorithm ya kupanga ni kazi ngumu sana.

Sababu ni kwamba mtindo wa kujifunza kwa kina ni "pekee" mlolongo wa mabadiliko ya kijiometri rahisi, endelevu, ambayo hubadilisha nafasi moja ya vekta kuwa nyingine. Kinachoweza kufanya ni kubadilisha seti moja ya data X kuwa seti nyingine Y, mradi tu kuna uwezekano wa mabadiliko endelevu kutoka X hadi Y ambayo yanaweza kujifunza, na upatikanaji. seti mnene ya sampuli X: Mabadiliko ya Y kama data ya mafunzo. Kwa hivyo wakati mtindo wa kujifunza kwa kina unaweza kuzingatiwa kama aina ya programu, programu nyingi haziwezi kuonyeshwa kama mifano ya kujifunza kwa kina- kwa kazi nyingi hakuna mtandao wa kina wa neva ukubwa unaofaa, ambayo hutatua tatizo, au ikiwa iko, inaweza kuwa isiyofundishika, yaani, mabadiliko ya kijiometri sambamba yanaweza kuwa magumu sana, au hakuna data inayofaa ya kuifundisha.

Kuongeza mbinu zilizopo za kujifunza kwa kina—kuongeza tabaka zaidi na kutumia data zaidi ya mafunzo—kunaweza kupunguza tu baadhi ya matatizo haya. Haitasuluhisha tatizo la kimsingi zaidi kwamba miundo ya ujifunzaji wa kina ni mdogo sana katika kile inachoweza kuwakilisha, na kwamba programu nyingi haziwezi kuonyeshwa kama urekebishaji endelevu wa kijiometri wa aina mbalimbali za data.

Hatari ya Miundo ya Kujifunza ya Mashine ya Anthropomorphizing

Mojawapo ya hatari halisi ya AI ya kisasa ni kutafsiri vibaya jinsi miundo ya kujifunza kwa kina inavyofanya kazi na kutia chumvi uwezo wao. Kipengele cha msingi cha akili ya mwanadamu ni "mfano wa psyche ya binadamu," mwelekeo wetu wa malengo ya mradi, imani na ujuzi kwenye mambo yanayotuzunguka. Mchoro wa uso wa tabasamu kwenye jiwe ghafla hutufanya "furaha" - kiakili. Inapotumika kwa ujifunzaji wa kina, hii inamaanisha, kwa mfano, kwamba ikiwa tunaweza kutoa mafunzo kwa ufanisi zaidi au chini ya mfano ili kutoa maelezo ya maandishi ya picha, basi huwa tunafikiri kwamba mfano "unaelewa" maudhui ya picha, na vile vile. maelezo yaliyotolewa. Kisha tunashangaa sana wakati, kwa sababu ya kupotoka kidogo kutoka kwa seti ya picha iliyotolewa kwenye data ya mafunzo, mtindo huanza kutoa maelezo ya upuuzi kabisa.

Hasa, hii inaonekana wazi katika "mifano pinzani," ambayo ni sampuli za data ya ingizo ya mtandao wa kujifunza ambayo imechaguliwa mahususi ili kuainishwa vibaya. Tayari unajua kuwa unaweza kupanda daraja kwenye nafasi ya data ya ingizo ili kutoa sampuli zinazoongeza uanzishaji wa, kwa mfano, kichujio fulani cha mtandao wa neva - huu ndio msingi wa mbinu ya taswira tuliyoshughulikia katika Sura ya 5 (kumbuka: vitabu. "Kujifunza kwa Kina na Chatu") , kama tu algoriti ya Ndoto ya Kina kutoka Sura ya 8. Vivyo hivyo, kupitia upandaji wa daraja, unaweza kubadilisha picha kidogo ili kuongeza utabiri wa darasa kwa darasa fulani. Ikiwa tutapiga picha ya panda na kuongeza upinde wa mvua wa "gibbon", tunaweza kulazimisha mtandao wa neva kuainisha panda hiyo kama giboni. Hii inaonyesha udhaifu wa miundo hii na tofauti kubwa kati ya mabadiliko ya ingizo hadi pato inayoongoza na mitazamo yetu wenyewe ya kibinadamu.

Kwa ujumla, mifano ya kujifunza kwa kina haina ufahamu wa data ya pembejeo, kulingana na angalau, si kwa maana ya kibinadamu. Uelewa wetu wenyewe wa picha, sauti, lugha, unategemea uzoefu wetu wa sensorimotor kama watu - kama viumbe vya kidunia. Miundo ya mashine ya kujifunza haina ufikiaji wa uzoefu kama huo na kwa hivyo haiwezi "kuelewa" data yetu ya ingizo kwa njia yoyote kama ya mwanadamu. Kwa kudokeza idadi kubwa ya mifano kwa miundo yetu kutoa mafunzo, tunawalazimisha kujifunza mabadiliko ya kijiometri ambayo hupunguza data kwa dhana za binadamu kwa seti hiyo mahususi ya mifano, lakini mabadiliko haya ni mchoro uliorahisishwa tu. mfano asili akili zetu, kama zilivyokuzwa kutokana na uzoefu wetu kama mawakala wa mwili, ni kama kutafakari hafifu kwenye kioo.

Kama mtaalamu wa kujifunza kwa mashine, kumbuka hili kila mara, na usiwahi kuingia katika mtego wa kuamini kwamba mitandao ya neva inaelewa kazi inayofanya - haielewi, angalau si kwa njia inayoeleweka kwetu. Wamefunzwa juu ya kazi tofauti, mahususi zaidi kuliko ile tunayotaka kuwafunza: kubadilisha tu mifumo ya ujifunzaji ya kuingiza katika mifumo lengwa ya ujifunzaji, kuelekeza kwa uhakika. Waonyeshe chochote ambacho ni tofauti na data ya mafunzo na watavunja kwa njia za kipuuzi zaidi.

Ujumla wa eneo dhidi ya ujanibishaji uliokithiri

Inaonekana kuna tofauti za kimsingi kati ya urekebishaji wa moja kwa moja wa kijiometri kutoka kwa pembejeo hadi matokeo ambayo miundo ya kujifunza kwa kina hufanya na jinsi wanadamu wanavyofikiri na kujifunza. Sio tu kwamba watu hujifunza wenyewe kutoka kwa uzoefu wao wa mwili, na sio kwa usindikaji wa seti ya sampuli za mafunzo. Mbali na tofauti katika michakato ya kujifunza, kuna tofauti za kimsingi katika asili ya imani za msingi.

Wanadamu wanaweza kufanya mengi zaidi ya kutafsiri kichocheo cha papo hapo kuwa jibu la papo hapo, kama vile mtandao wa neva au labda wadudu. Watu wanashikilia katika akili zao ngumu, mifano ya kufikirika hali ya sasa, wao wenyewe, watu wengine, na wanaweza kutumia mifano hii kutabiri mustakabali mbalimbali unaowezekana, na kutekeleza mipango ya muda mrefu. Wana uwezo wa kuchanganya dhana zinazojulikana ili kufikiria kitu ambacho hawajawahi kujua hapo awali - kama kuchora farasi katika jeans, kwa mfano, au kuonyesha kile ambacho wangefanya ikiwa wangeshinda bahati nasibu. Uwezo wa kufikiria kidhahania, kupanua kielelezo chetu cha nafasi ya kiakili zaidi ya yale ambayo tumepitia moja kwa moja, ambayo ni, uwezo wa kufanya. vifupisho Na hoja, labda sifa inayobainisha ya utambuzi wa binadamu. Ninaita hii "ujumla wa mwisho": uwezo wa kukabiliana na hali mpya, ambazo hazijawahi kutokea kwa kutumia data kidogo au kutokuwepo kabisa.

Hii ni tofauti kabisa na kile mitandao ya ujifunzaji wa kina hufanya, ambayo ningeiita "ujumla wa ndani": kubadilisha data ya ingizo kuwa data ya matokeo hukoma haraka kuwa na maana ikiwa data mpya ya ingizo ni tofauti kidogo na ile iliyokutana nayo wakati wa mafunzo. Fikiria, kwa mfano, tatizo la kujifunza vigezo vinavyofaa vya uzinduzi wa roketi ambayo inapaswa kutua kwenye Mwezi. Ikiwa ungetumia mtandao wa neva kwa kazi hii, iliyosimamiwa au kuimarisha mafunzo, utahitaji kutoa maelfu au mamilioni ya njia za ndege, yaani, utahitaji kuzalisha. seti mnene ya mifano katika nafasi ya thamani ya ingizo ili kujifunza jinsi ya kubadilisha kwa uhakika kutoka nafasi ya thamani ya ingizo hadi nafasi ya thamani ya pato. Kinyume chake, wanadamu wanaweza kutumia nguvu ya uchukuaji kuunda mifano ya kimwili- sayansi ya roketi - na kupata suluhisho kamili ambalo litachukua roketi hadi Mwezini kwa majaribio machache tu. Vivyo hivyo, ikiwa ulibuni mtandao wa neva ili kudhibiti mwili wa mwanadamu na kutaka ujifunze jinsi ya kutembea kwa usalama kupitia jiji bila kugongwa na gari, mtandao huo utalazimika kufa mara elfu nyingi katika hali tofauti kabla yake. inaweza kuhitimisha kuwa magari ni hatari na yanafeli tabia ifaayo ya kuyaepuka. Iwapo ingehamishwa hadi katika jiji jipya, mtandao huo ungelazimika kujifunza upya mengi uliyojua. Kwa upande mwingine, watu wanaweza kujifunza tabia salama bila kufa kamwe - tena, shukrani kwa nguvu ya simulation ya kufikirika ya hali dhahania.

Kwa hivyo, licha ya maendeleo yetu katika mtazamo wa mashine, bado tuko mbali sana na AI ya kiwango cha binadamu: mifano yetu inaweza tu kufanya kazi. ujanibishaji wa ndani, kukabiliana na hali mpya ambazo lazima ziwe karibu sana na data za zamani, wakati akili ya mwanadamu ina uwezo ujanibishaji uliokithiri, haraka kukabiliana na hali mpya kabisa au kupanga mipango ya mbali katika siku zijazo.

hitimisho

Hapa ndio unahitaji kukumbuka: mafanikio pekee ya kweli ya kujifunza kwa kina hadi sasa ni uwezo wa kutafsiri nafasi ya X hadi nafasi ya Y kwa kutumia mabadiliko ya kijiometri ya kuendelea, kutokana na kiasi kikubwa cha data ya kibinadamu. Kufanya hivi vizuri kunawakilisha maendeleo ya kimapinduzi kwa tasnia nzima, lakini AI ya kiwango cha binadamu bado iko mbali.

Ili kuondoa baadhi ya vikwazo hivi na kuanza kushindana na ubongo wa binadamu, tunahitaji kuondokana na ubadilishaji wa moja kwa moja wa ingizo hadi pato na kuhamia hoja Na vifupisho. Programu za kompyuta zinaweza kuwa msingi unaofaa wa kuiga hali na dhana mbalimbali. Tumesema hapo awali (kumbuka: katika Kujifunza kwa kina na Python) kwamba mifano ya kujifunza kwa mashine inaweza kufafanuliwa kama "programu zinazojifunza"; kwa sasa tunaweza tu kutoa mafunzo kwa sehemu ndogo na maalum ya programu zote zinazowezekana. Lakini vipi ikiwa tunaweza kutoa mafunzo kwa kila programu, kwa utaratibu na mara kwa mara? Hebu tuone jinsi tunaweza kufika huko.

Mustakabali wa Mafunzo ya Kina

Kwa kuzingatia kile tunachojua kuhusu jinsi mitandao ya kujifunza kwa kina inavyofanya kazi, mapungufu yake, na hali ya sasa utafiti wa kisayansi, tunaweza kutabiri nini kitatokea katika muda wa kati? Haya hapa ni baadhi ya mawazo yangu ya kibinafsi kuhusu jambo hilo. Kumbuka kwamba sina mpira wa kioo wa utabiri, kwa hivyo mengi ninayotarajia yanaweza yasitimie. Huu ni uvumi kamili. Ninashiriki utabiri huu si kwa sababu ninatarajia utimizwe kikamilifu katika siku zijazo, lakini kwa sababu unavutia na unatumika kwa sasa.

Kwa kiwango cha juu, hapa kuna maeneo makuu ambayo ninazingatia kuahidi:

  • Mifano itakaribia programu za kompyuta madhumuni ya jumla, yaliyojengwa juu ya mali asili tajiri zaidi kuliko tabaka zetu za sasa zinazoweza kutofautishwa - hivi ndivyo tunavyopata hoja Na vifupisho, kutokuwepo ambayo ni udhaifu wa msingi wa mifano ya sasa.
  • Njia mpya za kujifunza zitatokea ambazo zitafanya hili liwezekane - na kuruhusu mifano kuondokana na mabadiliko yanayoweza kutofautishwa.
  • Miundo itahitaji uingizaji mdogo wa msanidi - haipaswi kuwa kazi yako kupindisha vifundo kila mara.
  • Kutakuwa na matumizi makubwa zaidi, ya kimfumo ya vipengele vilivyojifunza na usanifu; mifumo ya kujifunza meta kulingana na taratibu zinazoweza kutumika tena na za kawaida.
Zaidi ya hayo, kumbuka kuwa mambo haya yanayozingatiwa hayatumiki mahususi kwa mafunzo yanayosimamiwa, ambayo bado ni msingi wa kujifunza kwa mashine—pia yanatumika kwa aina yoyote ya kujifunza kwa mashine, ikiwa ni pamoja na kujifunza bila kusimamiwa, mafunzo yanayosimamiwa na ujifunzaji wa uimarishaji. Haijalishi kimsingi lebo zako zinatoka wapi au mzunguko wako wa kujifunza unaonekanaje; matawi haya tofauti ya kujifunza kwa mashine ni sehemu tofauti za muundo sawa.

Kwa hiyo, endelea.

Mifano kama programu

Kama tulivyoona hapo awali, maendeleo ya lazima ya mabadiliko ambayo yanaweza kutarajiwa katika uwanja wa kujifunza kwa mashine ni kuondoka kutoka kwa mifano inayofanya kazi kikamilifu. utambuzi wa muundo na uwezo tu wa ujanibishaji wa ndani, kwa wanamitindo wenye uwezo vifupisho Na hoja ambayo inaweza kufikia jumla ya mwisho. Mipango yote ya sasa ya AI yenye hoja za msingi ni ngumu-coded na waandaaji wa programu za binadamu: kwa mfano, programu zinazotegemea algorithms ya utafutaji, udanganyifu wa grafu, mantiki rasmi. Katika mpango wa AlphaGo wa DeepMind, kwa mfano, sehemu kubwa ya "akili" ya skrini imeundwa na kuwekwa kwa bidii na watengeneza programu wataalam (kwa mfano, utafutaji wa miti ya Monte Carlo); Kujifunza kutoka kwa data mpya hutokea tu katika moduli ndogo maalum - mitandao ya thamani na mitandao ya sera. Lakini katika siku zijazo, mifumo kama hiyo ya AI inaweza kufunzwa kabisa bila kuingilia kati kwa mwanadamu.

Jinsi ya kufikia hili? Hebu tuichukue vizuri aina maarufu mitandao: RNN. Muhimu, RNN zina mapungufu kidogo kuliko mitandao ya neural ya feedforward. Hii ni kwa sababu RNN ni zaidi ya mabadiliko rahisi ya kijiometri: ni mabadiliko ya kijiometri ambayo kutekelezwa mfululizo kwa kitanzi. Muda wa kitanzi umebainishwa na msanidi programu: ni dhana iliyojengwa ndani ya mtandao. Kwa kawaida, RNN bado ni mdogo katika kile wanachoweza kuwakilisha, hasa kwa sababu kila hatua wanayochukua bado ni mabadiliko ya kijiometri ya kutofautisha na kwa sababu ya njia ya wao kuwasilisha taarifa hatua kwa hatua kupitia pointi katika nafasi ya kijiometri inayoendelea ( vekta za serikali). Sasa fikiria mitandao ya neva ambayo "itapanuliwa" na vifaa vya kwanza vya programu kwa njia sawa na kwa vitanzi- lakini sio tu kificho kigumu cha kitanzi kilicho na kumbukumbu ya kijiometri iliyounganishwa, lakini seti kubwa ya programu za awali ambazo modeli inaweza kupata kwa uhuru kupanua uwezo wake wa usindikaji, kama vile matawi, huku kauli, kuunda vigezo, hifadhi ya diski kwa kumbukumbu ya muda mrefu, upangaji wa waendeshaji, miundo ya data ya hali ya juu kama orodha, grafu, jedwali la hashi na mengi zaidi. Nafasi ya programu ambazo mtandao kama huo unaweza kuwakilisha itakuwa pana zaidi kuliko inavyoweza kuonyeshwa mitandao iliyopo kujifunza kwa kina, na baadhi ya programu hizi zinaweza kufikia nguvu bora ya jumla.

Kwa kifupi, tutaondokana na ukweli kwamba tuna, kwa upande mmoja, "akili ya algorithmic ngumu" (programu iliyoandikwa kwa mkono), na kwa upande mwingine, "akili ya kijiometri iliyofunzwa" (kujifunza kwa kina). Badala yake, tutaishia na mchanganyiko wa moduli rasmi za algorithmic ambazo hutoa uwezo hoja Na vifupisho, na moduli za kijiometri zinazotoa uwezo Intuition isiyo rasmi na utambuzi wa muundo. Mfumo mzima utafunzwa kwa uingiliaji mdogo au bila mwanadamu.

Sehemu inayohusiana ya AI ambayo nadhani inaweza kupiga hatua kubwa hivi karibuni usanisi wa programu, hasa, usanisi wa programu za neva. Usanisi wa programu hujumuisha kuzalisha kiotomatiki programu rahisi, kwa kutumia algorithm ya utaftaji (ikiwezekana utaftaji wa kijeni, kama katika upangaji wa kijeni) kusoma nafasi kubwa mipango inayowezekana. Utafutaji hukoma programu inapopatikana ambayo inakidhi vipimo vinavyohitajika, mara nyingi hutolewa kama seti ya jozi za pembejeo-pato. Kama unavyoona, hii ni sawa na kujifunza kwa mashine: "data ya mafunzo" hutolewa kama jozi za pato-ingizo, tunapata "mpango" ambao unalingana na mabadiliko ya ingizo hadi matokeo na unaweza kuongeza jumla kwa ingizo mpya. Tofauti ni kwamba badala ya mafunzo ya maadili ya parameta katika programu iliyo na kanuni ngumu (mtandao wa neural), tunatoa chanzo kupitia mchakato wa utafutaji wa kipekee.

Kwa hakika ninatarajia kutakuwa na maslahi mengi katika eneo hili tena katika miaka michache ijayo. Hasa, natarajia kupenya kwa pande zote maeneo yanayohusiana ujifunzaji wa kina na usanisi wa programu, ambapo hatutatengeneza programu tu katika lugha za kusudi la jumla, lakini ambapo tutatengeneza mitandao ya neva (mikondo ya usindikaji wa data ya kijiometri), kuongezewa seti tajiri ya primitives ya algorithmic, kama vile vitanzi - na wengine wengi. Hii inapaswa kuwa rahisi zaidi na yenye manufaa zaidi kuliko kuzalisha msimbo wa chanzo cha moja kwa moja, na itapanua kwa kiasi kikubwa wigo wa matatizo ambayo yanaweza kutatuliwa kwa kutumia mashine ya kujifunza - nafasi ya programu ambazo tunaweza kuzalisha moja kwa moja, kutokana na data sahihi ya mafunzo. Mchanganyiko wa AI ya mfano na AI ya kijiometri. RNN za kisasa zinaweza kuzingatiwa kama babu wa kihistoria wa mifano ya mseto ya algorithmic-jiometri.


Kuchora: Mpango uliofunzwa wakati huo huo unategemea primitives ya kijiometri (utambuzi wa muundo, angavu) na primitives ya algorithmic (hoja, utafutaji, kumbukumbu).

Zaidi ya uenezi wa nyuma na tabaka zinazoweza kutofautishwa

Iwapo miundo ya kujifunza kwa mashine itakuwa kama programu, basi haitaweza kutofautishwa tena—kwa hakika programu hizo bado zitatumia tabaka za kijiometri zinazoendelea kama njia ndogo ambazo zitabaki kutofautishwa, lakini muundo wa jumla hautakuwa. Kama matokeo, kutumia uenezaji nyuma kurekebisha maadili ya uzani katika mtandao uliowekwa, ulio na nambari ngumu inaweza kubaki njia inayopendekezwa ya mifano ya mafunzo katika siku zijazo - angalau, haipaswi kupunguzwa kwa njia hii pekee. Tunahitaji kufikiria jinsi ya kutoa mafunzo kwa mifumo isiyoweza kutofautishwa kwa ufanisi zaidi. Mbinu za sasa ni pamoja na kanuni za kijeni, "mikakati ya mageuzi", mbinu fulani za uimarishaji wa kujifunza, ADMM (mbinu ya mwelekeo mbadala ya vizidishi vya Lagrange). Kwa kawaida, ukoo wa upinde rangi upo hapa - maelezo ya upinde rangi yatakuwa ya manufaa kila wakati kwa ajili ya kuboresha vitendaji vinavyotofautiana vya parametric. Lakini miundo yetu bila shaka itakuwa ya kutamanika zaidi kuliko vitendaji vinavyoweza kutofautishwa tu, na kwa hivyo ukuzaji wao wa kiotomatiki ("mafunzo" katika "kujifunza kwa mashine") utahitaji zaidi ya uenezaji wa nyuma.

Zaidi ya hayo, uenezaji wa nyuma una mfumo wa mwisho hadi mwisho, ambao unafaa kwa ajili ya kujifunza mabadiliko mazuri yaliyounganishwa, lakini haufanyi kazi kwa ufanisi kwa sababu hautumii kikamilifu utaratibu wa mitandao ya kina. Ili kuongeza ufanisi wa kitu chochote, kuna kichocheo kimoja cha ulimwengu wote: kuanzisha modularity na uongozi. Ili tuweze kufanya uenezaji wenyewe kwa ufanisi zaidi kwa kuanzisha moduli za kujifunza zilizotenganishwa na utaratibu fulani wa ulandanishi kati yao, uliopangwa kwa njia ya daraja. Mkakati huu unaonyeshwa kwa sehemu katika kazi ya hivi majuzi ya DeepMind kuhusu "gradients sanisi." Natarajia mengi, mengi kazi zaidi katika mwelekeo huu katika siku za usoni.

Mtu anaweza kufikiria siku zijazo ambapo mifano isiyoweza kutofautishwa ya kimataifa (lakini iliyo na sehemu zinazoweza kutofautishwa) itajifunza - kukua - kwa kutumia mchakato mzuri wa utaftaji ambao hautumii gradient, wakati sehemu zinazoweza kutofautishwa zitajifunza haraka zaidi kwa kutumia gradient kwa kutumia matoleo bora zaidi ya uenezaji.

Kujifunza kwa Mashine ya Kiotomatiki

Katika siku zijazo za usanifu, mifano itaundwa kwa kujifunza, badala ya kuandikwa kwa mkono na wahandisi. Miundo inayotokana huunganishwa kiotomatiki na seti tajiri zaidi za miundo ya awali na miundo ya kujifunza ya mashine inayofanana na programu.

Siku hizi, wakati mwingi, msanidi wa mfumo wa ujifunzaji wa kina hurekebisha data bila mwisho na hati za Python, kisha hutumia muda mrefu kurekebisha usanifu na hyperparameta za mtandao wa kujifunza kwa kina ili kupata mtindo wa kufanya kazi - au hata kupata mfano bora ikiwa msanidi programu. ni kabambe sana. Bila kusema, hii sio hali bora ya mambo. Lakini AI inaweza kusaidia hapa pia. Kwa bahati mbaya, sehemu ya uchakataji na utayarishaji wa data ni ngumu kufanyia kazi kiotomatiki kwa sababu mara nyingi huhitaji maarifa ya kikoa pamoja na uelewa wazi wa kiwango cha juu wa kile ambacho msanidi anataka kufikia. Walakini, urekebishaji wa hyperparameta ni utaratibu rahisi wa utaftaji, na ndani kwa kesi hii tayari tunajua kile msanidi anataka kufikia: hii imedhamiriwa na utendakazi wa upotezaji wa mtandao wa neva unaohitaji kusanidiwa. Sasa imekuwa mazoea ya kawaida kusakinisha mifumo ya msingi ya AutoML, ambayo inashughulikia zaidi urekebishaji wa mipangilio ya modeli. Nilijisakinisha ili kushinda shindano la Kaggle.

Katika kiwango cha msingi zaidi, mfumo kama huo ungerekebisha tu idadi ya safu kwenye safu, mpangilio wao na idadi ya vipengee au vichungi katika kila safu. Hii kawaida hufanywa kwa kutumia maktaba kama Hyperopt, ambayo tulijadili katika Sura ya 7 (kumbuka: vitabu "Kujifunza kwa kina na Python"). Lakini unaweza kwenda zaidi na kujaribu kujifunza usanifu unaofaa kutoka mwanzo, na seti ya chini ya vikwazo. Hii inawezekana kwa kutumia ujifunzaji wa kuimarisha, kwa mfano, au kutumia kanuni za kijeni.

Mwelekeo mwingine muhimu katika maendeleo ya AutoML ni mafunzo ya usanifu wa mfano wakati huo huo na uzito wa mfano. Kwa kutoa mafunzo kwa modeli kutoka mwanzo tunajaribu usanifu tofauti kidogo kila wakati, ambao haufanyi kazi vizuri, kwa hivyo mfumo wenye nguvu wa AutoML utadhibiti mabadiliko ya usanifu huku sifa za kielelezo zikisanishwa kupitia uenezaji wa nyuma kwenye data ya mafunzo, na hivyo kuondoa kazi zote za kukokotoa. Ninapoandika mistari hii, mbinu kama hizo tayari zimeanza kutumika.

Wakati haya yote yanapoanza kutokea, watengenezaji wa mifumo ya kujifunza mashine hawataachwa bila kazi - watahamia zaidi ngazi ya juu katika mnyororo wa thamani. Wataanza kuweka mengi zaidi juhudi zaidi kwa uumbaji kazi ngumu hasara ambazo zinaonyesha changamoto za biashara kikweli, na watakuwa na uelewa wa kina wa jinsi miundo yao inavyoathiri mifumo ya kidijitali ambamo wanafanya kazi (kwa mfano, wateja wanaonufaika kutokana na ubashiri wa modeli na kutoa data ya kuifunza) - masuala ambayo sasa ni Pekee makampuni makubwa yanaweza kumudu kuzingatia.

Kujifunza kwa maisha yote na kutumia tena taratibu za kawaida

Iwapo miundo itakuwa ngumu zaidi na kujengwa kwa misingi bora ya algorithmic, basi uchangamano huu ulioongezeka utahitaji utumiaji wa kina zaidi kati ya kazi, badala ya kufundisha muundo kutoka mwanzo kila wakati tuna kazi au kazi mpya. seti mpya data. Hatimaye, hifadhidata nyingi hazina maelezo ya kutosha kuunda muundo mpya changamano kuanzia mwanzo na itakuwa muhimu kutumia taarifa kutoka kwa seti za awali za data. Hujifunzi tena Kiingereza kila unapokifungua. kitabu kipya- itakuwa haiwezekani. Kwa kuongeza, mifano ya mafunzo kutoka mwanzo juu ya kila tatizo jipya haifai sana kutokana na mwingiliano mkubwa kati ya matatizo ya sasa na yale yaliyokutana hapo awali.

Aidha, katika miaka iliyopita Uchunguzi wa ajabu umefanywa mara kwa mara kwamba kufundisha mtindo huo kufanya kazi kadhaa zilizounganishwa bila usawa huboresha utendaji wake. katika kila moja ya kazi hizi. Kwa mfano, kufundisha mtandao huo wa neural kutafsiri kutoka Kiingereza hadi Kijerumani na kutoka Kifaransa hadi Kiitaliano kutasababisha muundo ambao ni bora zaidi katika kila jozi hizi za lugha. Kufunza muundo wa uainishaji wa picha wakati huo huo na muundo wa sehemu za picha, na msingi mmoja wa ubadilishaji, kutasababisha muundo ambao ni bora katika kazi zote mbili. Nakadhalika. Hii ni angavu kabisa: kuna daima aina fulani habari inayopishana kati ya kazi hizi mbili zinazoonekana kuwa tofauti, na kwa hivyo mfano wa jumla ina ufikiaji zaidi habari kuhusu kila kazi ya mtu binafsi kuliko mfano ambao ulifunzwa tu juu ya kazi hiyo maalum.

Tunafanya nini hasa tunapotumia tena modeli kazi mbalimbali ah, kwa hivyo tunatumia uzani uliofunzwa mapema kwa mifano inayofanya kazi kazi za jumla, kama uchimbaji ishara za kuona. Uliona hili katika mazoezi katika Sura ya 5. Ninatarajia kwamba toleo la jumla zaidi la mbinu hii litatumika kwa kawaida katika siku zijazo: hatutatumia tu vipengele vilivyojifunza hapo awali (uzito wa submodel), lakini pia usanifu wa mfano na taratibu za mafunzo. Kadiri miundo inavyozidi kufanana na programu, tutaanza kutumia tena taratibu ndogo, kama vitendaji na madarasa katika lugha za kawaida za upangaji.

Fikiria juu ya jinsi mchakato wa ukuzaji wa programu unavyoonekana leo: mara tu mhandisi anatatua shida fulani (maombi ya HTTP katika Python, kwa mfano), anaiweka kama maktaba ya dhahania ya kutumiwa tena. Wahandisi ambao watakutana katika siku zijazo tatizo sawa, tafuta tu maktaba zilizopo, pakua na uzitumie katika miradi yao wenyewe. Vile vile, katika siku zijazo, mifumo ya kujifunza meta itaweza kukusanya programu mpya kwa kuchuja maktaba ya kimataifa ya vizuizi vya kiwango cha juu vinavyoweza kutumika tena. Iwapo mfumo utaanza kutengeneza taratibu zinazofanana kwa kazi kadhaa tofauti, utatoa toleo la kawaida la "abstract" linaloweza kutumika tena na kuihifadhi katika maktaba ya kimataifa. Utaratibu huu utafungua fursa kwa vifupisho, kipengele muhimu kwa ajili ya kufikia "ujumla wa mwisho": utaratibu ambao utakuwa wa manufaa kwa kazi nyingi na vikoa unaweza kusemwa kuwa "kidhahiri" baadhi ya vipengele vya kufanya maamuzi. Ufafanuzi huu wa "kuondoa" haionekani kuwa dhana ya uondoaji katika ukuzaji wa programu. Taratibu hizi zinaweza kuwa za kijiometri (moduli za kujifunza kwa kina zilizo na uwasilishaji uliofunzwa mapema) au algoriti (karibu na maktaba ambazo watengeneza programu wa kisasa hufanya kazi nazo).

Kuchora: Mfumo wa mafunzo ya meta ambao unaweza kuunda miundo mahususi kwa haraka kwa kutumia vifaa vya awali vinavyoweza kutumika tena (algorithmic na kijiometri), na hivyo kufikia "jumla ya mwisho."

Matokeo: maono ya muda mrefu

Kwa kifupi, hapa kuna maono yangu ya muda mrefu ya kujifunza kwa mashine:
  • Miundo itafanana zaidi na programu na itakuwa na uwezo unaoendelea zaidi ya mabadiliko ya kijiometri ya data chanzo tunayofanyia kazi sasa. Labda programu hizi zitakuwa karibu zaidi na mifano ya kiakili ambayo watu hushikilia juu ya mazingira yao na wao wenyewe, na watakuwa na uwezo wa kuongeza nguvu kwa sababu ya asili yao ya algorithmic.
  • Hasa, mifano itachanganya moduli za algorithmic na hoja rasmi, utaftaji, uwezo wa kujiondoa - na moduli za kijiometri na angavu isiyo rasmi na utambuzi wa muundo. AlphaGo (mfumo uliohitaji usanifu wa kina wa programu na usanifu) hutoa mfano wa mapema wa jinsi uunganisho wa AI ya ishara na kijiometri inaweza kuonekana.
  • Watafanya hivyo kukua kiotomatiki (badala ya kuandikwa kwa mkono na watayarishaji programu wa binadamu), kwa kutumia sehemu za kawaida kutoka kwa maktaba ya kimataifa ya taratibu zinazoweza kutumika tena - maktaba ambayo imetolewa kwa kuiga miundo ya utendaji wa juu kutoka kwa maelfu ya matatizo na seti za data za awali. Mara tu mfumo wa uchumaji chuma unapotambua mifumo ya kawaida ya utatuzi wa matatizo, hubadilishwa kuwa taratibu zinazoweza kutumika tena - kama vile kazi na madarasa katika programu za kisasa- na kuongezwa kwenye maktaba ya kimataifa. Hivi ndivyo uwezo unavyopatikana vifupisho.
  • Maktaba ya kimataifa na mfumo unaohusika wa kukua wa kielelezo utaweza kufikia aina fulani ya "ujanibishaji wa mwisho" unaofanana na binadamu: unapokabiliwa na kazi mpya, hali mpya, mfumo utaweza kukusanya muundo mpya wa kufanya kazi kwa kazi hiyo kwa kutumia. data kidogo sana, shukrani kwa: 1) watangulizi wa programu-kama, ambao hujumlisha vizuri na 2) uzoefu wa kina katika kutatua matatizo sawa. Kwa njia ile ile ambayo watu wanaweza kujifunza kwa haraka mchezo mpya changamano wa video kwa sababu wana uzoefu wa awali wa michezo mingine mingi na kwa sababu miundo inayotokana na matumizi ya awali ni ya kufikirika na kama programu badala ya mabadiliko rahisi kichocheo katika hatua.
  • Kimsingi, mfumo huu wa kukuza kielelezo unaoendelea kujifunza unaweza kufasiriwa kama Akili Imara ya Bandia. Lakini usitarajie kuanza kwa aina fulani ya apocalypse ya kipekee ya roboti: ni fikira tupu, ambayo ilizaliwa kutoka. orodha kubwa kutokuelewana kwa kina katika kuelewa akili na teknolojia. Walakini, ukosoaji huu hauna nafasi hapa.

Kuna mazungumzo na maandishi mengi kuhusu mitandao ya neva bandia leo, katika muktadha wa data kubwa na kujifunza kwa mashine na nje yake. Katika makala hii, tutakumbuka maana ya dhana hii, kwa mara nyingine tena kuelezea upeo wa matumizi yake, na pia kuzungumza juu ya mbinu muhimu ambayo inahusishwa na mitandao ya neural - kujifunza kwa kina, tutaelezea dhana yake, pamoja na faida. na hasara katika kesi maalum za matumizi.

Mtandao wa neva ni nini?

Kama unavyojua, wazo la mtandao wa neva (NN) hutoka kwa biolojia na ni mfano uliorahisishwa wa muundo. ubongo wa binadamu. Lakini wacha tusizame kwenye pori la sayansi asilia - njia rahisi ni kufikiria neuron (pamoja na ile ya bandia) kama aina ya kisanduku cheusi kilicho na mashimo mengi ya kuingiza na pato moja.

Kihisabati, neuroni ya bandia hufanya mabadiliko ya vekta ishara za pembejeo(athari) X kwenye vekta ya pato Y kwa kutumia chaguo la kukokotoa liitwalo kitendakazi cha kuwezesha. Ndani ya muunganisho (mtandao wa neva bandia - ANN), aina tatu za kazi ya niuroni: ingizo (kupokea taarifa kutoka ulimwengu wa nje- maadili ya anuwai tunayopendezwa nayo), pato (kurudisha vijiti vinavyohitajika - kwa mfano, utabiri, au ishara za kudhibiti), na vile vile niuroni za kati ambazo hufanya kazi fulani za ndani ("zilizofichwa"). ANN ya classical hivyo ina tabaka tatu au zaidi za neurons, na katika safu ya pili na inayofuata ("iliyofichwa" na pato), kila kipengele kinaunganishwa na vipengele vyote vya safu ya awali.

Ni muhimu kukumbuka dhana maoni, ambayo huamua aina ya muundo wa ANN: maambukizi ya moja kwa moja ya ishara (ishara huenda kwa mlolongo kutoka kwa safu ya pembejeo kupitia safu iliyofichwa na kuingia safu ya pato) na muundo wa mara kwa mara, wakati mtandao una miunganisho ya kurudi nyuma, kutoka kwa niuroni za mbali zaidi hadi karibu zaidi). Dhana hizi zote zinajumuisha maelezo ya chini muhimu ili kuhamia ngazi inayofuata ya kuelewa ANN - kufundisha mtandao wa neural, kuainisha mbinu zake na kuelewa kanuni za uendeshaji wa kila mmoja wao.

Mafunzo ya mtandao wa neva

Hatupaswi kusahau kwa nini kategoria kama hizo zinatumiwa kwa ujumla - vinginevyo kuna hatari ya kukwama katika hesabu ya kufikirika. Kwa kweli, mitandao ya neural ya bandia inaeleweka kama darasa la njia za kutatua shida fulani za vitendo, kati ya hizo kuu ni shida za utambuzi wa muundo, kufanya maamuzi, makadirio na ukandamizaji wa data, na pia shida zinazovutia zaidi kwetu za uchambuzi wa nguzo. na utabiri.

Bila kwenda kwa uliokithiri na bila kuingia katika maelezo ya utendakazi wa njia za ANN katika kila kisa maalum, wacha tujikumbushe kuwa chini ya hali yoyote, ni uwezo wa mtandao wa neva kujifunza (na mwalimu au "peke yake. ”) hilo ndilo jambo kuu katika kuitumia kutatua matatizo ya vitendo .

Kwa ujumla, mafunzo ya ANN ni kama ifuatavyo:

  1. neurons za pembejeo hupokea vigezo ("vichocheo") kutoka kwa mazingira ya nje;
  2. kwa mujibu wa taarifa zilizopokelewa, vigezo vya bure vya mabadiliko ya mtandao wa neural (tabaka za kati za neurons hufanya kazi);
  3. Kama matokeo ya mabadiliko katika muundo wa mtandao wa neva, mtandao "humenyuka" kwa habari kwa njia tofauti.

Hii ndio algorithm ya jumla ya kufundisha mtandao wa neva (tukumbuke mbwa wa Pavlov - ndio, ndio, utaratibu wa ndani wa malezi ya hali ya hali ya juu ni hivyo - na tusahau mara moja: baada ya yote, muktadha wetu unahusisha kufanya kazi. dhana za kiufundi na mifano).

Ni wazi kwamba algorithm ya kujifunza kwa wote haipo na, uwezekano mkubwa, haiwezi kuwepo; Kidhana, mbinu za kujifunza zimegawanywa katika ujifunzaji unaosimamiwa na ujifunzaji usiosimamiwa. Algorithm ya kwanza inadhani kuwa kwa kila vekta ya pembejeo ("kujifunza") kuna thamani inayotakiwa ya vekta ya pato ("lengo") - kwa hivyo, maadili haya mawili huunda jozi ya mafunzo, na seti nzima ya jozi kama hizo ni seti ya mafunzo. Katika kesi ya kujifunza bila kusimamiwa, seti ya mafunzo inajumuisha tu vectors za pembejeo - na hali hii inaonekana zaidi kutoka kwa mtazamo wa maisha halisi.

Kujifunza kwa kina

Dhana ya ujifunzaji wa kina inarejelea uainishaji tofauti na inaashiria mbinu ya mafunzo inayoitwa miundo ya kina, ambayo inajumuisha mitandao ya neva ya ngazi nyingi. Mfano rahisi kutoka kwa uwanja wa utambuzi wa picha: ni muhimu kufundisha mashine kutambua vipengele vinavyozidi vya kufikirika kwa suala la vipengele vingine vya kufikirika, ambayo ni, kuamua uhusiano kati ya usemi wa uso mzima, macho na mdomo, na, hatimaye, makundi ya saizi za rangi kimahesabu. Kwa hiyo, katika mtandao wa kina wa neva, kila ngazi ya vipengele ina safu yake; Ni wazi kwamba mafunzo ya "colossus" kama hiyo inahitaji uzoefu unaofaa wa watafiti na kiwango cha vifaa. Masharti yalitengenezwa kwa ajili ya kujifunza kwa kina katika mfumo wa neva ifikapo mwaka wa 2006 pekee - na miaka minane baadaye tunaweza kuzungumza kuhusu mapinduzi ambayo mbinu hii imetoa katika kujifunza kwa mashine.

Kwa hiyo, kwanza kabisa, katika muktadha wa makala yetu, ni muhimu kuzingatia yafuatayo: kujifunza kwa kina katika hali nyingi sio kusimamiwa na mtu. Hiyo ni, mbinu hii inahusisha mafunzo ya mtandao wa neural bila mwalimu. Hii ndiyo faida kuu ya mbinu "ya kina": kujifunza kwa mashine iliyosimamiwa, hasa katika kesi ya miundo ya kina, inahitaji muda mkubwa - na gharama za kazi. Kujifunza kwa kina, kwa upande mwingine, ni mbinu ambayo mifano (au angalau inajaribu kukadiria) fikra dhahania ya mwanadamu, badala ya kuitumia.

Wazo, kama kawaida, ni nzuri, lakini shida za asili huibuka kwa njia ya mbinu - kwanza kabisa, inayotokana na madai yake kwa ulimwengu wote. Kwa kweli, ikiwa mbinu za kujifunza kwa kina zimepata mafanikio makubwa katika uwanja wa utambuzi wa picha, basi kwa usindikaji sawa. lugha ya asili Bado kuna maswali mengi zaidi kuliko majibu. Ni dhahiri kwamba katika miaka ijayo n haiwezekani kwamba itawezekana kuunda "Leonardo Da Vinci wa bandia" au hata - angalau! - "homo sapiens bandia".

Walakini, watafiti wa akili ya bandia tayari wanakabiliwa na swali la maadili: hofu inayoonyeshwa katika kila filamu ya uwongo ya kisayansi inayojiheshimu, kutoka kwa "Terminator" hadi "Transformers", haionekani tena ya kuchekesha (mitandao ya kisasa ya neva inaweza tayari kuzingatiwa kuwa ya kuaminika. mfano kazi ya ubongo wa wadudu!), lakini ni wazi si lazima kwa sasa.

Wakati ujao mzuri wa kiteknolojia unaonekana kwetu kama enzi ambayo mtu ataweza kukabidhi mamlaka yake mengi kwa mashine - au angalau kuwa na uwezo wa kuiruhusu kuwezesha sehemu kubwa ya kazi yake ya kiakili. Dhana ya kujifunza kwa kina ni hatua moja kuelekea ndoto hii. Njia iliyo mbele ni ndefu, lakini tayari ni wazi kwamba mitandao ya neva na mbinu zote zinazoendelea zinazohusiana nazo zina uwezo wa kutambua matarajio ya waandishi wa hadithi za sayansi kwa muda.