世の中のブラックボックスについて

昨今の自民党政権下の政権運営においては、とにかく政権をブラックボックスにしたいのだろうなあと思わせます。
特定の話題を指して言ってるつもりはなくて、ブランディングの方向性としては明らかにそうなんだろうだなあ、ということです。特に大きく具体的な問題意識を持っているわけではありません。ただ、果たしてこの流れに身を任せて本当に良いものだろうか、と自問することはあります。

初めてAIを職場に導入する話を聞いて、AI技術の中身を聞いた時も思いました。AIというのは要はディープラーニングを用いた自動画像判別のことです。すごくざっくり書きます。「教師画像をいっぱい用意してAIに学習させて判別モデルを作成する。学習が終わったら、あとは判定したい画像を入力したら学習した通りに判別してくれる」「今まで人間が行なってきた判別作業をAIにやらせることができる」「人間が間違うようにAIも間違う。間違った場合は間違った画像を学習させてモデルを修正する」「AIが間違った場合、その間違いのロジックを解明することは、できないことではないが普通はやらない。なぜならロジックを理解できるまでモデルを解析するのにとても長い時間を要するから。そんなことするくらいなら学習させて同じ間違いを犯さないモデルにブラッシュアップした方が良い」
これを聞いたときワタシは、「言いたいことは理解できるし、やりたいこともわかるんだけど、製造現場には向かない技術ではないかなあ」と思いました。ツールとしてはとても強力だが、その中身、ロジックの部分がブラックボックスだと感じたのです。やはり、どのような処理をされているのか、その概要だけでも理解しないと現場には落とし込めない、と直感しました。
しかし、そんなオッサンの杞憂など意に介さず、製造現場へのAI導入は進んでいます。さまざまなトラブルを抱えながらも、おそらく今後AIの守備範囲はどんどん広がっていくと思います。ただやはりワタシは思ってしまいます。ロジックの部分がブラックボックスであるこの技術に、果たして身を委ねてよいのだろうか、と。

もうひとつ例を。C言語には「ポインタ」と呼ばれるものがあって、メモリ内のこれだけの領域を使いますよ、という宣言をする機能があります。宣言してメモリを確保しておかないと、他に使われちゃうかもしれませんからね。でも無駄に多く確保すると同じく他に使えなくなるし、処理が終わった後にきちんと解放しておかないとメモリリークなんてことが起こりえます。Cを扱うエンジニアには必須のスキルだと思います。
Cがだいぶ小慣れた頃にJavaという言語が流行りましたが、ポインタという機能がなくなっていました。…なくたったというとちょっと語弊があるかな。「メモリを管理する」という概念がなくなった感じでしょうか。便利になったなあと思いました。なぜCにあってJavaにないか。使う人がメモリのことを意識しなくてもよいくらい、ハードウェアもソフトウェアも余裕ができたのが理由のひとつでしょうか。
Javaにはそうは言ってもガベージコレクションという機能があったのですが、どうやらpythonにはそれすらないようです。最近知りました。ガベージコレクションというのは、メモリの確保についてはソフト作る人は気にしなくてもよいけど、処理がおわったらちゃんと解放はしましょう、という考え方といえば良いでしょうか。これがないpythonはではいつメモリを解放しているかというと、すべての処理が終わった時か、確実にその領域がこの先使われないとわかったときだと思います。シーケンシャルな処理をやっていたとしたらだいぶ後ろのほうですよね。ひとつにはハードウェアの能力が上がりそこまでシビアにメモリ管理をする必要がなくなったこと(ハードウェア自体の高速化により、ソフトウェアにスピードを追求する必要がなくんったこと)、もうひとつは、pythonの中間処理層(と言ってよいのかな。Javaで言うところのVM)が相当頑張っているのだと思います。
便利になったものよ、と思う反面、「メモリ管理の意識なくしてソフトウェアを作って良いものなんだろうか」なんて思っちゃいます。でもこの環境に身を委ねたら究極はメモリの仕組みを知らなくてのソフトウェア設計して作れちゃいます。果たして身を委ねてよいのでしょうか?

AIとメモリ管理はテクノロジーの進化により人間のオペレーションが変わると言う話です。
政権透明化は政治の話です。
なぜこれらを並べて書こうとしたかと言うと、内容全く似てないですが、構造は似ているといえるかなあと思ったからです。なぜブラックボックスであることが我々は許容できるのかというと、周辺環境が豊かになったからです。些末なこと(と言って良いかはわかりませんが)に気を取られずに、やるべきこととその結果の評価に注力できるわけですから。

ただですね、やっぱり個人的には思ってしまうのです。別に気にする必要がないのは良いことですが、それでも、

  • メモリ管理の概念を理解した上でJavapythonを使うべきではないだろうか
  • AIが間違った時は、なぜ間違ったかを解析できるようにしておいた方が良いのではないだろうか
  • 悪いことやってるとは思ってないし結果何も変わらないかもしれないが、政権の透明性は必要ではないだろうか
  • 今ある枠組みを使いこなすためよりも、枠組みが変わってもうろたえない力をつけるべきでは

ということを。老害感でてきましたね…。

さて。
AIとメモリ管理はテクノロジーの進化の話なので、もう後戻りはできない(というかしない)だろうと思っています。

政権運営の話は中の人(ひいては外の人)の意識の話なので、今のうちなら後戻り可能ですね。

このような疑問をもつこと自体、社会がどんどん豊になっていってるということではあるのでしょう。
では本日書いた例のそれぞれについて、今ある枠組みとはなんのことで、枠組みが変わってもうろたえない力とはいったいどのようなものでしょうか。

本日はオチも結論もない話でした。