Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

O chionn beagan mhìosan, ar co-obraichean bho Google seachad air Kaggle farpais gus seòrsaiche a chruthachadh airson ìomhaighean a gheibhear anns an t-seallaidheachd an geama "Gu luath, tarraing!" Ghabh an sgioba, anns an robh leasaiche Yandex Roman Vlasov, an ceathramh àite san fharpais. Aig trèanadh ionnsachadh inneal san Fhaoilleach, cho-roinn Ròmanach beachdan na sgioba aige, buileachadh deireannach an seòrsachaidh, agus cleachdaidhean inntinneach an luchd-dùbhlain aige.


- Hi uile! Is e m ’ainm Roma Vlasov, an-diugh innsidh mi dhut mu Quick, Draw! Dùbhlan Aithneachaidh Doodle.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Bha còignear air an sgioba againn. Thàinig mi còmhla dìreach ron cheann-latha aonaidh. Bha sinn mì-shealbhach, bha sinn air ar crathadh beagan, ach chaidh ar crathadh bho shuidheachadh an airgid, agus chaidh an crathadh bhon t-suidheachadh òir. Agus ghabh sinn an ceathramh àite urramach.

(Rè na farpais, choimhead na sgiobaidhean iad fhèin ann an rangachadh, a chaidh a chruthachadh stèidhichte air na toraidhean a chithear ann an aon phàirt den t-seata dàta a chaidh a mholadh. Chaidh an rangachadh mu dheireadh, an uair sin, a chruthachadh air pàirt eile den t-seata dàta. Tha seo air a dhèanamh mar sin Mar sin, anns na cuairtean deireannach, nuair a bhios iad ag atharrachadh eadar rangachadh, bidh na dreuchdan a’ crathadh beagan (bhon Bheurla shake up - to mix): air dàta eile, is dòcha gun tig an toradh a-mach Bha sgioba Ròmanach an toiseach anns na trì as àirde.Anns a’ chùis seo, is e airgead, sòn rangachadh airgid a th’ anns na trì as àirde, leis nach d’ fhuair ach a’ chiad trì àiteachan duais airgid. ceathramh àite. San aon dòigh, chaill an sgioba eile a’ bhuaidh, an suidheachadh òir. - Ed.)

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Bha a 'cho-fharpais cuideachd cudromach leis gun d' fhuair Evgeniy Babakhnin maighstir-sgoile, fhuair Ivan Sosin maighstir, dh'fhuirich Roman Soloviev na mhaighstir, fhuair Ailig Parinov maighstir, thàinig mi gu bhith na eòlaiche, agus a-nis tha mi mar mhaighstir mar-thà.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Dè a tha seo Quick, Draw? Seo seirbheis bho Google. Bha amas aig Google a bhith a’ còrdadh ri AI agus leis an t-seirbheis seo bha e airson sealltainn mar a tha lìonraidhean neural ag obair. Thèid thu ann, cliog Dèanamaid tarraing, agus nochdaidh duilleag ùr far an tèid innse dhut: tarraing zigzag, tha 20 diog agad airson seo a dhèanamh. Tha thu a’ feuchainn ri zigzag a tharraing ann an 20 diog, mar an seo, mar eisimpleir. Ma shoirbhicheas leat, tha an lìonra ag ràdh gur e zigzag a th’ ann agus gluaisidh tu air adhart. Chan eil ann ach sia dealbhan mar sin.

Mura aithnich lìonra Google na tharraing thu, chaidh crois a chuir air a’ ghnìomh. Nas fhaide air adhart innsidh mi dhut dè a bhios e a 'ciallachadh san àm ri teachd a bheil dealbh air aithneachadh leis an lìonra no nach eil.

Chruinnich an t-seirbheis seo àireamh meadhanach mòr de luchd-cleachdaidh, agus chaidh na dealbhan uile a tharraing luchd-cleachdaidh a chlàradh.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Chaidh againn air faisg air 50 millean ìomhaigh a chruinneachadh. Bhon seo, chaidh ceann-latha na trèana agus na deuchainn airson ar farpais a chruthachadh. Air an t-slighe, tha an àireamh de dhàta anns an deuchainn agus an àireamh de chlasaichean air an comharrachadh ann an clò trom airson adhbhar. Innsidh mi dhut mun deidhinn beagan às deidh sin.

