第12回 2010年7月9日

東京女子大学のトップページ   情報処理センターのページ   東京女子大学の Gmail のページ   東京女子大学の図書館のページ   浅川のホームページ   授業のホームページへ戻る

視覚情報処理

視覚系のさまざまな部位における単一ニューロン,および, ニューロン集団の応答特性を調べ,比較することは, 我々の視覚的認識における根本原理を洞察する上で有益であるに違いない。 なぜなら我々の認識は, これらのニューロンの活動特性に依存しているからである。

ここでは, 視覚系は外界の正確な内部コピーを生み出しているわけではないことを概観する。 すなわち,見えるものが受容しているものと同じとは限らない。 換言すれば,視覚系は外界の正確なコピーを作り出している訳ではない。 すなわち「見えるものが正確に受容しているものだとは限らない」。 視覚系の役割は,Marr の言葉を借りて言えば, 2 次元の網膜情報から 3 次元の構造を復元するということである。 2 次元の情報から 3 次元を復元するのであるから, この問題は答えが一意に定まらないと言う意味で 不良設定問題 ill-defined problem である。

以下では網膜視細胞,網膜神経節細胞,視床中継核,第一次視覚野,第二次視 覚野,視覚連合野のそれぞれの特性について概観し,認識へと至る情報処理の 特徴を見て行くことにする。

網膜過程

retina

図1. 眼球の概観

retina2

図2. 網膜の細胞

電磁波である光からニューロンの電位変化という信号への変換は網膜の最外側にある約 1 億 2500 万個の視細胞で行われる。 視細胞には,杆体細胞と錐体細胞の 2 種類が存在する。 杆体細胞 rod photoreceptor と錐体細胞 cone photoreceptor である。 杆体細胞は錐体細胞より高密度の視物質を持っているため, 光に対する感度が錐体よりも 1000 倍も高い。 すべての杆体細胞は同じ視物質を持つが, 錐体細胞には 3 つの異なるタイプが存在する。 これらは視物質の光感受特性に差があるため,異なる波長の光に反応する。

網膜情報処理の基本構造を図2に示した。眼に入った光刺激は, 網膜上の視細胞 photoreceptor から双極細胞 bipolar cell を介して神経節細胞 ganglion cell に至る。

retina3

図3. 視細胞,水平細胞,双極細胞,アマクリン細胞,神経節細胞。 光刺激は視細胞から双極細胞を経て神経節細胞へと伝達される。 神経節細胞は視神経へと軸索を伸ばし眼からの情報を大脳へ送る。 水平細胞とアマクリン細胞は側方結合を通じて神経節細胞や双極細胞の反応を修飾する

視細胞が光に反応して活動電位を発すると, その活動電位は神経節細胞を経て大脳へと伝達される。網膜情報処理では, 水平細胞 horizontal cell とアマクリン細胞 amacrine cell によって側方結合による修飾を受ける。

図5 に錐体と桿体の 1 mm2 当たりの数を示した。 錐体は主に中心窩付近 10°ほどに分布し,杆体は 20°付近が最大となる。 このため,夜空で暗い星を観察する場合,周辺視で見た方がよく見えることがある。

retina4

図4. 2種類の視細胞。杆体細胞と錐体細胞

retina5

図5. 網膜における2種類の視細胞の分布

retina6

図6. 上:ヒトの網膜中心部の拡大図。錐体内節が詰まっている。 下:網膜周辺部。錐体細胞は杆体細胞よりも大きく。杆体の海に錐体の島が浮いているように見える。

retina7

図7. 錐体と杆体からの網膜神経節細胞への収斂。錐体経路は収束が少なく,杆体経路は収束が高度である。

retina8

図8. 視細胞から双極細胞への経路。双極細胞は需要野中心部の視細胞から直接シナプス入力を受け取る。さらに水平細胞経由で周辺の細胞からも間接入力を受ける。

retina9

図9. 周辺視細胞への光刺激の効果は中心の視細胞の光刺激と拮抗する。

錐体の直径は約 2 μm,視覚にして約 30 秒であり, 中心窩における錐体の分布間隔は約 35 秒である。 視力が 1.0 の人はランドルト環の一分の切れ目を識別できる。 したがって,受光細胞レベルでは約2個の錐体がこの識別に関与している。

これに対して,縦に並んだ 2 本の線分のずれを検出できる副尺視力は約 2 秒である。 この識別能力は個々の錐体のレベルを越えており,超視力と呼ばれる。

受容野 reseptive field

Hubel と Wiesel (1979) は網膜,外側膝状体,第一次視覚野のニューロンの 応答特性を調べた。その結果次の事実が明らかとなった。

  1. それぞれのニューロンは網膜の中心窩 fovea の受容野が周辺部の受容野より小さい。 このことは中心窩の空間解像度が高い(視力が良い)ことと符合する。
  2. すべてのニューロン(網膜神経節細胞,外側膝状体,第一次視覚野IV層下部のニューロン)は環状の受容野を持つ。
  3. すべてのニューロンは単眼性 monocular であり,それぞれのニューロンが一方の眼からのみ情報を受け取り,両眼から情報を受容するものは無い。
  4. 網膜 → 外側膝状体 → 第一次視覚野(有線皮質とも言う)のそれぞれにおける多くのニューロンが, 興奮性部位と抑制性部位の受容野を形成しており,それらは環状の境界で分けられている。
