畳み込みニューラルネットワークの使い方、分かりますか?:SYSTEM DESIGN JOURNAL(6/6 ページ)
畳み込みニューラルネットワークとは何でしょうか。学問の世界から現実の世界に登場しつつあるこれは、さまざまな組み込みシステムに利用される可能性が高く、大いに関心を持つべきです。
具体的にどうすればよいのか?
この期に及んで結果が得られるかどうか分からないと、このアプローチ自体について悲観的に思われるでしょう。まず、アーキテクチャの選択です。畳み込みの回数、完全結合層の数、使用する非線形化関数、各畳み込み層内の特徴マップの数、カーネルのサイズなどですが、どうすればよいのでしょうか。
Compton氏は、「研究者は、最初に学んだネットワークデザインを使い回す傾向があります。解空間の探索にはハンドエンジニアリングの要素が多分にあり、探索の自動化に関する最近の研究は数えるほどしかありません。そのため、研究者は過去にうまくいった方法にこだわる傾向があります」と語ります。
「現在、必要なネットワークのサイズを予測する方法はありません。3層で済む場合もあれば、20層が必要な場合もあるかもしれません。また、性能を予測することも不可能です。従ってCNNを構築し、トレーニングするしかないのです」
実装は別問題です。学術研究では、実行時間はたいした問題ではないため、ソフトウェアの1つの大きな塊としてCNNを構築することができます。Compton氏は、「基本的に畳み込み層はFIRフィルタであり、完全結合層は行列乗算です」と説明します。
また、トレーニングも別問題です。通常はデザインプロセスで一度行うだけであり、トレーニング時間はCNNのレイテンシにおける重要な要素ではありません。まず、大きな偏微分を評価して誤差関数の勾配を得た後、各反復で何度か行列乗算を行うというプロセスを、トレーニング画像全体にわたって繰り返す必要があります。この反復は、ネットワークが(願わくば)許容可能な誤差率に収束するまで続きます。
しかし、エンベデッドシステムではレイテンシが重要ですが、通常はデータセンターのように何台ものサーバを計算に投入することはできません。それでも、入力画像の静止領域を検出して CNN内を波及することで不要な計算を除外する方法がない限り、入力が変化するたびに特長マップとニューロン値を全て計算する必要があります。
リアルタイムの期限に間に合わせるためには、DSPやFPGA内のパイプラインアクセラレータ、あるいは専用ニューロンチップなどのハードウェアで、通常のエンベデッドプロセッサを支援する必要があるかもしれません。
プラットフォームの出現
このデザインプロセスは、ほとんどのデザインチームにとって、快適帯に位置するまでには至っていません。また、入手可能な解説書は、特定の研究プログラムや現在主流のアプリケーションであるウェブ検索に偏った内容のものばかり、とCompton氏は指摘します。
それでは、CNN はあくまでも論文のテーマであり続ける運命なのでしょうか。その点について、Compton氏は強く否定します。実際、2段階で現実世界に現れつつあります。
第1段階は既存のエキスパートの活用です。Compton氏は、「パターンの位置が変化するファジー・パターン・マッチングを必要とする問題があれば、CNN を検討すべきです」と主張します。そうした問題には、マシンビジョンの他、声紋分析やインターネットコンテンツフィルタリングといった、あまり知られていないものもあります。
問題を特定したら、次のステップは同様の問題の解決に成功したエキスパートが見つかるまで問題を制約することです。つまり、外部の世界や画像処理システムを制御して、識別および分類タスクの難易度を抑えるということです。エキスパートは、CNN アーキテクチャの選択やトレーニング手法に関する実証済みの経験をもたらしてくれるはずです。
しかし、業界はもっと効率的なソリューションを求めているとCompton氏は考えています。そのため、i-Abraにおける取り組みを含め、アーキテクチャ探索、開発ツール、実装プラットフォーム、サポートからなるCNNデザインフレームワークの構築に向けた動きが広がっています。その目標は、ニューラルネットワークに関する知識のないデザイン・チームが問題を記述してプラットフォームに入力するだけで、プラットフォームがアーキテクチャの選択、トレーニング画像の評価、性能の予測、実装の支援においてエキスパートの役割を果たせるようにすることです。
「CNN は既にエンジニアリングソリューションへの新たな応用が始まっています。私たちの知識やハードウェアプラットフォームが成熟すれば、さらに多くの応用が可能になるはずです」とCompton 氏は述べています。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 組み込みにおけるコンピュータビジョンを整理する
画像認識(コンピュータビジョン、マシンビジョン)の需要は高まっており、その方法はさまざまです。画像による入力を有用なものとする実装方法について分類と整理を試みます。 - モノのインターネットを再考する
IoTがその現実性について語られるようになった2015年、その基本概念を再考する機運が高まっています。「センサー」「仮想化」「フォグ」などの観点から、IoTを再考してみましょう。 - コンピュータ・アーキテクトのためのモーター制御
「モーターを制御する」。一見すると簡単な課題に思えますが、その原理や課題、現状を再確認すると、リアルタイムシステムアーキテクチャの今後の方向性を示していることが分かります。 - あのロボットが私のハードウェア予算を食っている!
ロボットを止めるにはもう遅すぎる――これはハードウェア予算やシステムデザインの話ですが、影響を軽減することは可能です。「あるロボットに未知の地形を滑らかに歩かせる」を例に、エンベデッドシステム化するロボットについて考えてみましょう。 - 限界に達したエンベデッド・プロセッサを並列処理で補完する
組み込みシステムの能力を並列処理で補完するアイデアは、身近で現実味を帯びたものとなっています。しかし、その実行に際しては手法の選択が重要な意味を持ちます。OpneMPやOpenCLなどを理解しながら、最適な手法を検討しましょう。