Skip to main content
QUICK REVIEW

[論文レビュー] On Vectorization of Deep Convolutional Neural Networks for Vision Tasks

Jimmy Ren, Xu Li|arXiv (Cornell University)|Jan 29, 2015
Advanced Neural Network Applications参考文献 19被引用数 30
ひとこと要約

本論文は、視覚タスク全般における学習および推論の高速化を目的として、深層畳み込みニューラルネットワーク(CNN)の体系的なベクトル化フレームワークを提案する。CNNの演算を行列およびベクトル計算に再定式化することで、著者らはMATLAB上で6種類のベクトル化バージョンを実装し、学習時と推論時における最適バッチサイズが顕著に異なることを示し、高レベル(例:検出)および低レベル(例:ノイズ除去)の視覚タスクを統合的にサポートする、最先端の速度性能を達成するフレームワークを提示する。

ABSTRACT

We recently have witnessed many ground-breaking results in machine learning and computer vision, generated by using deep convolutional neural networks (CNN). While the success mainly stems from the large volume of training data and the deep network architectures, the vector processing hardware (e.g. GPU) undisputedly plays a vital role in modern CNN implementations to support massive computation. Though much attention was paid in the extent literature to understand the algorithmic side of deep CNN, little research was dedicated to the vectorization for scaling up CNNs. In this paper, we studied the vectorization process of key building blocks in deep CNNs, in order to better understand and facilitate parallel implementation. Key steps in training and testing deep CNNs are abstracted as matrix and vector operators, upon which parallelism can be easily achieved. We developed and compared six implementations with various degrees of vectorization with which we illustrated the impact of vectorization on the speed of model training and testing. Besides, a unified CNN framework for both high-level and low-level vision tasks is provided, along with a vectorized Matlab implementation with state-of-the-art speed performance.

研究の動機と目的

  • 異なるレベルのベクトル化が、深層CNNの学習および推論速度に与える影響を調査すること。
  • 高レベル(例:分類)および低レベル(例:ノイズ除去)の視覚タスクを両立できる統合的計算フレームワークを開発すること。
  • 高いパフォーマンスを達成し、ハードウェアへの移植を容易にする透明性のあるベクトル化MATLAB実装(VCNN)を提供すること。
  • 学習時と推論時における最適バッチサイズを特定すること。これは実行時間効率に顕著な影響を及える。

提案手法

  • 畳み込み、プーリング、ReLU、全結合層といったコアなCNN演算を、行列およびベクトル演算に再定式化することで、並列処理を効率的に行えるようにする。
  • 基本的から完全最適化まで、ベクトル化の段階を段階的に高めた6種類のCNNバージョンを実装し、性能のトレードオフを比較する。
  • ミニバッチ処理を用いて複数の入力サンプルにわたるベクトル化を実現し、GPU風の並列実行を可能にする。
  • 異なった入力サイズを扱える1つのネットワークアーキテクチャを設計し、背景ノイズを発生させることなく、マルチスケールオブジェクト検出を効率的に行えるようにする。
  • プーリング層および全結合層を除去することで、画像ノイズ除去やデコンボリューションなどの低レベル視覚タスクにベクトル化フレームワークを適用する。
  • 異なる入力次元にわたる重み共有を活用し、可変サイズの入力を用いた新たなトレーニング方式を考案することで、マルチオブジェクト検出における誤検出を低減し、効率を向上させる。

実験結果

リサーチクエスチョン

  • RQ1ベクトル化の度合いを変化させることで、深層CNNの学習および推論速度にどのような影響が生じるか?
  • RQ2深層CNNにおいて、学習時と推論時の最適バッチサイズはどのように異なり、ネットワークアーキテクチャによってどのように変化するか?
  • RQ31つのベクトル化CNNフレームワークが、高レベル視覚タスク(例:分類)と低レベル視覚タスク(例:ノイズ除去)の両方を効率的に処理できるか?
  • RQ4異なる入力サイズを1つのCNNモデルで効果的に扱うには、背景ノイズの発生を防ぎ、回帰ベースのアプローチを必要とせずにどうすればよいか?
  • RQ5リアルタイムオブジェクト検出システムにおいて、ベクトル化された行列演算がもたらす性能向上はどの程度か?

主な発見

  • 同じネットワークであっても、学習時と推論時の最適バッチサイズは顕著に異なり、学習用バッチサイズをそのまま再利用すると、顕著な速度低下が生じる。
  • 行列およびベクトルプリミティブを用いた主要なCNN演算のベクトル化により、高い並列性が実現され、MATLABベースの実装で最先端の速度性能が達成された。
  • 提案されたベクトル化フレームワークは、1つの統合アーキテクチャ内で高レベルタスク(例:マルチオブジェクト検出)と低レベルタスク(例:画像のノイズ除去およびぼかし除去)の両方を効果的にサポートした。
  • 可変サイズの入力と層間の重み共有を活用した新たなトレーニング方式により、リアルタイムマルチスケール検出における誤検出が低減され、効率が向上した。
  • 実装された6段階のベクトル化レベルには明確な性能差が認められ、ベクトル化戦略が実行時間効率に直接的な影響を及えることを確認した。
  • ベクトル化MATLAB実装(VCNN)は高いパフォーマンスを達成しており、公開されており、他のプラットフォームやハードウェアへの移植を容易にする。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。