パープレキシティーと呼ばれる指標を用いて、どのくらいの精度で文を生成できるかを確認した後、ドロップアウトと呼ばれる手法で過学習状態を回避してみましょう。
RNNを組み込んだニューラルネットワークを定義して、そこに分かち書きされたテキストから作成したデータを入力して学習を行い、文章がうまく生成されるかを見てみます。
青空文庫から取得した小説データのインデックスへの変換、インデックスのベクトル化、RNNへの入力など、文章生成の準備と全体の流れを確認します。
青空文庫から取得した梶井基次郎の著作データをMeCabで分かち書きしたものを基に、マルコフ連鎖と呼ばれる手法を用いて文を生成してみます。
形態素解析エンジン「MeCab」をGoogle Colab上にインストールして、簡単なテキストを解析したり、分かち書きをしたりできるようにしてみる。
機械学習を使って文章の自動生成を行う準備として、青空文庫から小説のデータを取得して、本文のテキストを1文ずつリストに格納してみましょう。
前回に作成したDCGANと同様な構造のニューラルネットワークモデルで学習をしながら、識別器が算出する値と損失関数の関係などについて考えてみましょう。
PyTorchが提供するConv2dクラスとConvTranspose2dクラスを使ってDCGANを実装しながら、その特徴を見ていきましょう。
GANの基本的な構成を見た後に、PyTorchのLinearクラスでMNISTを対象としたGANを実装してみましょう。
オートエンコーダーの活用例の一つである異常検知を、MNISTの手書き数字を例に体験してみましょう。
GPUを使えるようにGoogle Colabを設定し、PyTorchからGPUを使って畳み込みオートエンコーダーの学習を高速化してみましょう。
PyTorchが提供するConv2dクラスとConvTranspose2dクラスを利用して、畳み込みオートエンコーダーを作成してみましょう。
CIFAR-10の画像データのエンコード/デコードをうまく行うために、圧縮後の次元数とエポック数を変化させながら学習させてみましょう。
画像生成の手始めとして「オートエンコーダー」と呼ばれるニューラルネットワークを作って、MNISTの手書き数字を入力して、復元してみましょう。
RNNクラスがどのような処理をしているのかを、自分だけのRNNクラスを定義しながら、見ていくことにします。
RNNを見ていくその手始めとして、サイン波のグラフを構成する値から、連続するデータの次の値が何かを推測したり、その推測値を基にグラフをプロットしたりしてみます。
ニューラルネットワークを使って学習や評価を行うコードを関数にまとめてみます。また、データセットを学習に使うものと精度評価に使うものに分割する方法、学習結果のグラフ化、過学習の抑制などについても簡単に見てみましょう。
CNNによる画像認識ではどんなふうに処理が進むのかを、実際に手を動かしながら確認していきましょう。
画像認識などでよく使われるCNN(畳み込みニューラルネットワーク)ではどんなことが行われているのでしょう。図を見ながら、CNNの基本を理解しましょう。
より高度なニューラルネットワークの作成に移る前に、これまでの知識を使って、MNISTの手書き数字を認識するプログラムを作ってみます。
PyTorchが提供するLinearクラスの簡易版を作りながら、全結合型のニューラルネットワークで何が行われるのかを見ていきます。
シンプルな関数をニューラルネットワークに見立てて、その係数を学習させながら、その過程でどんなことが行われているかを見ていきます。
あやめの品種を推測するニューラルネットワーククラスの動作を確認しながら、その内部でどんな処理が行われているのかを見ていきましょう。
前回のコードを基に、データセットと多次元配列、データセットを分割する意味、出力層に3つのノードを持たせた場合のあやめの分類などについて取り上げます。
あやめの品種を推測するニューラルネットワークを作りながら、データセットの準備、ニューラルネットワークの定義、学習とテストまでの手順を駆け足で見てみましょう。
実際にコードを書きながら「人工知能/機械学習/ディープラーニング」を学んでいこう。まずはその概要とそのために便利に使えるGoogle Colabを紹介。