JavaRush /Java Blog /Random-TL /Mga neural network: ang duyan ng hinaharap na AI o isa la...

Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?

Nai-publish sa grupo
Sa mga materyales sa JavaRush, natalakay na namin ang paksa ng artificial intelligence (AI), machine learning at iba pang mga teknolohiyang nauugnay sa AI sa isang paraan o iba pa. Sa partikular, napag-usapan na natin kung paano nauugnay ang artificial intelligence sa programming sa Java , tinalakay ang mga alamat at horror story tungkol sa AI , at sa ilang artikulo ay binanggit namin ang mga pangunahing teknolohiya na ginagamit sa lugar na ito. Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?  - 1Samakatuwid, napagpasyahan namin na ngayon ay isang magandang panahon upang mas malalim pa sa larangan ng AI, at tingnang mabuti ang teknolohiya na talagang sumasailalim sa modernong AI at machine learning - mga neural network. Lalo na: kung paano orihinal na nagmula ang konsepto ng mga neural network at kung paano nabago ang teknolohiyang ito sa kasalukuyang estado nito, kung paano naiiba ang mga artipisyal na neural network sa mga neuron sa utak ng tao, kung talagang alam nila kung paano matuto, at kung ano talaga ang kanilang kakayahan ngayon. Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?  - 2

Mga artipisyal na neural network at utak ng tao. pareho?

Sa una, natanggap ng mga computer neural network ang pangalang ito dahil ang prinsipyo ng kanilang disenyo ay kahawig ng sistema ng mga neuron sa utak ng tao. Kaya, ang karaniwang utak ng tao ay kinabibilangan ng higit sa 100 milyong maliliit na selula na tinatawag na mga neuron. Sa katunayan, walang nakakaalam nang eksakto kung gaano karaming mga cell ang maaaring aktwal na mayroon sa utak ng tao - ang mga pagtatantya ay mula 50 hanggang 500 bilyon. Ang bawat neuron ay binubuo ng isang cell body na may maraming tinatawag na dendrites (mga cell input - nagpapadala ng impormasyon sa cell ) at isang axon ( cell output - nagpapadala ng impormasyon mula sa cell). Ang mga neuron ay napakaliit na halos isang daan ng mga cell na ito ay maaaring ilagay sa isang lugar na isang square millimeter. Sa loob ng isang computer, ang katumbas ng isang neuron ay mga maliliit na switching device na tinatawag na transistor. Ang pinakabagong mga modernong microprocessor (mga single-chip na computer) ay naglalaman ng higit sa 30 bilyong transistor. Kahit na ang unang Pentium microprocessor, na nilikha mga 20 taon na ang nakalilipas, ay may humigit-kumulang 50 milyong transistor na naka-pack sa isang integrated circuit na may sukat na 25 mm lamang. Sa katunayan, sinasabi ng mga eksperto, dito nagtatapos ang koneksyon sa pagitan ng mga processor ng computer at mga neuron sa utak ng tao, dahil kung hindi man ay ibang-iba sila sa isa't isa at gumagana nang ganap na naiiba. Ang mga transistor ng computer ay konektado sa medyo simpleng serye ng mga circuit, ang bawat isa ay maaaring konektado sa dalawa o tatlong iba pa, samantalang ang mga neuron sa utak ay mahigpit na konektado sa mga kumplikadong parallel na paraan. Kaya, kinakalkula ng mga siyentipiko na ang bawat neuron ay maaaring konektado sa higit sa 10 libo ng mga kapitbahay nito.

Ano ang isang artificial neural network?