Bha cruth an dàta mar a leanas. Chan e dìreach ìomhaighean RGB a tha seo, ach, gu ìre mhòr, log de gach nì a rinn an neach-cleachdaidh. Is e facal an targaid againn, is e còd dùthcha cò às a tha ùghdar an doodle, is e ùine stampa ùine. Tha an leubail aithnichte dìreach a’ sealltainn an aithnich an lìonra an ìomhaigh bho Google no nach robh. Agus is e sreath a th’ anns an dealbh fhèin, tuairmse air lùb a bhios an neach-cleachdaidh a’ tarraing le puingean. Agus amannan. Seo an t-àm bho thoiseach tarraing an dealbh.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Chaidh dàta a thaisbeanadh ann an dà chruth. Is e seo a 'chiad chruth, agus tha an dàrna fear nas sìmplidhe. Gheàrr iad a-mach na h-amannan às an sin agus rinn iad tuairmse air an t-seata phuingean seo le seata nas lugha de phuingean. Airson seo chleachd iad Algorithm Douglas-Pecker. Tha seata mòr de phuingean agad a tha dìreach a 'toirt tuairmse air loidhne dhìreach, ach gu dearbh faodaidh tu an loidhne seo a thomhas le dìreach dà phuing. Is e seo am beachd air an algairim.

Chaidh an dàta a sgaoileadh mar a leanas. Tha a h-uile dad co-ionann, ach tha cuid de rudan a-muigh ann. Nuair a dh’ fhuasgail sinn an duilgheadas, cha tug sinn sùil air. Is e am prìomh rud nach robh clasaichean ann a bha glè bheag, cha robh againn ri samplairean le cuideam agus ro-shamhlachadh dàta a dhèanamh.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Cò ris a bha na dealbhan coltach? Is e seo an clas “itealain” agus eisimpleirean bhuaithe leis na bileagan aithnichte agus neo-aithnichte. Bha an co-mheas aca an àiteigin timcheall air 1 gu 9. Mar a chì thu, tha an dàta gu math fuaimneach. Chanainn gur e itealan a th’ ann. Ma choimheadas tu air nach eil aithnichte, sa mhòr-chuid de chùisean chan eil ann ach fuaim. Dh'fheuch cuideigin eadhon ri "itealain" a sgrìobhadh, ach a rèir coltais ann am Fraingis.

Bha a’ mhòr-chuid de chom-pàirtichean dìreach a’ gabhail cliathaichean, a’ tarraing dàta bhon t-sreath seo de loidhnichean mar dhealbhan RGB, agus gan tilgeil a-steach don lìonra. Tharraing mi a-steach timcheall air an aon dòigh: ghabh mi paileas de dhhathan, tharraing mi a’ chiad loidhne le aon dath, a bha aig toiseach a’ phaileid seo, an loidhne mu dheireadh le fear eile, a bha aig deireadh a’ phaileid, agus eatorra. Rinn mi eadar-theangachadh anns a h-uile àite a’ cleachdadh a’ phaileid seo. Air an t-slighe, thug seo toradh nas fheàrr na bhith a 'tarraing mar air a' chiad sleamhnag - dìreach ann an dubh.

Dh'fheuch buill eile den sgioba, leithid Ivan Sosin, dòighean-obrach beagan eadar-dhealaichte airson tarraing. Le aon seanal tharraing e dìreach dealbh glas, le sianal eile tharraing e gach stròc le caisead bho thoiseach gu deireadh, bho 32 gu 255, agus leis an treas seanal tharraing e caisead thairis air a h-uile stròc bho 32 gu 255.

Is e rud inntinneach eile gun do chuir Alex Parinov suas fiosrachadh chun lìonra a’ cleachdadh còd dùthcha.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Is e an meatrach a thathar a’ cleachdadh sa cho-fharpais Precision Cuibheasach Cuibheasach. Dè an t-adhbhar a th’ aig a’ mheatrach seo airson farpais? Faodaidh tu trì ro-innse a thoirt seachad, agus mura h-eil ro-innse ceart anns na trì sin, gheibh thu 0. Ma tha fear ceart ann, thathas a’ toirt aire don òrdugh aige. Agus thèid an toradh targaid a chunntadh mar 1 air a roinn a rèir òrdugh do ro-innse. Mar eisimpleir, rinn thu trì ro-innsearan, agus is e am fear ceart a’ chiad fhear, an uairsin bidh thu a’ roinn 1 le 1 agus a’ faighinn 1. Ma tha an ro-innseadair ceart agus an òrdugh aige 2, an uairsin roinn 1 le 2, gheibh thu 0,5. Uill, etc.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Le ro-phròiseasadh dàta - mar a tharraingeas tu dealbhan agus mar sin air adhart - tha sinn air co-dhùnadh beagan. Dè na h-ailtirean a chleachd sinn? Dh’ fheuch sinn ri ailtireachd reamhar leithid PNASNet, SENet, agus leithid ailtireachd clasaigeach mar SE-Res-NeXt a chleachdadh, tha iad a’ sìor fhàs a-steach do cho-fharpaisean ùra. Bha ResNet agus DenseNet ann cuideachd.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Ciamar a theagaisg sinn seo? Bha a h-uile modal a ghabh sinn air an trèanadh ro-làimh air imagenet. Ged a tha tòrr dàta ann, 50 millean ìomhaigh, ach fhathast, ma ghabhas tu lìonra ro-thrèanadh air imagenet, sheall e toraidhean nas fheàrr na bha thu dìreach air a thrèanadh bhon fhìor thoiseach.

