LWのサイゼリヤ

ミラノ風ドリア300円

2020/11/3 第八回サイゼミ ゼロから始めるニューラルネット

第八回サイゼミ

2020年10月31日に八丁堀で第八回サイゼミを催した(過去のサイゼミは「カテゴリ:サイゼミ」を参照→)。
今回のテーマは機械学習、特に今最も熱いニューラルネットについて。

f:id:saize_lw:20201103120212j:plain

いつものサイゼミは座談会形式だが、今回は久しぶりに俺が前に立って5時間くらい板書して話し続けるガチ講義回になった。今回のサイゼミは俺と俺以外で目的が分かれており、他の参加者はニューラルネットを理解すること、俺は線形回帰も知らない人々にニューラルネットをわからせること。
もともと業務とか研究とかでニューラルネットを触ったことがあるのが俺ともっちーさんくらいで、入門書を何冊か読んできた人も少なくないが、全体的な参加者のレベル感は基本的には高校数学がギリギリわからないくらいの感じだった(完全無勉勢もいた)。

俺は大学で研究していた頃からニューラルネットの原理くらいは中学数学レベルで完全に理解できると思っていたので、今回はその実験として講義を試みた。
もちろん中学数学では偏微分や連鎖律は扱えないので最急降下法誤差逆伝播法の数学的な表現は捨象することになるわけだが、俺はパラメタ決定に伴う計算技法は別にニューラルネットの本質ではないと思っている。初学者がまず抑えるべきなのはむしろニューラルネット以外の機械学習にも通底するアイデアであって、その上でニューラルネットについては独特のモデル表現を掴めば十分だろう。そしてそれらは幸いにも加減乗除だけで理解できる程度のものでしかない。
そんな感じで、この記事には主に俺が初学者に機械学習を説明するにあたって取った戦略などについて書き残しておく。別に機械学習そのものを説明する記事ではないので、勉強したい人は以下のブックレビューでも参照して各自で勉強してほしい。

saize-lw.hatenablog.com

人工知能パラダイムシフト

具体的なモデル作成に入る前に、ひとまず抑えておくべきなのは人工知能における大雑把なパラダイムシフトだ。とかく素人が勘違いしがちな以下の2点については強調してもしすぎることはない。

①今の機械学習の隆盛は、論理・知識ベースから統計ベースへという思想の転換によってもたらされている。
演算の高速化やメモリの大容量化といった計算機の連続的な性能向上によって人工知能も連続的に性能が上がっているというわけでは決してなく、根本にあるアイデアが非連続的に変化している。

②今の機械学習では、基本的に経験知を備えた職人は不要である。
今メジャーな統計ベースの機械学習は、(人間が論理や知識を与えるのではなく)膨大なデータを機械が自動的に処理して論理や知識に相当するものを発見するという手続きで進行する。よって「結局人間が機械を作っているので機械は専門家より賢くならない」という言説は程度問題ですらなく完全な誤りだ。

アリストテレスが『オルガノン』において定式化した三段論法の枠組みで言うならば、大前提を保持するAIが第一世代の論理ベースAI、小前提の集合を保持するAIが第二世代の知識ベースAIと言えようか。第三世代の統計ベースAIは小前提の集合を与えることによって帰納的に大前提に辿り着き(学習)、それを用いて演繹的に結論を得る(推論)。三段論法の運用として見れば、人間の振る舞いが統計ベースAIに準じていることは言うまでもない。

機械学習の3ステップとモデルのバリエーション

以上のような前提の下、では実際に統計ベースの処理とはどういうものなのかという文脈で機械学習の説明に入ることになる。統計ベースの発想を大雑把に「集めたデータから傾向を掴むもの」だとすれば、概ね以下の3ステップで捉えられる。

①パラメタ\thetaを含むモデルf_\thetaを作成
②データセットを用いて誤差関数E(\theta)を導出
③誤差関数を最小化するパラメタ\thetaを決定

機械学習の全てがこの流れというわけでは決してないが、少なくともニューラルネットはこの流れで最後まで戦える。

サイゼミでは「①モデルf_\thetaの作成」についてかなり力を入れて話した。
新しい発想をドライブしているのはまず何よりもモデルであり、誤差関数の扱いはそれを可能にするための補助輪に過ぎないと考えるからだ。また、幸いにもモデルの説明は比較的難易度が低い。冒頭の写真ではロジスティック回帰を行う人工ニューロンモデルについて説明しているが、加減乗除シグモイド関数くらいで済むので別に難しくない。

