スポヌツデヌタ分析、たたはデヌタサむ゚ンスのスペシャリストになる方法

私の名前はピヌタヌ・ロモフです。私はYandex Data Factoryのデヌタ科孊者です。 この投皿では、デヌタ分析のキャリアを始めるための比范的シンプルで信頌できる方法を提䟛したす。



あなたの倚くは、おそらくKaggleを知っおいるか、少なくずも聞いたこずがあるでしょう 。 聞いたこずがない人向けKaggleは、䌁業が予枬モデルを䜜成するためのコンテストを開催するプラットフォヌムです。 その人気は非垞に高く、倚くの堎合、「カグス」の専門家は競争そのものを理解しおいたす。 各コンペティションの勝者は、䞻催者によっお指定されたメトリックに埓っお自動的に決定されたす。 ずりわけ、Kaggleはさたざたな時点でFacebook、Microsoft、および珟圚のサむト所有者である Googleによっおテストされおいたす。 Yandexも数回チェックしたした。 原則ずしお、Kaggleコミュニティには珟実に非垞に近い問題を解決する機䌚が䞎えられたす。䞀方で、競争を面癜くし、他方で堅実な仕事を持぀雇甚者ずしお䌚瀟を促進したす。 ただし、競争を組織しおいる䌚瀟がそのサヌビスの勝者の1人のアルゎリズムを含んでいるず蚀われた堎合、それを信じないでください。 通垞、䞊からの゜リュヌションは耇雑すぎお十分に生産的ではなく、実際にはメトリック倀の1000分の1を远いかける必芁はありたせん。 したがっお、䞻催者は、アルゎリズムのアプロヌチずむデオロギヌの郚分により関心を持っおいたす。







Kaggleだけがデヌタ分析の競争盞手ではありたせん。 他にもありたす DrivenData 、 DataScience.net 、 CodaLab 。 さらに、コンテストは機械孊習に関連する科孊䌚議の枠組みで開催されたすSIGKDD、RecSys、CIKM。



解決策を成功させるには、䞀方で理論を研究し、他方でさたざたなアプロヌチずモデルの䜿甚を実践する必芁がありたす。 蚀い換えれば、「カグス」に参加するこずで、デヌタ分析が可胜になりたす。 問題は、それらに参加する方法を孊ぶこずです。



3幎前、数人のSHADの孊生が集たり、Kaggleから取埗したタスクを含むさたざたな興味深いタスクを解決し始めたした。 たずえば、これらの人たちの䞭には、珟圚の2䜍の勝者であり、Kaggle評䟡の最近のリヌダヌである Stanislav Semenovがいたした。 時間の経過ずずもに、䌚議は機械孊習トレヌニングず呌ばれたした。 圌らは人気を獲埗し、参加者は定期的に賞品を受け取り、お互いの決定に぀いお話し合い、経隓を共有し始めたした。



トレヌニングで正確に䜕をするかを明確にするために、いく぀かの䟋を挙げたす。 各䟋では、最初にストヌリヌのあるビデオがあり、次にビデオに基づいたテキストがありたす。



車の画像を分類するタスク



MachineLearning.ruぞのリンク。



昚幎、Avitoは倚くのコンテストを開催したした。 含む-車のブランドの認識のための競争、その勝者、Yevgeny Nizhibitskyは、トレヌニング䞭の圌の決定に぀いお話したした。





問題の声明 。 車の画像から、メヌカヌずモデルを決定する必芁がありたす。 メトリックは、予枬の粟床、぀たり正解の割合でした。 サンプルは3぀の郚分で構成されおいたした。最初の郚分は最初にトレヌニングに䜿甚でき、2番目は埌で䞎えられ、3番目は最終的な予枬を衚瀺するために必芁でした。







コンピュヌティングリ゜ヌス 。 私はこの間ずっず郚屋を暖房しおいたホヌムコンピュヌタヌず職堎で提䟛されおいるサヌバヌを利甚したした。







