Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Bayan 'yan watanni da suka gabata, abokan aikinmu daga Google kashe akan Kaggle gasar don ƙirƙirar ƙira don hotunan da aka samu a cikin abin mamaki wasan "Da sauri, Zana!" Kungiyar, wacce ta hada da mai tsara Yandex Roman Vlasov, ta dauki matsayi na hudu a gasar. A cikin horar da na'ura na Janairu, Roman ya raba ra'ayoyin tawagarsa, aikin karshe na mai rarrabawa, da kuma ayyuka masu ban sha'awa na abokan adawarsa.


- Sannu duka! Sunana Roma Vlasov, a yau zan gaya muku game da Quick, Draw! Kalubalen Gane Doodle.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Akwai mutane biyar a tawagarmu. Na shiga daidai kafin lokacin haɗawa. Mun yi rashin sa'a, an girgiza mu kadan, amma an girgiza mu daga matsayin kudi, kuma an girgiza su daga matsayi na zinariya. Kuma mun dauki matsayi na hudu mai daraja.

(A yayin gasar, kungiyoyin sun lura da kansu a cikin wani rating, wanda aka kafa bisa ga sakamakon da aka nuna a wani bangare na bayanan da aka tsara. Ƙididdiga na ƙarshe, bi da bi, an kafa shi a wani ɓangare na dataset. An yi haka. cewa mahalarta gasar ba su daidaita algorithms ɗin su zuwa takamaiman bayanai.Saboda haka, a cikin wasan ƙarshe, lokacin da aka canza tsakanin ƙididdiga, matsayi na girgiza kaɗan (daga Ingilishi girgiza - don haɗawa): akan wasu bayanan, sakamakon zai iya fitowa. ta bambanta.Tawagar Roman ce ta farko a cikin uku na farko, a wannan yanayin, uku na farko shine kudi, yankin rating na kuɗi, tun da wuri uku na farko kawai aka ba da kyautar kuɗi. wuri na hudu. Hakazalika, sauran tawagar sun rasa nasara, matsayi na zinariya. - Ed.)

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Gasar kuma ta kasance mai mahimmanci a cikin cewa Evgeniy Babakhnin ya sami babban malami, Ivan Sosin ya sami digiri, Roman Soloviev ya kasance babban malami, Alex Parinov ya sami jagora, na zama gwani, kuma yanzu na riga na zama jagora.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Menene wannan Saurin, Zana? Wannan sabis ne daga Google. Google yana da burin yaɗa AI kuma tare da wannan sabis ɗin yana so ya nuna yadda cibiyoyin sadarwa ke aiki. Za ka je can, danna Bari mu zana, kuma wani sabon shafi ya bayyana inda aka ce maka: zana zigzag, kana da 20 seconds don yin wannan. Kuna ƙoƙarin zana zigzag a cikin daƙiƙa 20, kamar anan, misali. Idan kun yi nasara, hanyar sadarwar ta ce zigzag ce kuma kun ci gaba. Irin waɗannan hotuna guda shida ne kawai.

Idan cibiyar sadarwar Google ta kasa gane abin da kuka zana, an sanya giciye akan aikin. Daga baya zan gaya muku abin da zai nufi a nan gaba ko zane yana gane ta hanyar sadarwa ko a'a.

Wannan sabis ɗin ya tattara adadi mai yawa na masu amfani, kuma duk hotunan da masu amfani suka zana an shigar dasu.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Mun yi nasarar tattara hotuna kusan miliyan 50. Daga nan ne aka kafa jirgin kasa da ranar gwajin gasar mu. Af, adadin bayanai a cikin gwajin da adadin azuzuwan ana haskaka su da ƙarfi don dalili. Zan ba ku labarinsu kaɗan kaɗan.

