Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Çend meh berê, hevkarên me yên Google xerc kirin li ser Kaggle pêşbaziyek ji bo afirandina dabeşkerek ji bo wêneyên ku di hestiyar de hatine bidestxistin lîstikê "Zû, Draw!" Tîma ku pêşdebirê Yandex Roman Vlasov tê de bû, di pêşbaziyê de cîhê çaremîn girt. Di perwerdehiya fêrbûna makîneyê ya Çile de, Roman ramanên tîmê xwe, pêkanîna dawîn a dabeşker, û pratîkên balkêş ên dijberên xwe parve kir.


- Silav hemû! Navê min Roma Vlasov e, îro ez ê ji we re qala Quick, Draw bikim! Pirsgirêka Naskirina Doodle.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Di tîma me de pênc kes hebûn. Ez berî muhleta yekbûnê tevlê bûm. Em bêbext bûn, em piçekî hejandin, lê em ji pozê pereyan hejiyan û ew jî ji zêrê hejiyan. Û me rêza çaremîn a bi rûmet girt.

(Di dema pêşbirkê de, tîman xwe di nirxekê de dîtin, ku li gorî encamên ku li ser beşek ji berhevoka daneya pêşniyarkirî hatî destnîşan kirin. Rêjeya dawîn jî, li ser beşeke din a databasê hate çêkirin. ku beşdarên pêşbirkê algorîtmayên xwe li gorî daneyên taybetî rast nakin. Ji ber vê yekê, di fînalê de, dema ku di navbera nirxan de diguhezin, pozîsyon hinekî dihejin (ji îngilîzî shake up - tevlihev kirin): li ser daneyên din, dibe ku encam derkeve Tîma Roman di sê rêzên pêşîn de bû yekem. Di vê rewşê de, sê cîhên herî pêşîn pere ye, qada nirxandina diravî ye, ji ber ku tenê sê cîhên yekem xelata dravê wergirtin. cîhê çaremîn. Bi heman awayî, tîma din serketî, pozîsyona zêr winda kir. - Ed.)

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Ev pêşbirk jî watedar bû ku Evgeniy Babakhnin mamosteyê mezin wergirt, Îvan Sosin master wergirt, Roman Soloviev mamostayek mezin ma, Alex Parînov master wergirt, ez bûm pispor û niha ez jixwe mamoste me.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Ev Zû, Draw çi ye? Ev xizmetek ji Google ye. Armanca Google ew bû ku AI-ê populer bike û bi vê karûbarê xwest ku nîşan bide ka torên neuralî çawa dixebitin. Hûn herin wir, bikirtînin Werin em xêz bikin, û rûpelek nû derdikeve cihê ku ji we re tê gotin: zigzagek xêz bikin, 20 çirkeyên we hene ku hûn vê bikin. Mînakî, hûn hewl didin ku di 20 çirkeyan de zigzagek xêz bikin. Ger tu bi ser ketî, şebek dibêje zigzag e û tu diçî. Tenê şeş ​​wêneyên weha hene.

Ger tora Google nekare tiştê ku we xêz kiriye nas bike, xaçeyek li ser peywirê hate danîn. Dûv re ez ê ji we re vebêjim ka dê di pêşerojê de were çi wateyê ka nexşeyek ji hêla torê ve tê nas kirin an na.

Vê karûbar jimarek pir zêde bikarhêner berhev kir, û hemî wêneyên ku bikarhêneran xêz kirin hatin tomarkirin.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Me hema hema 50 mîlyon wêne berhev kir. Ji vê yekê, tarîxa trênê û ceribandina pêşbaziya me hate damezrandin. Bi awayê, hêjmara daneyan di ceribandinê de û hejmara dersan ji ber sedemek bi stûr têne ronî kirin. Ez ê hinekî paşê ji we re behsa wan bikim.