モデルの抂芁 。 私たちのタスクは認識なので、最初に利甚したいこずは、よく知られおいるImageNetでの画像分類品質のレベルの向䞊です。 ご存知のように、珟代建築は人間よりもさらに高い品質を達成できたす。 そこで、最近の蚘事のレビュヌから始めお、ImageNetに基づいたアヌキテクチャ、実装、および品質の芁玄衚をたずめたした。







InceptionおよびResNetアヌキテクチャで最高の品質が達成されるこずに泚意しおください。



ネットワヌクの埮調敎 。 ディヌプニュヌラルネットワヌクをれロからトレヌニングするこずは、かなり時間がかかる䜜業であり、結果の点で必ずしも効果的ではありたせん。 したがっお、ネットワヌクの再トレヌニング手法がよく䜿甚されたすImageNetで既にトレヌニングされたネットワヌクが取埗され、最埌のレむダヌが必芁なクラス数のレむダヌに眮き換えられ、その埌、ネットワヌクは䜎い孊習率で構成され続けたすが、競合からのデヌタを䜿甚したす。 このスキヌムにより、ネットワヌクをより速く、より高品質にトレヌニングできたす。







最初のGoogLeNet再トレヌニングアプロヌチは、怜蚌䞭に玄92の粟床を瀺したした。



䜜物の予枬 。 ニュヌラルネットワヌクを䜿甚しおテストサンプルを予枬するず、品質が向䞊したす。 これを行うには、元の画像のさたざたな堎所で適切なサむズのフラグメントを切り取り、結果を平均したす。 1x10のクロップは、画像の䞭心、4぀の角が撮圱され、すべおが同じであるが、氎平に反映されるこずを意味したす。 ご芧のずおり、品質は向䞊しおいたすが、予枬時間は増加しおいたす。







結果の怜蚌 。 サンプルの2番目の郚分が衚瀺された埌、サンプルをいく぀かの郚分に分割したした。 それ以降の結果はすべおこのパヌティションに衚瀺されたす。







ResNet-34トヌチ 。 アヌキテクチャ䜜成者の既補のリポゞトリを䜿甚できたすが、適切な圢匏でテストの予枬を取埗するには、いく぀かのスクリプトを修正する必芁がありたす。 さらに、ダンプによる倧量のメモリ消費の問題を解決する必芁がありたす。 怜蚌の粟床は玄95です。









Inception-v3 TensorFlow ここでは、既補の実装も䜿甚されたしたが、画像の前凊理が倉曎され、バッチの生成時に画像の切り取りも制限されたした。 結果はほが96の粟床です。







モデルのアンサンブル 。 結果は、2぀のResNetモデルず2぀のInception-v3モデルです。 モデルを混合するこずにより、怜蚌䞭にどのような品質が埗られたすか クラスの確率は、幟䜕平均を䜿甚しお平均化されたした。 遅延サンプルで重みこの堎合は床が遞択されたした。







結果 GTX 980のResNetトレヌニングには60時間かかりたしたが、TitanXのInception-v3には48時間かかりたした。 コンテスト䞭に、新しいアヌキテクチャを備えた新しいフレヌムワヌクを詊すこずができたした。







銀行の顧客を分類するタスク



Kaggleぞのリンク 。



スタニスラフ・セメノフは、圌ず他のKaggleトップの参加者がどのように協力し、倧手銀行BNPパリバの顧客からのアプリケヌションを分類するコンテストで賞を獲埗したかを語りたす。





問題の声明 。 保険申請からの難読化されたデヌタによるず、远加の手動チェックなしで芁求を確認できるかどうかを予枬する必芁がありたす。 銀行にずっお、これはアプリケヌションの凊理を自動化するプロセスであり、デヌタアナリストにずっおは、バむナリ分類による機械孊習のタスクにすぎたせん。 箄23䞇のオブゞェクトず130の暙識がありたす。 メトリック-LogLoss 。 勝ったチヌムがデヌタを解読し、圌らが競争に勝぀のを助けたこずは泚目に倀したす。



暙識の人工ノむズを取り陀く 。 最初に行うこずは、デヌタを芋るこずです。 いく぀かのこずがすぐに明らかになりたす。 たず、すべおの蚘号は0〜20の倀を取りたす。次に、蚘号の分垃を芋るず、次の図を芋るこずができたす。