retina10

図10. 神経節細胞の中心ー周辺受容野。 (a)(b)On centered (オン中心型)神経節細胞は受容野中心部が暗点で刺激(光が消えると)発火する。(c)暗点が受容野周辺まで広がると反応は減る。

retina11

図11. 受容野に照射した光の明暗境界に対する神経節細胞の出力。 中心オフ型神経説細胞では,受容野中心部に暗点が達するまでは応答しない(a)。 受容野周辺部にオフ領域が達すると反応は抑制される(b)。 (c)受容野中心にオフ領域が入ると反応は増加する。 (d)オフ領域が受容野全体を覆うと反応は拮抗作用により抑制される。

retina11

図12. 光に対する P 型神経節細胞と M 型神経説細胞の時間応答特性

retina12

図13. P 型神経節細胞の色対比中心ー周辺受容野

gaglion

図14. 神経節細胞におけるオン中心細胞とオフ中心細胞の応答特性

図 14 は神経節細胞の応答特性を示したものである。 オン中心細胞の場合, 光の点が受容野の中心にあたるかで「オン」反応が出力する(図上)。 一方このニューロンに光の点を周辺のどこかに照らすと「オフ」反応が出現する。 一方オフ中心細胞の反応では,光が中心のどこかに照らされる時「オフ」反応が生じる。 それに対して,光が受容野の周辺のどこかに照射されたとき「オン」反応が出現する。

ON/OFF

図15. オン中心細胞の応答特性

中枢神経系の視覚情報処理

V1における視覚情報処理

V1のブロッブ領域に見られるニューロンの受容野の特徴は,特定の方位の刺激 に対して応答するように組織化されている。

単純型細胞

単純型細胞では, 特定の方位を持つ線状の刺激が受容野に提示されたとき最も強く反応する。 受容野は空間周波数で1から 16 cpd (cycles per degree) に中心周波数を持ち, 半値幅が約 1 オクターブである。 方位選択性は半値幅で ±15° から ±30° の範囲にある。

複雑型細胞

複雑型細胞の特徴は,受容野内のどこの位置でもその細胞が反応する。 したがって,位置に関する一般化が起こっていると見なすことができる。 最適方位さえ合っていれば, 線分やエッジの明るさや色のコントラストにも無関係で反応する。

neuroscience032 neuroscience032 neuroscience032

図16. 視覚経路の障害による視野欠損。(a)左神経が切断されると左目は見えなくなる。それでも右目の視野により左視野が部分的に見えている。(b)左視索が切断されると右視野が失われる。(c)視交差が切断されると交叉繊維が障害されるため両目の視野周辺部が失われる

neuroscience035

図17. マカクザルの外側膝状体。6 層構造をなしている。腹側 2 層を LGN 大細胞層 magnocellular LGN layer, 背側 4 層を LGN 小細胞層 parvocellular LGN layer と呼ぶ。

neuroscience037

図18. 外側膝状体の構成

neuroscience038

図19. ヒトの脳視覚経路。網膜 → 外側膝状体 → 第一次視覚野

neuroscience039

図20. 有線皮質(第一次視覚野)の細胞構築。 ニッスル染色を施した組織切片内に細胞体が点状に見える。Hubel, 1988, p.97.

neuroscience040

図21. 有線皮質(第一次視覚野)内の代表的細胞の樹上突起。 錐体細胞は III, IVB, V, VI 層に分布し, 有棘星状細胞は IVC 層に見られる。

neuroscience042

図22. 有線皮質の眼優位性コラム(a)マカクザルの有線皮質IV層にある眼優位性コラムの構成 LeVay et al.,1980.

脳の機能分担

網膜と第一次視覚野 V1 の間には連続的な 1 対 1 対応が存在する(レティノトピー retinotopy)。 同様に,鼓膜の周波数選択特性と第一次聴覚野 A1 との間にも対応関係が見られる (トノトピー tonotopy)。 同様に体表面の感覚と体制感覚野の間にも対応関係が見られる(ソマトピー somatopy)。

すなわち,感覚器官と第一次感覚野との間の神経結合は, 類似した刺激に対して,皮質上の同じような位置に対応する受容野を持つことが知られている。 このような 2 つの神経場間の連続的な結合関係のことをを トポグラフィックマッピング topographic mapping と言う。

視覚野のトポグラフィックマッピングについては, さらに細かいことが分っていて任意の視覚位置に対して, 眼優位性 ocular dominancy, 方位選択性 orientation selectivity, 色 などの情報が処理されるように規則正しく配列されている。 これをを ハイパーコラム hypercolumn 構造という。

neuroscience048

図23. 皮質のモジュール。ハイパーコラムの模式図。それぞれの皮質が眼優 位性円柱,方位円柱,ブロッブを含んでいる。この一つのモジュールが受け 持つ視野の分析を行う。

hypercolumn

図25. 第一次視覚野 V1 におけるハイパーコラム構造

ハイパーコラムは,2 次元しかない皮質上に, 2次元の網膜位置,方位,視差情報(立体視), 色情報処理などの多次元情報をなるべく効率よく処理しようとする, 生体情報処理の機構を表していると言える。 このような構造は,大まかな構造は遺伝子によって決定されるが, 細かい構造については神経回路のを 自己組織化 self organization によって達成されると考えられている。

