15章アプリケーションアーキテクチャの詳細
ここまで読み進んだ読者は、コンピュータビジョン、自然言語処理、テーブルデータ解析の分野でSOTAなモデルを構築するためのアーキテクチャを完全に理解できたはずだ。素晴らしいことだ。本章では、これまでに説明できなかったfastaiのアプリケーションモデルの詳細を補い、その構築方法を説明する。
また、「11章 fastaiの中位APIによるデータマングリング」で用いたSiameseネットワークのカスタムデータ処理パイプラインに立ち戻り、fastaiライブラリのコンポーネントを用いて訓練済みモデルを新しいタスクに合わせてカスタマイズする方法を示す。
まずはコンピュータビジョンから始めよう。
15.1 コンピュータビジョン
コンピュータビジョンアプリケーションでは、タスクに応じてcnn_learner
またはunet_learner
を用いてモデルを構築する。本節では、「Ⅰ部 ディープラーニングの実際」と「Ⅱ部 fastaiのアプリケーションを理解する」で用いたLearner
オブジェクトの構築方法を見ていく。
15.1.1 cnn_learner
cnn_learner
関数の実行から見ていこう。まず、ネットワークのボディに用いるアーキテクチャを引数として与える。ほとんどの場合ResNetを用いる。ResNetの構築方法はすでに学んだので、これ以上は説明しない。必要に応じて学習済みの重みをダウンロードし、ResNetモデルにロードする。
転移学習の際には、ネットワークをカットする必要がある。カットとは、ImageNet固有のカテゴリ分類を行う最後の層を切り離すことだ。実際にはこの層だけでなく、平均プーリング層以降をすべて切り離す。こうする理由を説明しよう。使用するプーリング層の種類は、アーキテクチャによって異なる。そもそも ...
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.