AI発明の「学習」をどう説明するか[3/4]
AIの学習について、
「予測と正解のずれを使って、モデルを更新します」
と説明されることがあります。
意味は通じます。
ただ、発明を整理するとき、この一文の途中が気になることがあります。
予測が違っていたと分かったことと、モデル内部の値が変わることは、同じ処理ではありません。
その間に、予測結果をどう評価し、その結果をどうモデルの変更へつなげるかという処理があります。
私は、この接続部分が単なる一般的な学習処理なのか、それとも今回の技術に関係するところなのかを見ます。
lossやoptimizerを詳しく説明すること自体が目的ではありません。
説明の中で飛ばされている因果に、技術上の意味が残っていないかを確認するためです。
将星国際特許事務所、所長。AI、IT、ソフトウェア、ビジネスモデル、ネットワーク分野の特許を専門とする。データベーススペシャリスト等の資格を持ち、技術内容の整理から特許出願・権利化まで幅広く支援している。講演活動も行っている。
「20ずれた」は、まだモデルを変える指示ではない
例えば、ある処理時間を予測するAIが、
予測値は80秒、参照値は100秒
という結果を出したとします。
二つを比べれば、20秒違っていることは分かります。
しかし、「20秒ずれた」という事実だけで、モデル内部のparameterがどう変わるかまで決まるわけではありません。
学習では、予測結果と参照値などから、学習のための評価値を計算します。そのために用いられるものの一つがloss function(損失関数)です。そこから得られるlossは、予測値と参照値の単純な差と同じとは限りません。
典型的なニューラルネットワークの学習であれば、lossを小さくするにはparameterをどちらへ変えればよいかを勾配などから求め、その情報を使ってoptimizerがparameterを更新する方法があります。
かなり簡略化すれば、
予測結果を評価する。
その評価からparameterを変えるための情報を得る。
その情報を使ってparameterを更新する。
という接続です。
もちろん、すべての機械学習がこの方法で学習するわけではありません。
ここで確認したいのは方式の名前ではなく、「予測が違った」と「モデルが変わった」の間に、どのような因果があるかです。
同じ「誤差を見て学習する」でも、中身は同じとは限らない
二つのAIが、どちらも
「予測と正解の誤差を見て学習します」
と説明されていたとします。
この一文だけなら、よく似ています。
しかし、一方は一般的なlossと更新処理をそのまま使っているかもしれません。
もう一方では、何を学習上の評価として使い、その評価結果をparameterの変更へどう結び付けるかに、今回の技術と関係する処理があるかもしれません。
その場合、重要なのは「lossを使っています」「parameterを更新します」という部品の名前ではありません。
なぜその評価が、そのモデル変更につながるのか。
そこまでつながったときに初めて、今回の技術で何が行われているのかを判断しやすくなります。
逆に、その接続が一般的な学習方法そのもので、今回の技術上の特徴が別の場所にあるなら、そこを細かく掘る必要はありません。
発明の説明を詳しくすることと、技術上重要な部分を詳しくすることは同じではないからです。
「誤差」と「更新」の間を一度つなぐ
AI発明の説明では、入力、モデル、出力といった大きな構成は書かれていても、
「誤差を評価する」
↓
「モデルを更新する」
という接続が一文で処理されていることがあります。
私は、その省略があるとき、一度だけ途中をつなぎます。
何を学習上の評価に使っているのか。
その評価から、parameterを変更するための情報をどう得ているのか。
それが、どのような更新処理につながっているのか。
そこで特別なことをしていなければ、それで終わりです。
一方、そのつなぎ方によって目的の学習が可能になっているのであれば、そこは単なる「再学習」の一語で済ませない方がよい。
見たいのは、lossの一般論ではありません。
評価結果からモデル変更までの因果をつないだとき、そこに今回の技術上の意味があるか。
その判断です。
なお、ここで扱っているのは、学習を行うと決まった後の内部処理です。運用中のモデルについて、いつ再学習や更新を始めるかは別の問題です。
本シリーズのブログ記事です。こちらもよろしければご参照ください。
・「学習済みモデルを使う」だけで発明は見えるか――技術の違いが生まれた時間を分けて見る
・同じ入力でも、何を「正解」にするかでAIの役割は変わる――学習データからAI発明を見る
