[48] 最適化は下山?DLSとOD_Zemaxコミュニティ注目トピック (10)

OpticStudio

こんにちは。光学、光でのお困りごとがありましたか?

光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。このページでは、Zemaxコミュニティで注目されているトピックから、OpticStudioに以前から搭載されている最適化アルゴリズム、DLSとODに関するトピックを取り上げます。21.1から搭載された新しいアルゴリズム、DLSX、PSDについては、新最適化アルゴリズムDLSXとPSD_Zemaxコミュニティ注目トピック (9) を参照してください。

Zemaxコミュニティについては、こちらのページ で概略を説明しています。

このページの使い方

このページでは、Zemaxコミュニティに投稿されたトピック中から、よく参照されているもの、コメントが多いもの、筆者が気になったものを取り上げて紹介します。よくある疑問や注目されているトピックについての情報を発信することで、何かしらの気づきとなれば幸いです。

DLSとODの使い分け (OD vs. DLS)

トピックへのリンク: ODとDLSの使い分け

OpticStudioで最適化を実行するとき、最適化のアルゴリズムとして、DLSとODの2つが用意されています。デフォルトでDLSが選択されており、特にシーケンシャルモードではDLSのままで実行する場合がほとんどです。このトピックでは、アルゴリズムの詳細ではなく、一般的な特徴と使いどころについての有用なガイドラインが記載されています。「アルゴリズムを完全なブラックボックス」の状況から少し踏み出して、概要だけでも把握しておくと、最適化を進めるうえで役に立ちます。

ディスカッションの内容

最適化を「下山」でイメージしてみる

DLSとODの使いどころの話の前に、OpticStudioに限らず多くの最適化が何をしているか、ざっくりとした筆者の理解を述べます。サイバネットシステム株式会社様のこちらのページ[1] を参考にしています。

筆者の最適化のイメージは「下山」です。図中のカラフルなうねうねした空間は山脈です。そのある1点に下山者がポンっと降り立ちます。下山者は山を下りて海抜ゼロ地点に帰りたいと思っています。降り立った山の標高は、目標(海抜ゼロ)からの離れ具合です。山の標高は高いほど落ち着かないので、低い位置に移動したいと思いますが、地図がありません。さて、なるべく低い位置に移動するには、どう行動すればよいでしょうか。

図 48-1 最適化は解空間の低い位置に到達するプロセス。サイバネット株式会社様のページより引用。

うねうねの空間(山脈)のことを「解空間」と呼びます。解空間の形状はメリットファンクションエディタに設定されたオペランドが決めます。新しいオペランドを追加したり、重みを調整すると、山脈の形状が変わります。一部の山の高さが変わったり、新しい山が発生したりします。最適化ウィザードで山脈全体の大まかな地形を決定して、トッピングのオペランドで地形を微調整するイメージでしょうか。最適化ウィザードについては、最適化ウィザード_シングレットレンズの設計(OpticStudio入門) (11 fin) も参照してください。

下山者は山脈の上空をヘリコプターに乗って飛行しています。この上空の空間のことを「設計空間」と呼びます。ヘリコプターから山脈の形状は見えませんが、山脈のある地点に降り立ちます。下山者を下すときのヘリコプターの位置が下山(最適化)のスタート地点になります。この時初めて、下山者は自分が降り立った地点の標高を知ります。この標高が、メリットファンクション(評価関数)に相当し、海抜ゼロメートルからの差分を表します。メリットファンクションについては、最適化の基本3ステップ_シングレットレンズの設計(OpticStudio入門) (10) も参照してください。

図 48-2 実際の最適化はうねうねの解空間の形状を知ることができない。

下山者は標高を知ることはできますが、地図を持っていません。その状況でも、なんとか低い位置を目指して進む必要があります。どの方向に、どのくらいの歩幅で進むか決める必要があります。このときの下山者の思考パターンが最適化アルゴリズムです。もっともよく使われる思考パターンが「自分の立っている地点の傾斜を見て、低くなっている方向に進んでいこう」で、立っている地点の勾配をヒントにする方法です。他にどんな方法があるでしょうか。例えば、初期値を起点にして東西南北の4方向に100mずつ進んで、一番低い位置になったところに移動する、というのも考えられます。山脈の形状を知ることができないので、傾斜を下がっていけば海抜ゼロにたどり着けるのか、たくさんの山で構成されていて、その間の谷にはまってしまっているのか、下山者は知ることができません。

しばらく進むと標高はゼロでないけれど、比較的安定した地点に到達することができました。これを「局所解、ローカル解」と呼びます。そこで下山を終えることもできます。そのとき、突如山脈の形状が変わってしまいました。設計者がメリットファンクションエディタを編集したことで、解空間(山脈)の形状が変わりました。さらに、目の前には新しい下山ルートの探索方法を記載した本が落ちています。設計者がこれまでとは異なる最適化アルゴリズムを適用しました。これによって、下山者はさらに標高の低い位置に到達できるようになりました