その一方、「②誤差関数E(\theta)導出」「③パラメタ\theta決定」についてはあまり掘り下げなかった。
具体的には、「②誤差関数E(\theta)導出」については分類タスクにおいては尤度関数というものを使う方が一般的であることに言及したくらいで、説明に用いる誤差関数は最初から最後まで最小二乗法で通した。また、「③パラメタ\theta決定」についても一般的な計算上の工夫はアイデアだけ説明するに留めた。例えば、パラメタは大域最適解が求まれば理想だが現実的には全範囲を無限の解像度で探索するのは不可能なので最急降下法で近傍を探索することや、複雑に絡まった無数のパラメタを処理する際にはパラメタの決定順序と手順を定めるアルゴリズムである誤差逆伝播法を用いることにだけ触れた。

特に「③パラメタ\theta決定」をこの解像度で済ませたことにより、微分は一度も使わずに済んだ(\frac{dy}{dx}の類は一度も板書していない)。
「数式は使わない」というよくあるフワフワ機械学習セミナーはやりたくないのだが(実際、数式自体は冒頭の板書でもバリバリに使っている)、単に微分計算はニューラルネットの原理を理解するのに必須ではないと判断しただけのことだ。すなわち「解析的な大域最適解はわからないので微分を用いた複雑なアルゴリズムを使って近似解を求める」という手続きは実装上の問題であり、原理上の問題ではないと判断した。
この判断については諸説あるだろうが、ニューラルネットの動作原理に関する本質は「誤差関数E(\theta)を最小化するパラメタ\thetaを見つける」という合目的的な意識である。それを具体的にどう実行するかは比較的些末な問題に過ぎない。技術者にはブッ飛ばされそうだが、ラマヌジャンみたいな神託者がいきなり大域最適解を出してくれることにしていい。 紙の上から出ないなら!

というわけで、サイゼミではモデルに注目してニューラルネットに関連する以下の7つのバリエーションを扱った。どれもモデル内容が少し変わっただけのマイナーチェンジだ。誤差関数の導出とパラメタの決定は全く同じなので改めて説明し直す必要もない。