Kaya, ang pinaka makabuluhang pagkakaiba sa istruktura sa pagitan ng mga computer at neuron sa utak ay kung paano gumagana ang mga ito. Ang pangunahing ideya sa likod ng mga neural network ay upang gayahin, o, kung gugustuhin mo, imodelo, sa isang pinasimpleng anyo, ang operasyon ng maraming magkakaugnay na mga neuron sa utak. Ito ang nagpapahintulot sa isang neural network na gawin ang mga bagay na hindi kayang gawin ng mga ordinaryong microprocessor, ibig sabihin, matuto, makilala ang mga pattern at gumawa ng mga desisyon sa isang prinsipyo na katulad ng utak ng tao. Gayunpaman, mahalagang bigyang-diin na sa ngayon, ang mga neural network ay isang simpleng software emulation ng gawain ng mga neuron sa utak. Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?  - 3Ang isang tipikal na neural network ay naglalaman ng mula sa ilang sampu hanggang daan-daan, libu-libo o kahit milyon-milyong mga artipisyal na neuron, na tinatawag na mga yunit, na nakaayos sa ilang mga layer. Ang ilan sa mga unit na ito, na tinatawag na mga input unit, ay may pananagutan sa pagtanggap ng iba't ibang anyo ng impormasyon mula sa labas ng mundo, na susubukan ng neural network na matutunan, tandaan at iproseso sa ibang mga paraan. Ang iba pang mga unit, na tinatawag na mga output unit, na matatagpuan sa kabilang panig ng network, ay may pananagutan sa kung paano nakikipag-ugnayan ang network sa impormasyong ito. Sa pagitan ng dalawang layer na ito ay may iba pang mga unit na gumagawa ng computation at bumubuo sa karamihan ng neural network. Karamihan sa mga neural network ay magkakaugnay, ibig sabihin, ang bawat yunit ay konektado sa iba pang mga yunit sa mga layer sa magkabilang panig. Ang mga koneksyon sa pagitan ng mga yunit ay kinakatawan ng isang numero na tinatawag na timbang. Ang timbang sa isang neural network ay maaaring maging positibo (kung ang isang yunit ay nag-activate ng isa pa) o negatibo (kung ang isang yunit ay pinipigilan o pinahina ang isa pa). Kung mas mataas ang timbang, mas malaki ang impluwensya ng isang yunit sa isa pa. Ang isang simpleng neural network na idinisenyo upang malutas ang mga simpleng problema ay maaari lamang magsama ng tatlong pangunahing mga layer, tulad ng ipinapakita sa larawan. Gayunpaman, sa pagitan ng mga layer ng input at output ay maaaring mayroong isang bilang ng iba't ibang mga layer na gumaganap ng iba't ibang mga function. Ang mga neural network na may mas kumplikadong mga istraktura (kaysa sa ilustrasyon sa itaas) ay tinatawag na malalim na neural network at kadalasang ginagamit upang malutas ang mga kumplikadong problema. Sa teorya, ang paggamit ng malalim na istraktura ay nagpapahintulot sa isang neural network na imapa ang anumang uri ng input data sa anumang uri ng output data, kaya ginagawa itong may kakayahang lutasin ang anumang problema. Gayunpaman, para dito, ang neural network ay mangangailangan ng seryoso at mahabang "pagsasanay," na binubuo ng pagpoproseso ng milyun-milyon at kahit bilyun-bilyong mga halimbawa ng impormasyon na kailangan ng network na magtrabaho kasama. Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?  - 4

Mga neural network: isang maliit na kasaysayan