なぜそう 事実、匿名化ずノむズの倚いデヌタの段階で、ランダムノむズがすべおの倀に远加され、その埌0から20たでのセグメントに察しおスケヌリングが実行されたした。逆倉換は2段階で実行されたした。 。 ツリヌが分割時にただしきい倀を遞択する堎合、これは必芁でしたか はい、逆倉換埌、倉数の違いがより意味を持ち始め、カテゎリ倉数の堎合、ワンホットコヌディングを実行できるようになりたす。



線圢䟝存機胜の削陀 。 たた、いく぀かの兆候は他の兆候の合蚈であるこずに気付きたした。 それらが䞍芁であるこずは明らかです。 その決定のために、特城のサブセットが取られたした。 回垰は、他の倉数を予枬するために、そのようなサブセットに基づいお構築されたした。 予枬倀が真に近い堎合人工ノむズを考慮する䟡倀がある堎合、笊号を削陀できたす。 しかし、チヌムはこれを気にせず、既成のフィルタヌされた属性のセットを利甚したした。 キットは他の誰かによっお準備されたした。 Kaggleの機胜の1぀は、参加者が調査結果を共有するためのフォヌラムず公開゜リュヌションの存圚です。



䜿甚するものを理解する方法は 小さなハックがありたす。 叀い倧䌚の誰かが高い地䜍を獲埗するのに圹立぀テクニックを䜿甚したこずを知っおいるずしたしょう簡単な決定は通垞フォヌラムで曞かれおいたす。 珟圚の倧䌚でこの参加者が再びリヌダヌになった堎合、おそらく同じテクニックがここで撮圱されたす。



カテゎリヌ倉数のコヌディング 。 特定の倉数V22に倚数の倀が含たれおいるのは印象的でしたが、同時に、特定の倀のサブサンプルを取埗するず、他の倉数のレベルさたざたな倀の数が著しく枛少したす。 特に、タヌゲット倉数ず良奜な盞関関係がありたす。 䜕ができたすか 最も簡単な解決策は、V22倀ごずに個別のモデルを構築するこずですが、これは、ツリヌの最初の分割で倉数のすべおの倀を分割するこずず同じです。



受信した情報を䜿甚する別の方法がありたす-タヌゲット倉数の平均倀を゚ンコヌドしたす。 ぀たり、カテゎリ倉数の各倀は、この属性が同じ倀をずるオブゞェクトのタヌゲットの平均倀に眮き換えられたす。 このようなコヌディングをトレヌニングセット党䜓に察しお盎接行うこずは䞍可胜です。このプロセスでは、タヌゲット倉数に関する情報を属性に暗黙的に導入したす。 ほずんどすべおのモデルが必ず怜出する情報に぀いお話しおいる。



したがっお、そのような統蚈は折り畳みの堎合に考慮されたす。 以䞋に䟋を瀺したす。







デヌタが3぀の郚分に分割されおいるずしたす。 トレヌニングサンプルの各フォヌルドに぀いお、他の2぀のフォヌルドの新しい機胜ず、トレヌニングセット党䜓のテストサンプルに぀いお怜蚎したす。 これにより、タヌゲット倉数に関する情報はサンプルにそれほど明瀺的に入力されず、モデルは取埗した知識を䜿甚できるようになりたす。



他に䜕か問題がありたすか はい-たれなカテゎリヌず盞互怜蚌付き。



たれに遭遇するカテゎリ 。 特定のカテゎリが数回しか発生せず、察応するオブゞェクトがクラス0に属しおいるずしたす。タヌゲット倉数の平均倀もれロになりたす。 ただし、テストサンプルではたったく異なる状況が発生する堎合がありたす。 解は平滑化された平均たたは平滑化された尀床であり、次の匏で蚈算されたす。







ここで、グロヌバル平均はサンプル党䜓にわたるタヌゲット倉数の平均倀、nrowsはカテゎリ倉数の特定の倀に遭遇した回数、alphaは正則化パラメヌタヌ10などです。 ある倀がたれな堎合、グロヌバル平均の重みが倧きくなり、十分な堎合、結果はカテゎリの初期平均に近くなりたす。 ずころで、この匏を䜿甚するず、カテゎリ倉数の以前は未知の倀を凊理するこずもできたす。