Forma daneyê wiha bû. Ev ne tenê wêneyên RGB ne, lê, bi gelemperî, têketinek her tiştê ku bikarhêner kir. Peyv hedefa me ye, koda welat ew e ku nivîskarê doodle ji ku ye, mohra demjimêr dem e. Etîketa naskirî tenê nîşan dide ka torê wêneyê ji Google nas kiriye an na. Û xêzkirin bi xwe rêzek e, nêzîkatiya kelekek e ku bikarhêner bi xalan xêz dike. Û demên. Ev dem ji destpêka kişandina wêneyê ve ye.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Daneyên di du formatan de hatin pêşkêş kirin. Ev forma yekem e, û ya duyemîn hêsankirî ye. Wan demjimêran ji wir qut kirin û ev koma xalan bi komek xalên piçûktir ve nêzîk kirin. Ji bo vê yekê bikar anîn Algorîtmaya Douglas-Pecker. Komek mezin a xalên we hene ku bi tenê xêzek rast nêzik dike, lê bi rastî hûn dikarin vê xetê tenê bi du xalan nêzîk bikin. Ev ramana algorîtmayê ye.

Daneyên bi vî awayî hatin belavkirin. Her tişt yekdeng e, lê hin hûrgulî hene. Dema me pirsgirêk çareser kir, me lê nihêrî. Ya sereke ev e ku tu dersên ku bi rastî hindik bûn tune bûn, ne hewce bû ku em nimûneyên giran û zêdekirina daneyan bikin.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Wêne çawa xuya bûn? Ev çîna "balafir" e û mînakên wê yên bi etîketên naskirî û nenaskirî ne. Rêjeya wan li derûdora 1 ber 9 bû. Wekî ku hûn dibînin, dane pir bi deng in. Ez texmîn dikim ku ew balafirek e. Ger hûn li nenaskirî binêrin, di pir rewşan de ew tenê deng e. Kesek jî hewl da ku "balafir" binivîse, lê xuya ye ku bi fransî.

Piraniya beşdaran bi tenê şebek girtin, daneyên ji vê rêza rêzan wekî wêneyên RGB kişandin, û ew avêtin nav torê. Min hema bi heman awayî xêz kir: Min paletek ji rengan hilda, rêza yekem bi rengekî ku di destpêka vê paletê de bû, rêza dawî bi yekî din re ku li dawiya paletê bû û di navbera wan de xêz kir. Min li her derê bi karanîna vê paletê navber kir. Bi awayê, vê yekê encamek çêtir da ji ya ku hûn wekî di slideya yekem de xêz bikin - tenê bi reş.

Endamên tîmê yên din, wek Ivan Sosin, ji bo xêzkirinê nêzîkatiyên hinekî cûda ceribandin. Bi kanalekê re wî tenê wêneyek gewr xêz kir, bi kanalek din re her derbek ji serî heya dawiyê, ji 32 heya 255-an, bi derbekê xêz kir, û bi kanala sêyemîn re li ser hemî lêdanan ji 32 heta 255 gradient xêz kir.

Tiştek din a balkêş ev e ku Alex Parinov bi karanîna koda welat agahdarî li torê bar kir.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Metrîka ku di pêşbaziyê de tê bikar anîn Precision Navîn a Navîn e. Esasê vê metrîkê ji bo pêşbaziyê çi ye? Hûn dikarin sê pêşdîtinan bidin û heke di van sêyan de pêşdaçeka rast tune be hûn 0-yê distînin. Ger yek rast hebe wê hingê rêza wê tê hesibandin. Û encama armanc dê wekî 1-ê li gorî rêza pêşbîniya we were dabeş kirin. Bo nimûne, te sê pêşbînker çêkirine û ya rast ya yekem e, paşê tu 1 bi 1 dabeş dikî û distînî 1. Ger pêşbînker rast be û rêza wê 2 be, wê demê 1 bi 2 dabeş bike, tu dibî 0,5. Belê, hwd.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Digel pêşdibistanên daneyê - meriv çawa wêneyan xêz dike û hwd - me hinekî biryar da. Me kîjan mîmarî bikar anîn? Me hewl da ku mîmarên qelew ên wekî PNASNet, SENet, û mîmariyên berê yên klasîk ên wekî SE-Res-NeXt bikar bînin, ew her ku diçe dikevin pêşbaziyên nû. ResNet û DenseNet jî hebûn.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Me ev çawa hîn kir? Hemî modelên ku me girtin li ser imagenet-ê berê hatine perwerde kirin. Her çend gelek dane hene, 50 mîlyon wêne, lê dîsa jî, heke hûn torgilokek pêş-perwerdekirî li ser imagenetê bigirin, wê ji ya ku hûn bi tenê ji sifirê perwerde kirine encamên çêtir nîşan didin.

