人工知能 〜 機械学習は、どこまで信用できるか


提供: 有限会社 工房 知の匠

文責: 技術顧問 大場 充

公開: 2026年3月23日

あらまし

プラトンは、正しい抽象化の過程を踏んで、論理的に正しく考えれば、必ず正しい結論に到達できるはずであると、信じていました。これは、絶対的真理に基づいた、決定論的な思考であるといえるでしょう。これに対して、アリストテレスは、『正しい抽象化の過程を踏んでいたとしても、そしてその後の思考でも、論理的な推論を正しく行っていたとしても、結論として得られる主張が、「現実的に正しい」と言える主張になるかどうかは保証できない』と述べました。

アリストテレスは、現実世界での事例を注意深く吟味して、最も望しい例を見つけ出す方が、現実的であると主張したのです。仮に、プラトンの説いたイデア論の論理的な思考に基づいた結論だとしても、その結論に適合する現実の例を、経験の中に見つけることができなければ、それは、単なる「架空の例」に過ぎないと主張したのです。これが、プラトンのイデア論とアリストテレスの中庸(ちゅうよう)との論争の中核問題です。

現代の人間社会には、時間とともに進化する「もの」を作るとき、正しく進化するものであることは、どのように品質保証(ひんしつほしょう)すれば良いかについて、社会的な合意はありません。さらに言えば、これまでの社会がそうであったように、作り出したものを、その作り手である企業の人々が、品質を保証すべきであると言う思想は、正しいあり方なのでしょうか。それは、プラトン的な思想が社会の全体に認められていた、これまでの社会だったからで、中世のキリスト教の影響が強かったためだったと言えるのでしょう。

人間と「考える機械」との共生のために


図16. これまでのコンピュータと人工知能


プラトンは、正しい抽象化の過程を踏んで、論理的に正しく考えれば、正しい結論に到達できるはずであると、確信していました。これは、絶対的真理の存在を前提にした、決定論的な思考であるといえるでしょう。これに対して、アリストテレスは、『正しい抽象化の過程を踏んでいたとしても、そしてその後の思考でも、論理的な推論を正しく行っていたとしても、結論として得られる主張が、「現実的に正しい」と言えるかどうかは、保証できない』と述べました。これは、機械学習で生成される出力が、現実には存在しないような答えであるような例が報告されているのと、似ています。プラトンのイデア論で作られた論理的な結論が、現実の世界では、存在するとは言えないような結論である場合に似ています。

アリストテレスは、現実世界での事例を注意深く吟味して、その中から最も望しい例を見つけ出す方が、現実的であると主張しました。仮に、プラトンの説いたイデア論の論理的な思考に基づいた結論だとしても、その結論に適合する現実の例が、経験の中に見つけることができなければ、それは、単なる「架空の例」に過ぎないと主張したのです。これが、プラトンのイデア論とアリストテレスの中庸(ちゅうよう)との論争の中核の問題です。


図16-1. 機械学習を利用したシステムの保証問題


理論的に考えると、学習した経験から得られる知識に基づいて作られ、動作する「システム」は、それが人間であるか、人間が作り出した機械であるかに関わらず、その動作の仕方を支配する理屈が明確に示されなければ、その動作を、第三者が客観的な立場で、保証することはできません。これまでのコンピュータを使った、アルゴリズムに基づく計算のように、プログラムが存在している場合であれば、チューリング機械のように、そのプログラムを細かく調べることで、それが、想定される入力の集合に対して、どのような動作をして、どのような出力の集合を作るのかを、第三者が確認することができます。

しかし、機械学習を利用した「システム」の学習結果としてのシステムの「動作」は、チューリング機械のプログラムのように、論理的で、第三者にも理解できるような形式で、外部の人間が説明することはできません。それは、単に、学習の結果が、シナップスに割り振られた、「重み」の値の集合でしかないからです。人間の思考の場合には、機械学習と似たような経験によって得られた、「重み」のようなものの集合と、論理の両方が使われるので、もう少し、説明は「つきやすい」かも知れません。

