畳み込みニューラルネットワークの処理についてアニメーションで解説する「Animated AI」
機械学習の分野で広く使われる「畳み込みニューラルネットワーク(CNN)」についてアニメーションで解説した「Animated AI」というサイトが公開されています。文字だけではわかりにくい動作が視覚的にわかりやすく紹介されていました。
Animated AI
https://animatedai.github.io/
畳み込みニューラルネットワークは、画像などの入力データにフィルタを通して重み付けを行い、データの形状を認識しやすくする手法の一つです。詳しくは以下の記事で解説されています。
畳み込みニューラルネットワーク(CNN)をわかりやすく基本から実装まで解説 – 体験型学習ブログ by zero to one
https://zero2one.jp/learningblog/cnn-for-beginners/
Animated AIでは、畳み込み処理の基本的な動作と、畳み込み処理により出力データのサイズが小さくなる問題を調整する「パディング」という処理、フィルタの移動間隔「ストライド」などのトピックについてアニメーションgifが表示されていて、それぞれのトピックを解説するYouTube動画へのリンクも貼られています。
例えば、基本的な動作を示すアニメーションが以下です。画像をクリックすると再生されます。
基本的な動作を解説するYouTube動画が以下。
Fundamental Algorithm of Convolution in Neural Networks - YouTube
奥に置かれているキューブが入力データです。データを格子状に分割し、それぞれの点(ピクセル)が持つ特徴が数値化されています。
手前に置かれているキューブがフィルタです。入力データの一部分(例えば3×3の範囲)を切り出し、それぞれのフィルタが持つ数字を入力データの数字にかけて、重み付けを行います。重み付けを行うことで、それぞれのピクセルが持つ色や形状といった膨大な特徴を認識しやすくします。
特定範囲をフィルタにかけ、一つの範囲が終わったら一マス隣に移動して次の範囲をフィルタにかけ……ということを繰り返し、すべての範囲を処理します。このときの範囲の移動間隔がストライドです。
一つのフィルタで処理を終えると次のフィルタで再度処理。これを繰り返します。
データを処理すると、出力後のデータが元のデータより小さくなってしまいます。これを防ぐために、元のデータの周囲に「0」などの値を持つピクセルを追加して、サイズを調整します。これが「パディング」と呼ばれる手法です。
フィルタをかける範囲を1マスずらすのがストライド1、2マスずらすのがストライド2です。これをアニメーションで示したのが以下の動画。
このほか、「深さ方向の分離可能畳み込み」と呼ばれる手法や、「ピクセルシャッフル」と呼ばれる手法についても解説されています。
・関連記事
「畳み込みニューラルネットワークとは何か?」を分かりやすく図解するとこうなる - GIGAZINE
ディープラーニングの手法「CNN」の画像識別処理がアニメーションで理解できる「CNN Explainer」 - GIGAZINE
NVIDIAがテキストから高解像度の映像を生成するAIモデル「VideoLDM」を発表 - GIGAZINE
・関連コンテンツ