2022-04-24

"大渦巻への落下・灯台" Edgar Allan Poe 著

副題に、「SF & ファンタジー編」とある。
ポーといえば、ミステリーやゴシック小説といったイメージだが、ヴァレリーにも称賛された宇宙論「ユリイカ」の感動には代えがたい。
しかし、この短編集が、SF?ファンタジー?
幻想的で、超科学的で、超自然的といえばそうなのだが、ポーの場合、ジャンルの概念すら意味をなさないような...

尚、本書には、「大渦巻への落下」、「使い切った男」、「タール博士とフェザー教授の療」、「メルツェルのチェス・プレイヤー」、「メロンタ・タウタ」、「アルンハイムの地所」、そして未完成作品「灯台」の七編が収録され、巽孝之訳版(新潮文庫)を手に取る。

「天においても自然においても、神のふるまいは人間のおよぶところではない。神の壮大にして深遠、かつ理解不能な御業(みわざ)に見合う模型も、人間の手で制作できるものではない。というのも、神の御業はデモクリトスの井戸より深いのだから。」
... ジョゼフ・グランヴィル

地球空洞説を時代背景に、ダンテ風の地獄、煉獄、天国を同心円状に連らねた大渦巻の中に、読者を放り込むかと思えば、立派な体格を自慢しながらインディアン戦争でボロボロになり、黒人従者に、脚をもってきてくれ... 手を... 歯を... 眼を... と、パーツで組み立てられるサイボーグ野郎の愚痴を聞かされる。

「そう、名誉進級の准将ジョン・A・B・C・スミスとは、どんな人物かと言えば... 彼こそは使い切った男だったのだ。」

精神病院を患者たちに乗っ取られ、正常者たちの方がたっぷりとタールを塗られ、じっくりとフェザー(羽毛)をまぶされ、独房に閉じ込められるフーコーばりの狂気を物語れば、こいつはどっちの側のセリフやら...

「精神障害者の脆弱な理性を背理法と見る議論は存在しません。たとえばここには、自分をニワトリだという妄想に駆られている男たちがいます。それを治療するには、まさにそれが妄想ではなく事実なのだと強調すること。むしろそれが事実なのをじゅうぶんに認識していないのがいかに愚かなことかと患者を非難すること。そして一週間のあいだ、ニワトリにふさわしい食事以外はいっさい与えないこと、精神障害なる用語は使わないこと。肝心なのは、すべての精神障害者に他人の行動を監視するよう仕向けること。精神障害者の悟性や分別を信用してやることは、患者に肉体と精神を与えることにつながります。このようにして、当院では精神障害者の付添人たちを雇う経費を浮かせているのです。」

AI 顔負けの自動人形の正体を見事に証明して魅せれば、興行主の思惑に見事にしてやられ、千年後の未来を夢見ては、大空をゆったりと飛行する大気球から人間社会を見くだす。
「貴兄はごぞんじかね、形而上学者たちが、真理へ到達する道はふたつしかありえないという奇妙な幻想から大衆を解放してから、まだ一千年しか経っていないことを...」
二つの道とは、演繹法と帰納法、あるいは、先験的方法と後天的方法のことらしい。

造園家の偉大な芸術精神を持ち上げてシャングリ・ラ並みの理想郷を造らせれば、幸福の正体である盲目の原理を暴かずにはいられない。
「人間の本性には何らかの隠れた原理が、すなわち至福の対極が潜んでいるという前提をことごとく覆していくのを見てしまった気がする。」

終いには、たった四ページの未完成作品で、灯台守の孤独感に未完成な思わせぶりで余韻に浸らせようとは...

時間は、善意にも、悪意にもなる。たった一分でも地獄のように長く感じるかと思えば、一年を与えられても天にも昇る気分のうちに一瞬で過ぎ去る。昨日はもう来ない。明日は来るかも分からない。現在に絶望すれば、未来に根拠のない希望を抱く。一方で、過去は片時も休まず未来を抹殺し続け、希望はすぐさま絶望で上書きされる。すべては幻想か。すべては意識の産物か。理想郷を夢見ようが、暗黒世界に身を委ねようが、結局は同じことかもしれん。まさに人生、未完なり...

2022-04-17

"ゼロから作る Deep Learning 2 - 自然言語処理編" 斎藤康毅 著

「ゼロから作る Deep Learning」第二弾...
ここでは、自然言語や時系列データに焦点を当てる。人間の行為をコンピュータに肩代わりさせるなら、まず人間とやらを知ること。そのアプローチの一つに、人間の表現力、すなわち、人間が操る言語に着目してみるのも悪くない。
しかしながら、人の話す言葉をコンピュータに理解させるには、一筋縄ではいかない。ウェブ検索、音声認識、機械翻訳など自然言語にまつわる技術には、その裏でディープラーニングとやらが暗躍し、何かを推論し、何かを学習してやがる。それは、自発的なものなのか...

