第2章. PyTorchによる画像分類
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
PyTorchをセットアップした後、ディープラーニングの教科書は通常、面白いことをする前に専門用語の束を投げつける。私はそれを最小限に抑え、PyTorchでの作業に慣れるにつれて簡単に拡張できるものではあるが、例を通して作業するようにしている。この本では、モデルのデバッグ(第7章)や本番環境へのデプロイ(第8章)の方法を示すために、この例をずっと使う。
これから第4章の終わりまで構築するのは、画像分類器だ。ニューラルネットワークは画像分類器としてよく使われる。ネットワークは画像を与えられ、我々にとっては単純な質問をされる:「これは何だ?
さっそくPyTorchアプリケーションを作り始めよう。
伝統的な挑戦
魚と猫を見分けるプログラムを書くにはどうしたらいいだろうか?猫には尻尾がある、魚にはウロコがある、といった規則を書き、その規則を画像に適用して、何を見ているのかを判断するのだろう。しかし、それには時間と労力と技術が必要だ。さらに、マンクス猫のようなものに遭遇したらどうなるだろうか。
これらの規則が、すべての可能なシナリオを記述するために、どんどん複雑になっていくのがわかるだろう。また、私はグラフィックのプログラミングがまったく苦手なので、これらの規則をすべて手作業でコーディングしなければならないということを考えると、恐怖でいっぱいになる。
私たちが求めているのは、画像を入力すると、猫か 魚を返す関数だ。この関数を構築するには、すべての基準を網羅的にリストアップする必要がある。しかし、ディープラーニングは基本的に、今話したような規則を作成する大変な作業をすべてコンピューターにやらせる。それが、これからやろうとしていることだ。その過程で、PyTorchの使い方の重要な概念を学ぶことになる。
その前にデータ
まずはデータが必要だ。どれだけのデータが必要なのか?それは場合による。ディープラーニングのテクニックが機能するためには、ニューラルネットワークを訓練するために膨大な量のデータが必要だという考えは、第4章で説明するように、必ずしも正しくない。しかし、今はゼロからトレーニングを行うので、大量のデータが必要になることが多い。魚や猫の写真がたくさん必要なのだ。
Google画像検索のようなものから多くの画像をダウンロードするのに時間を費やすこともできるが、このインスタンスでは、 ImageNetと呼ばれる、ニューラルネットワークの学習に使われる標準的な画像コレクションを利用するのが近道だ。1,400万以上の画像と20,000以上の画像コンテナが含まれている。これは、すべての画像分類器が自分自身を判断する基準となるものだ。だから、私はそこから画像を選んでいる。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access