Dè na dòighean teagaisg a chleachd sinn? Is e seo Cosing Annealing le Warm Restarts, air am bi mi a’ bruidhinn beagan nas fhaide air adhart. Is e seo dòigh-obrach a bhios mi a’ cleachdadh anns cha mhòr a h-uile farpais a rinn mi o chionn ghoirid, agus còmhla riutha tha e a ’tionndadh a-mach a bhith a’ trèanadh na ghriodan gu math, gus ìre mhath a choileanadh.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

An ath Lùghdaich an ìre ionnsachaidh air àrd-ùrlar. Tòisichidh tu a’ trèanadh an lìonra, suidhich ìre ionnsachaidh sònraichte, lean ort ga theagasg, agus mean air mhean bidh do chall a’ tighinn còmhla gu luach sònraichte. Bidh thu a’ sgrùdadh seo, mar eisimpleir, airson deich amannan chan eil an call air atharrachadh idir. Bidh thu a’ lughdachadh an ìre ionnsachaidh agad le luach air choireigin agus a’ leantainn air adhart ag ionnsachadh. Bidh e a’ tuiteam beagan a-rithist, a’ tighinn còmhla aig a’ char as lugha, agus bidh thu a-rithist a’ lughdachadh na h-ìre ionnsachaidh, is mar sin air adhart, gus an tig an lìonra agad còmhla mu dheireadh.

An ath rud tha dòigh inntinneach: Na lughdaich an ìre ionnsachaidh, àrdaich meud baidse. Tha artaigil ann leis an aon ainm. Nuair a bhios tu a’ trèanadh lìonra, cha leig thu leas an ìre ionnsachaidh a lughdachadh, faodaidh tu dìreach meud baidse àrdachadh.

Tha an dòigh seo, leis an t-slighe, air a chleachdadh le Alex Parinov. Thòisich e le baidse co-ionann ri 408, agus nuair a ràinig an lìonra aige beagan àrdchlàr, cha do dhùblaich e ach meud baidse, msaa.

Gu dearbh, chan eil cuimhne agam dè an luach a ràinig meud a’ bhaidse aige, ach is e an rud a tha inntinneach gu robh sgiobaidhean ann an Kaggle a chleachd an aon dòigh, bha am baidse aca timcheall air 10000. Co-dhiù, frèaman ùr-nodha airson ionnsachadh domhainn, leithid Leigidh PyTorch, mar eisimpleir, leat seo a dhèanamh gu math furasta. Bidh thu a’ gineadh do bhaidse agus ga chuir a-steach don lìonra chan ann mar a tha e, gu h-iomlan, ach ga roinn ann am pìosan gus am bi e a ’freagairt air a’ chairt bhidio agad, obrachadh a-mach na caiseadan, agus às deidh dhut an caisead airson a’ bhaidse gu lèir obrachadh a-mach, ùraich na cuideaman.

Air an t-slighe, bha meudan baidse mòr fhathast air an toirt a-steach don cho-fharpais seo, oir bha an dàta gu math fuaimneach, agus chuidich meud baidse mòr thu gus an caisead a thomhas nas mionaidiche.

Bhathar a' cleachdadh pseudo-labeling cuideachd, a' mhòr-chuid air a chleachdadh le Roman Soloviev. Rinn e sampall de mu leth den dàta bhon deuchainn ann an baidsean, agus rinn e trèanadh air a’ ghriod air na batches sin.