Tsarin bayanan ya kasance kamar haka. Waɗannan ba hotunan RGB ba ne kawai, amma, a zahiri magana, tarihin duk abin da mai amfani ya yi. Kalma ita ce manufar mu, lambar ƙasa ita ce inda marubucin doodle ya fito, tambarin lokaci lokaci ne. Alamar da aka gane tana nuna kawai ko hanyar sadarwar ta gane hoton daga Google ko a'a. Kuma shi kansa zanen jeri ne, kimamin lankwasa wanda mai amfani ya zana da maki. Da lokuta. Wannan shine lokacin daga farkon zana hoton.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

An gabatar da bayanai ta hanyoyi biyu. Wannan shine tsari na farko, kuma na biyu an sauƙaƙa. Sun yanke lokaci daga nan kuma sun ƙididdige wannan saitin maki tare da ƙaramin saitin maki. Don wannan sun yi amfani da su Douglas-Pecker algorithm. Kuna da babban saitin maki waɗanda kawai ke kusantar layi madaidaiciya, amma a zahiri kuna iya kusantar wannan layin da maki biyu kawai. Wannan shine ra'ayin algorithm.

An rarraba bayanan kamar haka. Komai na uniform, amma akwai wasu outliers. Lokacin da muka magance matsalar, ba mu duba ba. Babban abu shi ne cewa babu azuzuwan da ke da ƴan kaɗan ne, ba lallai ne mu yi masu ƙima da ƙima ba.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Yaya hotuna suka yi kama? Wannan shine ajin "jirgin sama" da misalai daga ciki tare da alamun da aka gane kuma ba a gane su ba. Rabon su ya kasance wani wuri a kusa da 1 zuwa 9. Kamar yadda kake gani, bayanan suna da hayaniya sosai. Ina tsammanin jirgin sama ne. Idan ka duba ba a gane ba, a mafi yawan lokuta hayaniya ce kawai. Wani ma yayi ƙoƙari ya rubuta "jirgin sama," amma a fili a cikin Faransanci.

Yawancin mahalarta sun ɗauki grid kawai, sun zana bayanai daga wannan jerin layin azaman hotuna RGB, kuma suka jefa su cikin hanyar sadarwa. Na zana kusan kamar haka: Na ɗauki palette na launuka, zana layin farko tare da launi ɗaya, wanda yake a farkon wannan palette, na ƙarshe - tare da wani, wanda yake a ƙarshen palette, kuma a tsakanin su. Na shiga ko'ina ta amfani da wannan palette. Af, wannan ya ba da sakamako mafi kyau fiye da idan kun zana kamar yadda a kan zane na farko - kawai a baki.

Sauran membobin ƙungiyar, irin su Ivan Sosin, sun gwada hanyoyi daban-daban don yin zane. Da wata tashar kawai ya zana hoto mai launin toka, tare da wata tashar ya zana kowane bugun jini da gradient daga farko zuwa ƙarshe, daga 32 zuwa 255, kuma tare da tashar ta uku ya zana gradient akan duk bugun daga 32 zuwa 255.

Wani abu mai ban sha'awa shine Alex Parinov ya loda bayanai zuwa hanyar sadarwar ta amfani da lambar ƙasa.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Ma'aunin da aka yi amfani da shi a gasar shine Matsakaicin Matsakaici. Menene ma'anar wannan awo don gasa? Za ka iya ba da hadisai guda uku, idan kuma ba a sami daidaito ba a cikin waɗannan ukun, to za ka sami 0. Idan akwai daidai, to ana la'akari da odarsa. Kuma za a ƙidaya sakamakon da aka yi niyya a matsayin 1 a raba ta tsarin hasashen ku. Misali ka yi tsinkaya guda uku, wanda daidai yake shi ne na farko, sai ka raba 1 da 1 ka samu 1. Idan mai hasashen ya yi daidai kuma tsarinsa ya kasance 2, sai ka raba 1 da 2, za ka samu 0,5. To, da sauransu.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Tare da preprocessing data - yadda za a zana hotuna da sauransu - mun yanke shawarar kadan. Wadanne gine-gine muka yi amfani da su? Mun yi ƙoƙari mu yi amfani da gine-gine mai ƙiba irin su PNASNet, SENet, da irin waɗannan gine-ginen gargajiya kamar SE-Res-NeXt, suna ƙara shiga sabbin gasa. Akwai kuma ResNet da DenseNet.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Ta yaya muka koyar da wannan? Duk samfuran da muka ɗauka an riga an horar dasu akan imagenet. Ko da yake akwai bayanai da yawa, hotuna miliyan 50, amma har yanzu, idan kun ɗauki hanyar sadarwar da aka riga aka horar akan imagenet, ya nuna sakamako mafi kyau fiye da idan kun horar da shi daga karce.

