ohmsha / PyOptBook

岩永二郎・石原響太・西村直樹・田中一樹 共著『Pythonではじめる数理最適化-ケーススタディでモデリングのスキルを身につけよう-』(オーム社、2021年)のサポートページです。
MIT License
142 stars 71 forks source link

第7章:機械学習モデルとの比較について #11

Open enakai00 opened 2 years ago

enakai00 commented 2 years ago

第7章の冒頭で機械学習モデルについて少しだけ触れられていますが、最近は、機械学習の知識のある読者も増えていると思うので、機械学習モデルとの具体的な比較があると、より理解が深まるかもと思い、scikit-learn で簡単な線形モデルとの比較をおこなってみました。

書籍の改訂を計画されているとの事でしたので、「こういう内容もあると面白いかな」というアイデアとして提供させていただきます。あくまで、一読者としての提案ですので、書籍の内容にそぐわないものであれば、無視していただいて結構です m( )m

具体的なコードは、こちらを参照ください。(「機械学習による予測」以降が新しく追加した内容です。)

ポイントとしては、

というあたりで、いずれも「データとの二乗誤差を最小化する」という意味での最適化を行なっているものの、モデルの構成方法において、制約条件を明示的に取り入れられるかどうかという違いがある点がわかると面白い気がしています。

jiro-iwanaga commented 1 year ago

@enakai00 Issueに気づかず、確認が遅くなってしまい失礼しました。本書の7章まで読んでいただき感謝いたします。

線形モデルとの比較について可視化を含めた実験をいただきありがとうございます。コードを拝見させていただきました。線形予測モデルを考えた際に2次までの項を入れることは考えたことが無かったのでとても面白く読ませていただきました。味わい深いグラフですね。

ご指摘いただいた通り、

の点は、機械学習ではなく数理最適化の枠組みでアプローチするメリットの1つになります。このあたりまで読み取っていただきとても嬉しいです。

本書では初学者向けに執筆しておりますので、機械学習の知識を意識させない&学術的な考察を入れておなかいっぱいにさせたくないという考えがあったので触れておりませんでした。しかしながら、ご指摘の通り「モデルの構成方法において、制約条件を明示的に取り入れられるかどうかという違いがある点」については数理最適化のアピールポイントなので、もっと主張しても良かったなと思い始めました。追記の検討もしてみたいと思います。

せっかくなのでもう1つポイントを紹介させてください。 本書の数理モデルは単調性の制約を入れておりますが、Recency と Frequency の2次元に制約がはいっています。そのため、確率値x[r,f]は、『x[r-1, f]、x[r+1,f]、x[r,f-1]、x[r,f+1]』の四方の確率値によって制限されます。これは正則化も同時に行われていることになります。機械学習では特定の目的でl1、l2などの正則化項を目的関数に入れてモデルを緩く制限しますが、数理最適化の枠組みに持ち込むことで様々な目的の正則化を制約に表現できる点はとてもよいメリットです。正則化の制約は入ったおかげで学習データ数が少ない場合でも(一般的な機械学習と比較して)過剰適合を回避することができます。実務的な話をするなら巨大な問題は機械学習でアプローチするしかないけど、小さな問題でも特殊な制約(単調性など)が入っていて、サンプル数が少ないような問題では数理最適化によるアプローチをとることで改善する問題がある、ということになります。

以下、参考文献になりますので興味がございましたら御覧ください。

また、「単調性や凸性に関する制約条件を明示的にモデルに取り入れることができている」に関心をお持ちでしたら次の論文も新鮮かもしれません。以下は、確率分布の推定を数理最適化モデルを用いて推定するアプローチをとっています。

以上、ご確認お願いいたします。