内容紹介
非線形最適化の数理を、詳しく丁寧に解説! Pythonによる実装例も学べる!
コンピューター(計算機)の性能向上により計算速度が上がる一方で、計算資源を効率的に利用する必要性も高まっています。本書では、非線形最適化に焦点を当て、そのうちの無制約最適化・制約付き最適化それぞれについて、代表的なアルゴリズムとその収束に関する数理を、丁寧に詳しく解説します。機械学習(人工知能)、情報通信、社会科学などの応用の広がりとともに最適化アルゴリズムの研究は日々進んでいますが、非線形最適化アルゴリズムの数理的基礎は、本書でしっかり足固めできます。
また、本書で扱う最適化アルゴリズムの多くに、Pythonによるサンプルコードを付けており、数理と実装を一挙両得に習得できるよう構成しました。
予備知識として、大学教養レベルの線形代数と微分積分のひととおりの知識を想定していますが、付録で本書の通読に必要な知識をまとめるとともに、本文中ではできるだけ省略なしに数式を展開し、読みやすさにも配慮しています。
このような方におすすめ
・数理最適化を実務や研究で利用するデータサイエンティスト、データエンジニア
・非線形最適化の数理をしっかり学びたい学生、研究者
目次
主要目次
第1章 序論
第2章 無制約最適化の基礎
第3章 最急降下法と共役勾配法
第4章 ニュートン法と準ニュートン法
第5章 特別な無制約最適化問題に対するアルゴリズム
第6章 制約付き最適化の基礎
第7章 制約付き最適化問題に対するアルゴリズム
第8章 スパース最適化
付録A 本書で用いる数学の基礎事項
付録B 演習問題の解答
参考文献
詳細目次
第1章 序論
1.1 数理最適化問題とは
1.2 非線形最適化問題の例
1.2.1 無制約最適化問題の問題例
1.2.2 制約付き最適化問題の問題例
1.2.3 スパース最適化の問題例
第2章 無制約最適化の基礎
2.1 最適性条件
2.2 反復法の原理
2.2.1 反復法のアルゴリズム
2.2.2 収束性に関連する用語
2.2.3 収束性に関連する仮定
2.3 直線探索
2.3.1 直線探索条件
2.3.2 ステップ幅の選択アルゴリズム
2.3.3 直線探索に関連する性質
2.4 サンプルコード
2.4.1 直線探索のサンプルコード
演習問題
第3章 最急降下法と共役勾配法
3.1 最急降下法
3.1.1 最急降下法の収束性
3.1.2 最急降下法の加速法
3.2 共役勾配法
3.2.1 線形共役勾配法
3.2.2 前処理付き線形共役勾配法
3.2.3 非線形共役勾配法
3.2.4 非線形共役勾配法の改良
3.3 サンプルコード
3.3.1 最急降下法と非線形共役勾配法のサンプルコード
3.3.2 最急降下法と非線形共役勾配法の挙動の比較
演習問題
第4章 ニュートン法と準ニュートン法
4.1 ニュートン法
4.1.1 ニュートン法
4.1.2 非厳密ニュートン法
4.2 準ニュートン法
4.2.1 準ニュートン法の概論
4.2.2 近似行列の更新公式
4.2.3 BFGS法の収束性
4.2.4 準ニュートン法の改良
4.3 信頼領域法
4.3.1 信頼領域法の概論
4.3.2 信頼領域法の収束性
4.3.3 ドッグレッグ法
4.3.4 Hebden法
4.3.5 Steihaug法
4.4 サンプルコード
4.4.1 ニュートン法と準ニュートン法のサンプルコード
4.4.2 信頼領域法のサンプルコード
4.4.3 局所的収束率を検証
演習問題
第5章 特別な無制約最適化問題に対するアルゴリズム
5.1 大規模な無制約最適化問題に対する準ニュートン法
5.1.1 Barzilai-Borwein法
5.1.2 記憶制限付き準ニュートン法
5.1.3 メモリーレス準ニュートン法
5.2 非線形最小二乗問題の解法
5.2.1 Gauss-Newton法
5.2.2 Levenberg-Marquardt法
5.2.3 構造化準ニュートン法を用いた解法
5.2.4 Huschens法
5.3 サンプルコード
5.3.1 記憶制限付きBFGS法のサンプルコード
5.3.2 非線形最小二乗法のサンプルコード
演習問題
第6章 制約付き最適化の基礎
6.1 制約付き最適化問題の最適性条件
6.1.1 一般的に記述された制約付き最適化問題の最適性条件
6.1.2 等式制約付き最適化問題の最適性条件
6.1.3 不等式制約付き最適化問題の最適性条件
6.1.4 等式・不等式制約付き最適化問題の最適性条件
6.2 双対定理
第7章 制約付き最適化問題に対するアルゴリズム
7.1 ペナルティ法
7.2 拡張ラグランジュ法(乗数法)
7.3 逐次2次計画法(SQP法)
7.3.1 SQP法
7.3.2 信頼領域SQP法
7.4 主双対内点法
7.4.1 中心化KKT条件とバリアパラメータ
7.4.2 主双対内点法の外部反復と内部反復
7.5 サンプルコード
7.5.1 ペナルティ法のサンプルコード
7.5.2 拡張ラグランジュ関数法のサンプルコード
7.5.3 SQP法のサンプルコード
7.5.4 主双対内点法のサンプルコード
演習問題
第8章 スパース最適化
8.1 スパース最適化とは
8.2 スパースモデル
8.3 近接写像
8.4 近接勾配法
8.5 加速付き近接勾配法
8.6 ニュートン型近接勾配法
8.7 交互方向乗数法
8.8 サンプルコード
8.8.1 近接勾配法と加速付き近接勾配法のサンプルコード
8.8.2 ニュートン型近接勾配法のサンプルコード
8.8.3 交互方向乗数法のサンプルコード
演習問題
付録A 本書で用いる数学の基礎事項
A.1 線形代数・微積分に関連する事項
A.1.1 線形代数に関連する事項
A.1.2 多変数関数の微積分に関する事項
A.2 集合に関する事項
A.3 凸性に関する事項
A.4 劣微分・劣勾配の性質
付録B 演習問題の解答
参考文献
続きを見る