neuroscience043

図24. 有線皮質(17野)ニューロンの運動方向選択性。最適方向に置いたバーを動かすと, この場合左から右に動かすと強く反応する。反対の動きのときは反応が弱い。

neuroscience044

図25. 中心周辺受容野を持つ 3 つのLGN 細胞の組み合わせによって方位選択性ニューロンができる模式図

Livingstone_and_Hubel001

図27. 網膜から皮質に至る経路

Livingstone_and_Hubel001

図28. 網膜から皮質に至る経路

Livingstone_and_Hubel003

図29. 二重 On center off surround 型受容野

Livingstone_and_Hubel005

図30. 網膜から皮質に至る 3 つの経路。Livingstone & Hubel, 1984 を改変。 (a)4Cβ 以降の細胞は色の対比で定義された境界に応答するが, 全体が色でコード化された境界には応答しない。 (b)少なくとも突出してはいない。 (c)麻酔下の実験動物では,17 野の上層で少数の両眼視にチューニングされた細胞が見つかる。 両眼奥行き視差をコーディングしている細胞は 17 野 4C の上下で見つかっている。 この差異は分かっていないが, 立体視のメカニズムは 18 野であり,立体視に関した 17 野のチューニングは, 18 野からの逆投射であろう。 (d)デオキシグルコースによる。 (e)18野の太いストライプではまれである。 しかし17野の4Bと MT 野ではよく見つかる。

Livingstone_and_Hubel004

図30. 人間の心理実験と3つの視覚系の流れとの関係。 チェックは心理実験結果と生理学の結果とが同じ傾向を示すことを表す。 チェックがついていないところはそのような実験がまだ行われていない。

網膜視細胞の受容野は網膜上で小さな領域を占めている。 網膜からの出力である神経節細胞では,その受容野が中心—周辺の同心円構造 を持っている。 神経節細胞は,輝度変化や色対比などさまざまな応答特性を持っている。 第一次視覚野(有線皮質とも言う)には方位選択性や両眼視といった属 性を持つニューロンが存在する。外有線皮質(第二次視覚野やそれ以降)ではさ らに複雑な受容野が存在することが知られている。おおまかに言って,対象物 の認識にかかわる視覚情報処理は,V1 から上位の視覚皮質に向かうに従って, 単純な処理から複雑な処理へと配列されているように見える。

ある特定の対象物,たとえば自分のおばあちゃんの認識には,少数の特化した ニューロンの発火が関与しているのであろうか。たった一人に反応するように 特化した受容野を持つ 10 個程度のニューロンが関与しているのであろうか。 この考えに最も近いのが,高次の対象認識の座である IT 野の顔選択性ニュー ロンである。

サルの電極を用いた実験結果によれば,我々の認識する多数の対象一つ一つに 対応するようにチューニングされた細胞が見出されたという証拠はない。さら に,神経系全体にわたって観察される原理,すなわち,上位になればなるほど ニューロンの性質は広域同調がみられるという原理からすれば,おばあちゃん 細胞仮説に示されるような高い刺激選択性は,この原理にそぐわないように思 われる。IT 野(下側頭葉)の顔細胞は通常たくさんの顔に応答するのが普通であ る。

しかし,ある一つの特性に選択性を示すニューロンは,他の特性に対しても常 に感受性を持つ。例えば V1 野のニューロンの方位選択性は,このニューロン が大きさや運動方向にも選択的応答を示すという可能性を見誤ってはいけない。 極度の選択性に依存することは神経系を理解する上で「危険」である。例えば, タバコを吸っただだけ数千個のニューロンが死滅するので,たまたまその中 に 10 個のおばあちゃんの顔に選択的に応答する細胞すべてが含まれていたと しても,自分のおばあちゃんの顔が分からなくなったりしないであろう。

おばあちゃん細胞に頼らないとすれば,視覚系はどのようにしておばあちゃんの 認識を成立させるのであろうか。脳は認識にあたって,やわらかい「労働の分 割 division of labor」方式を採用しているのかも知れない。ある一つの皮質 領野内で,幅広いチューニング特性を持った多くの細胞が,対象物の特徴の脳 内表現を担当しているのではないか。大きな規模で皮質領野内の集団が,ある ものは主に形や色を,またあるものは主に運動を担当して視知覚的認識に貢献 しているのであろう。別の表現を用いれば,視知覚情報処理は,流れ作業の結 果できあがる最終産物というより,複数の視覚野のオーケストラが奏でる音楽 に例える方が良いのかもしれない(ベアー他著,加藤他監訳,「神経科学 」,p.263)。

網膜の構造,錐体細胞と杆体細胞(ベアー他 p.226の図9.14),M細胞とP細胞. 外側膝状体での情報処理。第一次視覚野のコラム構造。腹側経路と背側経路。 高次視覚野における視覚情報処理。

表1. 視覚情報処理における2つの経路
M(magnocellular cell)経路P(parvocellular cell)経路
網膜における視細胞錐体杆体
空間解像度高い低い
時間応答特性速い遅い
色応答特性色盲色選択性
第一次視覚野での終端4Cα4Cβ

