Yandex inafungua teknolojia ya kujifunza mashine ya CatBoost. Ulinganisho wa maktaba za kujifunza kwa kina kwa kutumia mfano wa tatizo la uainishaji wa tarakimu lililoandikwa kwa mkono

Kihistoria, mitandao ya neva bandia, katika historia yao ya zaidi ya nusu karne, imepata vipindi vyote viwili vya kuongezeka kwa kasi na kuongezeka kwa tahadhari ya umma, pamoja na vipindi vya kutilia shaka na kutojali vilivyofuata. Wakati nyakati ni nzuri, inaonekana kwa wanasayansi na wahandisi kwamba hatimaye wamepata teknolojia ya ulimwengu wote ambayo inaweza kuchukua nafasi ya wanadamu katika kazi yoyote ya utambuzi. Kama uyoga baada ya mvua, miundo mipya mbalimbali ya mitandao ya neva inatokea, na kuna mijadala mikali kati ya waandishi wao, wataalamu wa hisabati, kuhusu kiwango kikubwa au kidogo cha ubiolojia wa miundo wanayopendekeza. Wanabiolojia kitaaluma huchunguza mijadala hii wakiwa kando, mara kwa mara wakivunja na kusema “Ndiyo, hii haifanyiki katika hali halisi!” - na bila athari nyingi, kwa kuwa wanahisabati wa mtandao wa neural husikiliza wanabiolojia, kama sheria, tu wakati ukweli wa wanabiolojia unalingana na nadharia zao wenyewe. Hata hivyo, baada ya muda, kundi la kazi hujilimbikiza hatua kwa hatua ambayo mitandao ya neural hufanya vibaya kwa uwazi na shauku ya watu hupungua.

Siku hizi, mitandao ya neva imerejea katika kilele cha umaarufu wao kutokana na uvumbuzi wa mbinu ya mafunzo ya awali isiyosimamiwa kulingana na Mashine Zilizozuiliwa za Bolzmann (RBM), ambayo inafanya uwezekano wa kutoa mafunzo kwa mitandao ya kina ya neva (yaani yenye mikubwa ya ziada, kwenye utaratibu wa makumi ya maelfu, idadi ya neurons) na mafanikio ya mitandao ya kina ya neural katika matatizo ya vitendo ya hotuba na utambuzi wa picha. Kwa mfano, utambuzi wa matamshi katika Android unatekelezwa kwa kutumia mitandao ya kina ya neva. Hii itadumu kwa muda gani na jinsi mitandao ya kina ya neva itaishi kulingana na matarajio yaliyowekwa juu yao haijulikani.
Wakati huo huo, sambamba na mizozo yote ya kisayansi, mikondo na mienendo, jumuiya ya watumiaji wa mtandao wa neural inaonekana wazi - wahandisi wa programu wanaofanya mazoezi ambao wanavutiwa na kipengele kinachotumika cha mitandao ya neural, uwezo wao wa kujifunza kutoka kwa data iliyokusanywa na kutatua matatizo ya utambuzi. Matatizo mengi ya vitendo ya uainishaji na utabiri yanashughulikiwa vyema na miundo iliyosanifiwa vizuri, ndogo kiasi ya Multilayer Perceptron (MLP) na Mitandao ya Radial Basic Function (RBF). Mitandao hii ya neural imeelezewa mara nyingi napenda kupendekeza vitabu vifuatavyo, kwa utaratibu wa huruma yangu ya kibinafsi kwao: Osovsky, Askofu, Khaikin; Pia kuna kozi nzuri kwenye Coursera na rasilimali zinazofanana.

Walakini, kuhusu mbinu ya jumla ya kutumia mitandao ya neva katika mazoezi, kimsingi ni tofauti na mbinu ya kawaida ya ukuzaji "iliyopangwa, inafanya kazi, inamaanisha inafanya kazi kila wakati." Mitandao ya Neural kwa asili yake ni mifano ya uwezekano, na mbinu kwao inapaswa kuwa tofauti kabisa. Kwa bahati mbaya, watengenezaji programu wengi wapya wa teknolojia ya kujifunza mashine kwa ujumla na mitandao ya neva hasa hufanya makosa ya mfumo wakati wa kufanya kazi nao, hukatishwa tamaa na kuachana na jambo hilo. Wazo la kuandika nakala hii juu ya Habr liliibuka baada ya kuwasiliana na watumiaji waliokatishwa tamaa wa mitandao ya neva - watengenezaji bora, wenye uzoefu na wanaojiamini.

Hapa kuna orodha yangu ya sheria na makosa ya kawaida wakati wa kutumia mitandao ya neural.

1. Ikiwezekana kutotumia mitandao ya neva, usiitumie.
Mitandao ya Neural inakuwezesha kutatua tatizo ikiwa haiwezekani kupendekeza algorithm kwa kurudia (au mara kwa mara sana) kutazama data kwa macho yako. Kwa mfano, ikiwa kuna data nyingi, ni isiyo ya mstari, yenye kelele na/au kubwa kwa ukubwa.

2. Utata wa mitandao ya neva lazima uwe wa kutosha kwa uchangamano wa kazi.
Kompyuta za kisasa za kibinafsi (kwa mfano, Core i5, RAM ya GB 8) hufanya iwezekane kutoa mafunzo kwa mitandao ya neva kwa wakati mzuri kwa kutumia sampuli za makumi ya maelfu ya mifano, na vipimo vya data ya pembejeo hadi mamia. Sampuli kubwa ni changamoto kwa mitandao ya kina ya neva iliyotajwa hapo juu, ambayo imefunzwa kwenye GPU za vichakataji vingi. Mifano hizi zinavutia sana, lakini ziko nje ya lengo la makala hii ya habr.

