OptNet: Differentiable Optimization as a Layer in Neural Networks https://arxiv.org/abs/1703.00443 ニューラルネットの層としてQPを解く層を導入するという話。入力がQP(二次計画)の各係数等になっていて、出力がそのQPの最適解となるような層。当然、バックプロパゲーションはどうするんだという話になるけれど、KKT条件からうまく勾配を計算できるようになっている。また、ミニバッチで学習する際に沢山のQPインスタンスを解かないといけなくなるけれど、Gurobi等の既存のQPソルバは個々の問題を解くのは速くても沢山の問題を解くのは大変なので、GPUベースで複数の問題をバッチで解くソルバを実装。 応用としてはサイズ縮小版の数独ソルバの(ルールを与えない状態からの)学習など。 いわば「最適化問題」を学習してるとも言えるわけで、無茶苦茶面白いなぁ。