ニューロコープパート0 または鶏小屋のない神経

または、ニューラルネットワークで喫煙する方法



画像

鶏は卵を産んだ。 プロセス自体はひどく見えます。 結果は食用です。 鶏の大量虐殺。



この記事では以下について説明します。



  1. どこで、どのように、なぜあなたは無料、今、そして今すぐにニューラルネットワークを扱う分野で少し高品質の自己教育を得ることができます;
  2. 再帰の論理について説明し、このテーマに関する書籍を推奨します。
  3. 2〜3レベルの抽象化で解析する必要がある基本用語のリストを説明します。
  4. ipynb-notebookがリストされます。これには、必要なリンクと基本的なアプローチが含まれています。
  5. ちょっと変わった皮肉なユーモアがあります。
  6. ニューラルネットワークで作業するときに遭遇するいくつかの単純なパターンについて説明します。




ニューロチキンハウスに関する記事

ネタバレ見出し
  1. ニューラルネットワークでのトレーニングの概要
  2. 鶏を監視するための鉄、ソフトウェア、および構成
  3. ニワトリの生涯のイベントを投稿するボット -ニューラルネットワークなし
  4. データセットのレイアウト
  5. 鶏小屋での鶏の認識の作業モデル
  6. 結果-鶏小屋で鶏を認識する作業用ボット








哲学の紹介はここから始まります



どこから始めますか?



ネタバレ見出し
私のガールフレンドが彼女の旅行と鶏小屋での鶏の監視システムの設置について素晴らしい記事を書いたという事実から始めることができます。 なんで? 適用されたタスクは、すべてが理想からはほど遠いKaggleのタスクよりもはるかに動機付けられるため(1/2タスクの顔、勝利するアーキテクチャは15モデルのスタックであり、スケーラブルでないパターンを見つけるために過剰適合など)。 私の仕事は、ニワトリを区別するニューラルネットワークとPythonコードを記述し、おそらくニワトリの生活の中でイベントをお気に入りのDBMSに記録することです。 その過程で、あなたは多くの興味深いことを学び、場合によっては、あなたのミニ開発を共有することであなたの人生を変えることさえできます。 そして、素敵で、便利で楽しいです。



また 、原則として、テクノロジー市場に「バブル」の新しい分岐が存在するという事実から始めることもできます-誰もが「AI」で急に走りました。 以前は、誰もがIT、オンライン、bigdat、Skolkovo、AR / VRに逃げました。 主題のロシア語チャットに座っている場合、原則として、人々は{ エキゾチックな言語を挿入 }にすべてをゼロから書くか、PR会社の手段を習得して1回限りのチャットボットを作成します。 しかし、独学でこれらの原則に従えば、彼らの仕事の熱心なファンから学ぶ必要があります。彼らは、 利益のためではなく、美のために彼らが何をするのかをします。



そして、ここで未知の人が私の助けに来て、私のファイルに行を挿入しました。そこで、データを扱う分野の教育ユーティリティを集めました。 驚くべきことに、これらの人々 (fast.ai-誰かが挿入したリンク)は、 排他 性に対する教育の包括性と整合性の 原則と「象牙の塔」の原則に従って、ゼロから普及し学習するという巨大な仕事をしました。 しかし、まず最初に。

画像

一言で言えば教育アプローチ。





著者自身が私よりもあなたによく言うでしょう。



odsチャット(それが何であるかを知っていれば、理解できる)が衛星画像認識コンテストで2位になったチームを一度見たことがありますが、そのようなパフォーマンスに必要な総工数は、そのようなコンテストへの参加を動機付けず、不完全さを考慮しています世界の。 また、原則として、競争の総価格に対する研究者の報酬の比率は熱狂的ではありません。



したがって、以下のすべては、神経鶏小屋と彼だけのために行われます。



念のため、次のタスクが含まれていないことを明確にします。

皮肉の非常に厚い層
  • Mail.ru xDで若い卒業生のリードを販売するためのコースを作成する。
  • TheanoやTensorflowに対してCaffeがどのように好きかを書くために-あなたがこの分野の経験豊富な研究者でなく、科学的な記事を書かないなら、それはすべて産業の専門家レベルまで問題ではありません。
  • ニューラルネットワークをゼロから{エキゾチックな言語}に記述します。
  • お金のために何かを販売します(アイデアのみ、無料で)。