3. Data ya mafunzo lazima iwe mwakilishi.
Sampuli ya mafunzo inapaswa kuwakilisha kikamilifu na kwa ukamilifu jambo linaloelezewa na kujumuisha hali mbalimbali zinazowezekana. Ni vizuri kuwa na data nyingi, lakini hiyo yenyewe haisaidii kila wakati. Kuna mzaha ulioenea katika duru nyembamba wakati mwanajiolojia anapokuja kwa mtu anayetambua, anaweka kipande cha madini mbele yake na kumwomba kuunda mfumo wa kutambua dutu kama hiyo kwa kutumia. "Je! ninaweza kupata mifano zaidi ya data?" - anauliza mtambuaji. "Hakika!" - mwanajiolojia anajibu, huchukua kachumbari na kugawanya kipande chake cha madini katika vipande kadhaa zaidi. Kama unavyoelewa, operesheni kama hiyo haitatumika - sampuli kama hiyo iliyoongezeka haina habari yoyote mpya.

4. Changanya uteuzi.
Baada ya vekta za data za pembejeo na pato zimekusanywa, ikiwa vipimo vinajitegemea, badilisha utaratibu wa vectors kwa njia yoyote. Hii ni muhimu kwa mgawanyo sahihi wa sampuli katika Treni/Jaribio/Uthibitishaji na mbinu zote za mafunzo za sampuli kwa sampuli.

5. Rekebisha na uweke katikati data.
Kwa vielelezo vya tabaka nyingi, na kwa miundo mingine mingi, thamani za data ya ingizo lazima ziwe katika safu [-1;1]. Kabla ya kuwalisha kwa mtandao wa neva, toa wastani kutoka kwa data na ugawanye maadili yote kwa dhamana ya juu.

6. Gawanya sampuli katika Treni, Jaribio na Uthibitishaji.
Kosa kuu la wanaoanza ni kuhakikisha hitilafu ndogo katika utendakazi wa mtandao wa neva kwenye sampuli ya mafunzo, wakati huo huo kuifundisha upya, na kisha kutamani ubora sawa kwenye data mpya halisi. Hii ni rahisi sana kufanya ikiwa kuna data kidogo (au zote ni kutoka kwa kipande kimoja). Matokeo yanaweza kuwa ya kukatisha tamaa sana: mtandao wa neva utabadilika kadiri iwezekanavyo kwa sampuli na itapoteza utendakazi wake kwenye data halisi. Ili kudhibiti uwezo wa jumla wa muundo wako, gawanya data zote katika sampuli tatu katika uwiano wa 70: 20: 10. Treni kwenye Treni, ukiangalia mara kwa mara ubora wa muundo kwenye Jaribio. Kwa tathmini ya mwisho isiyo na upendeleo - Uthibitishaji.
Mbinu ya uthibitishaji mtambuka, wakati Treni na Jaribio zinapotolewa mara kadhaa kwa njia ya nasibu kutoka kwa data sawa, inaweza kuwa ya uwongo na kutoa maoni potofu ya ubora mzuri wa mfumo - kwa mfano, ikiwa data imechukuliwa kutoka vyanzo tofauti. na hii ni muhimu. Tumia Uthibitisho sahihi!

7. Weka utaratibu.
Regularization ni mbinu ambayo hukuruhusu kuzuia kufunza mtandao wa neva wakati wa mafunzo, hata ikiwa kuna data kidogo. Ukipata kisanduku cha kuteua chenye neno hili, hakikisha kukiangalia. Ishara ya mtandao wa neva uliofunzwa kupita kiasi ni maadili makubwa ya uzani, kwa mpangilio wa mamia na maelfu;

8. Hakuna haja ya kufundisha upya mtandao wa neva mtandaoni.
Wazo la kufundisha tena mtandao wa neva kila wakati kwenye data mpya inayoingia ni sahihi yenyewe; katika mifumo halisi ya kibaolojia hii ndio hufanyika. Tunajifunza kila siku na mara chache huwa wazimu. Hata hivyo, kwa mitandao ya neural ya kawaida ya bandia katika hatua ya sasa ya maendeleo ya kiufundi, mazoezi haya ni hatari: mtandao unaweza kuzidisha au kukabiliana na data ya hivi karibuni iliyopokelewa - na kupoteza uwezo wake wa jumla. Ili mfumo utumike kwa vitendo, mtandao wa neva unahitaji: 1) kutoa mafunzo, 2) kupima ubora kwenye sampuli za majaribio na uthibitishaji, 3) kuchagua chaguo la mtandao lililofaulu, kurekebisha uzani wake na 4) kutumia neural iliyofunzwa. mtandao katika mazoezi, uzani katika mchakato haubadilishi matumizi.

9. Tumia algoriti mpya za kujifunza: Levenberg-Marquardt, BFGS, Conjugate Gradients, n.k.
Ninauhakika sana kwamba kutekeleza mafunzo ya uenezaji nyuma ni jukumu takatifu la kila mtu anayefanya kazi na mitandao ya neva. Njia hii ndiyo rahisi zaidi, rahisi kupanga na hukuruhusu kusoma kwa kina mchakato wa kujifunza wa mitandao ya neva. Wakati huo huo, uenezaji wa nyuma ulianzishwa mapema miaka ya 70 na ukawa maarufu katikati ya miaka ya 80 ya karne iliyopita; Bora kuzitumia.

