13章畳み込みニューラルネットワーク

 「4章 舞台裏:数字のクラス分類器」で、画像を認識するニューラルネットワークを構築する方法を学んだ。「3」と「7」の画像を98%の精度で識別することができたが、fastaiで提供されるクラスではほぼ100%だった。この差を埋めてみよう。

 この章では、コンボリューションについて詳しく説明し、CNNを1から構築する方法を学ぶ。その後、訓練の安定性を向上させるさまざまな技術を説明し、素晴らしい結果を出すためにライブラリが自動的に適用している技法について学んでいく。

13.1 コンボリューションの魔法

 機械学習実践者が自由に使える最も強力なツールが、特徴量エンジニアリング(feature engineering)だ。特徴量(feature)とは、モデル化が容易になるようにデータを変換したものだ。例えば、「9章 テーブル型データモデルの詳細」でテーブル型データの前処理に用いたadd_datepart関数は、重機のデータセットに、日付に関する特徴量を追加するものだった。画像からどのような特徴量を生成できるだろうか?

一般的な注記
ジャーゴン:特徴量エンジニアリングモデル化を容易にするために、入力データを変換して新たなデータを得ること。

 画像の文脈では、特徴量は視覚的特徴のある属性ということになる。例えば、数字の「7」は上のほうに水平の線分があり、その下に右上から左下に向かう斜めの線分がある。一方、数字の「3」には、左上と右下に右上がりの斜めの線分があり、左下と右上には右下がりの斜めの線分がある、といった具合だ。未処理のピクセルをそのまま使うのではなく、このような画像中にある線分の情報を抽出して、それを特徴としたらどうだろうか? ...

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.