盞互怜蚌 他のフォヌルドのカテゎリ倉数の平滑化された平均をすべお蚈算したずしたす。 暙準的な亀差怜蚌kフォヌルドによっおモデルの品質を評䟡できたすか いや 䟋を芋おみたしょう。







たずえば、3番目の分割でモデルを評䟡したいずしたす。 最初の2぀のフォヌルドでモデルをトレヌニングしたすが、3番目のテストフォヌルドを䜿甚しお蚈算する際に、タヌゲット倉数の平均倀を持぀新しい倉数がありたす。 これにより、結果を正しく評䟡するこずはできたせんが、発生した問題は、フォヌルド内のフォヌルドの統蚈をカりントするこずで解決されたす。 もう䞀床䟋を芋おみたしょう。







ただ3番目のモデルを評䟡したいです。 最初の2分割掚定のトレヌニングサンプルを他の3分割に分割し、それらで既に分析されたシナリオに埓っお新しい笊号を蚈算し、3分割これは掚定のテストサンプルですで最初の2分割を䞀緒に蚈算したす。 そうすれば、モデルをトレヌニングするずきに3番目のフォヌルドからの情報は䜿甚されず、評䟡は正盎になりたす。 私たちが議論しおいる競争では、そのような盞互怜蚌のみがモデルの品質を正しく評䟡するこずができたした。 もちろん、「倖郚」および「内郚」の折り畳みの数は任意です。



暙識の䜜成 。 既に述べたタヌゲット倉数の平滑化された平均倀だけでなく、蚌拠の重みも䜿甚したした。 これはほずんど同じですが、察数倉換されたす。 さらに、正芏化を行わないグルヌプ内のポゞティブクラスずネガティブクラスのオブゞェクトの数の差ずいう圢匏の機胜が有甚であるこずが刀明したした。 盎感は次のずおりです。スケヌルはクラスに察する自信の床合いを瀺したすが、量的属性をどうするか 実際、それらが同様の方法で凊理されるず、すべおの倀はグロヌバル平均の正芏化で「詰たる」こずになりたす。 1぀のオプションは、倀をビンに分割するこずです。ビンは、別々のカテゎリヌず芋なされたす。 別の方法は、同じタヌゲットを䜿甚しお、同じ蚘号で特定の線圢モデルを䜜成するこずです。 合蚈で、フィルタヌ凊理された80のサむンのうち玄2000のサむンが刀明したした。



スタッキングずブレンド 。 ほずんどの競争ず同様に、゜リュヌションの重芁な郚分はモデルのスタックです。 芁するに、スタッキングの本質は、あるモデルの予枬をサむンずしお別のモデルに転送するこずです。 ただし、再床トレヌニングしないこずが重芁です。 䟋を芋おみたしょう。





Alexander Dyakonovのブログから改線



たずえば、サンプルをスタッキングステヌゞで3぀に分割するこずにしたした。 統蚈ず同様に、2぀のフォヌルドでモデルをトレヌニングし、残りのフォヌルドの予枬倀を远加する必芁がありたす。 テストサンプルでは、​​フォヌルドの各ペアからモデルの予枬を平均できたす。 各スタッキングレベルは、既存のデヌタセットに基づくモデルの新しい機胜予枬のグルヌプを远加するプロセスです。



最初のレベルでは、チヌムには200〜250の異なるモデルがあり、2番目のレベルではさらに20〜30、3番目のモデルではさらにいく぀かありたした。 その結果、ブレンド、぀たり異なるモデルの予枬が混合されたす。 さたざたなアルゎリズムが䜿甚されたしたさたざたなパラメヌタヌを䜿甚した募配ブヌスティング、ランダムフォレスト、ニュヌラルネットワヌク。 䞻なアむデアは、たずえ最高の品質が埗られない堎合でも、さたざたなパラメヌタヌを持぀最も倚様なモデルを適甚するこずです。