10. Funza mitandao ya neva katika MATLAB na mazingira sawa na yanayofaa mtumiaji.
Ikiwa wewe si mwanasayansi anayeunda mbinu mpya za kufunza mitandao ya neva, lakini ni mpanga programu anayefanya mazoezi, singependekeza kuweka usimbaji utaratibu wa kufundisha mitandao ya neva mwenyewe. Kuna idadi kubwa ya vifurushi vya programu, haswa katika MATLAB na Python, ambayo hukuruhusu kutoa mafunzo kwa mitandao ya neva, huku ukidhibiti mchakato wa mafunzo na majaribio kwa kutumia taswira rahisi na zana za utatuzi. Furahia urithi wa ubinadamu! Binafsi napenda "treni katika MATLAB iliyo na maktaba nzuri - tekeleza mtindo uliofunzwa kwa mkono" ni nguvu kabisa na inabadilika. Isipokuwa ni kifurushi cha STATISTICA, ambacho kina mbinu za hali ya juu za kufundisha mitandao ya neva na hukuruhusu kuzizalisha kwa njia ya msimbo wa programu katika C, rahisi kwa utekelezaji.

Katika makala inayofuata, ninapanga kuelezea kwa undani mzunguko kamili wa viwanda wa kuandaa mtandao wa neural unaotekelezwa kwa misingi ya kanuni zilizoelezwa hapo juu, zinazotumiwa kwa kazi za utambuzi katika bidhaa ya programu ya kibiashara.

Bahati njema!

Fasihi

Hinton G., Deng L., Yu D., Dahl G., Mohamed A., Jaitly N., Senior A., Vanhoucke V., Nguyen P., Sainath T. na Kingsbury B. Deep Neural Networks for Acoustic Kuiga katika Utambuzi wa Usemi, Jarida la Kuchakata Mawimbi ya IEEE, Vol. 29, Na. 6, 2012, uk. 82 - 97.
Ciresan D., Meier U., Masci J na Schmidhuber J. Safu nyingi za Mtandao wa Kina wa Neural kwa Uainishaji wa Ishara za Trafiki. Mitandao ya Neural, Vol. 34, Agosti 2012, pp. 333 - 338
S. Osovsky. Mitandao ya Neural kwa usindikaji wa habari - trans. kutoka Kipolandi. M.: Fedha na Takwimu, 2002. - 344 p.
Askofu C.M. Utambuzi wa Muundo na Kujifunza kwa Mashine. Springer, 2006 - 738 p.
S. Khaikin. Mitandao ya Neural: kozi kamili. Williams, 2006.

Wakati huu niliamua kusoma mitandao ya neva. Niliweza kupata ujuzi wa kimsingi katika suala hili katika msimu wa joto na msimu wa joto wa 2015. Kwa ujuzi wa kimsingi, ninamaanisha kuwa ninaweza kuunda mtandao rahisi wa neva mwenyewe kutoka mwanzo. Unaweza kupata mifano kwenye hazina zangu za GitHub. Katika makala haya, nitatoa baadhi ya maelezo na kushiriki nyenzo ambazo unaweza kupata muhimu katika utafiti wako.

Hatua ya 1. Neurons na njia ya feedforward

Kwa hivyo "mtandao wa neva" ni nini? Wacha tusubiri na hii na tushughulike na neuroni moja kwanza.

Neuroni ni kama chaguo za kukokotoa: inachukua thamani kadhaa kama ingizo na kurudisha moja.

Mduara ulio hapa chini unawakilisha neuroni bandia. Inapokea 5 na kurudisha 1. Ingizo ni jumla ya sinepsi tatu zilizounganishwa na neuroni (mishale mitatu upande wa kushoto).

Kwenye upande wa kushoto wa picha tunaona maadili 2 ya pembejeo (katika kijani kibichi) na kukabiliana (kwa kahawia).

Data ya ingizo inaweza kuwa uwakilishi wa nambari za sifa mbili tofauti. Kwa mfano, wakati wa kuunda kichujio cha barua taka, wanaweza kumaanisha uwepo wa neno zaidi ya moja lililoandikwa kwa HERUFI KUBWA na uwepo wa neno "Viagra".

Maadili ya pembejeo yanazidishwa na kinachojulikana kama "uzito", 7 na 3 (iliyoangaziwa kwa bluu).

Sasa tunaongeza maadili yanayotokana na kukabiliana na kupata nambari, kwa upande wetu 5 (iliyoangaziwa kwa nyekundu). Hii ni pembejeo ya neuroni yetu ya bandia.

Kisha neuroni hufanya hesabu fulani na kutoa thamani ya pato. Tulipata 1 kwa sababu thamani ya mviringo ya sigmoid katika hatua ya 5 ni 1 (tutazungumzia kuhusu kazi hii kwa undani zaidi baadaye).

Ikiwa hiki kingekuwa kichujio cha barua taka, ukweli kwamba towe 1 ingemaanisha kuwa maandishi yaliwekwa alama kama barua taka na niuroni.

Mchoro wa mtandao wa neva kutoka Wikipedia.

Ukichanganya niuroni hizi, unapata mtandao wa neva unaoeneza moja kwa moja - mchakato unatoka kwa pembejeo hadi pato, kupitia niuroni zilizounganishwa na sinepsi, kama kwenye picha iliyo upande wa kushoto.

Hatua ya 2. Sigmoid