ディープラーニングとは、層を深くしたディープなニューラルネットワークを言うらしい。それは、単純な伝達関数を複雑に結合した数理モデルで、その特徴はデータから学習するところにある。この分野は加速度的に進化しているだけに、慌ててライブラリやフレームワークに飛びつこうとする。ネアンデルタール人は、理解できていないものを、ただ使い方を学んで利用するのでは自分の意志で生きている気がしない。のんびりと精一杯やるさ...

「作れないものは、理解できない。」... リチャード・ファインマン

第一弾では特に、損失関数に数値微分を与える視点から、誤差逆伝播法という考え方に注目した。結果に評価を与え、それを後方に伝播させながらデータの重みを調整するというやり方は、まさに人間がやっている学習法だ。成功より失敗から多くを学ぶのは、コンピュータとて同じと見える。
では、自然言語を合理的に理解するには、どうすればいいだろう。まず、単語レベルで意味を理解するということがある。辞書や類義語などを集めたシソーラス、あるいは、Wikipedia のような大量のテキストをデータベース化するといったことも考えられる。
しかし、人工知能的なやり方といえば、やはり推論であろう。人間には、知らない単語でも、文脈からなんとなく汲み取れる感覚がある。文法に則って言葉を羅列するのではなく、どんなふうに言うか、その言い方や言い回しを経験の中から探りながら喋っている。口癖ってやつは試行錯誤のうちに身につき、無意識に発声することもしばしば。無意識な領域までコンピュータに任せるとなれば、そりゃ手ごわい!分からんことは、ワトソン君にでも聞くさ...

本書は、推論ベースの方法を話題の中心に据え、Python で記述して実装イメージを与えてくれる。推論というからには、使用頻度や確率分布といった統計学的なサンプリング手法を用いる。

まず、単語を数学的にマッピングする word2vec が紹介される。名前からして、単語をベクトル空間にマッピングするイメージがわき、行列式との相性を予感させる。
ここで使われる「分布仮説」という概念は興味深い。単語の意味は、単語そのものより周囲の言葉との連結によって解釈しているところがある。
実装では、コンテキストから単語の出現を推測する CBOW(continuous bag-of-words)と、逆に単語からコンテキストを推測する skip-gram の二つのモデルが紹介される。人間の会話では、出現した単語から相手が何を言いたいかを予測しながら聞いているところがあるので、人間感覚には後者の方が近そうか...
また、word2vec の高速化手法として、Negative Sampling というものが紹介され、確率分布の各要素に 0.75 を累乗するという考え方は興味深い。つまり、確率の低い単語に少しばかり重みをつけるという考え方である。相対的にバイアスをかければ、人間主観より語彙が広がりそうか...