Waɗanne dabarun koyarwa muka yi amfani da su? Wannan shine Cosing Annealing tare da Warm Restarts, wanda zan yi magana game da shi kadan daga baya. Wannan wata dabara ce da nake amfani da ita a kusan dukkanin gasa na kwanan nan, kuma tare da su ya zama don horar da grid da kyau, don cimma mafi ƙarancin ƙima.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Na gaba Rage Yawan Ilimi a Filato. Kuna fara horar da hanyar sadarwa, saita ƙimar koyo, ci gaba da koyar da shi, kuma asarar ku a hankali tana haɗuwa zuwa ƙima. Kuna duba wannan, alal misali, tsawon lokaci goma asarar ba ta canza ba kwata-kwata. Kuna rage ƙimar karatun ku da ɗan ƙima kuma ku ci gaba da koyo. Yana faɗuwa kaɗan, yana haɗuwa a ɗan ƙarami, kuma kuna sake rage ƙimar koyo, da sauransu, har sai hanyar sadarwar ku ta ƙare.

Na gaba wata dabara ce mai ban sha'awa: Kada ku lalata ƙimar koyo, ƙara girman tsari. Akwai labarin mai suna iri ɗaya. Lokacin da kuke horar da hanyar sadarwa, ba lallai ne ku rage ƙimar koyo ba, zaku iya ƙara girman batch ɗin kawai.

Wannan fasaha, ta hanyar, Alex Parinov yayi amfani da shi. Ya fara da batch daidai da 408, kuma a lokacin da cibiyar sadarwarsa ta isa wani fili, sai kawai ya ninka girman batch, da dai sauransu.

A gaskiya ma, ban tuna abin da girman girman sa ya kai ba, amma abin da ke da ban sha'awa shi ne cewa akwai ƙungiyoyi a kan Kaggle da suka yi amfani da wannan fasaha, girman su ya kai kimanin 10000. Af, tsarin zamani don ilmantarwa mai zurfi, kamar su. PyTorch, alal misali, yana ba ku damar yin wannan cikin sauƙi. Za ka samar da batch ɗinka ka mika shi ga hanyar sadarwar ba kamar yadda yake ba, gaba ɗaya, amma ka raba shi kashi-kashi don ya dace da katin bidiyo naka, ka lissafta gradients, bayan ka ƙididdige gradient na duka batch, sabunta. masu nauyi.

Af, har yanzu ana amfani da manyan nau'ikan girma dabam a cikin wannan gasa, saboda bayanan suna da hayaniya sosai, kuma babban girman tsari ya taimaka muku daidai gwargwado.

Har ila yau, an yi amfani da alamar ƙira, wanda Roman Soloviev ya yi amfani da shi. Ya zana kusan rabin bayanan daga gwajin a batches, kuma ya horar da grid akan irin waɗannan batches.

Girman hotunan yana da mahimmanci, amma gaskiyar ita ce, kuna da bayanai da yawa, kuna buƙatar horarwa na dogon lokaci, kuma idan girman hotonku yana da girma sosai, to zaku sami horo na dogon lokaci. Amma wannan bai ƙara da yawa ga ingancin mai rarraba ku na ƙarshe ba, don haka yana da kyau a yi amfani da wani nau'in ciniki. Kuma mun gwada hotuna ne kawai waɗanda ba su da girma sosai.