Me kîjan teknîkên hînkirinê bikar anî? Ev Cosing Annealing with Warm Restarts e, ya ku ez ê hinekî paşê li ser biaxivim. Ev teknîkek e ku ez hema hema di hemî pêşbaziyên xwe yên vê dawiyê de bikar tînim, û bi wan re xuya dibe ku torên pir baş perwerde dike, da ku bigihîje hindiktirînek baş.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Piştre Rêjeya Fêrbûnê li Plateau Kêm bikin. Hûn dest bi perwerdekirina torê dikin, rêjeyek fêrbûnê destnîşan dikin, hînkirina wê didomînin, û windabûna we hêdî hêdî berbi nirxek diyarkirî ve diçe. Hûn vê yekê kontrol bikin, mînakî, ji bo deh serdeman windahî qet nehatiye guhertin. Hûn rêjeya fêrbûna xwe bi hin nirx kêm dikin û hînbûnê didomînin. Ew dîsa piçekî dadikeve, bi hindikî hindik digihêje hev, û hûn dîsa rêjeya fêrbûnê kêm dikin, û hwd, heya ku tora we di dawiyê de bigihîje hev.

Piştre teknîkek balkêş heye: Rêjeya fêrbûnê xirab nekin, mezinahiya heviyê zêde bikin. Bi heman navî gotarek heye. Dema ku hûn torgilokek perwerde dikin, ne hewce ye ku hûn rêjeya fêrbûnê kêm bikin, hûn dikarin tenê mezinahiya heviyê zêde bikin.

Ev teknîkî, bi awayê, ji hêla Alex Parinov ve hatî bikar anîn. Wî dest bi komikek wekhevî 408 kir, û gava ku tora wî gihîşt hindek deştê, wî bi tenê mezinahiya komê ducar kir, û hwd.

Bi rastî, nayê bîra min mezinahiya wî ya hevîrê gihîştiye çi nirxê, lê ya balkêş ev e ku li ser Kaggle tîmên ku heman teknîkê bikar anîne hebûn, mezinahiya hevjîna wan nêzî 10000 bû. Bi awayê, çarçoveyên nûjen ên ji bo fêrbûna kûr, mîna Mînakî PyTorch dihêle hûn vê yekê pir bi hêsanî bikin. Hûn berhevoka xwe hildiberînin û wê ne wekî ku ye, bi tevahî wê ji torê re dişînin, lê wê di perçeyan de dabeş dikin da ku ew di qerta vîdyoya we de cih bigire, gradientan hesab bikin, û piştî ku we gradient ji bo tevheviyê hesab kir, nûve bikin. giranan.

Bi awayê, mezinahiyên mezin hîn jî di vê pêşbaziyê de bûn, ji ber ku dane pir bi deng bû, û mezinahiyek mezin ji we re bû alîkar ku hûn bi rengek rasttir nêzikî gradientê bibin.

Pseudo-etîketkirin jî hate bikar anîn, piranî ji hêla Roman Soloviev ve hatî bikar anîn. Wî bi qasî nîvê daneyên ji ceribandinê di betan de nimûne kir, û tora li ser beşên weha perwerde kir.

