KanaiYuma-aist

Results 7 issues of KanaiYuma-aist

- NelderMeadSampler に関する docstring と examples を追加しました。 - docstring については NelderMeadAlgorism NelderMeadSampler クラスと、その各メソッドについて Googleスタイル で追加しました。 - examples については example として、通常実行時・並列実行時・enqueue_trial 利用時・sub_sampler 利用時の4種のコードと、tpe・nm単体・sub_sampler=tpe利用時のnm の結果を比較実行するコードを追加しました。

ユーザプログラムが None を返した際に、エラーが出る・想定外の挙動を取る現象を修正しました。 - MOTPE 等の多目的最適化をtype: localで実行した場合、(1.0, None)のような片方の目的関数の結果がNoneだった時に、コード内では (1.0, "None") のように None が str として扱われます。(ファイル読み書きで目的関数の値を渡している都合) - aiaccel/storage/result.py 内の97行目のように np.array((1.0, "None")) を実行した際に、"None" が str である影響で 1.0 も str 扱いされて、その後の比較処理の部分でエラーになっていました。 - type:...

- NelderMeadAlgorithm 内で search_space を正規化して扱うように変更しました - NelderMeadAlgorithm の引数を search_space から、次元数を扱う dimension に変更しました - 探索範囲外を弾く(結果をinf扱いにする)処理は NelderMeadAlgorithm 内で行うように改修しました - NelderMeadSampler 内に、正規化表現と本来の search_space とを相互変換する処理を追加しました - それら変更に伴い、テストコードを改修しました

- NelderMeadSampler に初期単体生成手法を導入しました - 手法は下記論文に記載されているもので、初期単体をなるべく大きい正単体 (正 simplex 2パラの場合は正三角形) で生成するコードを利用しています - https://link.springer.com/article/10.1007/s11590-022-01953-y - それに伴い、値比較テストも更新しています

- NelderMeadSampler の再開時の処理を追加しました - 初回実行か再開実行かを判別するために num_trial で内部で trial 数をカウントしています。 num_trial よりも optuna 側の trial 数が進んでいる場合、再開実行と判定して _resumption を呼び出します - _resumption では空回し処理を行っており、NelderMeadAlgorithm 内のイテレータ及び simplex を同様の状態に戻しています。 - この部分の処理時間は 10000 trial の再開処理を行った場合でも数秒程度だったので、途中から空回しする等の処理を行う必要性は薄いと判断します。 - pickle...

- NelderMeadSampler に関する examples を追加しました。 - examples については example として、通常実行時・並列実行時・enqueue_trial 利用時・sub_sampler 利用時の4種のコードと、coco を用いて tpe・nm単体・sub_sampler=tpe利用時のnm の結果を比較実行するコードを追加しました。

v1 に実装していて、v2 に未実装の機能一覧 - WIP