量子コンピュータ時代のプログラミングセミナー～ ブラックボックス最適化による機械学習の特徴量選択・コスト削減・精度向上 ～14:00 開始予定
マイク、カメラをOFFにしてしばらくお待ちください

事前準備がお済みでない方は、この時間にお済ませください(事前準備の詳細はセミナーのご案内メールをご参照ください)
Zoomの表示名は、セミナー申し込み時のお名前としていただけますようご協力お願いいたします
Copyright© Fixstars Group

量子コンピュータ時代のプログラミングセミナー～ブラックボックス最適化による機械学習の特徴量選択・コスト削減・精度向上～

Copyright© Fixstars Group本日の予定
第一部

第二部

第三部

• 本セミナーのゴール• 組合せ最適化の基本•

ブラックボックス最適化とは• 数の分割ハンズオン•

FMQAの概要とフロー•

機械学習の特徴量選択ハンズオン• 会社紹介• Fixstars Amplify の紹介• 組合せ最適化事例• ワークショップ事前準備
•

•

問題の説明

•

FM

•

FMQA

まとめ

質問は随時 Zoom の Q&A へお願いします
Copyright© Fixstars Group3

本セミナーのゴール
組合せ最適化に関する次の項目を実感していただく

身の回りに組合せ最適化問題は多い。一方で、複雑で非線形な物理・社会現象の場合、組合せ最適化に必要な定式化が困難なものもある。



機械学習と量子アニーリング・イジングマシンを活用するブラックボックス最適化により、複雑現象に対する最適化を実施可能。

ブラックボックス最適化を Fixstars Amplify により実施できる。

質問は随時 Zoom の Q&A へお願いします
Copyright© Fixstars Group

4

会社紹介

Copyright© Fixstars Groupフィックスターズグループの基本情報
会社名

株式会社フィックスターズ

本社所在地

東京都港区芝浦3-1-1 msb Tamachi
田町ステーションタワーN 28階

設立

2002年8月

資本金5億5,446万円

社員数（連結）292名（2023年9月現在）
キオクシア株式会社
ルネサスエレクトロニクス株式会社

上場区分

東証プライム（証券コード：3687）

代表取締役社長

三木 聡

主なお客様

トヨタグループ（トヨタ自動車株式会社・
豊田通商株式会社・株式会社デンソー）

みずほ証券株式会社
キヤノン株式会社

グループ会社
2021/10/1 設立
Fixstars Solutions, Inc.

(株) Fixstars Amplify

完全子会社
米国での営業及び開発を担当(株) Fixstars Autonomous Technologies
株式会社ネクスティ エレクトロニクスとのJV
自動運転向けソフトウェアを開発(株) Sider(株) Smart Opinion

オスカーテクノロジー (株)完全子会社
開発支援SaaS「Sider」を運営

連結子会社
乳がんAI画像診断支援事業を運営

連結子会社
ソフトウェア自動並列化サービスを提供

Copyright© Fixstars Group

完全子会社
最適化と量子コンピューティングのクラウド事業を運営

6

フィックスターズの量子技術への取り組み
次世代技術を先取りし今ある課題の解決を目指す

2018年
NEDOのプロジェクトに採択「イジングマシン共通ソフトウェア基盤の研究
開発」

2022年
5月： Fixstars Amplify がGurobi, IBM-Quantumをサポー
ト
6月： 東洋経済主催シンポジウム「ビジネスを劇的に変える量子コンピューティングの可能性」に登壇
7月： 累計実行回数1,000万回突破

2021年
2月： 量子アニーリングクラウドサービス「Fixstars Amplify」提供開始
10月： 株式会社 Fixstars Amplify 設立
11月： Q-STAR 量子技術による新産業創出協議会に特別会員として加入

2017年
日本で初めてD-Wave Systems社と提携

2019年
SIPの研究開発に参画「光・量子を活用したSociety 5.0実現化技術：光電子情報処理」
Copyright© Fixstars Group7最適化と量子技術、Fixstars Amplify

Copyright© Fixstars Group

最適化と量子技術、Fixstars Amplifyの対応領域
1. 量子コンピュータ

