大学学部4年生時代に文字認識の研究室の所属し,手書きひらがなの文字認識の研究を行っていた.そこで飯島先生の複合類似度法に偶然出会った.この手法は,自力で探してきたわけではなかったが,当時の研究室の助手の先生がもと電総研(現在の産総研)の飯島研究室の出身であったこと,4年生で卒業した学部生がその複合類似度の追試を行っていたことなどいくつかの偶然が重なり,私自身も興味を持ち複合類似度の勉強を始めた.
複合類似度は,統計学で言う主成分分析と深い関係がある.もともと複合類似度は主成分分析とは独立な発想から生まれたものであるが,結果的に主成分分析と近い定式化になっているために,主成分分析を勉強することになった.偶然とは言え,学部生の時代に主成分分析に出会えたことは,非常に幸運であったと思う.主成分分析は,今では統計的パターン認識の基礎となっている考え方であり,また統計分析では古くから使われている基本技術でありながら,当時のパターン認識の研究ではあまり使われていなかったし,学部時代の講義でも習わなかった.
主成分分析は,いくつもの興味深い側面を持っている.第1の側面は,まずは大量のデータを圧縮する技術である.計算機が進歩しその後に多くのデータが扱えるようになるとデータの圧縮は重要な技術となっていった.第2の側面は,固有ベクトルを組み合わせて画像を近似して生成することができるという意味で画像生成の機能があること.つまり,第1の側面と第2の側面を組み合わせて,画像のエンコーダー・デコーダーモデルになっていることである.その後より高度なエンコーダー・デコーダーモデルが出てきたときに,主成分分析とのアナロジーを考えると非常に理解がしやすく感じた.第3の側面は,処理の途中で行列の固有ベクトルの計算が必要になることである.固有ベクトルによる定式化は慣れてくると難しいものではないが,初めて固有ベクトルに出会うと難しいもののように感じる.同分野で慣れている人が少ない当時においては,周囲から実際以上に高度なことをやっているように感じられた気がする.
やはり,皆があまり使っていない異なる分野の技術は,簡単なものであっても役立つものが多い.
複合類似度法では,文字画像の各画素を要素としたベクトルで表現した後に,その相関行列の固有ベクトルの計算が必要となる.当時は,まず最初にこの固有ベクトルの計算が問題となる.当時の計算機の主記憶の容量が大きくなかったのである.
大学の大型計算機センターには大型の計算機があったが,使用料金が高かったので,我々が主に使用したのは情報工学専攻が持っていた中型コンピュータで富士通のFACOM230-38であった.たくさんの学生が深夜を含めて24時間体制で使っていて非常に混んでいたが,学生はどれだけ使っても良かったのは,とても魅力的であった.また中型とはいえ,研究室の1室を占める当時としては先進的な計算機システムで,これを自由に使えることにはとてもありがたく感じていた.しかしながら記憶容量は,たしか256Kバイトであった.この中で画素を要素とした相関行列の固有ベクトルを計算することはそれ自体が簡単ではなかった.最初は,文字画像を9画素×10画素=90次元まで縮小し,その相関行列を単精度4バイトで作れば,それだけでも(9*10)*(9*10)*4=81kバイト必要となるので,まずそれで実験を行った[1].修士論文の時代には,研究室の貴重な研究費で固有ベクトルの計算だけは大学の大型計算機センターを利用させてもらい,それでも14画素×15画素=210次元がやっとであった[2].
つまり,相関行列の固有ベクトルの計算だけでも,とても苦労をした.複合類似度やそれに関連した部分空間法を当時あまり多くの人が研究しなかったのは,計算機の記憶容量が少なかったことも一つの要因であったと思う.いまでも記憶に残っているが修士論文の学内発表会の時に,数値計算の専門の教授から,「こんなに大きな行列の固有ベクトルを単精度(4バイト)の浮動小数点表現の計算で行ったとしたら,誤差がとても大きいのではないか」というコメントがあった.なお,この手の固有ベクトルの計算は誤差が多少あっても大きな影響を与えないことや,もしデータ数が少なくてベクトルの次元が大きい時には特異値分解も利用できることなどは,この時点では知らなかったが,その後理解することなった.ちなみに現在では多くの学生は理解していることである.
この時に経験した大規模の固有ベクトルの計算は大変だという気持ちが,その後に画像を対象とした大規模固有ベクトルの計算法の研究を行うための一つの動機になった.当時の計算機で大規模な行列の固有ベクトルを計算した時はとても苦労したが,とても良い経験であった.研究の本質とは関係ないけれども,それを実現するうえで苦労した別の経験は,その後の研究の展開にいろいろな影響を与えることが,後になってわかった.
[1] 村瀬 洋, 木村 文隆, 吉村 ミツ, 三宅 康二, "パターン類似度法による手書き平仮名文字認識の実験," 電子情報通信学会技術研究報告(PRL), pp.9-18, 1979/01/01
[2] 村瀬 洋, 木村 文隆, 吉村 ミツ, 三宅 康二, "パターン整合法における特性核の改良とその手書き平仮名文字認識への応用," 電子情報通信学会論文誌, J64-D, No.3, pp.276-283, 1981/03/01
その後NTTの研究所に就職したが,そこである時期に滞在した研究員の人が,別の応用ではあったが,行列から固有ベクトルの計算をしていた.学生時代に固有ベクトルの計算で苦労した経験を思い出したので,その研究員がどのように固有ベクトルを計算しているのかに興味を持ち,その手順を教えてもらった.そこで初めてベクトルの次元よりベクトルのデーター数が少ない場合には,特異値分解を利用すれば,ベクトルの次元のサイズの行列の固有値展開をする代わりに,データ数のサイズの行列の固有値展開をすればよく,計算時の記憶容量も飛躍的に少なくなることを学んだ.線形代数の知識があれば当たり前のことであるが現在のようにインターネットですぐに調べることができなかった時代には,知らなければ当たり前のことも使えない状況であった.しかし,過去の苦労の体験により,別の分野の研究の手法に興味を持つことは,とても良かったと思う.これは今の時代でもいえることであると思う.
更に,その計算の過程を考えてみると,このデータ数のサイズの行列の各要素は,データ間の相関(内積)になることに気が付いた.文字に限れば,もとの画像は2値である.このような2値の文字はその性質上,ランレングス符号化により大きな画像サイズであってもかなりデータサイズが小さくなることに気が付いた.そもそも文書などの2値画像を通信するFAXなどではランレングス符号化が使われていることも聞いていた.さらにランレングス符号化された画像同士の内積はよほどランが小刻みに分断されていない限り簡単な論理演算で計算できることにも気が付いた.つまり,ランレングス符号化,論理演算による内積,特異値分解の組み合わせにより,大きな画像サイズ(高次元ベクトル)であっても,少ない記憶容量と,少ない計算時間で固有ベクトルを計算できることがわかった.専門分野が少し異なるが,大規模固有ベクトルの高速計算法で論文を書くことができた[3].このように単純な気付きの組み合わせで専門分野外で面白いことができたので,とても楽しい経験をすることができた.このように何事にも興味を持ち,単純な気づきをすることも,研究には重要である.
[3] James Roseborough, Hiroshi Murase, "Partial eigenvalue decomposition for large image sets using run-length encoding," Pattern Recognition, 28(3), pp.421-430, 1995/03/01
ベクトル集合の相関行列の固有ベクトル計算する場合,データ数がベクトルの次元より少ない場合には,特異値分解を利用すれば,少ない記憶容量で計算できる.この場合,ベクトル間の内積を多数行い行列を構成する必要がある.2値画像の画素を要素とするベクトル間の内積はランレングス符号化すれば高速に計算ができることは前回述べた.
この考え方は濃淡画像のような2値画像以外の画像にも適用できないだろうかということを考えた.2匹目のどじょうである.一般化すれば画像を符号化した場合,符号化したままで画像間の内積を計算できれば計算時間が効率化できるのではないかということである.画像の簡単な符号化としてはJPEGなどでも使われているDCT符号化がある.DCT符号化は近似符号化のため,若干の誤差が伴う.しかし,この固有ベクトルをパターン照合などに使う時には多少の誤差があってもあまり問題とならないのでその点は問題はない.DCT符号化では1つの画像を複数の画像ブロックで表現するが,画像は一般的に高周波成分は少ないために,DCT変換をすれば少ないDCT係数で表現できる.特にその画像ブロックの画像が一様であったり単調であれば,これが顕著である.少ないDCT係数で表現されれば符号化したままで内積を高速に計算できる.
あとは,符号化したベクトルの内積計算が早くなっても,符号化自体に計算時間がかかれば,トータルの計算時間がかかる.しかし,例えば画像のデータ数が1000枚あったとすれば,一回符号化すればあとはそれを1000回使えるために,多少の符号化に計算時間がかかっても,その影響は受けにくい.結果,濃淡画像においてもうまく符号化を使えば,固有ベクトルを高速に計算できることがわかった.これのアイデアは,権威あるIEEEのTransaction on Image Processingに採択された[4].画像の符号化関係の重要な学会誌に,符号化は専門外の私の論文が採択されたことは,嬉しかった.
このように1つアイデアがでれば,そのアイデアを発展させることで,別の論文も書けることがわかった.まさに「2匹目のどじょう」である.特に人がこれまであまりやっていないようなアイデアを出せば,「2匹目のどじょう」を狙うことは,大切だと思う.
[4] Hiroshi Murase, Michael Lindenbaum, "Partial eigenvalue decomposition of large image using spatial temporal adaptive method," IEEE Transactions on Image Processing, Vol.5, pp.620-629, 1995/01/01