Mezinahiya wêneyan girîng bû, lê rastî ev e ku hûn gelek daneyên we hene, hûn hewce ne ku demek dirêj perwerde bikin, û heke mezinahiya wêneya we pir mezin be, wê hingê hûn ê ji bo demek pir dirêj perwerde bikin. Lê vê yekê pir zêde li qalîteya dabeşkera weya paşîn zêde nekir, ji ber vê yekê hêjayî karanîna cûreyek bazirganiyê bû. Û me tenê wêneyên ku bi mezinahî ne pir mezin bûn ceriband.

Hemî çawa fêr bû? Pêşî, wêneyên piçûk hatin kişandin, çend serdem li ser wan hatin meşandin, vê yekê pir wext girt. Dûv re wêneyên mezin hatin dayîn, torgilok hate perwerdekirin, piştre hîn bêtir, hêj bêtir, da ku ew ji nû ve perwerde nebe û pir dem winda neke.

Der barê optimizers. Me SGD û Adem bikar anîn. Bi vî rengî gengaz bû ku meriv modelek yekane bistîne, ku leza 0,941-0,946 li ser tabloya pêşeng a giştî da, ku pir baş e.

Ger hûn modelan bi rengekî berhev bikin, hûn ê li derûdora 0,951-ê bibin. Ger hûn teknîkek din bikar bînin, hûn ê li ser panela gelemperî 0,954 puana paşîn bistînin, mîna ku me girt. Lê bêtir li ser wê paşê. Dûv re ez ê ji we re vebêjim ka me modelan çawa berhev kir, û me çawa karî bigihîje leza dawîn.

Dûv re ez dixwazim li ser Cosing Annealing bi Ji Nûve Destpêkirina Germ an Daketina Gradient Stochastic bi Ji Nûve Destpêkên Germ re biaxivim. Bi gelemperî, di prensîbê de, hûn dikarin her optimîzatorek bikar bînin, lê xal ev e: heke hûn tenê yek torê perwerde bikin û hêdî hêdî ew bi hindiktirîn re hevûdu bike, wê hingê her tişt baş e, hûn ê yek torê bistînin, ew hin xeletiyan dike, lê hûn dikare wê hinekî cuda perwerde bike. Hûn ê hin rêjeya fêrbûna destpêkê destnîşan bikin, û hêdî hêdî li gorî vê formulê wê kêm bikin. Hûn wê dadixin, tora we tê hindek hindiktirîn, dûv re hûn giraniyan hildibijêrin, û dîsa rêjeya fêrbûnê ya ku di destpêka perwerdehiyê de bû destnîşan dikin, bi vî rengî ji vê kêmtirîn deverek ber bi jor ve diçin, û dîsa rêjeya fêrbûna xwe kêm dikin.

Bi vî rengî, hûn dikarin bi yekcarî serdana çend kêmaniyan bikin, ku tê de windabûna we dê, zêde an kêm, yek be. Lê rastî ev e ku torên bi van giranan dê di dîroka we de xeletiyên cûda bidin. Bi navgînkirina wan, hûn ê cûreyek nêzîkbûnê bistînin, û leza we dê bilindtir be.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Li ser çawa me modelên xwe civandin. Di destpêka pêşkêşiyê de, min got ku bala xwe bidin mîqdara daneyên di testê de û hejmara dersan. Ger hûn 1-ê li hejmara armancan di koma testê de zêde bikin û bi hejmara dersan veqetînin, hûn ê hejmara 330 bistînin, û ev li ser forumê hate nivîsandin - ku dersên di testê de hevseng in. Ev dikare were bikar anîn.

Li ser vê yekê, Roman Soloviev metrîkek derxist, me jê re got Proxy Score, ku bi tabloya pêşeng re pir baş têkildar bû. Mesele ev e: hûn pêşbîniyekê dikin, 1-a pêşbînkerên xwe yên jorîn digirin û ji bo her polê hejmara tiştan bijmêrin. Dûv re, 330 ji her nirxê derxînin û nirxên teqez ên encam lê zêde bikin.