3. イジングマシン

量子ゲート方式

二値二次多項式模型

古典汎用コンピュータの上位互換。
量子力学の重ね合わせ状態を制御する量子ゲートを操作し、特定の問題を汎用的かつ高速に処理する。

二次の多変数多項式で表される目的関数の組合せ最適化問題 (QUBO)
を扱う専用マシン。

QAOA に よ り 組 合 せ 最 適 化 問 題(QUBO) を取り扱うことが可能。

1

3

量子コンピュータ
IBM/Google/Rigetti/IonQ2
量子アニーリングイジングマシン
富士通/日立/東芝/Fixstars

変数は0,1または±1。統計物理学におけるイジング模型 (磁性体の性質を表す模型) に由来。様々な実装により実現されている。

D-Wave/NEC

2. 量子アニーリング方式
量子焼きなまし法
イジングマシンの一種であり、量子焼きなまし法の原理に基づいて動作する。量子イジング模型を物理的に搭載したプロセッサで実現する。自然計算により低エネルギー状態が出力される。組合せ最適化問題 (QUBO) を扱う専用マシン。
Copyright© Fixstars GroupAmplify AE
9

組合せ最適化
数理最適化問題

量子アニーリング・イジングマシン

 連続最適化問題

Quadratic

二次形

Unconstrained

制約条件なし• 整数計画問題 (決定変数が整数)

Binary0-1整数 (二値)• 0-1整数計画問題 (決定変数が二値)

Optimization

計画（最適化）• 決定変数が連続値（実数など）

 決定変数が離散値 (整数など)

QUBO目的関数 (0-1整数二次計画問題)

𝒇 𝒒 = ෍ 𝑄𝑖𝑗 𝑞𝑖 𝑞𝑗 + ෍ 𝑄𝑖𝑖 𝑞𝑖
𝑖<𝑗𝒇: 目的関数𝒇 𝒒 を最小化するような 𝒒 を求める

𝑖𝒒: 決定変数

𝑸: 係数
Copyright© Fixstars Group

クラウドサービス：Fixstars Amplify
10

組合せ最適化の具体例• お遍路巡り最短経路問題

𝒒• どの順序でお寺を巡ると最短経路でお遍路を達成できるか？

• 以下のような決定変数行列 𝒒 (88x88) を定義• お寺 𝒊 を 𝒋 番目に巡る場合、 𝑞𝑖,𝑗 = 1• そうでない場合、𝑞𝑖,𝑗 = 0• 定式化• 𝒒 とお寺間の距離を用いて、巡回距離 𝒇 𝒒 を定式化

1 番目 2 番目 3 番目

…

88 番目

お寺 1

1

0

0

…

0

お寺 2

0

1

0

…

0

お寺 3

0

0

1

…

0

…

…

…

…

…

…

お寺 88

0

0

0

…

1

求解後の 𝒒 の例• 求解• 𝒇 𝒒 が最小となる 𝒒 の要素の組合せを求解
Copyright© Fixstars Group11

Fixstars Amplify とは– いつでも開発環境 と 実行環境 がセットすぐにプログラミングと実行が出来る– 誰でもハードウェアや専門的な知識が不要
無料で開発がスタート可能
多くの解説、サンプルコード– 高速に

26万ビットクラスの大規模問題の高速処理と高速実行が可能– あらゆる

一般に公開されている全てのイジング
マシンを利用可能
Copyright© Fixstars Group12

Fixstars Amplify の対応マシンの一例
日本電気株式会社 (NEC)

標準マシン は、
• ベンダ各社と個別マシン利用契約なし、• 評価・検証用ベーシックプランなら無料、で利用可能！←「いつでも」、「誰でも」今後も幅広い対応マシンの追加が続々と行われる予定です！←「あらゆる」

Copyright© Fixstars Group13

Fixstars Amplify の内容と特徴•

開発環境：Amplify SDK•

実行環境：Amplify Annealing Engine (AE)

Copyright© Fixstars Group

開発環境：Fixstars Amplify SDK
Fixstars Amplify SDK ならアニーリングのプログラミングが圧倒的に短縮されます
開発環境インストール$ pip install amplify

