9.8 効率的な畳み込みアルゴリズム
- 現代の畳み込みネットワークでは100万個以上のユニットを含むネットワークが利用されることも多い.
- GPUなどの並列な計算リソースが必要不可欠
- 適切に畳み込みアルゴリズムを選択することで畳み込み処理を高速化できる場合も
可分(separable)
- $d$次元のカーネルが$d$個のベクトルの外積(直積)で表現できる場合,そのカーネルは可分であるという.
K=
\begin{pmatrix}
1 &\cdots&1\\
\vdots &\ddots &\vdots\\
1 &\cdots &1\\
\end{pmatrix}
=
\begin{pmatrix}
1\\\vdots\\1
\end{pmatrix}
\begin{pmatrix}
1 &\cdots &1
\end{pmatrix}
=K_1K_2^T
- カーネルが可分である場合,素朴な畳み込み処理は非効率的
- カーネルの幅の要素数が各次元で$w$だった場合の計算量とパラメータ容量
- 単純な畳み込み:$O(w^d)$
- 可分畳み込み:$O(w\times d)$
- モデルの精度を損なうことなく畳み込み処理を高速化する方法は,活発に研究されている領域である.
- 商業的な利用では,ネットワークの訓練よりむしろその導入により多くのリソースが割かれるから
9.8ランダムあるいは教師なし特徴量
- CNNの特徴量の学習はコストが高い.
- 教師あり学習では,順伝播と逆伝播を繰り返し実行する必要がある.
-
教師あり学習を利用せずに畳み込みカーネルを求める基本的な戦略
- 単純にランダムに初期化
- 驚くほどうまく働くことが多い
- 人手で設計
- 各カーネルが特定の方向や大きさのエッジを検出するように
- 教師なし学習によりカーネルを学習
- 単純にランダムに初期化
-
中間的な方法としては,特徴量も学習するが,完全な順伝播や逆伝播を勾配の全ステップでは行わなくて良いような方法
- 層ごとの貪欲事前学習
- 最初の層を独立に訓練,そこで獲得した特徴量を1度だけ抽出して,そのパラメータとともに次の層を独立に訓練.
- e.g. 深層畳み込み信念ネットワーク
-
現在ではほとんどのCNNは純粋な教師あり学習により訓練
- 訓練の繰り返しのたびにネットワーク全体での順伝播と逆伝播を利用.
9.10 畳み込みネットワークの神経科学的基礎
- CNNは生物に学ぶ人工知能としては最大の成功事例
- 神経科学者HubelとWieselによる実験
- 哺乳類の視覚システムの働きに関する最も基本的な事実
-
CNNが捉える脳のV1(1次視覚皮質)の3つの特徴
- 特徴マップ→V1は網膜上の画像の構成を正確に反映する2次元構造
- 網膜の下半分に到達した光はV1の対応する半分にのみ影響
- 検出ユニット→V1における単純細胞
- 局所的な受容野での画像に対する線形関数によって特徴付けられる
- プーリング→V1における複雑細胞
- 特徴の位置に関する小さな移動に対して反応しない
- 特徴マップ→V1は網膜上の画像の構成を正確に反映する2次元構造
-
deepにする→脳の深い領域へと進んでいく
- おばあさん細胞
- 入力に含まれる何らかの特定の概念に対しては反応するが,他の様々な変換に対しては反応しない細胞@内側側頭葉
-
CNNの最終層→IT(下側頭葉)
- CNNはITの発火頻度を予測することができ,物体認識のタスクにおいては人間に近い性能
-
CNNと哺乳類の視覚システムとの違い
人間の視覚システムは,-
中心窩を除いては非常に低解像度
- CNNでは高解像度の画像が入力
- 他の多くの感覚や,ムードや思考といった要素と統合
- CNNでは純粋に視覚のみ
- 多数の物体や物体間の関係を含む光景全体を理解
- CNNではまだ初期段階
- 高次領域からV1へのフィードバック
- 説得力のある改良は示されていない
- ITの発火頻度はCNNとほとんど同じ情報を捉えているものの,中間的な計算の類似性は不明
- おそらく脳では大きく異なる活性化関数やプーリング関数を利用
-
中心窩を除いては非常に低解像度
神経科学からはCNNの訓練方法について,ほとんど知見が得られていない
-
時間遅れニューラルネットワークを訓練するために誤差逆伝播法を提案
- 神経科学的な観察から得た着想ではない
- この成功事例から,2DCNNにも適用
CNNではカーネルを可視化することで各チャネルが何に反応しているかを見ることができる
-
生物学的な神経回路網では重みを知ることはできない
- 逆相関法でニューロンの重みの近似を求める
-
逆相関法
- 視覚刺激に対するニューロンの活性化を,取り付けた電極で記録,線形モデルを適合
- V1にある細胞の多くがガボール関数で記述される重みを持つことを示した
- ガボール関数は画像中の点における重みを記述する
単純細胞の応答
$I(x,y)$を2Dの座標を持つ画像とすると,画像に対する単純細胞の応答は以下で与えられる
$$
s(I)=\sum_{x\in\mathbb{X}}\sum_{y\in\mathbb{Y}}w(x,y)I(x,y)
$$
特に$w(x,y)$はガボール関数の形をとる
$$
w(x,y;\alpha,\beta_x,\beta_y,f,\phi,x_0,y_0,\tau)=
\alpha\, {\rm exp} (-\beta_xx'^2-\beta_yy'^2){\rm cos}(fx'+\phi)
$$
ただし,
$$
x' = (x-x_0){\rm cos}(\tau) + (y-y_0){\rm sin}(fx'+\phi)\
y' = -(x-x_0){\rm sin}(\tau) + (y-y_0){\rm cos}(fx'+\phi)
$$
である.
単純細胞が特定の方向への輝度の,特定の空間周波数に反応していることを意味している
複雑細胞の応答
複雑細胞では,2つの単純細胞の応答で構成される2Dベクトルの$L^2$ノルム
$c(I)=\sqrt{s_0(I)^2+s_1(I)^2}$を計算する.
$s_0$と$s_1$が直角位相ペアとなる時,波の位相オフセットによらず周波数$f$の正弦波成分を$\tau$方向に持つ場合に反応する.
直角位相ペア
$s_0$と$s_1$が$\phi$を除いて全て同じパラメータを持ち,$s_1$の$\phi$が$s_0$の$1/4$周期ずれていること言い換えると,$\tau$の方位に関する小さな移動または画像の反転に対して無反応である.
- 機械学習のモデルで学習した特徴と,V1で用いられている特徴は視覚的に類似
- 自然画像に適用した深層学習アルゴリズムのほとんどがガボール関数に近い特徴を学習
- 逆に,もしこうした特徴が学習できていないならそれは悪い兆候だと言える
9.11 畳み込みネットワークと深層学習の歴史
- CNNは脳の研究から得られた洞察を機械学習に応用した重要な事例で,今日でも深層学習の商用利用の最前線にとどまっている.
- 小切手読み取り,OCR,手書き文字認識など
- 数多くのコンテストでも勝利
- ImageNet物体認識チャレンジで商用利用の観点での強い関心を集める
- それより何年も前から他のコンテストで優勝していた
- 誤差逆伝播法で訓練し機能した初期の深層ネットワークの1つ
- 計算効率が高いおかげで数十年前でも良い性能を発揮
多くの点で,畳み込みネットワークは他の深層学習を導く光となり,ニューラルネットワークが一般的に受け入れられる道を切り開いた
参考文献
- Deep Learning
- Ian Goodfellow, Yoshua Bengio, Aaron Courville
- 日本語版