視覚情報処理に関与する視覚経路は,網膜—膝状体—有線皮質経路 retina—geniculate—striate pathway と呼ばれる。 網膜で電気信号に変換された光刺激は, 視床の一部である外側膝状体 LGN:lateral genuculate nucleus を経て, 第一次視覚野 primary visual cortex(別名 striate cortex)へと伝達される。

左の視野に写った情報はすべて,右目の耳半側網膜 temporal hemiretina を経て同側性に, 左眼の鼻半側網膜 nasal hemiretia を経て反対側,すなわち右脳の有線皮質に到達する。 反対に右視野の情報は,右目の鼻側網膜と左眼の耳側網膜から左脳の有線皮質に到達する。

外側膝状体ニューロンのほとんどは,有線皮質の皮質層の第IV層下部(4C層)に到達する。

中心窩の情報は,有線皮質ではその領域が拡大されて照射されている。 すなわち,中心窩は網膜では小さな部位を占めるに留まっているが第一次視覚野では, 中心窩からの入力の分析におよそ 25 \% が費やされている。

外部環境の分析

what 経路で視覚情報処理がパーツごとの分析を行なわれている。 視覚野おける情報処理は詳細に調べられている。 脳の基本的な情報処理として, 感覚入力から入力された情報が分割されて高次の連合野に送られるという過程を経るらしい。 視覚野における機能分担の展開図を下図に示した。

Felleman

図31. 視覚野の展開図

現在までに分かっている視覚情報処理の結線図を下図に示した。 視覚野は現在までで最もよく研究されている領域である。 視覚野の複雑な分業体制には驚くしかない。

fig3

図32. 視覚野の結線図

側頭葉における概念地図

また,側頭極から下側頭葉後部にかけて概念ごとの地図が存在することを Damasio, Grabowski, Trannel, Hichwa and Damasio (1996) たちは主張している。 彼らによれば, 写真や絵画から対応する語彙を呼称する場合,概念は下側頭葉極から下側頭葉後部 にかけて,有名人の顔,動物,道具のの順に並んでいるという。 左側頭極(ブロードマンの 38 野に相当すると考えられる)が侵されると, 有名人の名前(固有名詞)の呼称が困難になり, 20 野と思われる領野が侵されると動物の名前 (ダマジオらは,正確な動物名が想起できなくても,その概念が想起 —たとえばスカンクの絵を提示したときに, 近寄ると臭い匂いを発する動物であると答えるなど— できれば正解とみなしている。 したがって厳密には,彼らは物体の呼称障害を問題にしているのではなく, その概念の想起を問題にしている)が想起できなくなる. そして,おそらく 37 野か 19 野の損傷によって道具の想起が困難になる. 彼女らは,127 名の脳損傷患者のうち 30 名について, 上記のような想起障害を呈する患者を調べた。その結果, 側頭葉の単一の限局された障害によっては,有名人,動物,道具の組合せのうち, 有名人と道具の両者を同時に想起できなかった例は存在しないことを報告した。 このことを確認するために,健常者 PET によるデータから, このような概念の地図が確認されたと報告している。

Broadman-map-color

図33. ブロードマンの脳地図

Damasio and Damasio(1992) の主張によれば, 側頭葉の前部から中部にかけての皮質に損傷がある患者では,単語の想起障害を生じる。 概念の保持は正常だが, 自分の知っているものに対応する単語を想起できず, 分かっていても名前を言えない。 単語の想起の障害は, 想起しようとしている事物のカテゴリーによって異なっている。 例えば道具に関する名詞は,動物,果物,野菜に関する名詞より想起しやすい。 このような患者は動詞についての障害はない。 また,語彙を媒介する特定の部位が存在する。 概念と単語生成を媒介するこの神経回路は後頭骨側頭骨の軸に沿った脳の部分, 後頭葉から側頭葉にかけての部分に広がっている。 一般的な概念の媒介系は左側頭葉の後ろの方にあり,特殊な概念の媒介系は, 左側頭葉の前方の側頭極付近にあると思われる。 以上のことはゲシュヴィンドが 1965 年に主張していたことでもある, すなわち「言語は,ウィルニッケ領野で「理解」されるのではない」 (Geschwind, 1965, 邦訳 p.160)

ここまでの引用文献


視覚情報処理過程のモデル化

パンデモニウム(伏魔殿)モデル

パンデモニウムとはセルフリッジ(Selfridge, O. G.) が考案したパターン認識のモデルである。 パンデモニアムとは万魔堂のことであり, 特定の処理を担うデーモン(情報処理モジュールを比喩的に示す) が階層的に多数連結されて構成されている。 文字認識を行うパンデモニアムでは, イメージ・デーモンから送られた入力情報を特徴デーモンが分析し,垂直線,水平線, 角などの有無がチェックされる。それらの出力を各文字に対応する認知デーモンが受け, マッチする認知デーモンの出力は大きくなる。 それらの出力を評価して,最終的に決定デーモンが判定を下す。 並列的であるが,基本的な情報処理の流れは,特徴抽出から解釈にいたるボトムアップ型である。

有斐閣,心理学事典より
Pandemonium

図. パンデモニウムモデル。リンゼイ & ノーマン著,中溝,箱田,近藤訳,情報処理心理学入門II,サイエンス社,1984,p.8

パーセプトロン

パンデモニウムモデルを素直に実現したニューラルネットワークモデルとしてパーセプトロンが挙げられる。 パーセプトロンは工学の分野でパターン認識との関連で長い研究の歴史がある。