Buweno, inayos namin ang mga pangunahing paliwanag kung ano talaga ang mga neural network, ngayon ay maaari na tayong umatras nang kaunti tungkol sa teorya at pag-usapan ang kasaysayan ng teknolohiyang ito at kung kailan ito lumitaw. Maaaring sorpresa ito ng marami, ngunit lumitaw ang mga neural network sa agham mahigit 70 taon na ang nakalilipas. Ang konsepto ay unang iminungkahi noong 1944 ni Warren McCullough at Walter Pitts, dalawang mananaliksik sa Unibersidad ng Chicago na lumipat sa Massachusetts Institute of Technology noong 1952, kung saan itinatag nila ang unang pangkat ng pananaliksik sa agham na nagbibigay-malay. Ang mga neural network ay talagang isang pangunahing lugar ng pananaliksik sa parehong neuroscience at computer science hanggang 1969. Iyon ay, ang teknolohiyang ito, na sumasailalim sa mga modernong sistema ng artificial intelligence, ay naging, sa mga modernong termino, sa hype para sa higit sa isang buong dekada - mula sa mga kalagitnaan ng limampu hanggang sa katapusan ng mga ikaanimnapung taon. Ito ay pinaniniwalaan na ang "killer" ng hype na ito ay isang libro na isinulat ng dalawang computer scientist - Marvin Minsky at Seymour Papert - na sa kanilang trabaho ay nagsiwalat ng lahat ng mga limitasyon ng mga neural network. Ang katotohanan ay ang mga naunang neural network ay mayroon lamang isa o dalawang masanay na mga layer. Ipinakita ni Minsky at Papert na ang mga simpleng network na ito ay walang kakayahan sa matematika na magmodelo ng mga kumplikadong real-world phenomena. Bilang isang resulta, ang interes sa mga neural network bilang isang teknolohiya ay nawala sa loob ng maraming taon - sa buong dekada sitenta at unang kalahati ng dekada otsenta, hindi gaanong nabigyan ng pansin ang mga ito. Ang interes ay na-renew lamang noong 1986, sa paglalathala ng isang papel na nagpakilala sa konsepto ng backpropagation, isang praktikal na paraan para sa pagsasanay ng mga malalim na neural network. Salamat sa backpropagation, naging mas computationally friendly ang mga deep neural network, ngunit nangangailangan pa rin ng malaking mapagkukunan ng computing para gumana. At ang pananaliksik noong 1990s at 2000s ay madalas na nagpakita na ang mga kumplikadong neural network ay hindi gumagawa ng nais na mga resulta sa mga tuntunin ng kahusayan. Bilang resulta, ang mga neural network ay nahulog sa hype wave nang ilang sandali at bumalik lamang sa ikalawang dekada ng 2000s, higit sa lahat dahil sa tumaas na computing power ng mga graphics chips, na nagpapahintulot sa mga malalim na neural network na gumana nang mas mahusay kaysa dati. Ang kababalaghan ng naturang cyclicity sa agham sa kabuuan ay mahusay na ipinaliwanagTomaso Poggio, isang propesor sa Massachusetts Institute of Technology: “May paliwanag na ang mga ideya sa agham ay kumakalat sa parehong paraan tulad ng mga virus. Halimbawa, mayroong lima o anim na pangunahing strain ng influenza virus, at bawat isa ay bumabalik halos isang beses bawat 25 taon. Ang mga tao ay nahawahan, nagkakaroon ng kaligtasan sa sakit, at protektado mula sa impeksyon sa susunod na 25 taon. At pagkatapos ay darating ang isang bagong henerasyon at muling nahawaan ng parehong strain ng virus. Sa agham, ang mga tao ay umibig sa mga ideya at ginagawa ang mga ito hanggang sa punto ng pagkahapo, kaya't nagkakaroon sila ng kaligtasan sa anyo ng pagkapagod sa ideya. At pagkatapos ay bumalik ang ideya kasama ng isa pang henerasyon ng mga siyentipiko. Dahil sa katotohanan na ang mga neural network at mga teknolohiya ng artificial intelligence ay medyo bago pa rin at kulang sa pag-unlad na teknolohiya, posible na ang hype sa paligid nito ay magsisimulang maglaho muli, at babalik lamang muli sa isa pang ilang dekada. Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?  - 5

Paano natututo ang mga neural network?

Karaniwan, ang impormasyon ay dumadaan sa isang neural network sa dalawang paraan. Kapag ang network ay nag-aaral pa lamang o tumatakbo na pagkatapos ng pagsasanay, ang mga pattern ng impormasyon ay pumapasok dito sa pamamagitan ng mga input unit, na naglulunsad ng mga layer ng mga nakatagong unit, na siya namang pumapasok sa mga output unit. Ang pangkalahatang istrukturang ito ay tinatawag na feedforward network. Hindi lahat ng unit ay gumagana sa parehong oras. Ang bawat unit ay tumatanggap ng papasok na data mula sa mga unit sa kaliwa at pinarami ito sa bigat ng mga koneksyon na dinadaanan nito. Ang bawat unit ay nagdaragdag ng lahat ng data na natatanggap nito sa ganitong paraan at, sa pinakasimpleng uri ng network, kung ang kabuuan ay lumampas sa isang tiyak na threshold, ang unit ay nag-a-activate sa iba pang mga yunit kung saan ito konektado (sa kanan). Ang isa sa mga pangunahing punto na nagpapahintulot sa anumang neural network na matuto ay ang feedback. Kung paanong ang isang bata ay kailangang palakihin ng isang nasa hustong gulang na magsasabi sa kanya kung ano ang mabuti at kung ano ang masama, ang mga neural network ay nangangailangan ng feedback at gabay. Gumagamit sila ng diskarte para sa pagsasanay na tinatawag na backpropagation . Sa pamamaraang ito, inihahambing ng network ang output na ginagawa nito sa output na dapat nitong gawin, at ginagamit ang pagkakaiba sa pagitan ng dalawang salik na ito upang baguhin ang bigat ng mga koneksyon sa pagitan ng mga yunit sa network, mula sa mga yunit ng output, sa pamamagitan ng mga intermediate na yunit hanggang sa mga yunit ng input - ibig sabihin, vice versa. Sa paglipas ng panahon, pinipilit ng backpropagation ang network na matuto, na binabawasan ang pagkakaiba sa pagitan ng aktwal at tinantyang output sa punto kung saan eksaktong tumutugma ang mga ito. Mga neural network: ang duyan ng hinaharap na AI o isa lamang techno trend?  - 6