A.ニューラルネットの基礎
A-①:線形回帰
A-②:ロジスティック回帰(人工ニューロン
A-③:ニューラルネット

B.ニューラルネットの応用
B-①:CNN(画像認識)
B-②:オートエンコーダ(次元削減、異常検出、原始的な生成)
B-③:GAN(生成)
B-④:DQN強化学習

別に機械学習そのものを解説する記事ではないというのは最初に書いた通りなので、各モデルの詳細は省略する。

当日の手ごたえ

こうして見るとかなり詰め込んでいるが、当日は全て問題なく理解された。それは俺が勝手に自己満足して思っているわけではなく、その証拠として適切な理解をしていなければ不可能な質問が複数の参加者から飛んできた。
というか、参加者の質が良すぎた感じはある。数学の水準としては平方完成すらよくわかっていないのに、俺が一言も説明していないニューラルネットの重要な振る舞いやチューニングについて勝手に発見して質問してくるのでめちゃめちゃ楽だった。講義中に出た質問は例えば以下の通り。

Q1:「分類タスクで誤差関数に尤度を用いる場合と最小二乗を用いる場合では最終的に求まるモデルのパラメタそのものが変わるのか、それとも最終的には同一の結果を得るために異なる表現と手続きを与えているのか?」
A1:「前者が正しい。尤度と最小二乗では求まる結果自体が変わってくるし尤度関数を使う方が一般的だが、ニューラルネットで最終的に大事なのは精度なので、そこで満足いく精度が出るなら特に決まりはない」

Q2:「各ユニットに特徴量が格納されるとか言いながらわかりやすく特徴の例を挙げて説明してるけど、それってたまたま事後的に解釈が成功した場合の話であって、一般的には機械が勝手に見つけるわけだからそういうわかりやすい説明が出来るとは限らないよね?」
A2:「完全に正しい。むしろ一般的にはユニットの特徴量を解釈できないことの方が多いし人間が勝手に解釈すると機械に任せた意味が無くなる危険もあるのだが、口頭で説明するときは自然言語で特徴量の例を喋らないとそもそも特徴量が格納されるイメージをわかってもらえないという説明上のジレンマがある」

Q3:「だいたいの重みがゼロで余ってそうなユニットあったらもう計算時間無駄っぽいしネットワークから外しちゃってよくない?」
A3:「完全に正しい。いわゆる枝刈りと呼ばれるテクニックそのもの」

Q4:「CNNの畳み込み層でフィルターを適用するやつって拡大と縮小に対応できなくない? あるサイズの猫の特徴量に対して完璧なフィルターがあったとして、全く同じ猫が大きく写ったら終わりでは?」
A4:「その懸念は正しい。逆転の発想で、学習させる画像のデータセットの方を引き延ばしたり回転させたりしてバリエーションを水増しする前処理をして対応する」

Q5:「オートエンコーダにおける隠れ層のユニット数って入力の複雑さによって変える感じ?」
A5:「概ね正しい。ニューラルネットにどの程度の表現力が必要かは入力次元ではなくデータセットの多様性に依存するので、極端に言えば入力画像が1億次元でも非常に単純なパターンしかなければ隠れ層は1層3ユニットとかで済みうる」

Q6:「GANでgeneratorが生成した偽データってあくまでも中間産出物で誤差関数に入るものじゃないから評価の指標が怪しくない?」
A6:「概ね正しい。一応discriminatorの正答率が0.5になる時点で収束したと考えることはできるが、分類タスクにおいて正答率に完全な信頼がおけるのとは異なり、偽データそのものを評価する方法は最終的には人間の感性に依存してくる」

Q7:「DQNって枠組みとしてはQ-learningに便乗しただけでGANみたいに学習というアイデアが本質的に寄与しているわけではないよね?」
A7:「かなり正しい。DQNに対するDNNの寄与は相対的に小さいが、特にゲーム画面のような未知の状態が多いタスクに対応しやすくなったことが大きい」

実は質問そのものは割とどうでもよく、たった5時間でこういう質問を繰り出せる水準まで参加者が育ったのがかなり感動的だった(人間学習!)。俺的には「高校数学すら怪しい連中にニューラルネットをわからせる」という目的が十全に果たされた証左でもあり、こういう質問を繰り出せる人々が「ニューラルネットを雰囲気だけで理解している」などと謗られることはまず有り得ないだろう。

結局、ニューラルネットには何ができて何ができないのか

結局のところニューラルネットとは値と値の関係を自動で扱う技術であり、値しか扱えない代わりに値にさえできれば大抵のものは扱える汎用性を持つ。
特に2014年のGAN発明は非常に画期的で、それまでの「答えがはっきりわかっているタスクにしか取り組めない」という認識を覆した。僅か3年でGANがちょっとした白黒画像から写真と見分けが付かないレベルにまで発展したことはニューラルネットが日進月歩で発展していることを象徴するエピソードだが、最近は機械が自動生成した動画や画像がTwitterによく流通しているので、(機械学習パラダイムが知識ベースから統計ベースに移行したことなどに比べれば)人工知能が生成タスクを非常にうまくこなせるようになっていることは既に周知の事実かもしれない。

と、ニューラルネットの原理をざっくり理解するところまでが前置きで、それをどう捉えるかが本題だ。別に我々はニューラルネットを実装する技術屋の集団ではなく、どちらかというと人文的な懸念について正確な知識で議論する方が目的に近い。
個人的なことを言えば情報処理能力としてのAIの知性はもう普通に人間を超えていると思うが、その上で一般的に人工知能の限界と言われていることについて、実装上の限界を二つ、哲学的な限界を二つ取り上げた(ここで哲学的な限界というのは哲学のボキャブラリーで記述するのが一番やりやすい話くらいの意味)。

実装上の限界①:フレーム問題

実装上の限界の一つ目として、いわゆるフレーム問題が挙げられる。
フレーム問題とは概ね「有限の情報処理能力しか持たないロボットが現実に起こり得る問題全てに対処できない」というような問題のことだ。例えば、ロボットが街中を目的地まで移動するだけでも天気を調べて混雑度合いを見てルートを考える必要があるが、突然の道路崩落や民衆の暴徒化までは想定しなくていい。こうした考慮すべきこととすべきでないことの区別を明示的に与えることは困難で、汎用性を追求しようとすると融通の利かないロボットは膨大な情報量の前に立ち尽くしてしまう。
……と昔はよく言われていたが、これは基本的に時代遅れの懸念というのが俺の認識だ。確かに原因・環境・論理ベースで対応しているとハマるが、結果・反射・統計ベースで対応してればかなり耐えられる。つまり、周囲の環境を見て「IF 電信柱が倒れてくる THEN 避ける」とか「IF 前を歩いている人が襲ってくる THEN 避ける」というように原因を逐一論理的に想定しているとキリがないが、観測範囲を周囲5メートル程度に局所化し、「とりあえずそこそこの大きさのものが高速で近付いてきたらヤバいので避ける」くらいの認識で反射的に対応していれば当面の危険は避けられる。また、その手のアバウトな傾向を掴むのは統計ベースAIの得意技でもある。
そもそも俺が気に入らないのは、「有限の情報処理能力しかないロボットは~」とか言うものの、人間も別に無限の処理能力は持ってないし対処できない問題も普通によくあるということだ。人間だって手を繋いで歩いている親密な恋人がいきなり刺してきたら回避できる人の方が少ないわけで、ことフレーム問題に限って「人間がどのように無限に近い情報を処理しているのかは未だ謎が多い」などと言って悦に浸るのはそろそろやめてほしい。

実装上の限界②:創造の新規性

実装上の限界の二つ目として、創造の新規性がある。
確かにGANの研究が進んだことで生成タスクは高度化し、人間が作ったとしても遜色ない絵や曲くらいなら簡単に作れるようにはなった。しかし、それらは原理上「既存のデータを見て傾向を掴み、傾向に沿ってはいるがまだ存在しないものを作り出す」という振る舞いしかできない。ここに「流れに沿ったバリエーションを作ることは出来ても根本的な新規性を提出することは出来ないのではないか」という懸念があり、更に言えばそれは「流れに沿わない完全なる新規性」なるものが果たして存在するのかという問題にも接続する。

補足348:ディヴィッド・ルイスが主著『世界の複数性について』で可能世界の構成要素を論じる際、基本的には全要素の順列組み合わせに過ぎないとしながらも、そうした枠に当てはまらないものを「エイリアン」というタームで指示していたことを思い出す。

実際、これが定量的な問題に過ぎないか本質的なボトルネックかはよくわからない。
ただ確実に言えることは、この問題は形式的な問題と内容的な問題の二重構造になっているということだ。形式的な問題とは、そもそも「学術的な新理論」とやらを値で表現できるかどうかである。ニューラルネットは値しか扱えない以上、理論のような高度な概念を扱いたければそれを過不足なく値に落とし込む表現が必要になる。もう一つの内容的な問題とは、仮に理論を過不足なく値で表現できたところで、それを例えばGANにかけたときに果たして解釈可能な新しいものが生まれるかどうかということだ。

「そもそもGANのような発想の生成タスクにおいて、もし完全に新しいものが生まれたところで我々はそれを認識できるのか」という疑問も哲学畑のA級から提出された。
理系の人間としては「理論を作成するGANが投げてきた新理論っぽいものを精査して1000本に1本でもvalidなものがあれば当たり」という運用でも万々歳であるのだが、それは理論の有効性を検証できる実証主義の学問におけるチェックに過ぎない。必ずしも実証できるわけではない広義の政治的な理論に対しては、理論が新しいのかどうかを人間がフィルタリングする段階で古いドクサによるフィルタがかかるという問題がある。
つまるところ、実証不可能な理論に対しては「理解できなければ生成の成否を判定できないが、理解できてしまえば新しくない」というアポリアがあるのだ。これは質問Q6で上がっていた、GANの生成に対する判定の問題でもある。

哲学的な限界①:クオリア的内面の不在

ペッパーくんのような人工知能に対して昔からよく言われることとして、「彼らは本当に意味を理解しているわけではない」というものがある。ニューラルネットの学習がモデル内のパラメタ調整に帰着されるのを見れば明らかなように、機械学習とは結局のところ統計処理であって人間が言うような意味理解はしていない(サールが提起した「中国語の部屋」問題がまさにそうで、ここで改めて付け加えることも無いのでwikipediaでも読んでほしい→)。

ただ、俺はこの問題は良くて問題設定を誤っているか、悪ければ論じるに値しないものだと思っている。機械に対する人間の優位性を確保したい一心で恣意的に設定された難癖ですらある。俺に言わせれば、「機械は意味を理解できるのか」という疑問が既に誤っており、正しくは「俺以外は意味を理解できるのか」だ。だから「人間と機械」という区分ではなく「俺とそれ以外」で問いを立てるのが正しい。他の人間が哲学的ゾンビであることを否定する証拠は特に何もない以上、機械を他者よりも優位に置く理由は無い。
また、「人間だって別に言葉の意味なんてわかってない」ということは分析哲学者がよく指摘している。ウィトゲンシュタイン言語ゲーム」、グッドマン「グルーのパラドックス」、クリプキクワス算」など、意味というタームの寄る辺なさを指摘する議論は枚挙に暇がない。ついでに言えば、冒頭で紹介したAIのパラダイムシフトはウィトゲンシュタインの前期から後期への移行に対応している。

補足349:ただ、俺自身はこの手の分析哲学者の言説にはそれほど同意するわけではない。白状すると実は俺がきちんと読んだのはクリプキウィトゲンシュタイン論くらいなのだが、少なくともそれを読む限り、言葉の寄る辺なさから意味理解の寄る辺なさを帰結する議論には「私がいる指標の特別性」という独我論的な視点が欠落しているように思われてならなかった。例えば、クリプキは仮に過去において私が「緑」という言葉を理解していなかったならば今においても理解していないというように、時間的なスライドを行うことに躊躇いがない。俺の考えでは、「スライドしてはいけない」とは言わないまでも、少なくとも「スライドしてもよい」という判断は著しく直観に反している。今という指標における俺の俺への確信は特異点であり、自明に過去に置き換えることはできない。それは他者が意味を理解していないとしてもなお、今ここでこの俺だけが俺に対して言葉を正しく運用していると確信できるのと同じことだ。

哲学的な限界②:欲望の欠如

ここで言う欲望とは「内発的に生まれてくる動機」くらいの意味だ。AIは欲望を持たない、つまり、「AIは与えられたタスクは上手くこなせるが、与えていないタスクはこなせない」という限界がある。こうして書くと「それはそうだろう」というトートロジーのようだが、人間は明らかに誰からも明示的に指示されないタスクをこなしているためAIとは大きな違いがあることがわかる。

補足350:この限界によって「進歩したAIが人間に反逆し始めた」みたいなよくあるSF設定は眉唾で、「人間がAIにそういう設定をすれば有り得なくはない」という程度に留まる。ちなみに映画『AI崩壊』は(「AIが人間の選別を始めた」という地雷っぽいあらすじの割には)この辺の考え方がきっちりしており、またあとでコンテンツ消費記事を書くときにちょっと褒めたいと思っている。

俺的にはこれがAIの限界として最も興味深い観点で、シンギュラリティで最も重要な論点もここだと思う。シンギュラリティの定義を機械が自己の再生産を行う地点とするならば、産出された時点で最初から機械が再生産の欲望を持つことがマストだからだ。
欲望がどこから来るのかは典型的な哲学の問題でもあり、最も代表的なのはフロイトラカン精神分析における無意識概念だが、それを援用したドゥルーズガタリボードリヤールの消費社会論、マルクスの予想を超えて暴走を続ける資本主義論など枚挙に暇がない。
ただ、これは俺の勉強不足かもしれないのだが、こうした欲望に関するポスト構造主義的な言説は今現れている現象を上手く説明できるように欲望の起源を措定するものではあったとしても、欲望が発生する原理を説明しうるものではないという印象がある。「欲望を持たないAIに欠如しているものは何か」という問いに答えられる理論は人文的な領域にあるのだろうか?

補足351:西垣通が『AI原論』で言及しているが、サイゼミ第4回でやったオートポイエーシス理論(→)は、傍観者の客観性しか持たないAIへの対抗として当事者の主観視点から内発的動機を扱える生命の理論を作るというポジションがある。

なお、こうした欲望の起源に対して、理系的な視点で「人間における欲望も別に神秘的な領域から湧き上がるものではなく既に規定された脳内物質か何かの運動に過ぎない」と答える立場がある。これを機械学習的に言えば、実は欲望も込みで人間も人生を通じて何らかの誤差関数の最小化をしているに過ぎないということになるか。
サイゼミでも「意外だ」と言われたが、俺はこういう見方には与したくはないと割と強く思っている。表面的な論理の領域は別にAIで代替する程度のもので全く構わないし実際そうだろうと思っているのだが、言葉では言い表せない非論理的な領域、欲望や自傷分裂病に関してはある種の神秘的な聖域として固持したい思いがあるのだろう。これは別に何かの政治的な意図やそれらしい経験則があって言っているわけではないが、とにかくそういうことだ。