私は素晴らしいものを共有し、彼らに最大数の人々を結びつけて、私のために働いた道の最も簡単で広い説明を与えたいです。





哲学的な紹介はこれで終わりです。



ニューラルネットワークの学習方法の説明



TLDR(インストール中/単純から複雑への順序の学習)



({X}ですべてを書き換えたり、10枚のビデオカードを搭載したPCを作成するのではなく)適用目的でニューラルネットワークを効率的かつ現代的にトレーニングしたい場合は、短くて再帰的なガイドがあります。



ここにリストする
  • 1.少なくとも基本的な概念を学習します。
    1. 線形代数。 入門ビデオサイクル 。 少なくともそれらで開始します。
    2. 数学的分析。 入門ビデオサイクル
    3. 勾配降下についてお読みください。 ここにメソッドの概要があり 、ここに視覚化があります。 残りはコースにあります。
  • 2.リストについて何も知らない場合は、200〜300時間を費やす準備をしてください。 ニューラルネットワークおよび/またはpythonのみの場合-50〜100時間。
  • 3. Ubuntuまたはそれに相当するものを入手します(「ドントしない」スタイルの長いライブコメント)。 私の短い概要ガイド (インターネットは、より詳細な技術ガイドを見つけるのに役立ちます)。 もちろん、仮想マシン、ドッカー、ポピーなどを介して変質することもできます。
  • 4. 3つ目のpython(通常、2017年に既に出荷されています)を使用します。 三番目です。 しかし、もう一度言ったほうがいいです。 LinuxでシステムPythonを変更しようとしないでください-すべてが壊れます。
  • 5. pythonにあまり慣れていない場合は(すべて、再びgoogle):
    1. 「ベース」レベルで無料の最も簡単で最も無料のソース(30〜5万ルーブルのコースはありません。その後、1万ルーブルの平均給与が宣言されている場合、3万ルーブルの同じコースのインストラクターとして働きます)。
    2. Pythonを使用してデータを操作するための理想的な再帰エントリポイント
  • 6.自分自身にjupyter ノートブックとこの拡張機能を追加し ますコードの折りたたみが必要です )。 作業時間が大幅に短縮されます。 本当 ;
  • 7.自分でビデオカードを購入します(2017年の初めから、レンタルするよりも購入するほうが収益性が高くなります)
    1. チャンネルの1つの投稿で収集したもの。
    2. 鉄に関する最高の投稿
    3. ソフトウェアのセットアップとアセンブリに関する最高のスレッド
    4. リンクと設定を含む私の投稿
  • 8.最高の教育(無料)リソース:
    1. www.fast.aiは再帰エントリポイントです。 ブログ、ビデオ、フォーラム、wiki、およびメモには、非常識な情報がたくさんあります。
    2. ニューラルネットワークと、3番目のpythonでのニューラルネットワークに関する最初のコードに関する素晴らしい (グーグル、コード全体に偏っている人がいるかもしれません。最初の2つの章の後は怠け者でした)。
    3. 壮大なAndrew Ng コースとPythonでの解釈
  • 9. Jupyterノートブック( html ipynb ):
    1. セルの階層構造が含まれており、各セルには何が行われているのか、そしてその理由が記述されています。
    2. 主なインクルード、ユーティリティ、ライブラリはタイプごとに分かれています。
    3. 何が起こっているのかを理解するために必要な主要なソースへのリンクを提供します。
    4. シュガーはケラスと一緒に仕事をするために与えられます( ここでは販売せず、詳細はfast.aiの人々が推奨しています)。
    5. 窓の外で運転している車のデータセットでは、クラスの予測精度が80%未満でした(ランダムで50%が得られますが、写真はくすんでいて小さくなります)。
    6. 気晴らし運転の競争からのデータセットの場合、10クラスの予測精度が最大50%であり、世界の意思決定の上位15-20%に間違いなく含まれているエラー。




より良い結果を達成するためのTo Doリスト(注意散漫な運転で、たとえば、60〜75%の精度を得ることができます):



