14章ResNet

 本章では、前章で紹介したCNNを用いたニューラルネットワークアーキテクチャの1つであるResNetを説明する。このアーキテクチャは、Kaiming Heらによって2015年の論文「Deep Residual Learning for Image Recognition」(https://arxiv.org/abs/1512.03385)で提案されたもので、今日では最も広く用いられているモデルアーキテクチャとなっている。昨今開発された画像モデルのほとんどでResNetで提案された残差接続(residual connection)もしくはスキップ接続(skip connection)と呼ばれる技法が使われており、その多くは元のResNetにわずかな変更を加えたものにすぎない。

 まず、最初に提案された基本的なResNetを説明し、次に性能を向上するために行われた近代的な工夫について説明する。しかしその前に、問題をMNISTデータセットよりも難しくしなければならない。MNISTについては通常のCNNで100%近い性能が出てしまっているからだ。

14.1 Imagenette再訪

 MNISTのようにすでに十分な精度が得られているデータを使って、モデルが改良できたかどうかを判断するのはとても難しい。ここではImagenetteに立ち戻って、より困難な画像クラス分類問題に取り組む。訓練と評価を十分な速さで行えるように、小さい画像を使おう。

 まずはデータを取得しよう。高速に実行できるように、160ピクセルにリサイズ済みのバージョンを使う。これを128ピクセルにランダムクロップする。

def get_data(url, presize, resize): path ...

Get PyTorchとfastaiではじめるディープラーニング ―エンジニアのためのAIアプリケーション開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.