perceptron

図. パーセプトロン。ミンスキー & パパート著, 中野,阪口訳,1993, パーソナルメディア

パーセプトロン perceptron とはローゼンブラットによって提 案された上図のような 3 層の階層型ネットワークモデルである。 パーセプトロンはマッカロック・ピッツの形式ニューロンを用いて学習則にヘッブ則を使ったモデルで, 単純な認識能力を獲得することができる。

パーセプトロンは 3 層の階層型ネットワークでそれぞれ,S(sensory layer), A(associative layer), R(response layer) と呼ばれる層からなっている。 S → A → R のうちパーセプトロンの本質的な部分は A → R の間の学習にある。 最下層の入力層は外界からの刺激入力を表現している。 中間層では入力情報の変換が行われ,最上位層である出力層で認識に到る。

パーセプトロンとは,入力パターンに現われる P+ と P- という 2 つのパターンを識別する問題を考えたとき, P+ が入力されたとき 1 を, P- のとき 0 を出力する機械である。 あるいは,出力ユニットが 1 つしかない場合を考えれば, パーセプトロンは入力層に現われるパターンを 1 と 0 に 2 分する機械であるということができる。


パーセプトロンによる受容野の形成

パーセプトロンに次のような 5×5 の受容野を考えて, 線分を学習させることを考える。

パーセプトロンとは,入力データを受け取って,その活性値を結 合係数 w によって重み付けられた値の関数として自身の出力値 y が定まる2層のモデルである。

neuron1

図では簡単に入力が3,出力が1の場合を示してあるが,入力ユニットの数も, 出力ユニットの数もいくつでもよい。

さて,縦線5本, 横線5本, 斜線2本 の計12パターンをパーセプトロンに 学習させてみよう。入力は 5×5 の正方格子の線分とし, 出力及び教師信号の次元は 12 次元のベクトルとする。各々の線分に 対して一つの出力層ユニットが対応するように訓練する。

bar1 bar2 bar3 bar4 bar5
bar6 bar7 bar8 bar9 bar10
bar11 bar12

上の図では,最初の行の5つが縦線,次の行の5つが横線,最後の二つが斜め線 を表している。これを 1-0 の行列で表現したものである。例えば,上図の一番左上の 縦線の場合,

1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0

という表現されていることになる。すなわちこの5行5列のデータ行列の一番左の列だけ 1 で 残りの要素はすべて 0 である。パーセプトロン,あるいはバックプロバゲーションに与える データは,全部で 12 ということになる(縦線5つ,横線5つ,斜め線2)。 すなわち5行5列のデータが12個あることになるが, ANNS♥ に与えるデータは, 1 行で 1 データでなければならないという制約がある。

そこで,5 行 5 列(=25 個のデータ)を一列に並べて 1 行のデータを作らなければならない。 1行目の5列のデータの隣りに2行目のデータを置くことにすれば,

1 0 0 0 0 1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0

となる。この操作を5 行分繰り返せば,

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0

という l 行 25 列のデータができあがる。 これが一番左側に縦棒がある入力パターン(上の一番左上の図) ということになる。 同様にして,上の図で2行目の一番左,すなわち横線のデータは,

1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

という1行25列のデータということになる。このようにして,全部で12本の線分のデータ があるわけだから,12行25列のデータができあがる。以上が入力データの作成方法とそのデータ表現である。下の入力(訓練)データ bar.input はこうして作ったものである。

ニューラルネットワークに学習させる場合には,入力データをどう解釈すればよいのか について教えてやるデータ(教師信号データという)が必要である。 簡単に考えるのであれば,12本の線分があるわけだから,それぞれ別個に12個の概念を用意して (1行で1つの線分を表していた)その入力データを,それぞれの教師信号とすれば よいことになる。12本の線分が入力データであるから,12種類の教師信号が必要となる。

12本の線分,すなわち12個の概念があるのであるから,ある概念のときに 1 であり,その他は 0 であるようなデータを作れば良い。すなわち 1 行 12 列のデータを作って,

1 0 0 0 0 0 0 0 0 0 0 0

などとすれば,一番左だけが 1 であり,他はすべて 0 である 1 行 12 列のデータができあがる。 全部で12本分の線分があるわけだから,教師信号も 12 個(データとしては12行)必要であり, 全部で 12 行 12 列の教師信号データを作ることになる。このようにしてできあがったのが, 下の「単純な教師信号データ(bar.teach)」である。

ところが,教師信号の作り方はこの一通りだけではない。5本ある縦線をすべて「縦」という 概念として学習させたい。同様に5本ある横線分を「横」という概念として,2本の斜め線を 「斜め」という概念として学習させることも可能である。

この場合には,学習させる概念は12とおりではなく,3とおり(縦,横,斜め)だけである。 そこで,縦線であれば 1 0 0,横線であれば, 0 1 0,斜め線であれば 0 0 1 などとすればよい。 入力データは最初の5つが縦線であったわけだから,最初の5行は 1 0 0,と同じデータが5行繰り返されればよい。 同様に次の5行は横線を表していたわけだから, 0 1 0が5行並べば良い。最後の2行は斜め線なので, 0 0 1 が2行あれば全部で12行3列の教師信号データ ができあがる。これが,上の bar-cat.teach という教師信号データである。

