SGDで機械学習したんですけど、思ったような結果になりません。

モデル1: y = x[0] * w[0]
モデル2: y = x[0] * w[0] + x[1] * w[1]
x[0]はパフォーマンスに影響することが明らかになってるパラメータで、x[1]はゴミかもしれないパラメータです。
モデル1とモデル2を30万個ほどのデータでそれぞれ学習すると、交差検証の結果、training setとtesting setの両方で、モデル2はモデル1に劣る結果が出ました。
つまり過学習すら起きておらず、ちゃんと学習できていないのです。
プログラムが間違っているのでしょうか?それともSGDはこういうものなのでしょうか?

ちなみにちょうど良いハイパーパラメータを設定したL1正則化を付け加えるとモデル1とモデル2のパフォーマンスの差はなくなります。