Nirxên jêrîn hatin bidestxistin. Vê yekê alîkariya me kir ku em nekarin tabloyek pêşeng a lêkolînê biafirînin, lê ji bo verastkirina herêmî û jimareyên ji bo komên xwe hilbijêrin.

Bi ensembleyê hûn dikarin lezek wusa bistînin. Ma ez dikarim çi bikim? Bifikirin ku we agahdariya ku dersên di ceribandina we de hevseng in bikar anîn.

Hevsengî cuda bû. Mînaka yek ji wan - hevsengiya ji xortên ku cîhê yekem girtin.

Me çi kir? Hevsengiya me pir hêsan bû, ew ji hêla Evgeny Babakhnin ve hate pêşniyar kirin. Me ewil pêşbîniyên xwe li gorî 1-a pêşîn rêz kir û ji wan berendam hilbijart - da ku hejmara dersan ji 330-an derbas nebe. Lê ji bo hin dersan hûn ji 330 pêşbînkeran kêmtir dibin. Baş e, bila em li gorî 2 û 3 yên jorîn jî rêz bikin. , û em ê namzetan jî hilbijêrin.

Hevsengiya me ji hevsengiya yekem çawa cûda bû? Wan nêzîkatiyek dubare bikar anîn, çîna herî populer girtin û îhtîmalên wê polê bi hejmarek piçûk kêm kirin heya ku ew pola nema herî populer bû. Me çîna herî populer a din girt. Ji ber vê yekê wan kêmkirina wan berdewam kir heta ku hejmara hemî çînan bû yek.

Her kesî ji bo torên trênê nêzîkatiyek plus an kêm yek bikar anî, lê ne her kes hevseng bikar anî. Bi karanîna hevsengiyê, hûn dikarin biçin nav zêr, û heke hûn bextewar bûn, wê hingê di nav drav de.

Meriv çawa dîrokek pêşdibistanê dike? Herkesî bi heman awayî dîrok, zêde yan kêmasî, pêşdibistanê kir - çêkirina taybetmendiyên destan, hewldana kodkirina demjimêran bi rengên lêdanê yên cihê, hwd. Alexey Nozdrin-Plotnitsky, ku cîhê 8-an girt, li ser vê yekê axivî.

Dabeşkirina xêzên destnivîsan. Rapor li Yandex

Wî ew cûda kir. Wî got ku van hemî taybetmendiyên weyên destan naxebitin, hûn ne hewce ne wiya bikin, divê tora we van hemîyan bixwe fêr bibe. Û di şûna wê de, wî modulên fêrbûnê yên ku daneyên we pêşdibistanê kirin derket. Wî daneyên orîjînal bêyî pêş-processing avêtin nav wan - koordînat û demjimêrên xalî.

Dûv re wî ferqa li ser bingeha koordînatan girt, û ew hemî li gorî demjimêran navîn kir. Û ew bi matrixek pir dirêj ve hat. Wî çend caran lihevhatina 1D li wê sepand da ku matrixek bi mezinahiya 64xn bidest bixe, ku n hejmara giştî ya xalan e, û 64 tê çêkirin da ku matrixa encam bide tewra her tora konvolutional, ya ku hejmara kanalan qebûl dike. - 64. Wî matrixek 64xn bi dest xist, paşê ji vê yekê hewce bû ku tensorek hin mezinahî çêbike, da ku hejmara kanalan bibe 64. Wî hemî xalên X, Y di navberê de ji 0 heya 32-an normalîze kir da ku biafirîne. tensor bi mezinahiya 32x32. Ez nizanim çima wî 32x32 dixwest, ew bi vî rengî çêbû. Û li ser vê koordînatê wî perçeyek ji vê matrixê bi mezinahiya 64xn danî. Ji ber vê yekê ew tenê bi tensorek 32x32x64 bi dawî bû ku hûn dikarin bêtir têxin nav tora xweya neuralî ya hevgirtî. Tiştê ku min dixwest bibêjim ev bû.

Source: www.habr.com

Add a comment