Paano gumagana ang mga neural network at saan ginagamit ang mga ito?

At sa wakas, tingnan natin ang isang halimbawa kung paano gumagana ang naturang neural network. Kapag ang neural network ay may sapat na mga halimbawa ng data upang sanayin, umabot ito sa isang punto kung saan ang user ay makakapag-feed dito ng ganap na bagong data na hindi pa naproseso ng network bago at makuha ang ninanais na resulta mula dito. Halimbawa, sabihin nating sanayin mo ang iyong neural network na tuklasin ang isang armas kapag lumitaw ito sa isang lugar na nakikita ng isang security camera. Sinasanay mo ang network sa pamamagitan ng pagpapakita dito ng daan-daan, libu-libo, at sampu-sampung libong larawan ng iba't ibang uri ng armas, gaya ng mga pistola at riple. Sa ilang mga punto, nag-upload ka ng isang imahe ng isang bagong uri ng armas na hindi pa naipakita sa kanya dati, halimbawa, isang baril. Bilang resulta, matagumpay na natukoy ng network ang bagay na ito bilang isang sandata batay sa ilang pangunahing pamantayan, tulad ng pangkalahatang hugis, pagkakaroon ng hawakan at puwit, pagkakaroon ng trigger, at iba pa. Iyon ay, tinutukoy ng neural network ang sandata sa imahe batay sa isang bilang ng mga pattern na "natutunan". Sa parehong oras, siyempre, hindi ito nangangahulugan na ang neural network ay maaaring tumingin ng bagong data at nakapag-iisa na gumawa ng isang desisyon, tulad ng ginagawa ng mga tao. Natatanggap nito ang lahat ng impormasyon sa anyo ng isang binary code, at ang bawat isa sa mga input unit (impormasyon sa network) ay maaaring nasa dalawang posisyon lamang: on o off. Alinsunod dito, kung ikaw, gamit ang parehong halimbawa, sanayin ang isang neural network upang maghanap ng mga armas, ang impormasyon ay dadaan sa isang hanay ng mga input unit na sumasagot sa mga pangunahing tanong na "oo/hindi". Halimbawa, tulad ng: may trigger ba ang object?; may nguso ba?; ang bagay ba ay gawa sa metal?; tugma ba ang hugis nito sa pistola? Alinsunod dito, para sa isang baril, ang tugon ng network ay: “oo, oo, oo, hindi” o “1110” sa binary code. Siyempre, sa isang tunay na sistema ay magkakaroon ng higit pang mga ganoong katanungan, ngunit ang kakanyahan ay nananatiling pareho: ang neural network ay tumatanggap ng data sa anyo ng isang binary code, at sa tulong nito ay natututo na makilala ang kinakailangang impormasyon mula sa hindi kailangan. Ngayon, alam ang pangunahing mekanismo ng neural network, madaling isipin kung paano ginagamit ang teknolohiyang ito upang malutas ang iba't ibang mga problema ngayon. Halimbawa, ang isang klasikong halimbawa ay ang paggamit ng mga neural network upang maiwasan ang pandaraya sa bangko - kapag natutunan ng system na independiyenteng hanapin at agad na i-block ang mga paglilipat na iyon na para sa isang kadahilanan o iba pa ay tila kahina-hinala. O, halimbawa, ang paggamit ng mga neural network para sa pangunahing autopilot ng mga kotse o eroplano: kapag ang mga input unit ay tumatanggap ng impormasyon mula sa iba't ibang mga control system, at ang mga output unit ay nag-aayos ng piloting mode alinsunod sa isang ibinigay na kurso.

mga konklusyon

Ngayon nakita mo na ang isang neural network ay isang medyo hindi kumplikado, sa pangkalahatan, na teknolohiya na talagang nagpapagalaw sa mga computer at computer system ng isang hakbang pasulong, na mas malapit sa mga tao. Sa kabilang banda, halata rin na ang mga neural network ay hindi pa rin halos kasing kumplikado at mahusay na gaya ng utak ng tao. Kaya't magpasalamat tayo na lahat tayo ay ipinanganak na may advanced na neural network na binuo mismo sa ating utak, at gamitin natin ang likas na yaman na ito nang mas madalas, halimbawa, para sa pag-aaral at pagpapabuti ng sarili.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION