こんにちは。光学、光でのお困りごとがありましたか?
光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。このページでは、Zemaxコミュニティで注目されているトピックから、OpticStudio21.1から試験的に搭載されている新しい最適化アルゴリズム、DLSXとPSDに関するディスカッションを取り上げます。
Zemaxコミュニティについては、こちらのページ で概略を説明しています。
このページの使い方
このページでは、Zemaxコミュニティに投稿されたトピック中から、よく参照されているもの、コメントが多いもの、筆者が気になったものを取り上げて紹介します。よくある疑問や注目されているトピックについての情報を発信することで、何かしらの気づきとなれば幸いです。
DLSX / PSD 新しい最適化アルゴリズム (New Optimization Methods)
トピックへのリンク: 新しい最適化手法
トピックのタイトルにもなっているDLSX、PSDは、OpticStudio 21.1から試験的に搭載されている、新しい最適化アルゴリズム2つの名前です。21.1のリリースノート(Zemaxコミュニティ内の投稿) にもその存在は記載されています。しかし、情報ははっきり言ってこれだけです。これらの最適化方法がどのようなものなのか、どう役に立つのかが分かりません。機能名は”ローカル最適化”だけど、説明文の冒頭では”グローバル最適化で使用できる”と記載されています。。。
質問の内容は、これら新しい最適化が従来のDLSに対して優れているシチュエーションを訪ねるものでした。確かに、アルゴリズムの詳細は分からないまでも、使いどころは知っておきたいです。
DLSX、PSDに関するZemax開発部門のコメント
ディスカッションの内容に入っていく前に、ZemaxのThomasさんとAlissaさんから、DLSXとPSDに対するZemax開発部門からのコメントが共有されました。参考までに、日本語に直訳してみましたが、筆者の理解不足のため不正確かもしれません。ディスカッションを考察するうえで、ベースとなる情報になります。
DLSX (Streamlined DLS)
「既存のDLS (Damped Least Square: 減衰最小二乗法)と似ていますが、いくつかの点で挙動が合理化されています。例えば、”自動”サイクルモードで、DLSでは再スタートするような場合でも、再スタートしません。DLSXはDLSとは異なるダンピングスケジュールと、ラインステッピングアルゴリズムを使用します。この方法は、メリットファンクションがスムーズなときに有効で、DLSだと探索できるより良い解を気にすることなく、できるだけ早くに求めている結果が得られます。」
PSD (Pseudo-Second Derivative)
「PSD (疑似二次微分)はDLSXの修正版です。メリットファンクションのローカル最小値の近くで疑似二次微分を使用することで、最適化中のダンピングファクタ(減衰係数)のランプダウン(減少)を加速します。疑似二次微分を使用するアイデアは、Don Dilworthの論文から引用していますが、最適化のプロセスの大部分はDLSXに依存した実装であり、OpticStudio独自にものになっています。原理的には、疑似二次微分を導入することの効果として、最適解近くでの収束が早くなる可能性があります。」
「PSDは基本的にDLS、DLSXと似たローカル最適化手法ですが、ローカル最適解への経路がそれらとは異なります。もし解空間に複数のローカル解がある場合は、DLSでは見つけられなかった解に到達する可能性があります。」
従来のDLS (Damped Least Square)との関係性
「ほとんどのケースで、DLSは最適な選択肢になります。これはむしろ、これまで提供していたDLS自体の堅実性を示す結果と言えます。新しいDLSXとPSDは、DLSが行き詰まるようなケースのソリューションになる可能性があります。ただ、これはあくまで希望的予測であって、これまでの社内検証においてこの効果を実証する結果はありません。」
ディスカッションの内容
DLSXとPSDのメリットが感じられない?
Thomasさん、Alissaさんが共有してくれた開発部門のコメントから、新しい最適化アルゴリズムの特徴は「DLSの微調整により、より早い時間で最適化が収束する(=少ないサイクル数で停止する)。一方で、DLSの最適よりは劣る結果で停止する」と読み取れます。Markさんは、従来のDLSと最適化の結果と要した時間を比較した結果、残念ながらその特徴は確認できず、DLSの代わりにDLSXとPSDを使うメリットは見いだせないことを共有しました。
ノンシーケンシャルの最適化でDLSXは効果あり?でもODでいい
Thomasさんのテストでは、ノンシーケンシャルモードの最適化で、DLSXがDLSを上回る収束の速さを確認しています。が、一般的にノンシーケンシャルモードの最適化で推奨されるODには負けています。ただ、10サイクルでみれば、DLSもDLSXも同じ結果に到達していることから、DLSXは早く最適化を止めることに成功している、と言えます。PSDに関しては、他の3つのアルゴリズムが見つけた最適解に到達できませんでした。
結果として、単純なノンシーケンシャルモードの最適化では、「OD > DLSX > DLS > PSD」にような序列になりそうです。PSDが停止した結果と、他の3つの結果を比較したり、他の設計データの結果を見ないことには結論は出せません。
シーケンシャルの最適化でPSDが効果的な場合も(?)
ZemaxのCsillaさんが、シーケンシャルモードのサンプルファイル、Cooke 40 degree filedで最適化アルゴリズムの比較を行った結果を共有してくれました。ローカル最適化でもグローバル最適化でも、PSDが他よりもわずかに早く収束しました。とはいえ、あまりにも実行時間が短くて、対象とする最適化問題も単純だったことから、これをもってシーケンシャルモードの最適化でDLSXとPSDに優位性があると理解するのは苦しいように思います。Markさんからも、テスト方式を改善すべきというコメントがありました。ODは一般的な結像系の最適化にはあまり適していないので、シーケンシャルモードの最適化では、DLS、DLSX、PSDの比較が妥当だと思います。
Markさんが行ったズームシステムの最適化では、DLSはDLSXとPSDが見つけられない解を見つけることができ、DLSXとPSDはそこに至る前に停止しました。この結果からもDLSの方がアルゴリズムとして優位に見えます。ただ、アルゴリズムの違いによる改善の度合いによっては、DLSXとPSDが早く最適化を停止するという特徴が出ただけ、とも言えます。
特定のファイルで語っては全体を見誤る (コメント from Markさん)
Markさんからのコメントは「OpticStudioソースコードにある最適化コードのパラメータを調整することで、特定のファイルに対する最適化の性能を上げることが可能なのはわかっていました。しかし、その調整は狙ったファイルに対する性能は改善しても、他のファイルに対する性能を劣化させる結果になります。現在のソースコードの設定値は、それらの妥協点です」。
なるほど、最適化の奥深さを感じさせる一言です。最適化コードのパラメータ調整も、最適化アルゴリズムの選択も、最終的な最適化性能はファイルとの相性によって決まってしまうから、特定のファイルの結果を持ってきてどちらが優れているかを議論するのは難しい、ということでしょうか。何か根本的な、どのファイルについても効果が体感できるようなブレイクスルーを期待してのコメントだと思いました(Markさんに肩入れしている自覚あり)。「そのソースコード内のパラメータをユーザ側で調整させてくれませんかね?」といった声も上がっていました。
試験的機能に対するZemaxとユーザそれぞれの意見
新しい最適化アルゴリズムは、私たちユーザにとっては非常に興味深いトピックです。いわずもがな、より優れた設計解により短時間で到達できるならば、それは私たちユーザの生み出す製品・サービスの市場競争力強化につながるからです。同じ理由で、実態のよくわからない新機能の試験に時間と労力を投入するのは、限られたリソースの無駄遣いのリスクがあるので避けたいです。リリースノートをはじめZemaxから提供された情報には、新しい最適化アルゴリズムが何なのかを知る手段がほとんどなかったので、このトピックは大変参考になりました。
Zemaxが最適化の改善に向けた開発に注力しており、試験的にでもまずはOpticStudioに搭載して広く意見を集めたいとする姿勢は望ましいものです。しかしながら、ユーザが業務時間の一部を割いてでも行う試験を期待するのであれば、それを促す情報が必要です。どのくらい情報が必要かを定量的に示すのは難しいですが、自分の上司に新機能の試験に工数を使うことを説明・説得できる程度には欲しい(笑)。
Zemaxとユーザの意見で共通しているのは、「どんな高尚なアルゴリズムを搭載しているかは大きな問題ではなく、できるだけ短時間で筋の良い設計解に収束してくれるアルゴリズムが良いアルゴリズム」です。このトピックで共有された開発部門からのコメントは、やはりリリースノートに記載されていてほしかったと思います。望むらくは、Zemax内部で実施されたかもしれない、最適化アルゴリズムの比較結果があると良かったです。別に、「DLSXとPSDの方が優れた結果に到達した実績」は必須ではないです。「こういうサンプルファイルで比較したけど、今のところDLSの方が優れていました」みたいな結果でも、何もない現状よりは断然ましです。最終的にどのアルゴリズムを使用するかはユーザ側が判断するので、必要なのはその判断に至るまでの検討をサポートする情報です。
筆者の個人的な意見
以上、コミュニティ内で熱い(?)議論が交わされたOpticStudioの新しい最適化アルゴリズムについて振り返りました。筆者が個人的にポイントだと思ったのは以下の通りです。
- 新しい最適化アルゴリズムは、より良い設計を見つけるというよりは、より早く収束する時間的なメリットが大きい。アルゴリズム選択よりも、まずはメリットファンクションの設計に注力した方が良い結果を得られそう。
- DLSでの最適化が停滞して困っている場合、アルゴリズムの違いからPSDの方が最適化が動き出す可能性が高い。
- DLS自体の性能が高いので、ローカル最適化でも数時間かかるような複雑な設計でない限りはDLSでOK。
まとめ
このページでは、Zemaxコミュニティに投稿された「新しい最適化アルゴリズム DLSXとPSD」をトピックに取り上げました。DLSXもPSDも、従来のDLSをベースに開発された最適化アルゴリズムで、原理的には収束性に優れている可能性があります。現在のところ、DLSよりも優れた結果を示す例は確認されていませんが、より複雑な最適化(より複雑な光学系、多量の変数、多量のオペランド、多量のコンフィグレーション)でのストレステストによって新たな知見が得られることが期待されます。果たして、それを試験するのは、Zemaxのタスクでしょうか、私たちユーザのタスクでしょうか。
コメント