Baada ya kutazama masomo ya Welch Labs, ni wazo nzuri kuangalia Wiki ya 4 ya kozi ya kujifunza mashine ya Coursera kwenye mitandao ya neva ili kukusaidia kuelewa jinsi yanavyofanya kazi. Kozi hiyo inaingia ndani sana katika hesabu na inategemea Octave, wakati napendelea Python. Kwa sababu hii, niliruka mazoezi na nikapata maarifa yote muhimu kutoka kwa video.

Sigmoid hupanga tu thamani yako (kwenye mhimili mlalo) hadi masafa kutoka 0 hadi 1.

Kipaumbele changu cha kwanza kilikuwa kusoma sigmoid, kama imefikiria katika nyanja nyingi za mitandao ya neural. Tayari nilijua kitu kuihusu kutoka wiki ya tatu ya kozi iliyotajwa hapo juu, kwa hivyo nilitazama video kutoka hapo.

Lakini hutafika mbali na video pekee. Kwa ufahamu kamili, niliamua kuiandika mwenyewe. Kwa hivyo nilianza kuandika utekelezaji wa algorithm ya urekebishaji wa vifaa (ambayo hutumia sigmoid).

Ilichukua siku nzima, na matokeo hayakuwa ya kuridhisha. Lakini haijalishi, kwa sababu nilifikiria jinsi kila kitu kinavyofanya kazi. Kanuni inaweza kuonekana.

Huna budi kufanya hivyo mwenyewe, kwa kuwa inahitaji ujuzi maalum - jambo kuu ni kwamba unaelewa jinsi sigmoid inavyofanya kazi.

Hatua ya 3. Njia ya uenezaji nyuma

Kuelewa jinsi mtandao wa neural unavyofanya kazi kutoka kwa pembejeo hadi pato sio ngumu sana. Ni ngumu zaidi kuelewa jinsi mtandao wa neva hujifunza kutoka kwa seti za data. Kanuni niliyotumia inaitwa

Salaam wote!

Katika nakala hii nitazungumza juu ya njia mpya nzuri ya kupanga katika Python.

Hii ni kidogo kama upangaji programu na zaidi kama kuunda vifungu (ripoti/maonyesho/utafiti/mifano): unaweza kuingiza maandishi ya kawaida ya maelezo kati ya vizuizi vya msimbo wa Python. Matokeo ya kutekeleza nambari sio nambari na maandishi tu (kama ilivyo kwa koni wakati wa kufanya kazi na Python), lakini pia grafu, michoro, picha ...

Mifano ya hati unaweza kuunda:

Inaonekana ni nzuri? Je, ungependa kuunda hati sawa? Kisha makala hii ni kwa ajili yako!

Mitandao ya Neural huundwa na kufunzwa hasa katika Python. Kwa hiyo, ni muhimu sana kuwa na ufahamu wa msingi wa jinsi ya kuandika programu ndani yake. Katika makala hii nitazungumza kwa ufupi na kwa uwazi juu ya dhana za msingi za lugha hii: vigezo, kazi, madarasa na moduli.

Nyenzo hii imekusudiwa watu wasiojua lugha za programu.

Kwanza unahitaji kusakinisha Python. Kisha unahitaji kufunga mazingira rahisi ya kuandika programu katika Python. Lango limejitolea kwa hatua hizi mbili.

Ikiwa kila kitu kimewekwa na kusanidiwa, unaweza kuanza.

Mitandao ya Neural lazima iandikwe katika lugha fulani ya programu. Kuna mengi yao, lakini ninapendekeza (na nitumie kwenye kitabu cha maandishi na nakala) lugha ya Python. Kwa nini?

  1. Ni rahisi sana kujifunza
  2. Idadi kubwa ya maktaba zilizotengenezwa tayari
  3. Unapotazama programu, unaona mara moja algorithm ambayo inatekeleza
  4. Wataalamu wengi wa kujifunza kwa mashine hutumia Python na maktaba nyingi pia zimeundwa mahsusi kwa lugha hii ya programu

Katika sehemu iliyopita, tulijifunza jinsi ya kuhesabu mabadiliko ya ishara wakati wa kupitia mtandao wa neva. Tulifahamiana na matrices, bidhaa zao na kupata fomula rahisi za mahesabu.

Katika sehemu ya 6 ya tafsiri ninaweka sehemu 4 za kitabu mara moja. Zote zimejitolea kwa moja ya mada muhimu zaidi katika uwanja wa mitandao ya neva - njia ya uenezaji wa nyuma. Utajifunza kuhesabu makosa ya niuroni zote kwenye mtandao wa neva kulingana na hitilafu ya mwisho ya mtandao na uzani wa uunganisho.

Nyenzo ni ngumu, kwa hivyo jisikie huru kuuliza maswali yako kwenye kongamano.

Unaweza kuhamisha.

Furahia kusoma!

Katika Sehemu ya 5 ya tafsiri ninawasilisha sehemu 3 zinazohusiana na maana.

Kwanza, tutahesabu kibinafsi matokeo ya mtandao wa neva wa safu mbili. Kisha tutafahamiana na matrices na bidhaa zao. Kwa kutumia maarifa tuliyopata, tutapata fomula rahisi za kukokotoa ubadilishaji wa mawimbi katika mtandao wa neva. Na katika sehemu ya mwisho tutaangalia fomula zilizopatikana katika mazoezi, kuhesabu matokeo ya mtandao wa neural wa safu tatu.

Unaweza kuhamisha.

Furahia kusoma!

Sehemu ya 4 ya tafsiri iko tayari!

Hebu tuache kupiga karibu na kichaka na tuende moja kwa moja kwenye mada ya kitabu - mitandao ya neural.

Katika sehemu hii ya tafsiri, tutaangalia mitandao ya kibiolojia ya neva na kuilinganisha na kompyuta za kitamaduni. Kisha tutaunda kielelezo cha niuroni bandia na hatimaye kuhamia moja kwa moja kwenye mitandao ya neva bandia.

Unaweza kuhamisha.

Furahia kusoma!

Sehemu ya tatu ya tafsiri!

Makala si ndefu sana. Inashughulikia sehemu moja tu ya kitabu. Lengo ni kuonyesha kwamba kila njia ina mapungufu yake. Nakala hiyo inajadili mapungufu ya kiainishaji cha mstari. Dhana za kazi za mantiki na matatizo ya XOR pia huletwa.

Unaweza kuhamisha.

Furahia kusoma!

Katika makala hii nitazungumzia kuhusu jenereta ya muziki ya kuvutia ambayo inafanya kazi kwenye mitandao ya neural. Jenereta inaitwa Amper. Kwa msaada wake, mtu yeyote, hata mtu ambaye yuko mbali na kutunga nyimbo, anaweza kujitegemea kuunda wimbo wa kipekee na kuitumia kwa madhumuni yao wenyewe.

Hapa, kwa mfano, ndivyo mtandao wa neural ulinitengenezea.

Yandex imeanzisha algorithm mpya ya utafutaji kulingana na mitandao ya neural. Kulingana na wataalamu, hii inapaswa kusaidia kampuni kuongeza uongozi wake katika soko la Kirusi kutoka kwa mshindani wake mkuu - Google

Mtandao wa Kirusi unaoshikilia Yandex umeanzisha algorithm mpya ya utafutaji kulingana na mitandao ya neural. Hii ilitangazwa na mkuu wa huduma ya umuhimu wa huduma hiyo, Alexander Safronov. Algorithm mpya, inayoitwa "Korolyov," hutafuta sio tu kwa maneno, bali pia kwa maana, na majibu sahihi zaidi yanatolewa kwa maswali magumu, mwakilishi wa Yandex alielezea.

Mnamo 2016, Yandex ilianzisha algorithm ya Palekh, ambayo kwa wakati halisi inalinganisha maana ya swali la nadra na la kipekee na kichwa cha ukurasa wa wavuti, hata ikiwa hawana maneno muhimu ya kawaida. Kwa mfano, unapouliza "mchoro ambapo anga inazunguka," injini ya utafutaji itaweza kurudisha "Usiku wa Nyota" wa Van Gogh. Tofauti na Palekh, Korolev ana uwezo wa kuchambua ukurasa mzima, na pia maana ya maswali ambayo husababisha watumiaji wengine kwake.

Mkuu wa idara ya utafutaji ya Yandex, Andrei Styskin, alitoa mfano mwingine wa ombi tata: "filamu kuhusu nafasi ambapo baba huwasiliana na binti yake kupitia mikono ya pili." Katika kesi hii, ombi halina maneno muhimu, lakini algorithm ya utaftaji inaweza kuelewa kuwa tunazungumza juu ya sinema "Interstellar," Styskin anasema.

Kwa mujibu wa wawakilishi wa huduma, mtandao wa neural una uwezo wa kujifunza binafsi, hivyo watumiaji wengi hutafuta katika injini ya utafutaji, matokeo yatakuwa sahihi zaidi. Jukwaa la wazi la watu wengi la Yandex.Toloka, lililozinduliwa mwaka wa 2014, litatumika kwa majaribio. Kimsingi, hii ni huduma ambapo mtu yeyote anaweza kushiriki katika kupima bidhaa za Yandex, kuwapa ratings na kuacha maoni. Hii inaruhusu kampuni kuboresha huduma zake, na watumiaji hupokea zawadi za kifedha kwa hili. Hivi sasa, zaidi ya watumiaji milioni 1 wamesajiliwa katika Yandex.Toloka.

"Tatizo la mitandao ya neural ilikuwa kwamba ilikuwa polepole sana na haikuweza kutumiwa kufanya kazi na maandishi mengi kwa wakati halisi," anasema Igor Ashmanov, mwanzilishi na mshirika mkuu wa Ashmanov na Washirika. "Ikiwa Yandex iliweza kuhusisha mitandao ya neural katika kuorodhesha kiasi kizima cha Runet, hii inafurahisha, hii ni mafanikio makubwa kutoka kwa mtazamo wa kiteknolojia." Ni kiasi gani algorithm mpya itaboresha ubora wa utafutaji na kama itaiboresha kimsingi inabaki kuchambuliwa, Ashmanov alibainisha.

Mshindani mkuu wa Yandex, Google, kulingana na mkuu wa Ashmanov na Washirika, bado hajatangaza rasmi kuanzishwa kwa mitandao ya neural katika algorithms yake ya utafutaji. "Google inaweza kumudu kuweka vipengele vya kuorodhesha kwa njia tofauti na kufanya majaribio kwa muda mrefu katika eneo hili bila kuanzisha teknolojia mpya katika utafutaji, kwa sababu tu kampuni ina watayarishaji programu na rasilimali zaidi," mtaalam huyo alibainisha.


Kukamata na overtake