この場合には,ニューラルネットワークの学習は難しくなるはずである。なぜならば, 縦線分はどの位置に表示されても「縦」と答えなければならないし, 同様に,横線は,どの位置に表示されても「横」と出力しなければならないからである。 ちょうど第一次視覚野の単純型細胞が方位選択性をもっており,その受容野に最適方位の 線分が提示されれば,反応するような特性を持つニューロンを形成することを意味する。

ところが,視覚野のニューロンは単純型細胞ばかりではない,複雑型細胞とよばれる ニューロンは,最適方位の線分が提示されれば,受容野のどの位置に線分が提示されても 応答するのである。このような複雑型細胞は,網膜上の位置の情報を取捨し,最適方位の 線分を検出する役割をになっている。 パーセプトロンに複雑型細胞と同じ振る舞いをする認識をさせることができるだろうか? 以下で実験してみることにする。

データの処理以前にコマンドの説明

それぞれのファイルの中身を見るには cat というコマンドを使う。

cat bar.input 
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 # vertical 1
0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 # vertical 2
0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 # vertical 3
0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 # vertical 4
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 # vertical 5
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # horizontal 1
0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # horizontal 2
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 # horizontal 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 # horizontal 4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 # horizontal 5
1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 # left oblique
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 # right oblique

cat bar.teach
1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 1

cat bar-cat.teach 
1 0 0 
1 0 0
1 0 0
1 0 0
1 0 0
0 1 0
0 1 0
0 1 0
0 1 0
0 1 0
0 0 1
0 0 1

cat コマンドは,引数(ひきすう)を一つとり, そのファイルの内容を端末エミュレータ上に表示するコマンドである。従って 上の例では,cat bar.inputbar.input というファイルの中身を表示さ せ,cat bar.teachbar.teach というファイルの中身を表示させ, cat bar-cat.teach というコマン ドで bar-cat.teach というファイルの内容を 表示させている,という意味である。

