AIの大まかな話は前回説明した通りだが、もう少し細かく「なにをやっているか」を今回説明したい。
やや古い話であるが、GTC 2015においてFacebookのRob Fergus氏が“Visual Object Recognition Using Deep Convolutional Neural Networks”というトレーニングコースを実施しており、現在もGTC オンデマンドで視聴できる。
25分ほどの短いセッションで、英語も平易なのでわかりやすいが、こちらのスライドをもとに、そもそもConvolutional Neural Networkではどんな計算処理が必要かを細かく説明していこう。
コンピューターに文字や画像を認識させる
畳み込みニューラルネットワーク
そもそも畳み込みを使うConvolutional Neural Networkを最初に提唱したのは、Facebookに在籍しているYann LeCun氏らによる“Backpropagation Applied to Handwritten Zip Code Recognition”という1989年の論文である。
これは手書きの郵便番号を認識するシステムで、0~9の数字が認識できればいいわけだが、これの認識に下の画像の下側のようなネットワークを考案した。
このネットワークは学習の完了後に1%程度のエラー率で手書きの数字を認識でき、またAT&TのDSP-32Cという汎用DSP(性能はピークで25MFlops)に実装したところ、毎秒30回の認識できたとする。アメリカの場合は郵便番号が5桁なので、つまり毎秒6つの郵便番号を認識できることになる。
前回紹介したAlexNetに比べるとだいぶシンプルではあるが、10種類の文字の認識程度であればこれでも十分、という話である。
LeCun氏のネットワークの場合、まず畳み込みを2回繰り返し、その後で3層の全結合が行なわれる。意味合い的には、最初の2層の畳み込み層で、入力画像をいわば部品に分解、続く3層でその部品の結果を組み合わせて最終的な判断をする形になる。
画像を調べて特徴を抽出する
「畳み込み」
そこでまずは畳み込み層の説明をしよう。ここは畳み込み→非線形関数→サブサンプリングという3つの作業からなる。
さてその畳み込み、確か高校までの数学には出てこなかった「気がする」(なにしろ高校卒業なんてもう40年近く前なので……)。おそらく大学の教養課程の数学で学んだか、物理数学の時間だったかもしれないと思うのだが。
数学的に言えば、2つの関数の重ね合わせのことを畳み込みと表現する。ただここで数式を並べても意味がないので実例で説明したい。
下の画像は、入力画像(左側)とフィルター(Inputの右下:Kernelとも呼ばれる)の畳み込みを行なった出力(Feature Map)を示したものだ。
ここでどんな処理をしているかというのが下図である。要するに左上から右下まで、フィルターの位置を少しずつずらしながら、入力画像とフィルターを重ね合わせ、合計値をFeature Mapとして出力する形になる。
図の例で言えば、Feature Mapの1ピクセルを出力するのに乗算と加算がそれぞれ9回必要になるので、1枚(図の例なら6×6pixel)を生成するのに324回の乗算と加算が必要になる計算だ(*1)。
(*1) ここの例ではFeature Mapのサイズを入力画像より小さい6×6にしているが、精度を上げるために同じ8×8にするといったことも当然可能である。この場合は計算回数が576回に増えることになる。
ちなみにフィルターは1種類ではない。したがって、複数のフィルターを掛け、複数のFeature Mapを生成する必要がある。
下の画像は2012年のAlexNetで利用されたもので、合計96種類のフィルターが利用された。
- 入力画像は224×224pixel×24bit(RGB)
- フィルターは11×11pixel×24bit(RGB)
このAlexNetの場合、1枚のFeature Mapを生成するのに必要な計算数は1662万3948回。しかもフィルターは96種類あるので、15億9589万9008回の乗算と加算が必要ということになる。
もうこのあたりで、だいぶ桁が大きくなっている。ちなみにこれはあくまで1層分である。冒頭のLeCun氏のネットワークでも畳み込みは2層、AlexNetでは5層もあるので、それは計算量が多いわけだ。
この連載の記事
-
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU -
第796回
PC
Metaが自社開発したAI推論用アクセラレーターMTIA v2 Hot Chips 2024で注目を浴びたオモシロCPU -
第795回
デジタル
AI性能を引き上げるInstinct MI325XとPensando Salina 400/Pollara 400がサーバーにインパクトをもたらす AMD CPUロードマップ -
第794回
デジタル
第5世代EPYCはMRDIMMをサポートしている? AMD CPUロードマップ -
第793回
PC
5nmの限界に早くもたどり着いてしまったWSE-3 Hot Chips 2024で注目を浴びたオモシロCPU -
第792回
PC
大型言語モデルに全振りしたSambaNovaのAIプロセッサーSC40L Hot Chips 2024で注目を浴びたオモシロCPU -
第791回
PC
妙に性能のバランスが悪いマイクロソフトのAI特化型チップMaia 100 Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