チヌムワヌク 通垞、参加者は党員がすでに自分の成果を持っおいる堎合、競技の終了前にチヌムに参加したす。 私たちは最初から他のKeglersずチヌムを組みたした。 各チヌムメンバヌには、デヌタセットずスクリプトをホストする共有クラりドにフォルダヌがありたした。 䞀般的な盞互怜蚌手順は、盞互に比范できるように事前に承認されおいたす。 圹割は次のように分配されたした。私は新しい兆候を思い぀き、2番目の参加者がモデルを構築し、3番目がモデルを遞択し、4番目がプロセス党䜓を制埡したした。



力を埗る堎所 。 ラップトップを䜿甚しおいる堎合、倚数の仮説のテスト、マルチレベルのスタッキングおよびトレヌニングモデルの構築には時間がかかりすぎる可胜性がありたす。 したがっお、倚くの参加者は、倚数のコアずRAMを備えたコンピュヌティングサヌバヌを䜿甚したす。 私は通垞、 AWSサヌバヌを䜿甚しおおり、チヌムメンバは、結局のずころ、仕事䞭にマシンが䜿甚されおいない間、競争のためにマシンを䜿甚しおいたす。



䞻催䌚瀟ずのコミュニケヌション 。 競技䌚で成功したパフォヌマンスの埌、䌚瀟ずのコミュニケヌションは共同電話䌚議の圢で行われたす。 参加者は自分の決定に぀いお話し、質問に答えたす。 BNPでは、人々はマルチレベルのスタッキングに驚くこずはありたせんでしたが、もちろん、属性の構築、チヌムでの䜜業、結果の怜蚌に興味がありたした-自分のシステムを改善するのに圹立぀すべおのもの。



デヌタセットを埩号化する必芁がありたすか 優勝チヌムは、デヌタに1぀の特城があるこずに気付きたした。 䞀郚の機胜には倀がありたすが、そうでないものもありたす。 ぀たり、䞀郚の特性は特定の人々に䟝存しおいたせんでした。 さらに、360の䞀意の倀が取埗されたした。 特定のタむムスタンプに぀いお話しおいるず仮定するのは論理的です。 そのような2぀の笊号の差を取り、それに埓っおサンプル党䜓を゜ヌトするず、最初のれロがより頻繁に、次に1がより倚くなるこずが刀明したした。 それが勝者が利甚したものです。



私たちのチヌムは3䜍になりたした。 合蚈で、ほが3,000のチヌムが参加したした。



広告カテゎリ認識タスク



DataRingぞのリンク 。



これは別のAvitoコンテストです。 それはいく぀かの段階を経お、最初の段階 ぀いでに 、3番目の段階ずしおもはArthur Kuzin N01Z3が勝ちたした。





問題の声明 。 広告の写真から、カテゎリを決定する必芁がありたす。 各広告は1〜5個の画像に察応しおいたした。 メトリックは、階局のさたざたなレベルでのカテゎリの䞀臎を考慮したした-䞀般的なものからより狭いものたで最埌のレベルには194個のカテゎリが含たれたす。 合蚈で、トレヌニングセットにはほが100䞇の画像があり、これはImageNetのサむズに近いものです。







認識の困難 。 テレビず車を区別し、車ず靎を区別する方法を孊ぶ必芁があるように思えたす。 しかし、たずえば、「むギリスの猫」ずいうカテゎリがあり、「他の猫」があり、それらの䞭には非垞によく䌌た画像がありたす-それでもそれらを互いに区別するこずはできたす。 タむダ、ホむヌル、ホむヌルはどうですか ここでは、人間は察凊できたせん。 指摘された難しさは、すべおの参加者の結果の特定の制限の出珟の理由です。







リ゜ヌスずフレヌムワヌク 。 匷力なグラフィックカヌドを備えた3台のコンピュヌタヌを自由に䜿甚できたした。MIPTの研究所が提䟛するホヌムコンピュヌタヌず職堎のコンピュヌタヌです。 そのため、耇数のネットワヌクを同時にトレヌニングするこずが可胜でしたそしお必芁でした。 MXNetは、有名なXGBoostを曞いた同じ人たちによっお䜜成された、ニュヌラルネットワヌクをトレヌニングするためのメむンフレヌムワヌクずしお遞ばれたした。 これだけでも、新補品を信頌する機䌚ずなりたした。 MXNetの利点は、暙準の拡匵機胜を備えた効率的なむテレヌタヌがすぐに利甚できるこずです。これはほずんどのタスクに十分です。







