システム理論の続き - 生命モデルの限界と克服

[Cisco Advent Calendar 2018](https://qiita.com/advent-calendar/2018/cisco) 第15日目！

1. はじめに
2. 生命に学ぶシステム理論の特性 
 1. 抗エントロピー・頑健性
 2. 演繹的アルゴリズムの限界と克服
3. 考えられる問題点
 1. 直観の限界
 2. 本質はパラドックス（逆説）に宿る
4. まとめ

-----------------------------

## 1. はじめに

　2年目のAdvent Calendar! 今年は暖かくて年末の感じがあまりしませんが、Advent Calendarってやっぱりわくわくします。この機会に、昨年の続きのシステム理論について書きます。システム理論は、ネットワークも含むあらゆるシステム設計理念の基礎となる理論です。

　昨年は、ネットワークエンジニアリングを通じて学んだシステム設計のあり方について書きました（[昨年のエントリー](https://qiita.com/mkohno/items/0c02ef8f76415208bd4e)）。とてもさっくり要約すると、「ネットワークシステムは複雑適応系。複雑適応系のシステムの捉え方や方法論は様々なシステムに応用が効く。複雑適応系は生命のシステムモデルである。」

　生命に学ぶことによって、複雑で予測できない環境にも適応するシステムを設計することができます。しかしそれが万能か、というと、勿論万能ではありません。そこで今回は、生命に学ぶシステム理論の注意点について書きたいと思います。


## 2. 生命に学ぶシステム理論の特性

　まずは、生命に学ぶシステム理論の特性をまとめてみます。

### 2-1 抗エントロピー・頑健性

　「エントロピーは増大する」というのは熱力学第二法則ですが、これはあらゆるシステムに当てはまり、どのシステムも放って置くと、複雑性、無秩序性が増します。生命体もシステムですが、かなり長い期間生存し続けることができるのは、外界との相互作用や代謝などのメカニズムにより、増大するエントロピーを一方で縮減させることができているから、という説があります。量子物理学者のシュレーディンガーは「生命とは何か – 物理的にみた生細胞 [1]」で「生物体は「負エントロピー」を食べて生きている」と表現しています。

　また、生命システムは、様々な擾乱に対して機能を維持することができる「頑健性（ロバストネス）」を持ちます。想定外のことも起こり得る環境の変化に対して、ダメージや機能損失を最小限にとどめながら、生存継続することができます。どのようなメカニズムが頑健性に貢献しているのかを解明するのは非常に興味深いことです。「生物におけるロバストネス理論 [2]」によると、ロバストネスを達成するための機構として、(1) システム制御（フィードバックやフィードフォワード）、(2)冗長性、(3) モジュール構造、(4)構造的安定性、が挙げられていますが、これらはどれも我々のシステム設計指針として重要なものです。

　ネットワークシステム、分散システムは常に外界と接続し、入出力相互作用を繰り返しています。何が接続されるかわからない、何が入力されるかわからない、という不確実性を設計に織り込み、部分が壊れれても全体への影響を最小限にする、という設計理念は、様々なシステムに応用可能です。

　本番環境で、意図的にランダムにインスタンスをダウンさせるChaos Engineering [3]の考え方は、生物のプログラム細胞死（アポトーシス）に似ています。
　

### 2-2 演繹的アルゴリズムの限界と克服

　アルゴリズムとは、問題を解決するための手法であり、コンピュータプログラムはアルゴリズムで成り立っています。アルゴリズムの定義とは、「「計算可能なもの」を計算する手続き」であり、論理学者のRobert KowalskiがAlgorithm = Logic + Control [4] と述べたように、狭義のアルゴリズムとは論理により演繹を行うものです。

　しかし、生物が問題解決する場合に、アルゴリズムを使っているでしょうか。例えば、朝出勤するときのことを考えてみましょう。ぬかるみや段差を避けて歩きやすい道を選びながら車にぶつからないように注意したり、沈丁花の花の香りに季節を感じたり、今日は金曜日だ、と思わず鼻歌を歌ったり、とてつもなく多くの処理をこなしていますが、私達はこれらの処理を、あまり論理に基づかず、直観とか無意識により行っています。逆にこれをプログラムしようとするのは大変困難です。

　現在のAIのブレークスルーは、演繹的アルゴリズムから脱却したことにより起こった、ということは昨年も書きました。（一番大きなブレークスルーは、システムの捉え方として、「規則性を与える」から「規則性を見出す」というものにシフトしたことではないかと考えます。）アルゴリズムではなかなか改良できなかった翻訳プログラムが、夥しい量のデータと機械学習の利用により飛躍的に向上したのは良い例です。

　そして、昨年 Ciscoが全面的に打ち出したブランドスローガンが「Network. Intuitive.(ネットワーク。直観的な。)」というものです。これは、コンテクスト情報を活用し、「直観的」に「Intent Based（意図に基づいて）」ネットワークシステム制御を行おう、というものです。アルゴリズム（を定式化したプログラム）による制御が齎し得る、複雑性や非柔軟性、持続困難性に対しての、大いなる問題提起であります。


## 3. 考えられる問題点

　このように、生命に学ぶシステムモデルをシステム設計に応用することは有用です。しかも、生命のメカニズムはまだ解明されていないことも多く、今後の新たな発見への期待もあります。一方で、万能なものは存在せず、過信は禁物です。そこでここでは、考えられる問題点、注意すべき点を書きます。

### 3-1 直観の限界

　直観は、刻々と変化すると状況の中、限られた情報により判断をするのに、すごい力を発揮します。論理的に考えていたら咄嗟の判断はできません。しかし、直観は間違いを犯します。

　生物は生存のために咄嗟の判断をしますが、それが正しいとは限らないのです。自己の都合の良いように、または手っ取り早く想起しやすい情報を使って判断してしまう。（カーネマンらはさまざまな認知バイアスが、この"availability heuristics"によって起こると指摘しています[5]」

　英語版Wikipediaではこの認知バイアスをリストして分類しています（”List of Cognitive Bias” [6]。日本語版Wikipediaにはこのリストがないので残念に思っていたら、日本語訳＋αしているサイトを見つけました！[7]）。我々人間の判断には、こんなにも多くのバイアスがかかっている！！、ということを自覚しなくてはなりません。

　生物は仕方ないとして、機械だったら客観的・論理的・公正なのではないか、と思うかもしれません。しかし前に述べたように、機械学習は、演繹的アルゴリズムではなく、膨大なデータと帰納的推論に依拠します。多くの人が「美しい」というものが「美しい」ということになり、バイアスが強化されてしまう可能性もある訳です。

　近年米国において、警官による黒人の射殺が取り沙汰されています。本当に黒人が射殺される確率が高いのか、ワシントン・ポスト紙が調査を行っています[8]。それによると2017年に起こった警察による射殺件数は987件、射殺された人の内訳は、白人が459人、有色人種528人、うち黒人223人となっています。黒人の米人口における割合が12.6%（2010年国勢調査による[9]）であることを考えると、確かに黒人が射殺される確率は多いと言えそうです。（しかし、そのサイトにある見解は若干ミスリーディングです。「Just under half of the victims were white, while 1 in 5 were black. - 黒人は5人に1人であるのに、射殺された白人は半数に満たない」）

　いずれにせよ、そもそも人種へのバイアスがかかっているのか、統計的に黒人の犯罪率が高いからそうなっているのかはわかりませんが、バイアスが強化されてしまうのはよくありません。仮に過去の統計がそうだったからといって、今目の前にいる人がそうだとは限らないのです。

　しかし頼もしいことに、それに対して逆張りするプロジェクトがあります [10]。「警察に銃殺された黒人」の過去数年のデータから殺されやすい人を学習判別し、条件にあった場合は銃の引き金を数秒止める、というものです。咄嗟の判断を数秒止めるのは少し本末転倒的なところもありますが、Bigdataによって「あなたの顔は犯罪者らしい」と判断されたら困りますので、バイアスの強化を防ぐことは大変重要です。 今後の動向に注目したいと思います。


### 3-2 本質はパラドックス（逆説）に宿る

　って、以前どこかで書いたなぁ、と思ったら [昔のBlog](https://gblogs.cisco.com/jp/2014/09/network-architecture-10-nfv-paradox/) に書いていました。

　パラドックスとは何か。「精選版 日本国語大辞典」は次のように解説しています。

> (1)	一見、不合理であったり矛盾したりしていながら、よく考えると一種の真理であるという事柄。また、それを言い表わしている表現法。逆説。
> (2)	論理学で、ある命題と、それの否定命題が共に成り立つと結論され、その推論の中に誤りがあることを明確に指摘できない二命題。逆説。
> (3)	常理に反する説で、その説に反する正当な論拠を見いだしがたいもの。逆説。

　論理を突き詰めて行くと、自己言及のパラドックスに遭遇して何もかもが無に帰すような感覚になることがあります。また、直観や、それまで当然と思っていた認識が裏切られることがあります。しかし、そういうときにこそ、本質に一歩近づくことができるのです。

　よくある直観の間違いは前節の認知バイアスによるものですが、人間の直観は、非線形なものには弱いですね。例えば時差計算。超簡単な算数なのに、なんでこんなに間違えるのかと情けなくなる程よく間違える。それから、確率・統計的なもの。95％の正しさである病気への罹患を検出できる検査に陽性と出たら、かなり心配になってしまいますよね。しかし実際、その病気に罹患している人が全体の5%だったとして、検査が無作為抽出で行われたとすると、この検査結果には全く意味がありません。 

| 内訳                |確率                  |   
|:--------------------|:--------------------|
| 罹患者 で 検査陽性    |　5/100 * 95/100     | 
| 非罹患者 で 検査陽性  |　95/100 * 5/100     | 
| 罹患者 で 検査陰性    |　5/100 * 5/100     | 
| 非罹患者 で 検査陰性  |　95/100 * 95/100     | 

　Spam Filter等でおなじみのベイズ定理ですが、分かっていても自分が陽性と診断されたら結構ビビります。

　このように確率・統計に関する数値について、直観的には見誤ることも多く、そのため、統計数値による印象操作は、意図的非意図的に関わらずとてもよく起こっています。言われたことを鵜呑みにしないのは勿論、自分の直観さえも疑う必要があります。

　ではどうしたら直観を質すことができるか。それは、やはり、論考を徹底するしかなさそうです。


## 4. まとめ

　生命に学ぶシステム理論は、複雑性への縮減、不確定性への対処、という点でとても強力です。しかし、やはりそれは万能ではなく、注意しなくてはいけないことも多いことがわかりました。

　演繹的アルゴリズムへの限界から、生命モデルへ、そして直観的システムデザインへ、と論を進めて来た訳ですが、結局はやはり論考、つまりアルゴリズムの重要性に帰着してしまいました。しかしこの反復は無駄ではなく、むしろこの反復こそに意味があるのかもしれません。

　直観を疑うことからより論考し、そして、その論考から直観がより研ぎ澄まされる。この繰り返しにより、深淵なる本質に近づいていけるのではないかと思います。より良いシステムデザインへの探求は続く。



#### Reference
[1] 「生命とは何か - 物理的に見た生細胞」シュレーディンガー著、岩波文庫(2008)
[2] https://www.jst.go.jp/erato/project/kks2_P/kks2_P/04.html
[3] "Algorithm = Logic + Control", Robert Kowalski, Communications of
the ACM, July 1979 Volume 22 Number 7
[4] Netflix Chaos Monkeyに代表される　http://principlesofchaos.org/
[5] 「心理と経済を語る」ダニエル・カーネマン著、楽工社(2011)
[6] https://en.wikipedia.org/wiki/List_of_cognitive_biases
[7] http://lelang.sites-hosting.com/naklang/method.html
[8] https://www.washingtonpost.com/graphics/national/police-shootings-2017/
[8] https://ja.wikipedia.org/wiki/アメリカ合衆国の人種構成と使用言語
[10] https://aihasegawa.info/alt-bias-gun