Kulingana na mchambuzi wa VTB Capital Vladimir Bespalov, toleo jipya la injini ya utafutaji ya Kirusi ni hatua ya kudumisha sehemu ya Yandex kwenye soko. "Programu iliyosasishwa ya Utafutaji wa simu, algorithm mpya ya injini ya utaftaji - yote haya yanapaswa kusaidia Yandex kuleta utulivu na kuongeza sehemu yake kwenye soko la utaftaji," anasema mtaalam. - Athari haitaonekana mara moja, lakini kupungua kwa hoja za utafutaji kwa muda mrefu kunaweza kuwa na athari nzuri kwa utendakazi wa siku zijazo. Utafutaji ni bidhaa kuu ya Yandex mapato kuu ya kampuni ni matangazo, ambayo yanahusishwa na utafutaji.

Uamuzi wa FAS unaweza kusaidia Yandex kudumisha nafasi yake katika utafutaji wa simu, anakumbuka Bespalov. Mnamo Aprili mwaka huu, idara iliingia katika makubaliano ya makazi na mshindani mkuu wa kampuni ya Kirusi katika soko la utafutaji, Google. Kulingana na hilo, kampuni kubwa ya mtandao ya Amerika itazingatia tena makubaliano na watengenezaji wa simu mahiri za Android nchini Urusi na kuwaruhusu watumiaji kuchagua huduma mbadala za utaftaji wa Google kama zile kuu kwenye vifaa vyao.

Mwisho wa robo ya pili ya mwaka huu, sehemu ya Yandex katika soko la utaftaji nchini Urusi ilifikia 54.3%, kama ilivyoripotiwa na Yandex N.V. (kampuni mama ya Yandex) katika ripoti yake ya fedha kwa kurejelea huduma yake ya uchanganuzi Yandex.Radar. Kufikia Julai 31, kulingana na Yandex.Radar, Google ilichukua 40.36% kati ya injini za utafutaji nchini Urusi. Kulingana na LiveInternet, kwa wastani zaidi ya miezi mitatu iliyopita kati ya injini za utaftaji, Yandex ilikuwa inaongoza kwa sehemu ya 51.1%, Google ilikuwa na 43.9%. Yandex N.V. haifichui mapato kutoka kwa utaftaji, lakini mwelekeo wa "utaftaji na portal" ulileta kampuni rubles bilioni 20.135, ambayo ni 22% zaidi ya kipindi kama hicho mnamo 2016.

"Toleo la awali la mapinduzi la utafutaji wa Matrixnet liliruhusu Yandex kujitenga na Google na kuongeza sehemu yake kwa karibu asilimia 10. Kwa nusu mwaka. Huu ni mfano wazi wa jinsi matumizi ya teknolojia ya mafanikio yanavyosababisha matokeo dhahiri ya biashara hata katika soko tata kama soko la utafutaji,” anasema Alexander Laryanovsky, mshirika mkuu wa shule ya mtandaoni ya Skyeng na mkurugenzi wa zamani wa maendeleo ya kimataifa katika Yandex.