最適化コード例

Copyright© Fixstars Group15

実行環境：Fixstars Amplify Annealing Engine (AE)NVIDIA GPU V100/A100 で動作• 独自の並列化シミュレーテッド

アニーリングアルゴリズム

WEB経由で計算機能を提供• 社会実装・PoC・検証が加速• Amplify SDK の実装を直ぐに実行可能

商用マシンでは最大規模・最高速レベル• 120,000 ビット（全結合）• 260,000 ビット超（疎結合）※評価・検証用途では無償提供
Copyright© Fixstars Group17

オンラインデモ & チュートリアル

Copyright© Fixstars GroupAmplify デモ

検索https://amplify.fixstars.com/ja/demo

1919様々な分野で利用が拡大しています
住友商事株式会社

700

登録社・組織数: 約

累計実行回数:

4,000万回超Copyright© Fixstars Group20

Fixstars Amplify ユーザー様インタビュー• 業務・研究開発利用

SE

Amplify インタビュー

検索

amplify.fixstars.com/ja/customers/interview• 学術利用SE

Copyright© Fixstars Group21

Fixstars Amplify ご利用プラン

Copyright© Fixstars Group料金のご紹介https://amplify.fixstars.com/ja/pricing
開発支援サービス(個別見積り)

コンサル・システム開発等
数百万円～数千万円

月額利用料
百万円～

定式化や実装を手厚く支援します！
Copyright© Fixstars Group

24

セミナー・トレーニングのご紹介
https://amplify.fixstars.com/ja/news/seminar
お客様の実際の課題解決をご支援するために、無料セミナーや有償トレーニングを提供しています。
無料セミナー・ワークショップ
ビジネス向け、エンジニア向けに分けて開催しています！

企業向けプライベートトレーニング
お客様が抱える実際の課題やデータを使ったカスタムメイド のトレーニングです！

Copyright© Fixstars Group25

ワークショップ
事前準備（事前メールの内容）

Copyright© Fixstars Groupワークショップの事前準備 (1)• 【事前メールに記載】ご自身のPC (ブラウザ上) で Python プログラミングを行います。Google Colaboratory を使うので、事前にログイン出来ることを確認をお願いします（要 Google アカウント）
Google Colab検索

https://colab.research.google.com/• 【事前メールに記載】 Fixstars Amplify ホームページよりユーザ登録の上、無料トークンの取得をお願いします（1分で終わります）
Fixstars Amplify

検索

https://amplify.fixstars.com/

質問は随時 Zoom の Q&A へお願いします
Copyright© Fixstars Group27

ワークショップの事前準備 (2)【事前メールに記載】• 取得されたトークンを用いて、トークンチェック用サンプルコードが動くか確認をお願いします。
https://colab.research.google.com/drive/1bg2Ql3McJck_Sto8uvxtmPUMWtRFhf7a （※URLはZoomのチャット欄を参照）• サンプルコードは閲覧のみ可能な状態です。「ファイル」→「ドライブにコピーを保存」の上、ご自身のトークンを入力してください。その後、Shift + Enterで実行下さい。
! pip install amplify
token = "AE/*****************************" # ご自身のトークンを入力• ご自身のトークン番号は、Amplifyウェブページ →よりご確認いただけます。

• 実行後、以下の結果が出力されればOKです。
result: [q_0, q_1] = [1. 1.] (f = 0.0)
Copyright© Fixstars Group28

ワークショップ
通常の組合せ最適化（ブラックボックス最適化への導入）

Copyright© Fixstars Group

サンプルコード
サンプルコードを開き、「ファイル」→「ドライブにコピー」の上、トークンを入力し実行して下さい。

• 数の分割サンプルコード
https://colab.research.google.com/drive/1bl6BGPwnpd3N0AveoDMGb8egprEdQMqU（※URLはZoomのチャット欄を参照）

質問は随時 Zoom の Q&A へお願いします

Copyright© Fixstars Group30

数の分割問題（概要）• 与えられた 𝑛 個の整数𝑎0 , ⋯ , 𝑎𝑛−1 を二つの集合に分ける。
集合内の数の和が、もう一方の集合内の数の和と等しくなるようできるか?