と、こんなイメージです。最適化は私たち設計者のちょっとした調整作業や選択で、大きく結果を変える可能性がある、というお話でした。

DLSに対するコメント

DLSはDamped Least Squareの頭文字をとったもので、日本語だと減衰最小二乗法と言います。下山の話で言えば、勾配をヒントに歩みを進める最適化アルゴリズムで、数値微分を計算してより小さなメリットファンクションになる方向を見つけ出します。

DLSは光学設計において多用される最適化アルゴリズムです。シーケンシャルモードのメリットファンクションは連続的です。これは、山脈の表面がツルっとしていること意味します。変数の微小な変化(設計空間のわずかな移動)はメリットファンクションの微小な変化になります。この特性により、最適化を適切な方向に誘導します。シーケンシャルモードの最適化アルゴリズムとして、DLSが推奨されます

ODに対するコメント

ODはOrthogonal Descentの頭文字をとったもので、日本語だと直交降下法と言います。変数の直交化を使用するアルゴリズムで(白目)、メリットファンクションを減少させるために設計空間を離散的にサンプリングして、各地点で得られるメリットファンクションを参考にしてより小さくなる方向を見つけ出します。

照明設計などのノンシーケンシャルモードの光学系のような解空間がノイジーな場合はODの方が優れています。これは、山脈の表面がざらざらしていることを意味します。表面に石が落ちていると、山の地形としては下がっているはずなのに、そこに足がかかると上っているように感じられます。ノンシーケンシャルモードのメリットファンクションは多量の光線本数の結果から算出されるので、どうしてもノイズが発生します。設計空間を移動させたとき、連続的にメリットファンクションが動かない場合があるので、勾配をヒントにするDLSは相性が良くありません。ノンシーケンシャルモードの最適化アルゴリズムとして、ODが推奨されます。

ODもDLSも、アルゴリズムそのものについては光ラーニングでは扱えませんので、ご容赦ください。

公差解析ではODがおすすめ

最適化を使用する場面として、公差解析のコンペンセータの調整があります。公差解析やコンペンセータについては、光ラーニングでも取り上げたいと思います。

公差解析のコンペンセータを最適化する場合、「近軸焦点」、「すべて最適化 (OD)」、「すべて最適化 (DLS)」から選択します。近軸焦点でない場合、DLSとODのどちらかを選択する必要があります。Markさんは、ODを推奨しています。理由は以下の通りです。

「公差解析ではODが優位になる理由は、①ODはより少ない変数用に設計されている。②ODはローカル最適解が初期値の近くにあることが保証されているときに優れている、の2つです。ちなみに、この2つの理由は、ノンシーケンシャルモードの最適化で触れた、ODのノイズ耐性やメリットファンクションの非連続耐性とは関係ありません。

ちなみに、「すべてを最適化 (DLS)」を選択しても、最初のサイクルでODを使って、そのあとDLSでの最適化が実行されます。最初にODを実行するのは、ODが大まかな調整に優れているからです。DLSがODよりも優れているケースを発見できなかったので、ODだけあればよかったかもしれませんが、DLSの方が優れているケースがないとは言えないので、残してあります。ただ、最初のサイクルをODで実行することに変わりありません。

もう一つ大事な点は、特定の理由がない限りは自動もしくは大きな最適化サイクル数を使用しないことです。公差解析では、既知の最小値から擾乱(設計パラメータの変動、公差)によって移動した設計空間の位置からコンペンセータを使ってローカル解へ戻します。そのため、1サイクルの最適化、最大でも2サイクルの最適化で光学性能は回復するのが一般的です。」

結論、公差解析のコンペンセータで使用する最適化アルゴリズムとして、ODが推奨されます。今回ご紹介したMarkさんのコメントは、開発に携わっていた方からの直接の声ということで非常に重要な情報だと思いました。ガイドラインとして参考としながら、最終的には自分の光学系の特性と併せて判断していく必要があります。

まとめ

このページでは、Zemaxコミュニティに投稿された「OpticStudioの最適化アルゴリズム DLSとOD」をトピックに取り上げました。ソフト名がZEMAXだった時から長く使用されている最適化アルゴリズムで、これからも最適化の中心で活躍する機能になります。シーケンシャルモードの最適化はDLS、ノンシーケンシャルモードの最適化はOD、公差解析のコンペンセータはODでサイクルは2くらいが王道として推奨されました。 新しい最適化アルゴリズムのDLSXとPSDと併せて、うまく使い分けたいです。

<参考>

[1] サイバネットシステム株式会社, 解析講座はじめての最適化(第1回): https://www.cybernet.co.jp/ansys/case/lesson/009.html

コメント

タイトルとURLをコピーしました