Ta yaya aka koya duka? Na farko, an ɗauki hotuna masu ƙanƙanta, an gudanar da wasu lokuta da yawa a kansu, wannan ya ɗauki lokaci mai yawa. Sa'an nan kuma an ba da hotuna masu girma, an horar da hanyar sadarwa, sa'an nan kuma da yawa, har ma da yawa, don kada a horar da shi daga karce kuma kada a ɓata lokaci mai yawa.

Game da ingantawa. Mun yi amfani da SGD da Adam. Ta wannan hanyar yana yiwuwa a sami samfurin guda ɗaya, wanda ya ba da saurin 0,941-0,946 akan jagororin jama'a, wanda yake da kyau sosai.

Idan kun haɗa samfuran ta wata hanya, zaku sami wani wuri kusa da 0,951. Idan kun yi amfani da ƙarin fasaha guda ɗaya, zaku sami maki na ƙarshe na 0,954 akan hukumar jama'a, kamar yadda muka samu. Amma ƙari akan hakan daga baya. Na gaba zan gaya muku yadda muka tattara samfuran, da kuma yadda muka sami nasarar cimma irin wannan saurin ƙarshe.

Na gaba Ina so in yi magana game da Ƙaƙwalwar Ƙarfafawa tare da Sake farawa Dumi ko Zurgin Tushen Gradient tare da Sake farawa Dumi. Kusan magana, a ka'ida, zaku iya amfani da kowane mai ingantawa, amma abin lura shine: idan kun horar da hanyar sadarwa guda ɗaya kuma sannu a hankali ta haɗu zuwa ɗan ƙarami, to komai yana da kyau, zaku sami hanyar sadarwa ɗaya, yana yin wasu kurakurai, amma ku. zai iya horar da shi kadan daban. Za ku saita ƙimar koyo na farko, kuma a hankali ku rage shi bisa ga wannan dabarar. Kuna rage shi, cibiyar sadarwar ku ta zo mafi ƙarancin, sannan ku ajiye ma'aunin nauyi, sannan ku sake saita ƙimar koyo wanda ya kasance a farkon horo, ta haka za ku hau wani wuri sama daga mafi ƙarancin wannan, kuma ku sake rage ƙimar karatun ku.

Don haka, zaku iya ziyartar mafi ƙaranci da yawa a lokaci ɗaya, waɗanda asarar ku za ta kasance, ƙari ko ragi, iri ɗaya. Amma gaskiyar ita ce cibiyoyin sadarwa tare da waɗannan ma'aunin nauyi za su ba da kurakurai daban-daban akan kwanan wata. Ta hanyar matsawa su, za ku sami wani nau'i na kimanin, kuma gudun ku zai kasance mafi girma.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Game da yadda muka harhada samfuran mu. A farkon gabatarwar, na ce a kula da adadin bayanai a cikin gwajin da adadin azuzuwan. Idan kun ƙara 1 zuwa adadin maƙasudai a cikin saitin gwajin kuma ku raba ta adadin azuzuwan, zaku sami lambar 330, kuma an rubuta wannan akan taron - cewa azuzuwan da ke cikin gwajin sun daidaita. Ana iya amfani da wannan.

Dangane da wannan, Roman Soloviev ya zo da ma'auni, mun kira shi Proxy Score, wanda ya dace sosai da allon jagora. Maganar ita ce: kuna yin tsinkaya, ɗauki saman 1 na masu hasashen ku kuma ƙidaya adadin abubuwan kowane aji. Na gaba, cire 330 daga kowace ƙima kuma ƙara sakamakon cikakkiyar ƙimar.