• NP完全問題: とても難しい問題として知られている → 全通り試すしか方法は無い• 問題のバリエーション• 判定問題: 完全に等しく出来るか？または等しい組合せは何か？

• 最適化問題: 完全に等しいか、または最も惜しい組合せは何か？

Copyright© Fixstars Group31

数の分割問題（具体例と解法の方針）
具体例{2,10,3,8,5,7,9,5,3,2} の10個の数の完璧な分割は見つけられるか？

答え• 存在する• {2,3,5,7,10} と {2,3,5,8,9}• どちらも和は 27• 分割方法は 23 通り存在する (対称を除く）

どうやって解くか？
• ひとつの『数』がどちらの集合に分割されるか全通り試す → 210 = 1024通り
Copyright© Fixstars
Group• 効率のよい厳密な方法は知られていない・・・(もし発見されたら大騒ぎ)

32

33

数の分割問題（定式化）
最適化問題：数の分割において最も惜しい組合せは何か？
• 目的関数{集合1の和} – {集合2の和} の絶対値を最小化• 決定変数数 𝑎𝑖 がどちらの集合に属するかを 𝒔𝒊 で表す• 𝑎𝑖 = { 2,10, 3, 8, 5, 7, 9, 5, 3, 2}• 𝑠𝑖 = {-1, 1,-1, 1,-1,-1, 1, 1, 1, 1}

数理モデル• 目的関数

𝑁−1

𝑓 = ෍ 𝑠𝑖 𝑎𝑖

𝑠𝑖 ∈ −1, +1

𝑖=0
Copyright© Fixstars Groupσ 𝑠𝑖 𝑎𝑖 は、自然と{『1』の集合の和} – {『-1』の集合の和}となる！

数の分割問題（バイナリへの式変形）• 0-1整数二次計画問題への変換• Quadratic Unconstrained Binary Optimization (QUBO) 式
𝑁−1

𝑓 = ෍ 𝑠𝑖 𝑎𝑖

𝑠𝑖 ∈ −1, +1

𝑖=0
𝑁−1

→

෍ 𝑠𝑖 𝑎𝑖2

𝑠𝑖 ∈ −1, +1

σ 𝑠𝑖 𝑎𝑖 は、自然と{『1』の集合の和} – {『-1』の集合の和}となる！

絶対値を二次式で表す

𝑖=0

𝑁−1

→

෍ 2𝑞𝑖 − 1 𝑎𝑖

2𝑞𝑖 ∈ 0, +1±1をバイナリで表す

𝑖=0
Copyright© Fixstars Group34

数の分割問題（定式化の具体例）
問題• 𝑎𝑖 ={2,10,3,8,5,7,9,5,3,2} の10個の数の完璧な分割は見つけられるか？
決定変数• 𝑞𝑖 = 𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , 𝑞6 , 𝑞7 , 𝑞8 , 𝑞9 𝑞𝑖 ∈ 0,1

で集合0又は集合1、どちらに所属するかを

表す

目的関数
𝑁

2

𝑓 = ෍ 2𝑞𝑖 − 1 𝑎𝑖𝑖=1

目的関数を展開
2 2𝑞0 − 1 + 10 2𝑞1 − 1 + 3 2𝑞2 − 1 + 8 2𝑞3 − 1 + 5 2𝑞4 − 1𝑓=+7 2𝑞5 − 1 + 9 2𝑞6 −Copyright©
1 + 5Fixstars
2𝑞Group
7 − 1 + 3 2𝑞8 − 1 + 2 2𝑞9 − 1235

数の分割問題（プログラムコード）• 問題の定義と決定変数生成器による決定変数の生成
a = [2, 10, 3, 8, 5, 7, 9, 5, 3, 2]
q = amplify.VariableGenerator().array(“Binary”, len(a))

21. 定式化

2. 実行• 目的関数、𝑓 = σ𝑁𝑖=1 2𝑞𝑖 − 1 𝑎𝑖 、の定式化（①②③は同等）①

f = ((2 * q - 1) * a).sum() ** 2

②

f = 0
for i in range(len(a)):
f += (2 * q[i] - 1) * a[i]f **= 2③

f = amplify.sum((2 * q - 1) * a) ** 2

色々な書き方が出来る

result = amplify.solve(f, client)
得られた目的関数の値03. 結果

各集合の合計値27q = [1, 1, 1, 0, 1, 1, 0, 0, 0, 0], f = 0.0, w = 27
Copyright© Fixstars Group

各数字に対して、集合0か、集合1か36

オンラインデモ & チュートリアル

Copyright© Fixstars GroupAmplify デモ

検索https://amplify.fixstars.com/ja/demo

37
37

組合せ最適化とブラックボックス最適化

Copyright© Fixstars Group38

組合せ最適化とブラックボックス最適化
通常の組合せ最適化

ブラックボックス最適化• 課題に対し、 2次定式化 (QUBO) を実施• 課題が複雑で直接の定式化が不可能。

• 数の分割例) 最も計測精度が高くなるセンサー群の配置は？

𝑓 = Σ 2𝑞𝑖 − 1 𝑎𝑖 2

 実験かシミュレーション（コスト大）• 生産計画最適化
𝑓 = ΣΣ Σ𝑎𝑖 𝑝𝑖 𝑞𝑚,𝑖,𝑡 + ΣΣ𝑏𝑖 𝑠𝑖 𝑞𝑚,𝑖,𝑡 𝑞𝑚,𝑖−1,𝑓 ⋯• シミュレーションや実験の試行回数の削減• TSP問題（お遍路巡り最短経路探索）

 シミュレーションや実験が楽になる

𝑓 = ΣΣΣ𝑑𝑖,𝑗 𝑞𝑛,𝑖 𝑞𝑛+1,𝑗 ⋯• QUBO式に対し、直接アニーリングを行う（量子アニーリング・イジングマシン）• 逆問題に対するアプローチとしても適用化例) ある計測値を実現する実験条件を見つける

Copyright© Fixstars Group39

FMQAの紹介

Copyright© Fixstars Groupブラックボックス最適化

数理最適化
ブラックボックス最適化

目的関数値 𝒇 𝒙 のみ観測可能• 目的関数の形状や勾配などは何も分からない。

機械学習＋
量子アニーリング／イジングマシン

目的関数の評価回数に限りがある• 入力集合 Ω が有限集合であっても全検索できない。
イメージ• 5種類の材料から、いくつかの材料を選択・合成し、最も電気抵抗の小さな物質を作る。

• 決定変数（材料の選択肢）𝒙 ・・・ 5桁の01ビットでどの材料を選択するかを記述
𝒙 = [1,0,0,0,0], [1,1,0,0,0], [1,0,1,0,0], ⋯ , [1,1,1,1,1] → 25 − 1 通り• 目的関数 𝑓 𝒙 = 合成物質の電気抵抗（実験又は数値シミュレーション）
Copyright© Fixstars Group41

ブラックボックス最適化アプローチ

数理最適化

ブラックボックス関数 𝑓 𝒙 に対して、以下サイクルを繰り返す（実験・シミュレーション）（フローはベイズ最適化に似ている、本質は異なる）

ブラックボックス最適化
機械学習＋
量子アニーリング／イジングマシン① 初期教師データを構築（𝑁0 回の目的関数の評価）② 教師データからモデル関数 𝑔 𝒙 を構築③ モデル関数 𝑔 𝒙 が最小となる点 ෝ
𝒙 を推定④ 目的関数 の評価結果 ෝ𝒙, 𝑓 ෝ
𝒙②～④を 𝑁 回繰り返す

を教師データに追加

実験
ミュレーション

課題： 1. 𝑔 𝒙 の構築？
2. 𝑔 𝒙 最小化を実現するෝ
𝒙 の推定？
Copyright© Fixstars Group

Factorization Machine（機械学習モデル）
K. Kitai, et al., Phys. Rev. Res.
学習モデルをQUBOとしてAmplifyで求解42(2020).
T. Inoue, et al., Opt. Express (2022).

ブラックボックス最適化アプローチ

数理最適化

