CS231n: Convolutional Neural Networks for Visual Recognition
Stanford Vision and Learning Lab (SVL)の「CS231n:画像認識のための畳み込みニューラルネットワーク」のコースコンテンツが公開されている。
過去(2015年度~2019年度)のコースコンテンツも閲覧することができる。
レクチャー1: Introduction to Convolutional Neural Networks for Visual Recognition
レクチャー1のIntroductionでは、生命に目が備わった時から始まる画像認識の歴史が解説されている。これまでの画像認識の研究の歴史を知ることは、もしかすると自分は既に画像認識の分野で過去に解決された課題に取り組んでいるのではという疑問を解消するためにも必要だ。
Lecture 1 - Overview
レクチャーでは、画像認識の歴史について、以下のような内容が説明されている。
レクチャーでは、画像認識の歴史について、以下のような内容が説明されている。
目の進化
- 約5億4千万年前、1千万年という非常に短期間に動物の種類が爆発的に増えた。これは進化のミステリーだが、オーストラリアの動物学者Andrew Parkerは、「この時期に動物が最初に目を持つようになった。目を持つことで、種が爆発的に増えた。」という説得力のある理論を提案した。
- 5億4千万年後、視覚はほとんどの動物が持つセンサーとなった。視覚は、特に人間のような知性を持つ動物にとって非常に重要だ。
- 機械的な視覚については、1600年代ルネサンス時期のカメラ・オブスクラがある。このカメラは、ピンホール理論に基づいたカメラだ。ピンホールは、初期の動物の目に非常に近いものだ。
- 今日、カメラはあらゆる場所にある。現在、スマートフォンなどで最も普及しているセンサーの一つだ。
- 一方、生物学者は、視覚に関するメカニズムの研究を開始した。人間と動物の視覚についての最も影響力のある研究の一つがHubel & Wieselが50~60年代に行った電気生理学を用いた研究だ。
- 彼らは、霊長類の視覚処理の仕組みはどうなっているかに興味があった。そこで彼らは、視覚処理の観点から、人間の脳に似ている猫の脳を研究することにした。彼らは、視覚処理は視覚世界の単純な構造である指向性のあるエッジから始まり、情報が視覚処理経路に沿って移動するにつれて、脳は複雑な視覚世界を認識できるようになるまで視覚情報の複雑さを積み上げていくということを発見した。
コンピュータ・ビジョン
- コンピュータによる視覚(コンピュータ・ビジョン)の研究は、60年代初期に始まった。Larry Robertsによって発表されたブロックワールドという一連の研究は、「視覚的な世界は単純な幾何学的形状に簡略化され、それらを認識し、これらの図形が何であるかを再構築することができること」をゴールとしていた。
- 1966年には、有名なMITのプロジェクト "The Summer Vision Project"があった。このプロジェクトは、視覚システムの重要な部分の構築を一夏で解決するという野心的な目標をたてた。15年が経ち、コンピュータビジョンの分野は、世界中の何千人もの研究者がいる最も重要で最も急速に成長している分野の一つに成長した。
- MITのビジョンサイエンティストのDavid Marrは、70年代後半の著書で、コンピュータがイメージの世界を認識するためのコンピュータ・ビジョンへの取り組みと、それを実現するアルゴリズムを開発について述べている。入力されるイメージは、最終的に3Dモデルとして表現される。
- 70年代にPalo AltoのStanfordとSRIの研究者が、物体表現と認識について似たアイデアを考えた。基本的な考え方は、すべての物体は円柱などの単純な幾何学的な形状で構成されるというものだ。
- 80年代、David Loweは、ラインやエッジといった単純な形状の組み合わせで視覚世界を再構築する試みを行った。
- これら取り上げたコンピュータ・ビジョンの例は、まだ現実社会に通用するものではなかった。このため、研究者は次のように考えるようになった。「もし物体認識が難しいのであれば、まず物体のセグメンテーションを行うべきではないか」。セグメンテーションとは、画像の画素を人物といった意味のある領域にグループ化する作業だ。
- もう一つの重要な問題が、おそらく人間の最も重要な要素の一つである顔の認識だ。1999年から2000年に機械学習技術、特に統計的機械学習テクニックが盛り上がる。これらのテクニックは、サポートベクターマシン、ブースティング、グラフィカルモデル、最初のニューラルネットワークといったものだ。特に、2001年のPaul ViolaとMichael Jonesのリアルタイム顔検出のためのAdaBoostアルゴリズはこの分野に多くの貢献をした。
- 2006年には富士フイルムがカメラのリアルタイム顔認識機能を持ったデジカメが発表され、基礎研究から実世界への応用が非常に早く行われた。
- 90年代後半から2000年の最初の10年までの非常に影響力のある考え方の1つが、特徴量に基づいた物体認識だ。物体認識は、カメラアングル、オクルージョン、視点、照明、そしてオブジェクト自体の本質的な変化があることから非常に困難だ。SIFT機能と呼ばれるDavid Loweによる画期的な研究は、ある物体の数十個のSIFT特徴を識別し、別の物体のSIFT特徴と照合する。
ベンチマーク・データセットと畳み込みニューラルネットワーク
- 2000年代の始めに、物体認識の進歩を測定することができるベンチマークのデータセットを持てるようになった。最も影響力のあるデータセットの一つがPASCAL Visual Object Challengeだ。データセットは、電車、飛行機、人といった20個の オブジェクトクラスで構成されている。
- その頃、すべての対象物、または世界のほとんどの対象物を認識することができるかといった、より困難な課題について考え始めていた。 これは、機械学習アルゴリズムのほとんどがトレーニングの過程で過学習になる可能性が非常に高いという点からも動機付けられた。つまり、動機は二つあり、一つはオブジェクトの世界を認識したいということ、もう1つは、機械学習が過学習のボトルネックを克服することだ。これがImageNetと呼ばれるプロジェクトだ。
- ImageNetは、インターネットから何十億もの画像をダウンロードし、WorldNetと呼ばれる何万ものオブジェクトクラスの辞書にすることから始まった。これは、Amazon Mechanical Turkのプラットフォームを使って、画像を並べ替え、きれいにし、ラベルを貼るという、クラウドエンジニアリングで行われた。 最終的に、約1,400万の画像を2万2,000のカテゴリーに分類して整理したImageNetが完成した。
- ImageNetチームは、2009年から"ImageNet Large-Scale Visual Recognition Challenge"と呼ばれる国際的な挑戦を開始した。この挑戦では、1000のオブジェクトクラスから140万個のオブジェクトを抽出し、コンピュータビジョンアルゴリズムの画像分類認識結果をテストした。具体的には、アルゴリズムで画像から5つのオブジェクトを示すラベルを出力し、上位5つのラベルに正しいオブジェクトが含まれていれば、これを成功とした。
- ImageNetチャレンジの2010年から2015年までの結果を見ると、2012年に認識のエラー率が16%まで改善したことがわかる。その時に用いられたアルゴリズムが畳み込みニューラルネットワークモデルだ。畳み込みニューラルネットワークモデルは、ディープ・ラーニングとも呼ばれる。
- 畳み込みニューラルネットワークについては、ImageNetの2012年の7層の畳み込みニューラルネットワーク(現在はAlexNetと呼ばれる)のブレークスルーから、毎年ImageNetの勝者はニューラルネットワークとなっている。2015年のGoogleNetとVGGはは当時19層であり、2015年のマイクロソフトリサーチアジアの論文では152層になった。
- 畳み込みニューラルネットワーク自体は、2012年に発明された訳ではなく、以前からあったものだ。1998年には、Jan LeCunとベル研究所の協力者が、数字を認識するための畳み込みニューラルネットワークを構築した。彼らは、手書きの小切手や郵便の住所を自動で認識したいと考えていた。
画像認識の可能性
CCS231nコースのレクチャー1では、今後の画像認識の可能性についても詳しい説明がある。画像認識は応用範囲が広い、今後も魅力的な分野だと実感できる。
- 画像から、その画像を説明する自然言語の文を生成するイメージキャプチョン
- 画像から、手を振っているといったアクションの認識や画像の意味を認識するセマンティック・セグメンテーション
- ビジュアル・ゲノムと呼ばれる、画像中のオブジェクトの関係やアトリビュートを認識する分野
- 画像から人間と同じようにジョークなどを読み取る、ディープ・アンダースタンディング