このように考えると、学習に基づいて動作(思考)するシステムの、思考の正しさは、ある時点までに、対象となるシステムが、その経験に基づいて導き出した結論と、その結論を生み出した過去の経験記憶の両方を対比させ、その全ての対の列が、我々にとって、納得できるものであるかどうかと言う、帰納的な判断のみが頼りになります。つまり、ある時点までに、そのシステムに与えられたn個の問題に関する入力の値の組と、それに対してシステムが導き出したn個の出力を対比させ、何個の問題に対して、何個の「納得できる結果」を得ているかだけが、議論できるのです。

それは、人間が行った学習の効果を、試験で、何個の問題に対して、何個の正解を出せたかと言う、正答率で判断することと同じです。この正答率に基づくシステムの「良さ加減」の判定が完全ではないことは、私たちも良く知っています。特に、学習していない問題に対する解答が、本当に信用できるものであると期待できるかどうかは、そのような正答率では、正しく判定することはできません。

人間の場合、ある人が出した結論が信じられるかどうかは、多分、それまでに、その人の正答率が90パーセントぐらいに達していれば、受け入れられそうです。それでは、機械学習で学んだシステムの正答率である場合はどうでしょう。9割の正答率で、受け入れられるでしょうか。もし、そのシステムが、自動車を運転している場合であるとすれば、その機械学習系の正答率が90パーセントでは、とても社会には受け入れることはできないでしょう。人間ではなく、人間が作った人工の機械が動作する時、その機械の出力の正答率は、99パーセントだとしても、人間社会には受け入れられないでしょう。

また、その正答率を評価するためには、どれくらいの期間に渡って、対象となるシステムの動作(正答率)を監視しなければならないのでしょうか。つまり、どれだけの例を学ばせる必要があるのでしょうか。仮に、機械学習で動作するシステムの誤り確率が、「10万回に1回程度の誤り」であれば、受け入れられるとしましょう。だとすると、あるシステムを評価しようとしたとき、そのシステムの動作は、どの程度の期間、監視し、評価しなければならないのでしょうか。


図16-2. 機能安全の考え方


近年、さまざまな機械にコンピュータが組み込まれ、プログラムによって、その動作が制御される製品の例が増えています。例えば、自動車では、ブレーキやアクセルなどの機械部品の中に、コンピュータが組み込まれ、そのコンピュータを制御する100以上のプログラムによって、個々の機械部品が制御されています。これによって、部品製造のための製造原価は、著しく低下しています。この現実に対応するため、専門家たちは、工業製品に関する国際標準化の活動として、情報・電子・機械系の委員会において、新しく、「機能安全」と言う概念を定義して、それを保証するための諸活動に関する国際間での取り決めを制定しました。

そのような国際規格の例として、自動車とその関係部品に関する国際規格、ISO 20202(ISO20202と呼ばれています)では、ソフトウェアを組み込んだシステム部分システムにおいて、その誤り率をゼロにすると言う、従来の「絶対安全」の考え方と、それに関する議論は、現実的でなく、誤り率が一定以下で、事実上、「ほぼ誤りはない」と言える許容できる誤り率」を定義して、それを上回る正常な稼働を保証できれば良いとしています。例えば、従来型の機械系を基本とした航空機システムでは、それを10の8乗分の1以下としています。つまり、1億回に1回の間違いです。一般の製品では、そこまでの信頼度は要求されないでしょう。

仮に、あるシステムで、1億分の1の信頼度が求められているとして、それをソフトウェアが組み込まれている主要部品を使った製品で保証しようとすることを考えてみましょう。その信頼度は、どのようにして保証されるのでしょうか。理論的には、問題となるシステム全体を構成する部品群に分解して、それぞれに、その部品群の設計・生産に不備があった場合、どれくらい全体の信頼度低下に影響を与えるかを、理論的に計算します。そのようにして計算された部品群別の信頼度から、システム全体の信頼度を求め、要求に適合するかどうかを判定します。この計算には、部品が並列につながれて動作する系と、部品が直列につながれて動作する系の、信頼度計算のやり方が応用されます。

