難易度:★★☆☆☆
PyTorch道場へようこそ! この道場では、自然言語処理や画像認識などの深層学習や機械学習の分野で欠かせないツールの一つとしてその地位を確立している、DeepLearningフレームワーク「PyTorch」を学びます。「PyTorch」は自由度の高い設計となっているため、直感的でわかりやすい実装を行うことが可能となります。本GYMにて基本的な「PyTorch」の使い方を学び、様々なQUESTにて実際に「PyTorch」を用いてモデリングを行い知識の定着化を図りましょう。
機械学習や深層学習には、より効率よくプログラミングを行えるようにフレームワークというものが存在します。また様々なフレームワークが存在しており、皆さんも「Chainer」と「Caffe」、「Keras」というワードを聞いたことがあるのではないでしょうか。また最近では新しく深層学習フレームワーク「PyTorch」が台頭しています。今までで色々なフレームワークを使ったことがある方は、このGymを通して他のフレームワークとの違いを感じてもらい、フレームワークなどを触ったことがない方は新たにフレームワークの使い方を学んでいきましょう。
Mission 1
PyTorchではTensor(テンソル)というPyTorchが用意している特殊な型が存在します。
この型がnumpyのndarray型ととても似ており、ベクトル表現から行列表現、それらの演算といった機能が提供されています。
このミッションでは、Tensorの基本的な使い方、扱い方を学んでいただきます。
Tensorは、PyTorchの最も基本となるデータ構造です。
Tensorはその名の通り、テンソル(多次元配列)を扱うためのデータ構造です。
NumPyの使い方が似ており、GPUによる演算も可能となっています。
Mission 2
PyTorchは「Define by Run」の仕組みを取り入れていれているフレームワークとなります。「Define by Run」とは、ネットワークを順伝搬後に確定し学習を行う仕組みとなります。この仕組みが昨今の複雑なネットワークを作成する自然言語処理や画像認識の分野と相性がよいため、PyTorchがよく使われ始めた理由となります。その仕組みではAutograd(自動微分)というパッケージが中心となっています。このミッションではAutogradの基本的な概念と、プログラムを実際に書くことでAutogradの利点を実感していただきます。
深層学習では、計算処理を行う際に各変数の微分処理を利用します。
Pytorchではその微分処理を自動で行う自動微分という機能が存在します。
本タスクでは、その自動微分の機能を実際に体験していただきます。
Mission 3
今までのミッションでは基本的なPyTorchの使い方や概念を学んでいただきました。しかし、まだモデルを作成するには至っていないと思います。このミッションでは、機械学習や深層学習でよく使われるのアイリス(Iris)のデータセットを用いて、花の種類の分類を行う多層ニューラルネットワークの作成、学習をしていただきます。
PyTorchチュートリアルの仕上げとして、アイリスのデータセットを元にした花の種類の分類ニューラルネットを作成していただきます。