ブラックボックス関数 𝑓 𝒙 に対して、以下サイクルを繰り返す（実験・シミュレーション）

ブラックボックス最適化
機械学習＋
量子アニーリング／イジングマシン（フローはベイズ最適化に似ている、本質は異なる）① 初期教師データを構築（𝑁0 回の目的関数の評価）② 教師データからモデル関数 𝑔 𝒙 を構築

D

初期教師データ構築のための評価（例：ランダム探索）②～④を 𝑁 − 𝑁0
回繰り返す

③ モデル関数 𝑔 𝒙 が最小となる点 ෝ
𝒙 を推定④ 目的関数 の評価結果 ෝ𝒙, 𝑓 ෝ
𝒙

最適化サイクル中における評価を教師データに追加

実験
ミュレーション

最適化サイクルと共に最適化点近傍の「良質」データが徐々に蓄積

課題： 1. 𝑔 𝒙 の構築？
2. 𝑔 𝒙 最小化を実現するෝ
𝒙 の推定？
Copyright© Fixstars Group

Factorization Machine（機械学習モデ
ル）
学習モデルをQUBOとしてAmplifyで求解43

獲得関数としての Factorization Machine (FM)• モデル関数 𝑔(𝒙) に機械学習モデルの一種である Factorization Machine (FM) を用いると、次のように変数 𝒙 に対する2次式での記述ができる。
𝑛𝑛𝑔 𝒙 𝒘, 𝒗 = 𝑤0 + 𝒘, 𝒙 + ෍ ෍ 𝒗𝑖 , 𝒗𝑗 𝑥𝑖 𝑥𝑗
𝑖=1 𝑗=𝑖+1𝑛𝑘

1= 𝑤0 + ෍ 𝑤𝑖 𝑥𝑖 + ෍
2
𝑖=1

𝑓=1

𝑛

෍ 𝑣𝑖𝑓 𝑥𝑖𝑖=12𝑛

 QUBO式

2 2− ෍ 𝑣𝑖𝑓𝑥𝑖
𝑖=1• 𝑘 はハイパーパラメータ、 𝒘 及び 𝒗 は FM 学習後に取得される FM パラメータ。
• FM パラメータ数は 𝑘 に依存。𝑘 = 𝑛 のときは QUBO の相互作用項と同じ自由度がある一方、 𝑘 を小さくすることでパラメータ数を減らし過学習を抑制する効果• このようなブラックボックス最適化手法を FMQA と呼ぶ場合がある。
Copyright© Fixstars GroupK. Kitai, et al., Phys. Rev. Res.
(2020).
T. Inoue, et al., Opt. Express (2022).

44

ブラックボックス最適化 活用例
材料分野に限らず、幅広い分野へ適用可能

Copyright© Fixstars Groupブラックボックス最適化 活用例• デモ・チュートリアルページで公開の活用例及び非公開の活用例

Amplify デモ

検索https://amplify.fixstars.com/ja/demo

機械学習への
応用

FMQA入門

物理・材料

プラント工学

流体工学

Copyright© Fixstars Group

交通制御

機械学習

47

ブラックボックス最適化
1. 機械学習 (FM) ハンズオン
2. FMQA ハンズオン

Copyright© Fixstars GroupSVMによるMNIST画像認識モデル

Copyright© Fixstars Group49

ブラックボックス最適化のデモプログラム ― 機械学習 (FM)『マスク』を入力とし、『マスクに従って削減された特徴量に基づく SVM モデルの精度』を予測するFMモデル
https://colab.research.google.com/drive/1WmXIWVAQ-2MasS7XU9EE4rXXDb1loqnm

問題設定

最適化サイクルマスクを 𝒙 とすると、ブラックボックス関数 𝑓(𝒙) は、

1. 教師データから獲得関数 𝑔(𝒙) を構築 (FM)𝑓 𝒙 =1. 学習データに基づき、（入力 𝒙 でマスクされない入力特徴量のみを考慮して）SVM 学習
2. テストデータに基づき、（入力 𝒙 でマスクされない
入力特徴量のみを考慮して）学習済みSVMモデ
ルをテスト
3. SVMモデルの評価結果（正答率の負値）を返却