例えば、システムのある部分の部品Xが、その子部品であるAとBの直列的な接続で動作するとします。この時、Aの子部品が正常に動作する確率をPaとし、Bの子部品が正常に動作する確率は、Pbで与えられるとします。この時、部品Xが正常に動作する確率の期待値は、Pa×Pbで与えられます。PaもPbも、1より小さく、ゼロより大きな値なので、構成する子部品の数が増えれば増えるほど、部品Xが正常に動作する確率は、ゼロに近づいてゆきます。部品Aと部品Bが同じ機能を実施する場合で、並列に接続される場合には、Xが正常に動作する確率は、1- (1- Pa)×(1- Pb)、で与えられます。このようにして、部品がどう構成されているかによって、各部品が正常に動作する確率の期待値は計算できます。

そのようにして定められた部品群別の信頼度が、本当に達成されているかどうかを判断する方法としては、プログラムの場合には、その設計に「誤りがないことを証明する」方法や、それに準ずる方法として、設計者以外の第三者が、書かれている設計を精査するレビューを実施して、当該の設計に誤りがないことを保証するやり方が推奨されています。ただ、レビューに基づく方法は、完全ではないため、異なる人々が、異なるレビューを多重に実施するなどの改善が要請されています。

これまでの機械的な部品では、現実に利用されており、実利用での信頼度の実績が既知の部品などを利用するため、部品別の信頼度の実績値が分かっていたため、部品群別の信頼度の解析は、あまり難しいものではありませんでした。しかし、プログラムでの制御を組み込んだり、その一部に機械学習で動作する部分が含まれることになると、話は変わります。その場合、いわゆる実地試験でどの程度のテストを実施すればよいのでしょうか。信頼性の研究者たちは、これまで、要求されている信頼度の10倍程度のテストを実施し、その結果、実際に生起する誤りが、10回以下程度であれば、その信頼度を保証できるのではないかと、言っていました。だとすれば、100万回に1回起こる間違いを証明するためには、1,000万回のテストを行い、誤りの回数が10回以下であることを確認しなければなりません。現実の開発現場で、そのような膨大な量のテストは、可能なのでしょうか。とても、可能だとは言えないでしょう。


図16-3. 専門家に問われること


これまでも、人類は、常に経験したことのない問題に直面してきましたし、これからも、そのような問題を解決することが求められます。そのとき、「絶対的な真理(正しい応答)」が存在するとすれば、その「正しい答え」を見つけ出すように努力しなければなりません。しかし、最近の哲学では、「人間には、絶対的に正しい答え」を知ることはできない、とする思想が一般的になりつつあります。これは、古代ギリシャのプラトンが述べた考え方よりも、アリストテレスの考え方に近いものです。

この新しい現実を踏まえると、人類は、これまで「正しい」と考えられてきた、モノづくりのやり方を繰り返すことは、正しいやり方とは言えなくなります。それは、人間が創り出すモノ、製品、自体が知性を持ち始めているからです。それは、人間が創り出したものが、自分自身の動きや考えを、時間とともに変えてゆくため、変化する動作や考えが、いつも「人間が受け入れられる」範囲に、入るようになるのかどうかを、限定することは、本当に困難な問題だからです。

現代の人間社会では、進化するものを作るとき、正しく進化するものであることを、どのように品質保証すべきなのかについて、社会的な合意はありません。さらに言えば、これまでの社会がそうであったように、作り出したものを、その作り手である企業が、品質を保証すべきであると言う思想は、本当のあり方なのでしょうか。それは、プラトン的な思想が社会の全体に認められていたからで、中世のキリスト教の影響が強かったためだったから、と言えるでしょう。時代は、変わっています

おわり