今後の改善点のリスト
  1. 視覚化を使用して、ネットワークが学習していることを理解します。
  2. 300〜500枚の画像のトレーニングセットを使用して、どの画像歪みパラメータが最適かをすばやく理解します。
  3. テストデータセット(または相互検証)を使用して、精度を高めます。 そのような写真の25〜30%を追加する必要があります(半教師あり学習)。
  4. モデルの追加オプションとしてイメージネットの微調整を使用します。






画像

ここまで読んだら、急いでいないという疑いを取り除いたニワトリです。 彼女はこれのためにずっと後でスープに行きます。



ここで、ニューラルネットワークを直接学習するプロセスから面白いと思われるものについて説明します(頭の中のものではなく、Pythonの中のもの)。



ここにリストする
  1. マシンを含むデータセットは、写真が小さく、クラスからの選択が偏っている場合(1つのクラスが他のクラスよりも大きい場合)、モデルは1つのクラスのみを適切に定義することを示しました。
  2. モデルが数十秒でトレーニングし、画像を変更するためのメタパラメーターを調整するように、小さなセットから始めます。
  3. モーション認識+ニューラルネットワークから特定のアプリケーションを使用している場合は、すぐにopen-cvで画像をトリミングすることをお勧めします。後で離れないでください。
  4. ニューラルネットワークには、学習するよりも絶えずグレード1になる可能性が50%であると予測する方が簡単であるため、コスト関数が比較的長時間にわたってローカルミニマムに留まることができる場合、いわゆる「簡単なウェイアウト」効果があります。
  5. 最初に単純なアーキテクチャを試してみて、徐々に複雑になります。 ゆっくりとトレーニングする場合は、少量のサンプルを採取するか、モデルをテストしてください。
  6. シンプルなアーキテクチャ+さまざまなメタパラメータ(学習率)を試してください。
  7. コスト関数がまったく減少しない場合は、モデル内のどこかに迷惑なタイプミスがあります。 自分のモデルを他の人のモデルと比較することで、すべてを簡単に見つけることができます。
  8. 現在、プログラムシュガー(keras)のレベルでは、次のような最新の機能がすでに大量にあります。
    1. 画像の正規化;
    2. 画像の歪み。
    3. ドロップアウト
    4. 畳み込み
    5. ファイルの順次読み取り用のイテレーター。
  9. Kaggle競技の興味深い(15モデルのスタッキングエリアからではない)のうち、次のようなものの組み合わせの使用に注意します。
  10. 画像の前処理、open-cvを使用した輪郭と形状の検索。
  11. 主な分類のための畳み込みニューラルネットワーク。
  12. 写真に関するメタデータを作成するためのニューラルネットワーク-たとえば、 ここでは最初にクジラの頭を検索してから、クジラを特定します。
  13. Kaggleの最新のアーキテクチャについて興味深い情報を集めました




そして、ここに写真のセットがあります



ネタバレ見出し
画像

最初の285台の車はピクセルが控えめで、すべてがぼやけています...



画像

より速く写真を切り取りたいが、考えたくない場合、そのようなugい決定が生まれます



画像

トレーニングと検証の精度の違いは、データセットが歪んでおり、小さく、一般的であることを示唆しています。 しかし、美しい進捗インジケータ。



画像

鶏ではなく、機会の英雄。 非常に油を塗った-動いている



画像

執筆が1時間続いたバイロドックが働き始め、車を切ったとき、喜びに制限はありません。



画像

実際には、ビデオカードのメモリに十分なスペースがありますが、マージンがあるか、すぐに十分ではありません。 写真のサイズと、食べて釣りをするバッチのサイズを選択するのは難しい...



フィンガールール-たたみ込み層には大量のメモリが必要で、密な層には多くの時間が必要です。



画像

この写真の使用可能な領域を比較して......



画像

そして、有用なピクセルがいくつあるか=)はい、鶏の頭は大きい(ピクセル単位)-私のビデオカードは苦しむでしょう



画像

私は計算しませんでした-メモリが不足し、すべてが落ちました。 そして、これまでのところ、再起動以外のクリーニング機能は見つかりませんでした




All Articles