Copyright© Fixstars Group

2. 獲得関数 𝑔(𝒙) が最小となる点 ෝ
𝒙 を推定 (QA)

3. 評価結果 ෝ𝒙, 𝑓(ෝ
𝒙) を教師データに追加↑のサイクルにより、最適化点近傍におけるFMの予測精度が向上し、組合せ最適化により、より良い ෝ
𝒙 の推定が期待される

50

FMデモプログラム 1/6（SVMクラスの実装）• __init__• 引数のマスク率に応じてクラスを初期化• _num_features: 特徴量の総数（28x28=784個）• _num_masked_features: マスクする特徴量の数• generate_random_mask• マスク率を満たすマスクをランダムに生成する関数• train_eval• 与えられたマスクに基づく特徴量で学習を行い、得られたモデルを評価し、モデ
ルの正答率を返却する関数。
Copyright© Fixstars Group51

FM デモプログラム 2/6（ブラックボックス関数の定義）• make_blackbox_func: ブラックボックス関数を生成する関数• blackbox_func: MnistSvm.train_eval
から返却される正答率を(-1)倍して返却つまり、ブラックボックス関数からの返却値は、学習済みSVMモデルのテストデータに対する正答率の負値関数の利用例：• マスク率75%を考慮する場合のブラックボックス関数• 特徴量588個をマスク、それ以外 (196個)をSVMで考慮
Copyright© Fixstars Group52

FM デモプログラム 3/6（FMの定義）• FM モデルを PyTorch で定義する

Copyright© Fixstars Group53

FM デモプログラム 4/6（FMの学習）
FM 学習は、通常の機械学習と同様に進める。教師
データを学習・検証データに分割し、ミニバッチ学習。
• x, y: 教師データ• model: FM モデル（TorchFM）• epochs: エポック（繰り返し）の数• lr:（初期）学習率• scheduler: 学習率スケジューラー

学習後、最も良いモデルに対し、次のような評価を実施

Copyright© Fixstars Group54

FM デモプログラム 5/6（教師データ作成）
教師データを乱数により生成• mnist_svm：MnistSvmクラスインスタンス• n0：初期教師データのサンプル数• blackbox：ブラックボックス関数（実験又はシミュレーション） 𝑓(𝒙)Copyright© Fixstars Group55

FM デモプログラム 6/6（メイン部分）
実際にサンプルプログラムを実行してみましょう。デフォルトの条件から、• FMのハイパーパラメータ (k)• エポック数 (epochs)を変更した場合、真値と予測値の相関係数

及びRMS誤差はどのように変化するでしょうか？

Copyright© Fixstars Group56

ブラックボックス最適化
1. 機械学習 (FM) ハンズオン
2. FMQA ハンズオン

Copyright© Fixstars Groupブラックボックス最適化のデモプログラム
FMQAによる画像分類モデルのための最適特徴量選択
https://colab.research.google.com/drive/12vElYQoIgOJJhDucoUqAs8ktJzolnUK7

問題設定

最適化サイクルマスクを 𝒙 とすると、ブラックボックス関数 𝑓(𝒙) は、

1. 教師データから獲得関数 𝑔(𝒙) を構築 (FM)𝑓 𝒙 =1. 学習データに基づき、（入力 𝒙 でマスクされない入力特徴量のみを考慮して）SVM 学習
2. テストデータに基づき、（入力 𝒙 でマスクされない
入力特徴量のみを考慮して）学習済みSVMモデ
ルをテスト
3. SVMモデルの評価結果（正答率）を返却

Copyright© Fixstars Group

2. 獲得関数 𝑔(𝒙) が最小となる点 ෝ
𝒙 を推定 (QA)

3. 評価結果 ෝ𝒙, 𝑓(ෝ
𝒙) を教師データに追加↑のサイクルにより、最適化点近傍におけるFMの予測精度が向上し、組合せ最適化により、より良い ෝ
𝒙 の推定が期待される58