Kulingana na Tatyana Danielyan, naibu mkurugenzi wa utafiti na maendeleo ya kundi la makampuni la ABBYY, kuanzishwa kwa algoriti mpya za utafutaji kunaweza pia kubadilisha cheo (mpangilio ambao tovuti zinaonyeshwa katika matokeo ya utafutaji). Walakini, hii itakuwa faida kwa tovuti zenyewe, anasema: "Watumiaji watakuwa na uwezekano mkubwa wa kutembelea kurasa zinazokidhi mahitaji yao, na ubadilishaji wa tovuti unaweza kuongezeka sana."

  • Chatu,
  • Kujifunza kwa mashine,
  • Tafuta teknolojia
  • Leo Yandex imetoa maktaba yake ya CatBoost, iliyoandaliwa kwa kuzingatia uzoefu wa miaka mingi wa kampuni katika uwanja wa kujifunza mashine, kwenye chanzo wazi. Kwa msaada wake, unaweza kutoa mafunzo kwa ufanisi mifano kwenye data tofauti, ikiwa ni pamoja na wale ambao ni vigumu kuwakilisha kwa namna ya nambari (kwa mfano, aina za mawingu au aina za bidhaa). Msimbo wa chanzo, hati, alama na zana muhimu tayari zimechapishwa kwenye GitHub chini ya leseni ya Apache 2.0.

    CatBoost ni mbinu mpya ya kujifunza kwa mashine kulingana na kuongeza upinde rangi. Inatekelezwa katika Yandex ili kutatua matatizo ya cheo, utabiri na mapendekezo ya jengo. Zaidi ya hayo, tayari inatumika kama sehemu ya ushirikiano na Shirika la Ulaya la Utafiti wa Nyuklia (CERN) na wateja wa viwandani wa Kiwanda cha Data cha Yandex. Kwa hivyo CatBoost inatofautianaje na analogi zingine za chanzo-wazi? Kwa nini kuongeza na sio njia ya mtandao wa neural? Je, teknolojia hii inahusiana vipi na Matrixnet inayojulikana tayari? Na paka zina uhusiano gani nayo? Leo tutajibu maswali haya yote.

    Neno "kujifunza kwa mashine" lilionekana nyuma katika miaka ya 50. Neno hili linamaanisha jaribio la kufundisha kompyuta kutatua matatizo ambayo ni rahisi kwa wanadamu, lakini ni vigumu kurasimisha njia ya kuyatatua. Kama matokeo ya kujifunza kwa mashine, kompyuta inaweza kuonyesha tabia ambayo haikuundwa kwa uwazi ndani yake. Katika ulimwengu wa kisasa, tunakutana na matunda ya kujifunza kwa mashine mara nyingi kila siku, wengi wetu bila hata kujua. Inatumika kujenga malisho kwenye mitandao ya kijamii, orodha za "bidhaa zinazofanana" katika maduka ya mtandaoni, wakati wa kutoa mikopo katika mabenki na kuamua gharama ya bima. Teknolojia za kujifunza mashine hutumiwa kutafuta nyuso kwenye picha au vichungi vingi vya picha. Kwa mwisho, kwa njia, mitandao ya neural hutumiwa kawaida, na imeandikwa mara nyingi kwamba kunaweza kuwa na maoni ya makosa kwamba hii ni "risasi ya fedha" kwa ajili ya kutatua matatizo ya utata wowote. Lakini hiyo si kweli.

    Mitandao ya mishipa ya fahamu au kuongeza upinde rangi

    Kwa kweli, kujifunza kwa mashine ni tofauti sana: kuna idadi kubwa ya mbinu tofauti, na mitandao ya neural ni moja tu yao. Hii inaonyeshwa na matokeo ya mashindano kwenye jukwaa la Kaggle, ambapo mbinu tofauti hushinda katika mashindano tofauti, na kukuza upinde rangi hushinda katika mengi yao.

    Mitandao ya Neural ni bora katika kutatua matatizo fulani - kwa mfano, wale ambapo unahitaji kufanya kazi na data homogeneous. Data ya homogeneous inajumuisha, kwa mfano, picha, sauti au maandishi. Katika Yandex, hutusaidia kuelewa vyema hoja za utafutaji, kutafuta picha zinazofanana kwenye mtandao, kutambua sauti yako katika Navigator, na mengine mengi. Lakini hizi sio kazi zote za kujifunza kwa mashine. Kuna safu nzima ya changamoto kubwa ambazo haziwezi kutatuliwa na mitandao ya neva pekee - zinahitaji uboreshaji wa upinde rangi. Njia hii ni ya lazima ambapo kuna data nyingi na muundo wake ni tofauti.

    Kwa mfano, ikiwa unahitaji utabiri sahihi wa hali ya hewa, ambapo idadi kubwa ya mambo huzingatiwa (joto, unyevu, data ya rada, uchunguzi wa watumiaji na wengine wengi). Au ikiwa unahitaji kuorodhesha matokeo ya utafutaji kwa ubora - hii ndiyo iliyosababisha Yandex kuunda mbinu yake ya kujifunza mashine.

    Matrixnet

    Mitambo ya kwanza ya utafutaji haikuwa ya kisasa kama ilivyo sasa. Kwa kweli, mwanzoni ilikuwa utafutaji wa maneno tu - kulikuwa na tovuti chache sana ambazo hapakuwa na ushindani mkubwa kati yao. Kisha kulikuwa na kurasa zaidi, na ikawa muhimu kuziweka. Matatizo mbalimbali yalianza kuzingatiwa - mzunguko wa neno, tf-idf. Kisha kulikuwa na kurasa nyingi juu ya mada yoyote, mafanikio ya kwanza muhimu yalitokea - walianza kuzingatia viungo.

    Hivi karibuni mtandao ukawa muhimu kibiashara, na walaghai wengi walionekana wakijaribu kudanganya kanuni rahisi zilizokuwepo wakati huo. Na mafanikio ya pili muhimu yalitokea - injini za utafutaji zilianza kutumia ujuzi wao wa tabia ya mtumiaji kuelewa ni kurasa gani ni nzuri na ambazo sio.

    Takriban miaka kumi iliyopita, akili ya mwanadamu haikutosha tena kujua jinsi ya kupanga hati. Pengine umegundua kuwa idadi ya matokeo yaliyopatikana kwa karibu swali lolote ni kubwa: mamia ya maelfu, mara nyingi mamilioni ya matokeo. Mengi yao hayapendezi, hayana maana, yanataja tu maneno ya swali nasibu, au kwa ujumla ni barua taka. Ili kujibu ombi lako, unahitaji kuchagua mara moja kumi bora kutoka kwa matokeo yote yaliyopatikana. Kuandika programu ambayo hufanya hivi kwa ubora unaokubalika imekuwa nje ya uwezo wa mpanga programu wa kibinadamu. Mpito uliofuata umetokea - injini za utafutaji zilianza kutumia kikamilifu kujifunza kwa mashine.

    Nyuma mwaka wa 2009, Yandex ilianzisha njia yao ya Matrixnet, kulingana na kuongeza gradient. Tunaweza kusema kwamba cheo kinasaidiwa na akili ya pamoja ya watumiaji na "hekima ya umati". Taarifa kuhusu tovuti na tabia za watu hubadilishwa kuwa vipengele vingi, ambavyo kila moja hutumika na Matrixnet kuunda fomula ya cheo. Kwa kweli, formula ya cheo sasa imeandikwa na mashine. Kwa njia, sisi pia hutumia matokeo ya mitandao ya neural kama sababu za kibinafsi (kwa mfano, hii ndio jinsi algorithm ya Palekh inavyofanya kazi, ambayo tulizungumza juu ya mwaka jana).

    Kipengele muhimu cha Matrixnet ni kwamba ni sugu kwa overfitting. Hii inakuwezesha kuzingatia mambo mengi ya cheo na wakati huo huo treni kwa kiasi kidogo cha data, bila hofu kwamba mashine itapata mifumo isiyopo. Mbinu zingine za kujifunza kwa mashine hukuruhusu kuunda fomula rahisi kwa kutumia vipengele vichache au zinahitaji sampuli kubwa ya mafunzo.

    Kipengele kingine muhimu cha Matrixnet ni kwamba fomula ya cheo inaweza kusanidiwa kando kwa madarasa finyu ya maswali. Kwa mfano, boresha ubora wa utafutaji tu kwa maswali kuhusu muziki. Wakati huo huo, nafasi ya madarasa mengine ya maswali haitapungua.

    Ilikuwa Matrixnet na faida zake ambazo ziliunda msingi wa CatBoost. Lakini kwa nini tulihitaji kuvumbua kitu kipya hata kidogo?

    Karibu njia yoyote ya kisasa kulingana na kuongeza gradient hufanya kazi na nambari. Hata kama ingizo lako ni aina za muziki, aina za mawingu au rangi, data hii bado inahitaji kuelezwa katika lugha ya nambari. Hii inasababisha kupotosha kwa kiini chao na kupungua kwa uwezekano wa usahihi wa mfano.

    Hebu tuonyeshe hili kwa kutumia mfano wa awali na orodha ya bidhaa katika duka. Bidhaa zina uhusiano mdogo na kila mmoja, na hakuna muundo kati yao ambao ungeruhusu kuagizwa na kupewa nambari ya maana kwa kila bidhaa. Kwa hiyo, katika hali hii, kila bidhaa hupewa tu kitambulisho cha serial (kwa mfano, kwa mujibu wa mpango wa uhasibu wa duka). Mpangilio wa nambari hizi haimaanishi chochote, lakini algorithm itatumia agizo hili na kuteka hitimisho la uwongo kutoka kwake.

    Mtaalamu mwenye ujuzi wa kujifunza mashine anaweza kuja na njia ya akili zaidi ya kugeuza vipengele vya kitengo kuwa nambari, lakini uchakataji kama huo wa awali utasababisha upotevu wa baadhi ya taarifa na utasababisha kuzorota kwa ubora wa suluhisho la mwisho.

    Ndiyo maana ilikuwa muhimu kufundisha mashine kufanya kazi si tu kwa namba, lakini pia kwa makundi moja kwa moja, mifumo kati ya ambayo itajitambulisha kwa kujitegemea, bila "msaada" wetu wa mwongozo. Na CatBoost iliundwa na sisi kufanya kazi sawa nje ya boksi na sifa za nambari na kitengo. Shukrani kwa hili, inaonyesha utendaji bora wa kujifunza wakati wa kufanya kazi na data tofauti kuliko ufumbuzi mbadala. Inaweza kutumika katika maeneo mbalimbali - kutoka benki hadi sekta.

    Kwa njia, jina la teknolojia linatokana na Kukuza Kitengo. Na hakuna paka mmoja aliyejeruhiwa wakati wa maendeleo.

    Vigezo

    Tunaweza kuzungumza kwa muda mrefu juu ya tofauti za kinadharia za maktaba, lakini ni bora kuionyesha kwa mazoezi mara moja. Kwa uwazi, tulilinganisha utendakazi wa maktaba ya CatBoost na analogi zilizo wazi XGBoost, LightGBM na H20 kwenye seti ya seti za data za umma. Na haya ndio matokeo (ndogo bora): https://catboost.yandex/#benchmark

    Hatutaki kutokuwa na msingi, kwa hivyo, pamoja na maktaba, maelezo ya mchakato wa kulinganisha, msimbo wa kuzindua ulinganisho wa mbinu, na kontena iliyo na matoleo yaliyotumika ya maktaba zote huchapishwa kwenye chanzo wazi. Mtumiaji yeyote anaweza kurudia jaribio nyumbani au kwenye data yake mwenyewe.

    CatBoost katika mazoezi

    Njia mpya tayari imejaribiwa kwenye huduma za Yandex. Ilitumika kuboresha matokeo ya utafutaji, kuorodhesha mpasho wa mapendekezo ya Yandex.Zen, na kukokotoa utabiri wa hali ya hewa katika teknolojia ya Meteum - na katika hali zote ilionyesha kuwa bora kuliko Matrixnet. Katika siku zijazo, CatBoost itafanya kazi kwenye huduma zingine. Hatutaacha hapa - ni bora kukuambia mara moja kuhusu Large Hadron Collider (LHC).

    CatBoost pia imepata matumizi ndani ya mfumo wa ushirikiano na Shirika la Ulaya la Utafiti wa Nyuklia. LHC huendesha kigunduzi cha LHCb, ambacho hutumika kuchunguza ulinganifu wa maada na antimatter katika mwingiliano wa quarks nzito nzuri. Ili kufuatilia kwa usahihi chembe tofauti zilizogunduliwa katika jaribio, kuna sehemu kadhaa maalum katika detector, ambayo kila mmoja huamua mali maalum ya chembe. Kazi ngumu zaidi katika kesi hii ni kuchanganya habari kutoka sehemu tofauti za kigunduzi hadi maarifa sahihi zaidi, yaliyojumlishwa juu ya chembe. Hapa ndipo kujifunza kwa mashine kunasaidia. Kutumia CatBoost kuchanganya data, wanasayansi waliweza kuboresha sifa za ubora wa suluhisho la mwisho. Matokeo ya CatBoost yalikuwa bora kuliko yale yaliyopatikana kwa kutumia njia zingine.

    Jinsi ya kuanza kutumia CatBoost?

    Ili kufanya kazi na CatBoost, isakinishe tu kwenye kompyuta yako. Maktaba inasaidia mifumo ya uendeshaji ya Linux, Windows na macOS na inapatikana katika lugha za programu za Python na R pia imetengeneza programu ya taswira