なぜRubyのデータ解析の未来が(ほかの人が思っているよりは)明るいと思うのかを無理やり言語化してみた

 機械学習やAIの時代になった。世間はPythonが大流行して、Rubyを使ったデータ解析の話はあまり聞こえてこない。にもかかわらず、私はデータ解析や機械学習の分野で、Rubyの未来は(多くの人が思っているよりは)まずまず明るいだろうなという見通しを持っている。その理由は論理的ではないのだが、頑張って言語化してみた。

(以下、個人の直感だけで語るポエム度の高い文章がずーっと続きます。そういうのが苦手な方はご容赦ください。また文章も全体的に悪文であることを自覚していますが、解像度の低すぎるぼんやりとした理解を無理して言語化しているので改善が難しいです。ご容赦ください。)

 要点を言うと、データ解析や機械学習に対する期待は、永久機関に対する幻想と似ておりいずれブームは飽和する。だから、ぞれぞれの言語である程度データ解析の手段が再実装されるだろうと考える。

 まずは、データ解析と期待学習に対する期待が、永久機関に対する幻想とよく似ているという点。

 AIや機械学習に対する過剰な期待をよく表す単語が「シンギュラリティ」である。(この言葉を聞いただけで嫌な顔をする人も多い)これは私の理解では「人間よりはるかに優れた知性が登場したとき、その知性がもっと優れた知性を作るという現象が起き、加速度的に進歩の速度が上がる」という仮説である。

 シンギュラリティは、永久機関とよく似ている。永久機関を作れば、永久機関のエネルギーを利用して永久機関を作ることがでる。そうやって永久機関を作り続ければ無限のエネルギーを手にすることができる。21世紀の世の中では永久機関が作れないことは誰でも知っているが、18世紀の科学者は永久機関を実現するために真剣に研究していたという。

 AIや機械学習は、永久機関に似ている。データ解析は、精度を上げると、必要な労力が上昇する。その割に利益は思ったほど上がらない。どこかに費用対効果の壁のようなものがあるようだ。データマイニングという言葉がある。大きすぎて人間には全体が見えないデータをコンピュータで解析する。言うのは簡単だが、実際に行うのは大変だと思う。雑然とした情報から、コンピュータで扱えるデータを取り出す(作り出す)のには時間と労力がかかる。精製されたデータは有効な情報を含んでいる。機械学習とは、天然鉱石から高い精度で貴金属を抽出する方法に似ている。ここでは機械学習の精度が高くなればなるほど収益は上がる。しかし機械学習のアルゴリズムが向上しても利益の上昇は思ったほど伸びない。どんなに精製の技術が高まっても、鉱石に含まれている貴金属の量は一定だからだ。

このように考えるとデータ解析は、有限なフロンティアである。データがあらかじめ含有している以上の価値を取り出すことはできない。にも関わらず、私達がデータサイエンスや機械学習に大きな夢や可能性を感じるのは、データという天然鉱石があちこちに転がっているように考えているからである。

 データは価値そのものであるという発想は今日では当たり前になっている。この考え方は、古くて新しい。しかし今日的な意味でのデータの価値は、 Googleが教えてくれたように思う。私達は、Googleが提供する無料のサービスを喜んで使っている。Googleはサービスの対価として消費者から情報を集めている。これは今でこそ常識だが、昔はグーグルが集めているようなデータが価値だとはあまり考えられていなかった。Google社が集めているような情報を有効活用する方法を私達が知らなかったからである。どうしてこんな優秀なサービスが無料で提供されているのだろうかと不思議に感じた日本人は少なくなかったと思う。少なくとも私はそうだった。

 私達は、さまざまなデータを日々生産している。データの生産と観測には、現象とセンサーが必要である。ここで

  • 自然現象とセンサーがデータを産生する側
  • 機械学習の過程をデータから精製しなんらかのアクションを起こして価値を発生させる側