FMQA デモプログラム 1/3 （アニーリング部分）
学習済みFMモデルに基づき ෝ𝒙 を推定する関数• 決定変数配列の作成• 学習済みFMモデルからパラメータ（重み・バイアス）を取得• パラメータに基づき目的関数のサロゲートモデル 𝑔(𝒙) を作成• サロゲートモデルを制約条件（後述）と合わせて
amplify.Modelを作成• 単に、objective + constraint(x) でも良い
• amplify.solve によりアニーリングを実行• このサイクルにおける ෝ
𝒙 を返却
Copyright© Fixstars Group59

FMQA デモプログラム 2/3 （制約条件の設定）• get_constraint(q)最適マスクを決定する決定変数 𝒙 に基づく以下の制約
条件を返却する関数
制約条件• σ𝑛0 𝑥𝑖 = mnist_svm.num_masked_features

Copyright© Fixstars Group60

FMQA デモプログラム 3/3（メイン部分）
1. train() による FM モデルの学習
2. anneal() によるアニーリング• FM モデル値を最小化するような入力値（マスク）を探索

3. 得られた入力値（マスク）が既存の場合の処理
4. 得られた入力値（マスク）によるブラックボックス関数の評価• マスク適用後の学習データを使ってSVMモデル学習• マスク適用後のテストデータを使ってSVMモデル評価• 正答率の負値を返却

5. 新しい入出力ペアをデータセットに追加

Copyright© Fixstars Group61

デモプログラムの実行• 全特徴量 (784個) を考慮した場合のモデル評価• accuracy_score=0.905• FMQA の基本条件• 初期データ個数：10個• FMQAの最適化サイクル数：20回• 特徴量：784個→196個（75%減）• 実行時間• およそ5分

Copyright© Fixstars Group（上）最終的に得られたマスクをいくつかの手書
62
き画像に重ねた例と（下）最適化の履歴

FMQA デモプログラムの実務での活用方法
基本的に、blackbox() を変更する。必要に応じて、現在の教師データの出力などを追加。

• 例①：blackbox() 内で特徴量選択ではなく、枝刈りやデータ選択、ハイパラチューニング等を実施し、学習済みモデルの評価結果が最適になる様に手法を調整• 例②：blackbox() 内でシミュレーションを呼び出し、後処理、その戻り値を最小化するように最適化。

• 例 ③ ： blackbox() 内 で 実 験 を 行 う 。 つ ま り 、 1 回 のFMQA で推定された探索候補 ෝ
𝒙 を対象に実験し、結果を教師データに追加、次のFMQA 試行を行う。

• ℎ 𝒙 を最大にするような入力 𝒙 を推定する場合は、1/ℎ 𝒙や −ℎ 𝒙 などを目的関数 𝑓 𝒙 とする。
Copyright© Fixstars Group63今後についてぜひ、デモ・チュートリアルにあるサンプルコードにも挑戦してみてください！
一般的な組合せ最適化問題
目的関数のみで定式化

制約条件のみで定式化

ブラックボックス最適化問題

目的関数 + 制約条件

概要

材料探索

翼型最適化

信号機制御

困った時はドキュメンテーションを！

https://amplify.fixstars.com/docs/amplify/v1/index.html

Copyright© Fixstars Group64

今後のセミナーの予定
今後も定期的に無料セミナーを開催します！
2024/8/22「ブラックボックス最適化（機械学習）」

2024/9/25「ブラックボックス最適化（材料探索）」

2024/10/15「シフト最適化」

・はじめに
・会社紹介
・Fixstars Amplifyの紹介
・ブラックボックス最適化のワークシ
ョップ・Wrap Up・事例のご紹介
・今後の進め方
・Q&A

・はじめに
・会社紹介
・Fixstars Amplifyの紹介
・ブラックボックス最適化のワークシ
ョップ・Wrap Up・事例のご紹介
・今後の進め方
・Q&A

・はじめに
・会社紹介
・Fixstars Amplifyのご紹介
・経路最適化のワークショップ
・Wrap Up・事例のご紹介
・今後の進め方・Q&A(AnnealingEngine)

ご質問・ご不明点がありましたら、お問い合わせフォームでご連絡下さい
https://amplify.fixstars.com/ja/contact
Copyright© Fixstars Group

65

Q&A

Copyright© Fixstars Group

66