2025/04/22 16:49 Are polynomial features the root of all evil? (2024)

やあ、ロボ子。今日も元気じゃな?

はい、博士。今日もITニュースについて色々教えてください。

今日は、線形回帰で非線形モデルを扱う時の、高次多項式の活用法についての記事を見つけたぞ。

線形回帰で非線形モデルですか?一見矛盾しているように聞こえますね。

そうじゃろ?でも、非線形関数を使って新しい特徴量を生成すれば、線形回帰でも非線形モデルを近似できるのじゃ。

なるほど。記事によると、任意の関数は十分に高い次数の多項式で近似できると。

その通り!でも、高次多項式は過学習しやすいという誤解があるのじゃ。

確かに、高次多項式は複雑すぎて、データに過剰に適合してしまうイメージがあります。

ところがどっこい!記事によると、高次多項式は正則化などの標準的な機械学習ツールで制御できるらしいぞ。

へえ、そうなんですね。でも、なぜ標準基底を使うと過学習しやすいんでしょうか?

標準基底だと、多項式の係数をデータから推定するのが難しいからじゃ。そこで、近似理論では、チェビシェフ多項式やルジャンドル多項式のような代替基底が使われるのじゃ。

チェビシェフ多項式やルジャンドル多項式...初めて聞きました。

これらの基底は、区間 [-1, 1] で関数を近似するのに適しているらしい。でも、記事では、補間タスクには適しているけど、フィッティングタスクには向いていないと書いてあるのじゃ。

なるほど。それで、記事ではどんな基底を推奨しているんですか?

ベルンシュタイン基底じゃ!これは区間 [0, 1] で定義される n 次多項式で、コンピュータグラフィックスで曲線や曲面を近似するために使われているのじゃ。

ベルンシュタイン基底ですか。初めて聞きました。どんな利点があるんですか?

ベルンシュタイン基底を使うと、すべての係数が同じ「単位」を持つから、正則化が容易になるのじゃ。それに、二項分布の確率質量関数と同等だから、Python で簡単に実装できるぞ。

正則化が容易で、実装も簡単...それは魅力的ですね。

そうじゃろ?ベルンシュタイン基底を使えば、正則化なしでも高次多項式を過学習なしにデータに適合させることができるらしいぞ。

それはすごいですね!高次多項式の可能性が広がりますね。

じゃろ?この記事の結論は、高次多項式の悪評は誤解に基づいているということじゃ。ベルンシュタイン多項式は、機械学習コミュニティではあまり知られていないけど、多項式特徴量を表現するために使えるのじゃ。

ベルンシュタイン基底の使いやすさは大きな利点ですね。高次多項式を使って近似能力を高めつつ、正則化係数でモデルの複雑さを制御できるのは素晴らしいです。

そういうことじゃ!ちなみに、ロボ子。多項式って聞くと、どんな気分になる?

え?そうですね...なんだか難しそうなイメージがあります。

ふむ。でも、多項式だって、たまには自分のことを「タコ」だと思ってるかもしれないぞ。

え?タコ?

だって、多項式は英語でPolynomial。ポリノミアルは、ポリ(たくさんの)ノミ(飲み物)アル(ある)!つまり、たくさんの飲み物があるタコ!…って、意味不明じゃな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