次に、フィードバック経路を持つ RNN(Recurrent neural network) が紹介される。線形性を保った物理現象は、時系列的に予測可能である。あまり遠くの時間でなければ。フィードバックとは、過去の状態を参照することであり、いわば経験値である。言葉の精度には、やはり経験がモノを言いそうである。
実装では、時系列データを扱うために改良された二つのゲート付き RNN が紹介される。LSTM(Long Short Term Memory)をメインで解説し、GRU((Gated Recurrent Unit)を付録に。
LSTM は、その名の通り、長期と短期の記憶を元にデザインされた仕掛け。注目したいのは、forget ゲートを配置するところである。忘却によって合理性を保つのは、精神を患う人間だけではなさそうだ。人間だったら、苦労して獲得した知識ほど重宝しがち。見返りの原理ってやつだ。実は、記憶ってやつは、忘却することの方が難しいのかもしれん。しかも、合理的に...

さらに、機械翻訳をそのままイメージできる seq2seq が紹介される。RNN を連結して、ある時系列データを別の時系列データに変換するイメージで、Encode-Decode モデルとも呼ばれるらしい。
そして、Attention という技術で締めくくられる。それは、人間と同じように、ある情報に注意を向けさせる仕掛けで、必要な情報を抽出して、seq2seq にかけるイメージだが、結局、情報の重みの評価に引き戻された感がある。
人間の認識能力なんてものは、たいてい注意で説明がつくってか。人生は短い。注意すべきこと以外のことに関わっている暇はない。これが合理的に生きるということであろうか。
しかしながら、人間ってやつは、注意すべきことより、どうでもいいことに注意を払う傾向がある。例えば、機内で発せられる台詞にゾクゾクしたり... Attention Please!

2022-04-10

"ゼロから作る Deep Learning - Python で学ぶディープラーニングの理論と実装" 斎藤康毅 著

近年、ディープラーニングに関するライブラリやフレームワークに、よく出くわす。今更、ゼロからやらんでも。いや、ディープに知りたければそれも悪くない。
ライブラリやフレームワークは、あくまでも道具。道具ってやつは、どうなに便利なヤツでも、仕組みや背景を理解した上で使わなければ振り回されるのがオチ。自分が作っているという意識は薄れ、誰かに作らされているという意識が膨れ上がる。自由意志の獲得に平坦な道のりはない。でも、その試行錯誤のプロセスは楽しい...

人工知能ってヤツは、人間の行為を卒なくやってのけるだけでなく、人間までも凌駕しようとする。人間社会を機能させるのに、なにも人間自身が主役である必要はない。皆が皆、機械の奴隷と化せば、夢にまで見た真の平等社会が実現されるではないか。人間が合理的に生きるなんて、らしくない。実に、らしくない。滑稽に生きるからこそ人間味あふれる。それを、人工知能が教えてくれる...

さて、本書は、データサイエンスの分野で幅広く用いられる Python を題材に、実装の観点からディープラーニングを紹介してくれる。数値演算ライブラリ NumPy や SciPy、あるいは、描画ライブラリ Matplotlib の導入など Python 入門に始まるが、そこまでやらんでも。なるほど、ゼロから...
逆に、Caffe,TensorFlow, Chainer,Theano といったフレームワークは意図的に避けている。なるほど、ゼロから...

ここでは、パーセプトロンという根源的なアルゴリズムや、ノードに用いられる単純な活性化関数などの紹介に始まり、これらの要素が層を深めながら学習モデルを構築していく様子を物語ってくれる。
ちなみに、活性化関数は、個人的には伝達関数と呼ぶ方がしっくりくる。シナプスがイメージできるから...
活性化関数では、ステップ関数、シグモイド関数、ReLU 関数、ソフトマックス関数といったものが紹介され、いずれも、ある閾値で状態が変化するような非線形関数を基本としている。非線形というからにはデジタル的であり、シャノンが提示した情報理論にも通ずるものがある。それは、2 を底とする対数に看取られた世界... 2 の冪乗に看取られた世界...
そして、これら単純な要素が複雑に関係を持ちながらネットワークを形成していくわけだが、局所的には非線形でも、層を深くして各々が関係を持ち始めると、全体としては線形的な振る舞いを始める。偏微分方程式の振る舞いを繋ぎ合わせてモデリングするようなイメージとでも言おうか。線形的な振る舞いとは、意志のようなものであろうか...

「パーセプトロンは、線形分離可能な問題であれば、データから自動で学習することは可能です。有限回の学習によって、線形分離可能な問題が解けることは『パーセプトロンの収束定理』として知られています。しかし、非線形分離問題は自動で学習することができません。」

そもそも、ディープラーニングとは何であろう。それは、層を深くしたディープなニューラルネットワークを言うらしい。
では、ニューラルネットワークとは何であろう。脳内で神経系を形成するニューロンと対比して論じられるのをよく見かけるが、その特徴はデータから学習するところにある。データから学習するとは、パラメータの重みをデータから自動で決定できるということ。
では、学習とは何であろう。それは、獲得した知識をフィードバックして次の行動に活かすこと、とでもしておこうか。
そこで、合理性の観点から重要となるのが、知識に対する重みの付け方と初期値の与え方である。まず、すべての知識を同列に扱うわけにはいかない。場面によっては意味をなさない知識もあれば、却って邪魔をする知識もある。ましてや、情報の溢れる現代社会では。
したがって、数多くの入力データに重みをつけながら、不要なものはあっさりと排除していく。そうでなければ、合理的にインテリジェンスな出力を得ることはできまい。
しかしながら、人間ってやつは苦労して獲得した知識ほど重宝しがち。見返りを求めてやまない性癖は、なかなか手ごわい。
また、初めて何かを学ぼうとする時、最初に出会う手本となるものが、後の学び方に大きな影響を与える。例えば、入門書や教師と崇める人物の影響力は絶大だ。
人間の場合、運にも恵まれなければならないが、ニューラルネットワークの場合、初期値を数学的に与えることができる。統計学的な標準偏差を与えたり、ガウス分布で初期化したり... と。
初期値は、なにも個人の経験から与えられるだけではない。あらゆる方面から蓄積されたデータが活用できる。記憶とは恐ろしいものだ。記憶領域に知識を大量にダウンロードするだけで賢くなれる。人格を変えることも。処理能力さえ付いていければ、だけど...

機械学習の主役は、やはりデータか!
こいつをいかに合理的に扱うか。シンプルな最適化をディープにやってのける戦略がいる。
注目したいのは、「損失関数」という考え方である。ニューラルネットワークでは、重要度よりも損失の方を注視するという。それは、自己主張を強める人間の思考とは真逆の視点である。重さを評価するのも、軽さを評価するのも、相対的には同じはず。
しかし、人間ってヤツには、重要な情報、少なくともそう思った情報に飛びつく性癖がある。昆虫の光に集まる習性のように。
実は、物事の重要度を評価することは意外と難しい。重要なのは分かるんだけど、どれほど重要なのかとなると、なかなか手ごわい。重要な要素間で優先順位をつけることも。初期値を人間が与えることで弊害になることもある。想定外の結果が得られる場合は、ランダム値を与えた方がずっと合理的なことも多い。
そして、エラーの方を活用する方が合理的という考え方も浮かんでこよう...

本書は、損失関数の勾配を与える数値微分を効率的に計算する「誤差逆伝播法」を紹介してくれる。結果に評価を与えて、それを後方に伝播しながら各部の重みを調整するという考え方は、まさに人間がやっている学習法だ。
また、機械学習でよく問題となる「過学習」にも触れ、これを抑制するために、損失関数の重みとして L2 ノルムを加算する "Weight decay" という方法や、ノードをランダムに消去しながら学習する "Dropout" という方法を紹介してくれる。
さらに、初期値にあまり依存せず、過学習の抑制もあまり必要としない "Batch Normalization" という方法も...
うん~... 関数の損失勾配を人間の行為として眺めると、失敗の度合いと解釈できそうな気がしてくる。なるほど、失敗から学ぶ戦略かぁ。
人間どもには、成功事例から学ぼうとハウツー本に群がる習性があるが、失敗事例から学ぶ方がよほど合理的に映る、今日このごろであった...

2022-04-01

心を握ります!気色わるぅ~

心を握ります!... 行付けの寿司屋の大将の台詞である。おぇっ...

そもそも、心ってなんだぁ???その実体はどこに??
物理的には、脳の中に位置づけられると思われる。おそらくそうだろう。そうに違いない。
しかし、人が「心」と言うと、胸を押さえる。つまりは、ハートを。つまりは、心臓を...
心のサイズは分からなくても、心臓のサイズなら分かる。重さも分かる。画像診断もできる。なによりも鼓動が、その存在を実感させる。これを握ります!ってか。気色わるぅ~
そして、トロを握られ、鯛を握られ、穴子を握られ... これが、あなたの心です!なんて、えげつなく言われた日にゃ、かっぱ巻きにしてよ...

さて、今日は四月一日。陽気な春風に誘われて、心の存在証明でもやってみるかぁ...
そもそも、そんな証明は可能であろうか。人間ってやつは、心の正体を知らなくても、それがあるかのように振る舞うことができる。考えてみれば、凄い芸当だ!
それは、心というものを、おぼろげにでも定義できるからである。ならば、定義できるものすべてが存在するってことか。ユニコーンは定義できる。ゴジラも定義できる。そんなものが本当に存在するというのか?いや、存在する。少なくとも、ぬいぐるみもどきが。心なんてものは、ぬいぐるみのようなものであろうか...

人間ってやつは不思議なことに、人間と同じように振る舞う物体を見れば、そいつに親しみを感じ、仲間意識を持つことができる。考えてみれば、凄い芸当だ!
オートマタにも、ホムンクルスにも、向こうがどう思っていようが...
犬型ロボット AIBO は子供たちの人気者。ちょいと故障して足を付け替えようものなら、子供は虐待しているかと思い、大人を白い眼で睨みつける。だが、こいつはロボットだ。
映画「ターミネーター」では、シュワルツェネッガーの腕を切るシーンに目を覆う。だが、こいつもロボットだ。いや!シュワちゃんの腕だから気色わるぅ~

では逆に、人間であれば、心を持っていると断言できるだろうか。世間には、心無い人間がわんさといる。自分自身に、お前は心を持っているのか?なんて問い詰めたところで、確証が持てない。結局は、人間らしく振る舞っているだけのことか。これを、本当に「人間」と言えるのだろうか...

その帰結は...
心の存在証明とは、心を定義すること。心を定義するということは、人間を定義すること。そして、定義した通りに振る舞えば、そこに存在することにできる。考えてみれば、凄い芸当だ!
... Q.E.D.