Bha meud nan dealbhan cudromach, ach is e an fhìrinn gu bheil tòrr dàta agad, feumaidh tu trèanadh airson ùine mhòr, agus ma tha meud an dealbh agad gu math mòr, bidh thu a’ trèanadh airson ùine mhòr. Ach cha do chuir seo mòran ri càileachd an seòrsaiche deireannach agad, agus mar sin b’ fhiach e seòrsa de mhalairt a chleachdadh. Agus cha do dh'fheuch sinn ach dealbhan nach robh glè mhòr ann am meud.

Ciamar a chaidh a h-uile ionnsachadh? An toiseach, chaidh dealbhan beaga a thogail, chaidh grunn amannan a ruith orra, thug seo tòrr ùine. An uairsin chaidh dealbhan mòra a thoirt seachad, chaidh an lìonra a thrèanadh, an uairsin eadhon barrachd, eadhon nas motha, gus nach trèanadh e bhon toiseach agus gun a bhith a ’caitheamh mòran ùine.

Mu optimizers. Chleachd sinn SGD agus Adam. San dòigh seo bha e comasach aon mhodail fhaighinn, a thug astar 0,941-0,946 air a ’bhòrd stiùiridh poblach, a tha gu math math.

Ma chruinnicheas tu na modailean ann an dòigh air choreigin, gheibh thu an àiteigin timcheall air 0,951. Ma chleachdas tu aon dòigh eile, gheibh thu sgòr deireannach de 0,954 air a’ bhòrd phoblach, dìreach mar a fhuair sinn. Ach barrachd air sin nas fhaide air adhart. An ath-Innsidh mi dhut mar a chruinnich sinn na modalan, agus mar a fhuair sinn air adhart a leithid de astar deireannach.

An ath rud bu mhath leam bruidhinn mu dheidhinn Cosing Annealing le Warm Restarts no Stochastic Gradient Descent le Warm Restarts. Gu ìre mhòr, ann am prionnsapal, faodaidh tu optimizer sam bith a chleachdadh, ach is e seo a ’phuing: ma tha thu dìreach a’ trèanadh aon lìonra agus mean air mhean bidh e a ’tighinn còmhla chun ìre as ìsle, tha a h-uile dad ceart gu leòr, gheibh thu aon lìonra, bidh e a’ dèanamh mhearachdan sònraichte, ach bidh thu is urrainn dha a thrèanadh beagan eadar-dhealaichte. Suidhichidh tu beagan ìre tòiseachaidh ionnsachaidh, agus lughdaichidh tu e mean air mhean a rèir na foirmle seo. Bidh thu ga ìsleachadh, bidh an lìonra agad a’ tighinn chun ìre as ìsle, an uairsin sàbhalaidh tu na cuideaman, agus a-rithist suidhich an ìre ionnsachaidh a bha aig toiseach an trèanaidh, mar sin a’ dol am badeigin suas bhon ìre as ìsle seo, agus a-rithist a’ lughdachadh na h-ìre ionnsachaidh agad.

Mar sin, faodaidh tu tadhal air grunn ìrean as ìsle aig an aon àm, anns am bi do chall, plus no minus, an aon rud. Ach is e an fhìrinn gun toir lìonraidhean leis na cuideaman sin diofar mhearachdan air do cheann-latha. Le bhith gan toirt gu cuibheasach, gheibh thu tuairmse de sheòrsa air choreigin, agus bidh an astar agad nas àirde.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Mu mar a chruinnich sinn na modailean againn. Aig toiseach an taisbeanaidh, thuirt mi ri aire a thoirt don ìre de dhàta anns an deuchainn agus an àireamh de chlasaichean. Ma chuireas tu 1 ris an àireamh de thargaidean san deuchainn a chaidh a shuidheachadh agus a roinn leis an àireamh de chlasaichean, gheibh thu an àireamh 330, agus chaidh seo a sgrìobhadh air an fhòram - gu bheil na clasaichean san deuchainn cothromach. Dh’ fhaodadh seo a bhith air a chleachdadh.

Stèidhichte air an seo, thàinig Roman Soloviev suas le meatrach, thug sinn an t-ainm Proxy Score air, a bha co-cheangailte gu math ris a’ bhòrd stiùiridh. Is e a’ phuing: bidh thu a’ dèanamh ro-innse, gabh an 1 as àirde de na ro-innsearan agad agus cunnt an àireamh de nithean airson gach clas. An uairsin, thoir air falbh 330 bho gach luach agus cuir ris na luachan iomlan a thig às.

