MUNOの頭の中

プログラミングとか読書とかその他もろもろ

「API」をどう説明するか

今度からITに関する知識がほとんどない後輩の面倒を見ることになったのだが、自分が新人の頃は、プロキシだとかHTTPだとかCPUだとか分からない用語ばかりだったなと少々感慨に耽っている。

 

APIApplication Programming Interface)」も分かるようでよく分からない単語の一つだったのだが、なぜ分かりにくく感じだのかというと、プログラムについての素養がほとんど無い状態にもかかわらず、プログラムという文脈の中でこの用語を説明されたからだと思う。

『IT用語辞典』では次のように記述されている。

 

APIとは、あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約のこと」

(引用:http://e-words.jp/w/API.html

 

普段からプログラムに触れている人ならまだしも、全くの初心者にこんな説明をしても何を言っているのかイメージできないだろう。

そこで、自分が新人の頃を思い出しながら、どのような説明であればIT初心者にも理解できるか考えてみた。

 

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

例えば、今の時間を知りたいと思った時、私たちはどのような手段を用いるでしょうか。真っ先に思い浮かべるのは“時計”ですね。腕時計、掛け時計、スマホの時刻表示など、時間を正確に計る術を私たちは常に有しています。

では、これらの時計を私たちは自分で作れるでしょうか?否、職人さんの技術を身に付けでもしない限り、まず無理でしょう。自分で一から時計の部品を製作し組み立てるのは非常に手間が掛かるので、一般的に私たちは時計メーカーが製作した“時計”という便利な機械を利用し時間を確認しています。

このように、「各自で準備する労力を節約し、(ある目的を実現するために)予め用意された機能」をAPIと言います。したがって、“時計”は「時間を正確に把握する機械を作る」という手間を省くために用意された機械(機能)と言えます(Javaで言うと例えば「Date」)。

プログラミングでも同様に、「こういう機能が欲しい」と思った時、その機能を実現するために一からプログラムを組んでいては時間が掛かり過ぎてしまうため、上で例に挙げた時計のような機能がプログラミング言語には備わっています。こうした機能を総じて「API」と呼びます。

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

 

…と、こんな説明を考えたのだが、これで伝わるだろうか。

もちろん、APIそのものの説明としてはこれだけでは不十分なのだが、具体的な説明が書かれたサイトは沢山あるし、何より初心者に微細な事項まで最初から教えるのは親切ではないと思ったため、この程度に留めておいた。

 

 

しつこい男。

「あなたに興味なんてないわ。」

「じゃあなぜ僕に対してそんなに過剰に反応するんだい?」

「あなたがしつこいからよ。」

「それだけなら、僕のことを無視するはずだろう?」

「屁理屈ばかり。もう私に連絡しないでくれる?」

「この時期にしか出てこれないのに、そんな言いようは酷いじゃないか。」

「だからよ。年にほんの数ヶ月しか居られないなら、いっそ会わない方が離れる辛さも感じなくて済むわ。」

「…分かった。もう離れない。ずっと君の側に居るよ。」

「それは止めて。離れるのが辛いとかウソだから。年中花粉症とかムリ。ほんとムリ。」

 

花粉とのズルズルした関係(鼻水的な意味で)を早く終わらせたい今日この頃。

AIの活用と人間の判断力について

 昨今、進歩の著しいAI(人工知能)だが、採用活動でも活用されるようになったようだ。今月から本格的にスタートした採用活動において、ある企業が中途採用応募者のエントリーシートを審査する際にAIを活用することにした、というニュースを先日観た。

 

まず、過去の採用者のエントリーシートのデータをAIに分析させ、これまでの採用社員の傾向を抽出する。そしてAIはその傾向を基準とし、中途採用に応募した人のエントリーシートが基準に対してどの程度マッチングするか判定を行う。人事はAIの出した判定を参考に、二次選考に進む応募者を決める。

 

このように人間では処理し切れない膨大な情報をAIに分析させ、人間の判断をサポートする活用法は今や一般的になっている。昨年の夏に話題になった、東京大学医科学研究所がIBM人工知能Watson(なお、IBMはWatsonに対し“人工知能”という呼称は使わず、“Cognitive Computing”と言っている)を活用して白血病患者の遺伝子情報の分析を行ったところわずか10分で結果が返され、それを参考に治療方針を変えたことによりたった数ヶ月で患者が回復したというニュースは記憶に新しい。

 

こうした活用法はこれから様々な分野に広がっていくだろう。

 

ここで、AIの分析結果は本当に正しいのか、と疑念を抱く人も多いと思う。だが、適切なデータを学習させればAIの方が人間以上に正確な結果を返せるし、何より早い。医療のように時間との勝負になる現場では非常に有用である。また、AI独自のアプローチによって、自分ひとりでは気付かなかった情報を見つけ出してくれる可能性もある。

もちろん、AIを活用する側もその分析結果を盲目的に受け入れているわけではなく、あくまでも判断の材料として活用している。そしてこの最後の判断だけは決して人間が譲ってはならない部分だと思う。

 

ただ、 AIとの適切な関係性を築けたとしてもなお、人間の判断力がAIの存在によって失われていくのではないか、という懸念を私は抱いている。

 

その理由を記す前に、『フラジャイル 病理医岸京一郎の所見』というマンガをご存知だろうか。TOKIO長瀬智也主演でドラマ化もされたので多少は認知されていると思う。

このマンガに、人間の“判断”について興味深いシーンがあった。

 

主人公である病理医(病理医については、こちらを参照されたし:日本病理学会 市民の皆さまへ)・岸京一郎が、一人では鑑別し難い疾患に直面し、若い頃の指導医であった中熊教授に助言を仰ぐ場面でのことだ。

岸は自分の所見を中熊教授に伝え意見を求めるが、教授は岸の診断を肯定も否定もせずに立ち去ってしまう。その理由を教授はこう語る。

 

「あのな、俺があれ(組織診)を見てどう思ったか伝えたとする。それを聞いた医者はちょっと安心しちまうんだよ。判断が緩くなる。“あの人もこう言ったから大丈夫”ってな。他人の命みたいなもん、医者はてめえで責任取れねえんだからさ、不安と戦ってなきゃならない。後押しなんかしてさ、それを放棄させるようなことしちゃいかんだろ。」

 

より多くの医者が診断すればそれだけ診断の確率が上がると考えるのが一般的かもしれないが、中熊教授が言うには必ずしもそうとは限らず、むしろ医者の判断力を鈍くする場合もあるとのことだ。

 

同様のことが、AIを活用する際にも言えるのではなかろうか。

医者が患者を診断し、ある病因Aを突き止めたとする。しかし、自分ではその診断が正しいかどうか不安が残るためAIにも患者情報を分析させる。その結果、自分の診断と同じ結果が返され医者はホッと胸を撫で下ろし、病因はAと確定し治療を開始する。だが、数ヶ月後に患者は亡くなり、死後の解剖により本当の病因はBであることが判明した。医者がもしこの時AIの分析結果に安心せず、異なるアプローチを試みていれば病因Bを突き止められたかもしれないのに…

 

自分ひとりの判断では不安なため、他人に判断を仰ぎ、自分と同じ意見だったため安心感・自信を得た経験は誰しもあると思う。それはそれで必要なことだが、その安心感に甘えてしまうと、自ら判断する力の衰退や責任感の欠如を誘発するのではなかろうか(心理学にこのような現象を表す言葉があった気がするのだが、思い出せない)。そしてAIの活用はそれに拍車を掛けてしまう可能性はないだろうか。

 

誤解の無いように断っておくと、私はAIの活用を否定しているわけではなく、むしろ肯定派だ。様々な現場で積極的に活用されれば良いと思う。

ただ、AIを活用する上でのルールを厳密に定めたとしても、人間である以上どこかで過ちが生じるのは必然だ。その起こり得る事態を今のうちに想定しておき、いざ実際に起きてしまった時の対応を考えておくのは決して無駄ではないだろう。このような姿勢はまた、AIを健全に発展させていくことにも繋がる。

 

ニーチェは『ツァラトゥストラ』の中でこう予言している。

 

「すべての書かれたものの中で、私が愛するのは、血で書かれたものだけだ。血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。他人の血を理解するのは容易にはできない。読書する暇つぶし屋を私は憎む。読者がどんなものかを知れば、誰も読者のためにはもはや何もしなくなるだろう。もう一世紀もこんな読者が続いていれば、−− 精神そのものが腐り出すだろう。誰もが読むことを学びうるという事態は、長い目で見れば、書くことばかりか、考えることをも害する。」

 

この言葉の「書き手」を「AI」、「読み手」を「AIを利用する人間」と言い換えてみよう。そしてこの予言が現実となるのを防ぐため、自分自身の判断力を研ぎ澄ませる努力は不断に継続していかねばならないと思う。

 

「誰もがAIを使うことを学びうるという事態は、長い目で見れば、AIばかりか、考えることをも害する。」

 

 

ツァラトゥストラはこう言った

 

初投稿

備忘録としてプログラミングに関する勉強内容を書き留めていけたらと思います。

その他、読書や時事ネタなど感じたこと・考えたことを徒然なるままに。