An samo dabi'u masu zuwa. Wannan ya taimaka mana kada mu ƙirƙiri allon jagorar bincike, amma don inganta cikin gida da zaɓin ƙididdiga don tarin mu.

Tare da tarin za ku iya samun irin wannan saurin. Me kuma zan iya yi? A ce kun yi amfani da bayanin cewa azuzuwan da ke cikin gwajin ku sun daidaita.

Daidaiton ya bambanta. Misalin daya daga cikinsu - daidaitawa daga mutanen da suka dauki matsayi na farko.

Me muka yi? Daidaiton mu ya kasance mai sauƙi, Evgeny Babakhnin ya ba da shawarar. Da farko mun jera hasashenmu da manyan 1 da zababbun ’yan takara daga cikinsu – ta yadda adadin ajujuwan bai wuce 330 ba. Amma a wasu azuzuwan za ka ga ba kasa da 330 ba. , kuma za mu zabar 'yan takara.

Ta yaya daidaitawar mu ta bambanta da daidaitawar wuri na farko? Sun yi amfani da dabarar juzu'i, suna ɗaukar mafi mashahuri ajin kuma suna rage yiwuwar wannan ajin da wasu ƙananan adadi har sai wannan ajin ya daina zama mafi shahara. Mun dauki aji na gaba mafi shahara. Haka suka ci gaba da rage su har sai da adadin duk ajin ya zama daidai.

Kowa ya yi amfani da ƙari ko ragi hanya ɗaya don horar da cibiyoyin sadarwa, amma ba kowa ne ya yi amfani da daidaitawa ba. Yin amfani da ma'auni, za ku iya shiga cikin zinariya, kuma idan kun yi sa'a, to a cikin kudi.

Yadda ake tsara kwanan wata? Kowane mutum ya riga ya tsara kwanan wata, ƙari ko ragi, a cikin hanya guda - yin siffofi na hannu, ƙoƙarin ɓoye lokaci tare da launuka daban-daban na bugun jini, da dai sauransu. Wannan shi ne ainihin abin da Alexey Nozdrin-Plotnitsky, wanda ya dauki matsayi na 8, yayi magana akai.

Rarrabe zanen da aka rubuta da hannu. Yi rahoto a cikin Yandex

Ya yi shi daban. Ya ce duk waɗannan abubuwan da aka kera na ku na hannu ba sa aiki, ba kwa buƙatar yin hakan, ya kamata cibiyar sadarwar ku ta koyi duk wannan da kanta. Kuma a maimakon haka, ya fito da tsarin ilmantarwa wanda ya riga ya sarrafa bayanan ku. Ya jefa ainihin bayanan a cikin su ba tare da aiwatarwa ba - daidaitawar maki da lokutan lokaci.

Sa'an nan kuma ya ɗauki bambanci bisa ga daidaitawa, kuma ya daidaita shi duka bisa ga lokutan lokaci. Kuma ya fito da matrix mai tsayi sosai. Ya yi amfani da 1D convolution sau da yawa don samun matrix na girman 64xn, inda n shine jimlar adadin maki, kuma an yi 64 don ciyar da matrix da aka samu zuwa Layer na kowane cibiyar sadarwa mai juyi, wanda ke karɓar adadin tashoshi. - 64. ya sami matrix na 64xn, sannan daga wannan ya zama dole don ƙirƙirar tensor na wasu girman don adadin tashoshi ya kasance daidai da 64. Ya daidaita duk maki X, Y a cikin kewayon daga 0 zuwa 32 don ƙirƙirar tensor girman girman 32x32. Ban san dalilin da yasa yake son 32x32 ba, hakan ya faru ne kawai. Kuma a wannan haɗin gwiwar ya sanya guntun wannan matrix na girman 64xn. Don haka kawai ya ƙare tare da 32x32x64 tensor wanda zaku iya ƙarawa cikin hanyar sadarwar ku ta jujjuyawar. Abin da nake so ke nan in ce.

source: www.habr.com

Add a comment