Fhuaireadh na luachan a leanas. Chuidich seo sinn gun a bhith a’ cruthachadh clàr stiùiridh sgrùdaidh, ach gus co-èifeachdan a dhearbhadh gu h-ionadail agus a thaghadh airson ar ensembles.

Le ensemble gheibh thu a leithid de astar. Dè eile a b’ urrainn dhomh a dhèanamh? Seach gun do chleachd thu am fiosrachadh gu bheil na clasaichean san deuchainn agad air an cothromachadh.

Bha an cothromachadh eadar-dhealaichte. Eisimpleir de aon dhiubh - a 'cothromachadh bho na balaich a ghabh a' chiad àite.

Dè rinn sinn? Bha ar cothromachadh gu math sìmplidh, chaidh a mholadh le Evgeny Babakhnin. An toiseach rèitich sinn ar ro-innse leis an 1 as àirde agus thagh sinn tagraichean bhuapa - gus nach robh an àireamh de chlasaichean nas àirde na 330. Ach airson cuid de chlasaichean bidh nas lugha na ro-innsearan 330 agad. , agus taghaidh sinn tagraichean cuideachd.

Ciamar a bha ar cothromachadh eadar-dhealaichte bhon chothromachadh sa chiad àite? Chleachd iad dòigh-obrach ath-aithriseach, a’ gabhail a’ chlas as mòr-chòrdte agus a’ lughdachadh na coltachd airson a’ chlas sin le àireamh bheag gus nach b’ e seo an clas as mòr-chòrdte tuilleadh. Ghabh sinn an ath chlas as mòr-chòrdte. Mar sin lean iad gan lughdachadh gus an robh àireamh nan clasaichean uile co-ionann.

Chleachd a h-uile duine plus no minus aon dòigh-obrach airson lìonraidhean trèana, ach cha robh a h-uile duine a’ cleachdadh cothromachadh. A 'cleachdadh cothromachadh, dh' fhaodadh tu a dhol a-steach don òr, agus ma bha thu fortanach, an uairsin a-steach gu airgead.

Ciamar a nì thu ceann-latha ro-làimh? Rinn a h-uile duine an ceann-latha ro-làimh, plus no minus, san aon dòigh - a ’dèanamh feartan le làimh, a’ feuchainn ri amannan a chòdachadh le diofar dhathan stròc, msaa. Bhruidhinn Alexei Nozdrin-Plotnitsky, a ghabh àite 8th, mu dheidhinn seo.

Seòrsachadh de dhealbhan làmh-sgrìobhte. Dèan aithris ann an Yandex

Rinn e gu eadar-dhealaichte e. Thuirt e nach obraich na feartan làmh-dhèanta seo agad, chan fheum thu sin a dhèanamh, bu chòir don lìonra agad seo ionnsachadh leis fhèin. Agus an àite sin, chruthaich e modalan ionnsachaidh a rinn ro-phròiseasadh air an dàta agad. Thilg e an dàta tùsail a-steach annta gun ro-phròiseasadh - co-chomharran puing agus amannan.

An uairsin ghabh e an eadar-dhealachadh stèidhichte air na co-chomharran, agus cuibheasachd e a h-uile càil stèidhichte air na h-amannan. Agus thàinig e suas le matrix caran fada. Chuir e convolution 1D ris grunn thursan gus matrix de mheud 64xn fhaighinn, far a bheil n an àireamh iomlan de phuingean, agus tha 64 air a dhèanamh gus am matrix a thàinig às a dhèidh a bhiadhadh gu còmhdach lìonra convolutional sam bith, a tha a’ gabhail ris an àireamh de shianalan. - 64. fhuair e matrix 64xn, agus bho seo bha e riatanach tensor de mheud a chruthachadh gus am biodh an àireamh de shianalan co-ionann ri 64. Rinn e gnàthachadh air a h-uile puing X, Y anns an raon bho 0 gu 32 gus a tensor meud 32x32. Chan eil fios agam carson a bha e ag iarraidh 32x32, thachair e dìreach mar sin. Agus aig a 'cho-chomharran seo chuir e criomag den mhaitrix seo de mheud 64xn. Mar sin thàinig e gu crìch le tensor 32x32x64 a dh’ fhaodadh tu a chuir nas fhaide a-steach don lìonra neural convolutional agad. Sin a h-uile rud a bha mi airson a ràdh.

Source: www.habr.com

Cuir beachd ann