ANNS♥では,シャープ(#)から行末までは コメントとして扱われ,実際の動作には関係がない。

なお,コマンドラインからタイプすべきコマンドには行頭にドルマーク$ をつけてあるが,ドルマークはタイプする必要がない。

bar.input の一行目は受容野の一番左端に縦線があるという意味である。グラフィック表示させたければ以下のようにタイプする。

./mattrim 1 1 1 25 bar.input | ./matresize 5 5 | ./PSHinton > bar1.ps
convert bar1.ps bar1.jpg
display bar1.jpg

それぞれのコマンドの意味は,./mattrim が, 行列(mat)をトリミング(trim) するコマンドである。この場合, bar.input が 12 行 25 列の行列(1行で1デー タである)なので,その行列の 1 行 1 列目から 1 行 25 列目までをトリミン グ(取り出して)して次のコマンドに渡す(|)という意味である(当然2行目のデータ を取り出したければ,./mattrim 2 1 2 25となる。2行1列目から2行25列目までのデータを取り出すと言う意味である)。次のコマン ド ./matresize は行列(mat)を別の行列のに 整形(resize)するというものである。この場合 5 行 5 列の行列に変換して 次のコマンドに繋げている。次のコマンド は ./PSHinton であるが,これは,ヒントン (Hinton)グラフと呼ばれるグラフを作って,ポストスクリプト(PS)形式の画 像にするコマンドである。その結果を bar1.ps というファイルに格納している。以上が一行目の説明である。

2行目のコマンドは ImageMagic のコマンドである。 コマンドの意味は bar1.ps というファイルを bar1.jpg というファイルに変換(convert)す るという意味である。

3行目のコマンドも ImageMagic のコマンドである。このコマン ドdisplay は,画面上に画像を表示するコマン ドである。すなわち bar1.jpg という画像ファ イルを画面上に表示している。

以上がシミュレーションの前の下準備である。したがって,bar.inputの6行目を可視化したければ以下のようにタイプすれば良い。

./mattrim 6 1 6 25 bar.input | ./matresize 5 5 | ./PSHinton > bar2.ps
convert bar2.ps bar2.jpg
display bar2.jpg

bar2.jpg というファイルを作って表示させるコマンドである。 ./mattrim の引数(ひきすう)6 1 6 25 は,6行1列目から6行25列目までを取り出すというコマンドである。

パーセプトロンによる学習

ANNS♥ではパーセプトロン は ./perceptron というコマンドで実行できる。 サンプルオペレーションは以下の通りである。

./perceptron -input bar.input -teacher bar.teach

コマンドの意味は,perceptron に入力データ (-input) が bar.inputであり,教師信号データが bar.teachというファイルを読み込んで 学習させよという意味になる。

ここでもう一度データファイルの形式を説明しておく。 ANNS♥ではほとんどのデータは mat 形式である。 mat 形式とはテキストファイル(従ってエディタやワープロで読み込み可能で あり,エクセルなどでも読み込み可能な)形式であり,n 行 m 列の行列を単に数値 として表現しただけの形式である。上の例でも分かる通り, bar.input は,12 行 25 列の行列である(縦線 が5, 横線が5, 斜め線が2)。1 行で 1 データを構成している。同様にし て bar-cat.teach は,12 行 3 列の mat 形式 である。1訓練データに対して1教師信号が必要となるので,入力(訓練)デー タの行数と教師信号データの行数は等しくなければならない(この場合12行)。 mat 形式のデータ中 # から行末まではコメント として扱われ,データの処理には関係がない。

学習結果をファイルとして保存したければ,リダイレクションという方法を使う。 たとえば,上記のパーセプトロンの学習結果を bar.wgt というファイル(パーセプトロンが学習した結合の重み係数行列という意味で weight を表す英単語の省略形として .wgt を用いた)で 保存したければ,以下のようにする。

./perceptron -input bar.input -teacher bar.teach > bar.wgt

この結果,学習結果は画面に表示されず bar.wgt というファイルに保存される。 この学習結果を再度利用する場合には,-init オプションを用いれば良い。

./perceptron -input bar.input -teacher bar.teach -init bar.wgt

とすれば,最初から学習するのではなく,bar.wgt に記された結合係数を初期値として シミュレーションが実行される。実際の結果は例えば次のようになる。

./perceptron -input bar.input -teacher bar.teach -init bar.wgt
...中略...
### Learning completed in 0 time(s)
### Final MSE = 0.049871 at iter=0

英語で表示されているが,最後の2行は,学習が 0 回で成立したというメッセー ジであり,最終的な,平均自乗誤差(Mean Square Error:MSE)が 0 回目の繰 り返しiter(ration)で 0.049871 であったことを示している。 ANNS♥では,平均自乗誤差が 0.05 以下に なったことを持って学習成立基準としている。この学習成立基準は -error オプションを指定することで変更することができる。

学習結果である bar.wgt ファイルもまたANNS♥ で扱われる一般的な形式である mat 形式である。bar.wgt の行数と列数を知りたければ, ./matsizeコマンドで調べることができる。

./matsize bar.wgt
### bar.wgt 12 26

などと表示され,12 行 26 列のデータであることが分かる。

コマンドライン引数

ANNS♥ のコマンドはほとんどが --help をつけて起動すると簡単な使用法が表示される。

$ ./perceptron --help
### Program name: ./perceptron - A Perceptron simulator
### Creator: Shin-ichi ASAKAWA <asakawa@ieee.org>
Usage: ./perceptron -input <filename> -teacher <filename> 
[-init <initial_weight_file_name>] [-error <double>] 
[-learn <double>] [-epoch <int>] [-to <int>] 
[-seed <int>] [-rand_range <double>] [-slope <double>] 
[-allowable_error <double>]
Arguments: 
     input, input file name to be learned
     teacher, teacher file name to be learned
default settings of options: 
         learn = 0.1: learning ratio
         error = 0: error limit
         allowable_error = 0: allowable error limit
         epoch = 200: epoch 
         slope = 1.7: slope of sigmoid curve
         to = 10000: max iterations
         rand_range: = 0.1: range for initial values
         seed: seed of random number generator

Usage の行で表示されている引数とオプションの意味は次のとおりである。カッコ[]で囲まれたものはオプションであり省略可能である。それぞれの意味は以下の通りである。

-input
訓練データを指定する
-teacher
教師信号を指定する
-init
結合荷重データの初期行列を指定する
-error
どこまで学習させるのかを指定する(平均自乗誤差の上限値を指定する) 0から1の間の実数(デフォルトは0)
-learn
学習係数を指定する(デフォルトは0.1)
-epoch
学習途中の平均自乗誤差(MSE)を表示する回数を指定する。100 を指定すれば100回ごとにMSEを画面に表示する(デフォルトは200)
-to
繰り返し学習回数の上限を指定する(デフォルトは10000)
-seed
乱数の種を指定する(省略した場合現在時刻を種とする)
-rand_range
初期値の乱数の範囲を指定する(デフォルトは 0.1)
-slope
シグモイド関数の傾きを指定する(デフォルトは1.7)
-allowable_error
絶対許容誤差を指定する(デフォルトは0)

実習 入力データをbar.input 教師信号をbar.teach として ./perceptron に学習させてみよ。

実習 入力データをbar.input 教師信号をbar-cat.teach として ./perceptron に学習させてみよ。

学習結果の可視化

上の実習で,学習結果を可視化したければ次のようにすれば良い。

./perceptron -input bar.input -teacher bar.teach  > bar.wgt
./matsize bar.wgt 
./mattrim 1 2 1 26 bar.wgt | ./matresize 5 5 | ./PSHinton > result-bar1.ps
convert result-bar1.ps result-bar1.jpg
display result-bar1.jpg

1 行目はパーセプトロンに学習させるコマンドである。学習結果は bar.wgt というファイルに格納される。

2 行目は,データファイルbar.wgt という mat 形式のデータ行列のサイズを調べている。このコマンドはなくてもよい。

3 行目ではbar.wgt の 1 行 2 列目から 1 行 26 列目までをトリミング(mattrim)して取り出し,その結果を 5 行 5 列の 行列に整形し(matresize),その結果をヒントングラフに変換し,その結果 をresult-bar1.ps というポストスクリプトファイルに 格納している。トリミングする範囲は 1 行 1 列目からではなく 1 行 2 列目 からであることに注意されたい。学習の結果できた行列の 1 列目は切片項であるため (ニューロンのしきい値であると解釈しても良い)結果の表示には不要だから である。

4 行目では,ImageMagic の convert コマンドを使って, result-bar1.ps というポストスクリプトファイルを result-bar1.jpg という jpeg ファ イルに変換している。 そして,最終行で画面に表示させている(display コマンド)。

ヒントングラフ

直上の操作でできたファイルを画面に表示させると例えば次のようになるであろう。

Hinton graph の例

ヒントングラフは G. Hinton によって考案された結果の表示方法である。 白丸は正の結合を,黒丸は負の結合を表しており,それぞれの円の直径が結合荷重 の大きさを表している。従って大きな丸ほど結果に与える影響が大きい。この例の場合, 一番左端の列だけ正の結合で,他は負の結合になっていることから,左端の縦線を検出する 受容野細胞が形成されたと見なすことができる。

バックプロパゲーション法による受容野の形成

直上の例は,いわば第一次視覚野の単純型細胞の例であると見なすことができる。 これに対して,複雑型細胞は,受容野のどの位置に提示されても縦線,あるいは横線に反応する。 パーセプトロンでは教師信号データをbar.teach から, bar-cat.teach に換えることで,パーセプトロンに 縦,横,斜めという3つの線分の概念を学習させるシミュレーションを実行することができる。

上の実習で行えば分かるとおり,パーセプトロンではこの学習は成立しない。 このような複雑型細胞を形成するにはバックプロバゲーションによる3層のネットワークである必要がある。

BackPropagation

バックプロパゲーション法(./bp3)でも試すと以下のようになる。

./bp3 -hidden 4 -input bar.input -teacher bar-cat.teach

./bp3 で は -hidden 引数が必須である。入力ユニット 数と出力ユニット数はデータ行列のサイズで自ずと決まってくるが,中間層の ユニット数は任意だからである。上の例では中間層のユニット数を 4 にしてあ る(-hidden 4)。中間層のユニット数が多ければ 学習は容易になる。しかし,ユニット数が多いと結果の解釈が困難になることが多い。

結果を可視化したければ以下のようにする。

./bp3 -hidden 4 -input bar.input -teacher bar-cat.teach > bar.result
./mattrim 1 2 1 26 bar.result | ./matresize 5 5 | ./PSHinton > bar1.eps
convert bar1.eps bar1.jpg
display bar1.jpg

演習 バックプロバゲーション法による学習結果を可視化してみよ。

演習 バックプロバゲーション法によるアルファ ベット26文字の認識実験を行え。データは訓練データ が alpha-upper26x1024.input であり,教師信号 は alpha-26.teach である。 結果からどのようなことが言えるか考えよ。

$ ./bp3 -input alpha-upper26x1024.input -teacher alpha-26.teach -hidden 80 -to 50000 > alpha-upper26.wgt 2>alpha-upper26.err

alpha-upper26x1024.input という入力データは,アルファベットの大文字 26 文字を 32 行 32 列にラスタライズしたデータを元にしている。 すなわち 26 行 1024 列の入力データである。その証拠に ./mattrim,./matresize と ./PSHinton とを使ってデータを可視化してみれば,

./mattrim 1 1 1 1024 alpha-upper26x1024.input | ./matresize 32 32 | ./PSHinton > A.ps
convert A.ps A.jpg
display A.jpg

というオペレーションにより,A.jpg というファイルができる。これは,alpha-upper26x1024.input というファイルから,1行1列目から1行1024列目を取り出し,それを32行32列の行列に変換し,PSHiton によってポストスクリプトファイルとして書き出しているからである。 このファイルを jpeg 形式に変換し表示しさせている。結果は例えば次のようになる。

A の文字

Exercise01 というディレクトリにはひらがな46文字を32行32列にラスタライズしたデータ aiueo32x32.data がある。これを ANNS 用の入力データに変換したものが aiueo46x1024.inputである。教師信号は aiueo46x1024.teach である。

同様に,学習漢字全1006文字をラスタライズしたデータはGakusyuKanji24x24.data である。 ANNS 用の入力データは GakusyuKnaji1006x576.input,教師信号データは GakusyuKnaji1006.teach である。

さらに,常用漢字1945文字をラスタライズしたデータ JyouyouKanji32x32.data もある。 ANNS 用の入力データは JyoukyouKanji1945x1024.input であり,教師信号データは JyouyouKanji1945.teacher である。

実習 入力データをaiueo46x1024.input 教師信号をaiueo46x1024.teach として ./bp3 に学習させてみよ。 中間層の数は幾つなら学習が成立するか。

./bp3 -input aiueo46x1024.input -teacher aiueo46x1024.teach -hidden 100 \
-to 100000 >aiueo46x1024-h100.wgt 2>aiueo46x1024-h100.err

なお,行末のバックスラッシュ(\)は,次の行に続くが書ききれないので折り返した ことを示している。実際に実行する際には,1行で実行する。

実習 学習漢字のデータを学習させてみよ。

./bp3 -input GakusyuKanji1006x576.input -teacher GakusyuKanji1006.teach \
-hidden 100 -to 100000 > GakusyuKanji1006x576-h100.wgt \
2>GakusyuKanji1006x576-h100.err

実習 常用漢字のデータは学習できるだろうか。

./bp3 -input JyouyouKanji1945x1024.input -teacher JyouyouKanji1945.teacher \
-hidden 200 -to 100000 >JyouyouKanji1945-h200.wgt 2>JyouyouKanji1945-h200.err