の2つのサイドを考える。このように考えると、機械学習で得られる利益は、最初の自然現象の情報の持つエネルギーよりも小さくなる傾向があるようだ。具体的に考えると何が何やらさっぱりなので、全部妄想かもしれない。

 直感だが、データのエネルギー保存則のようなものが働いていそうだ。けれども、これがどういう学問になるのか知らない。情報理論というのがそれに当たるのかな。

 データの生産から価値を精製するまでの過程で、その価値は必ず低減すると仮定すると、機械学習で得られた情報エネルギーで、さらなる情報を産生するといったことはできない。だから、加速度的な進歩ということはまず起きないと思う。そう書いてみたが、何を言ってるのか、書いた本人にもわからない。。永久機関のWikipediaを眺めていたら、マクスウェルの悪魔というのが出てきて、データの観測や処理にはそれ自体エントロピーの発散が…とか、そういう難しい話も世間にはあるみたいだから、深く考えるとそういうところまで関係してくるのかもしれない。知らん。

 より具体的にすると、データ解析による意思決定は、最終的には次元削減をしていることが多い。次元を削減すると、一定の条件のもとで何らかの利益が得られるようだ。しかしその過程でデータの情報は失われる。解析側だけでなく、データの生産側も似たような構造になっているんだと思う。解析側と比較して、データ生産・観測側の仕組みは無数にあるので統一的な議論が難しそうだ。

 「データの力」の自給自足ができない以上は、データサイエンスによって収益を上げるためには、つねにデータのフロンティアをあちこち探し回って、多くの価値を含有しているデータを掘削(収奪)し続ける必要がある。永久機関とのアナロジーで考えるならば、「情報勾配」といったものも考えなければならないかもしれない。たぶん、データの持つエネルギーのようなものは、そのデータ単体では決まらず、周囲との格差のようなもので決まるようなところもあるはずである。(…などと書いているが、アナロジー以上の意味があるのかはわからない。)

 このような、機械学習と永久機関の類似性が遠因となって、Pythonは…いや機械学習はサチると思う。たとえばGoogleが恐ろしく立派な人工知能を作り上げたとしても、さほどの利益を生むとは思えない。あらかじめデータが含有している情報エネルギー?は決まっているので、機械学習ライブラリの精度を高めたからといって、無限に価値が取り出せるわけではない。

 Google社もその前提で動いており、Google Colabなどを使ってますますユーザーの行動やデータを吸い上げることに専念しているようにみえる。これから本当にAIによる大きな社会変化が起きるなら、真っ先に投資して買い占めるべき対象は、コンピュータ技術かどうか疑わしい。それらは勝手に発展するのだから、むしろコンピュータを動かす電気を発電する石油資源を買い占めるべきだろう。同じような発想で、データの囲い込みが熱心に行われているようである。

 もっとも、私のようなエンジニアではなく趣味的にパソコン遊びをしている人にとって(エンジニアの人でも大半はそうだと思うけど)Amazon、Googleのような大手ITが保有しているような大規模なデータ解析のツールというのは全くわからない。Apacheソフトウェア財団のオープンソースソフトウェアは、大量のコンピュータを使って情報を並列処理を行うものが多いけど、一般の人たちはそれらのソフトウェアを動かす装置を保有しないのだから。だからデータのことばかりに注目してしまう。しかし、本当はデータセンターを支えるハードウェア・ソフトウェア技術こそが大事なのかもしれない。そこにアクセスできるすごい人はがんばってください。

 一方で、社会のあちこちで、Pythonによって作られたライブラリの利用者が増える。データを眺めて、そのうらにある現象を理解するということは人間にとって楽しい営みだ。そういう人々によってデータライブラリ向けのライブラリはさまざまな言語で再実装される。RからPythonへ。PythonからJuliaへ。誰も見たことがないものを実装するには天才が必要かもしれないが、一回見たことがあるものを実装するのなら秀才だって負けてはいない。 n回目の車輪の発明は、n-1回目の車輪より改善されていることが多い。だから、Rubyの未来は明るい。Rubyのデータサイエンスのツールは、小さくて綺麗な実装であってほしい。

 Pythonの価値は、共通言語としての存在である。Pythonで書けば他の人もわかる、評価してくれる、そういった人と人との総合作用や評価のネットワークがプログラムを書く人同士を結びつける。これは幸福であるが、実際には負の部分もあると思う。長い目で見るとデータサイエンスブームは、放置されているデータが大量にあるという一時的な状態によって発生したバブルである可能性が高いからだ。バブルが終わるときは痛みを伴う。

 GithubでPythonのデータ解析を支えるライブラリをチラッと眺めると泥臭い感じがする。莫大なスターがついていても、アクティブにライブラリをメンテナンスしている人は意外と少ないものだ。データ解析や機械学習に対する情熱が覚めたとき、本当に今のPythonのライブラリ群が維持できるかは怪しい。

 かといって、Rubyのデータ解析や機械学習の世界が、すごく大きくなるとは思わない。なぜならば、Rubyを使っている人たちは平均してそういうことに、あまり興味がないからだ。反対に、Rは今後もデータサイエンスの分野では力を保ち続けるだろう。なぜならばユーザーはそういうことばかり考える人たちだからだ。プログラミング言語の世界は、コードの中でなくユーザーの頭の中にあるのだと思う。

 そんなわけで、私は中間的立場に立っている。Rubyの機械学習は決してPythonやRを追い抜かしたりはしないだろう。しかし、多くの人が考えているよりも遥かに発展していくはずだ。Rubyは改造が容易な言語である。これは、利用者に自由を与える一方で、ライブラリの作成者には多くのことを求めるやり方だと思う。これは、大人数でデータサイエンス用のライブラリを実装するときは不利に働くが、最初から目標とするものがしっかり見えている場合には、素晴らしいものが作られていくのではないだろうか。

 RubyはPythonではない。PythonはPython、RubyはRubyらしくゆっくり進んでいけばいいと思う。

 そしてこれからは

  • 情報を生産する技術
  • 手に入った情報にどの程度の価値があるのか予め推計する技術
  • 情報の生産から消費までの持続可能性
  • あるアウトプットを出すための極小のアルゴリズムとは何か?

みたいなものにフォーカスが当たっていくのではないだろうか。

 以上ポエ散らかした。なんとなく、そんな気がしている。たぶんこいった議論は世界のどこかで頭の良い人達がいろいろ考えてとっくに定式化されているのだろう。予想が当たるといいな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です