ジオマーリン

geomerlin.com に関することを中心に。難しいことをもっと難しく書くブログ。

機械学習の精度をスマートコントラクトで上げる

機械学習の精度をスマートコントラクトで上げるためにはどうすれば良いか?

 

これは漠然とした疑問ではなく、将来我々geomerlin.comや多くのモデル作成者にとっては切実な問題になると考えられる。

 

「AIとブロックチェーンの組み合わせ」というとバズワードが2つ並んだだけであるように思えるが、「分散合意で機械学習モデルの性能を相互補完できるか?」について次のポイントを少し考えて頂きたい。

 

①人事評価や顔の美しさ、地政学リスクなど曖昧な結果を出すための機械学習モデルをどうやって信頼性の高いものにするか?

 

②性能の高くない機械学習モデルを組み合わせて性能の高いものにできるか?

 

これはディープラーニングに関する割と重要な問題だと思う。なぜならデータ不足も過学習もどのモデルにも起こるからである。データにないようなパターンにモデルは対応できないが、他のモデルにそのパターンが学習されていれば、性能が低いものであっても、相互補完ができるはずだ。

 

では、沢山モデルが存在するとして、単純に出力の平均をとれば相互補完ができるか?*1多くのモデルが間違えていて、少数のモデルが正しいことも多いだろうと考えられるので、そう単純な話ではなさそうだ。

 

 選択肢A,Bのうち、多くのモデルを合意させてAを選択することを考えよう。判断に際して、甲・乙どちらを選ぶかの割合(softmax)の平均を単純に取ると、上記*1の問題が発生する。

 平均ではなく加算平均すべきであることは明らかであるが、加算するべき項目が2つ出てきてしまう。

 (1)甲を選んだモデルの性能・信頼度

 (2)甲を選ぶモデルの集合同士の合理性

 

 これらがシンプルに加味される分散合意評価の方法として次のものを考案した。

sugeno_integral.pdf - Google ドライブ

 

 簡単に説明すると、

 ある判断を肯定するノードの共通点が多く、否定するノードの共通点がすくなければ、その判断の合理性が多いとするシステムである。

 

 前提:各モデルは判断対象の優劣と判断材料の重要度をソートする

 (判断対象と判断材料は全モデルが共有している)

 

 つまり上の例で言えば、判断(甲)の評価は

 D*Pos - d*Neg

 D=甲のポジティブ判断の人気度を信頼性(ブロックチェーン上のstake)で加重平均したもの

 Pos=甲のポジティブ判断を行うモデル同士が同じ判断材料を重要とソートしているか

 d=甲のネガティブ判断の人気度を信頼性(ブロックチェーン上のstake)で加重平均したもの

 Neg=甲のネガティブ判断を行うモデル同士が同じ判断材料を重要とソートしているか

 

 ファジー測度にして菅野積分を取り入れたのはMin-Max演算を行うことでリスクを減らしたかったからである。