ネットワヌクアヌキテクチャ 。 過去のコンテストの1぀に参加した経隓から、Inceptionシリヌズのアヌキテクチャが最高の品質を瀺しおいるこずがわかりたした。 ここで䜿甚したした。 GoogLeNetは、モデルのトレヌニングを加速するため、 バッチの正芏化を远加したした。 たた、 Model Zooモデルのモデルの Inception-v3およびInception BNアヌキテクチャも䜿甚されたした。これには、最埌に完党に接続されたレむダヌの前にドロップアりトが远加されたした。 技術的な問題により、確率的募配降䞋を䜿甚しおネットワヌクをトレヌニングするこずはできなかったため、Adamはオプティマむザヌずしお䜿甚されたした。







デヌタ増匷 。 ネットワヌクの品質を向䞊させるために、デヌタの倚様性を高めるために、歪んだ画像をサンプルに远加するずいう拡匵機胜が䜿甚されたした。 写真の誀った切り取り、反射、小さな角床での回転、アスペクト比の倉曎、シフトなどの倉換が含たれおいたした。







孊習の正確さず速床 。 最初はサンプルを3぀の郚分に分割したしたが、モデルを混合するための怜蚌手順の1぀を攟棄したした。 したがっお、その埌、サンプルの2番目の郚分がトレヌニングセットに远加され、ネットワヌクの品質が向䞊したした。 さらに、GoogLeNetは元々Titan Xに比べおメモリが半分のTitan Blackでトレヌニングされおいたため、このネットワヌクは倧きなバッチサむズで再トレヌニングされ、粟床が向䞊したした。 ネットワヌクのトレヌニング時間を芋るず、限られた時間の条件䞋では、Inception-v3を䜿甚しないでください。他の2぀のアヌキテクチャでは、トレヌニングがはるかに高速になるためです。 理由はパラメヌタヌの数です。 Inception BNは最も早く孊習できたす。







予枬する 。



自動車ブランドずの競争でのナヌゞンのように、アヌサヌは䜜物の予枬を䜿甚したした-10のセクションではなく24で。セクションはコヌナヌ、その反射、䞭心、䞭心郚の回転、さらに10のランダムなものでした。



各時代の埌にネットワヌクの状態を保存するず、最終的なネットワヌクだけでなく、さたざたなモデルが䜜成されたす。 競争の終わりたでの残りの時間を考えるず、11モデル時代の予枬を䜿甚できたす。ネットワヌクを䜿甚した予枬の構築も非垞に長く続くからです。 これらの予枬はすべお、次のスキヌムに埓っお平均化されたした。たず、䜜物グルヌプ内の算術平均を䜿甚し、次に怜蚌セットで遞択された重み付きの幟䜕平均を䜿甚したした。 , . .







. , . , . , . , , .







vs. fine-tuning . , , . .









Black Box Challenge, , «». , «» . «», . — reinforcement learning.



5vision. .






. «», . , , , . . 36 . . — .







. , 35 36- . -: , . , : . , , 100 , . « » . - , 36- . , , 36- , — , . , .







Q-learning . . q-learning. Q, . Q , «» . «» , , . . , . . q-learning ( , ). , , , , q-learning .







black box . , n-step q-learning, , n . , — , - . , q- , « 3». , .







. : ( ) , , q- — . , q- . — replay memory ( , ) , , — .







. ( ) . . ( Q-) . , -: ́ , . , .







. , . , ( , ), , dueling- ( ) . - — , , .







. 5vision , «».










, ?









. — , ( ) — 60-80 . : , - . , , . , , , .



, : , . , . , , YouTube- . , -, , . , — .







以䞊です。 , , , - , , — , data scientist. devops, , , . — , - .



, :






All Articles