“最適”なデザインを考える
こんにちは。NTTデータのデザイナー集団「Tangity」でサービスデザイナーをしております、Toiです。
初投稿に当たる今回の記事では自己紹介を兼ねて、私の専門である「最適設計(Optimal Design)」という考え方について紹介したいと思います。
デザインとは逆問題を解くこと
人間が必要としている機能や役割を実現する「問題」に対して、 それを実現する実体である「解」を見つけ出す過程こそが設計(デザイン)であるとすれば、設計はある種の問題解決であると言えます。
一般に、デザインは「逆問題」と呼ばれる性質を持った問題です。逆問題(inverse problem)とは、原因から結果を導く順問題(forward problem)とは逆に、結果から原因を導く問題のことです。デザインでは、要求される機能や役割などの「結果」から、それを満たす具体的な形状や仕組みなどの「原因」を導き出す問題を解くことになります。
逆問題は順問題に比べて解くことが難しいと言われています。設計案が創出されてはじめて詳細が明確になることや、設計解が一意に定まらないこと、そもそもの設計問題が不明確であることなど、その理由は様々ですが、スーパーマンでない限り考えうる全ての候補を知ることができないので、作っては試すような反復的な操作に苦しめられることはデザイナーであれば頷くところでしょう。
一方で、目的や制約が明確であれば最適化法などの活用により、唯一の設計解を導くことが可能であると考えられています。そのような手法の1つが、本稿で紹介する「最適設計」になります。
最適設計という枠組み
全貌を考えることは難しい。抽象化してモデルを操作する
デザインの中で考えるべき範囲とはなんでしょうか。
人工知能のフレーム問題に代表されるように、実際のところ真面目に考えるとあらゆることを考慮することが求められてしまうため、設計問題はやはり不明確ということになります。逆問題を解くためにはある程度の簡素化は必要であり、システム工学では境界(boundary)を定義し、内容や条件を簡略化したり、理想化したりした状況で様々な操作や評価を行います。そのような像をモデルと呼びます。
モデルは操作や評価の正確性を意図すれば、できる限り実際に近いことが望ましいですが、操作や評価の簡便さ・柔軟性を意図すれば、本質的な部分をのぞいて省略する方が有用である場合もあります。実機に相当するような試作もモデルであれば、対象の挙動を模擬する数学的な方程式もまたモデルです。
システム工学では、システムの準分解性を利用し、考える範囲(モデル)の粒度を切り替えながら部分問題を定義し、段階的に設計します。車のデザインを例に挙げると、同時に全てを作り込むことはできないため、エンジン、コックピット、電装など、いくつかのモジュールに分けてデザインします。複雑な設計対象を取り扱う際に、システムという抽象の力は効果的です。
システムの設計において、設計問題を数理的な形式で記述することができれば、その中で合理的に設計を進めることができます。その代表的な方法が、対象とする問題を最適化問題として定式化する「最適設計」であります。
数式で問題を定義。そして、最適化する
最適設計では、対象の特徴や重要な部分を抽象する数理モデルを構築し、数理最適化技法を用いて"最適な"設計解を導きだします。
設計において決定すべき主要なパラメータを 設計変数として選択し、安全性や有用性などを確保する制約条件を設定、設計の優劣を定量的に評価する目的関数を設定します。このように設計問題を数学的な形式に書き換えることを定式化と呼び、問題そのものを最適化問題と呼びます。
ひとまず最適化問題を定式化してしまえば、ここからは強力な計算機の出番です。モデルに適した最適化アルゴリズムを用いれば、制約を満たしながら、最も目的関数値の優れた設計変数を導くことができます。導かれた解は最適解と呼ばれます。
最適設計は、数理的に馴染まない部分は捨象せざるを得ないデメリットは存在するものの、最適化問題として定式化してしまえば、定式化の前提や背景からは独立した探索アルゴリズムによって、合理的に解を定めることができます。ボタンを押せば最も優れたものが勝手に出てくる「魔法の箱」のようにも見えますが、もちろんそんなに簡単な話ではありません。
最適設計をする上で気をつけるべき3つのこと
最適設計は最適化問題という数理モデルを扱うことを前提にしていますが、サービスデザインプロセスで用いるペルソナやカスタマージャーニーマップなども一種のモデルであり、モデル操作を通したデザインを行っています。類似するところもあるので、最適設計における注意点を少し抽象化してご紹介したいと思います。
モデルの中での"最適”であること
最適設計は、数理で扱える部分問題に対して合理的な設計を進めることができる強力な手段である一方、その結果はあくまで定式化によって規定された限定的な解の1つにすぎず、最適化だけで設計を完結することはできません。
ある不適切な範囲の中での最適解は真の最適解から全く異なるものである可能性が否定できず、結果をそのまま鵜呑みにして設計を完了させることができないということです。
最適化法は特定の解、あるいは解の集合を導き出すことができるため、ある部分問題で設計が可能になるという点で重要な役割を果たしています。しかし、そもそものモデル化・定式化自体の自由度が高いという難しさがあります。どの要素を設計変数や制約条件、目的関数に割り当てるのかなど、どのようにモデルを定義するかだけでなく、そもそも最適化を使って何を解くべきかという上位の問題では、唯一の答えが存在しません。そもそも何が問題であるかを理解し、その問題がどのように解決できるのかを明確にしておかなければならず、デザイナーの勘や経験に頼らざるを得ません。
そもそも解ける問題を定式化しているのか
上述の通り、モデルの忠実度はデザイナーの意図によって定められます。より現実に即した結果が欲しい場合は忠実度の高いモデルを構築することになるものの、内容の規模と複雑さと呼応して、最適解の導出もまた困難になります。探索する範囲が膨大であれば解を導出することに時間がかかりすぎる(計算結果が出るのが1年後ということも稀ではない)場合もあれば、局所的な非線形性が高く、偽の最適解(局所最適解)に陥ってしまう場合、そもそも数学的に解けない問題を構築している場合もあります。
強すぎる制約は「意味のある答え」を導くことが困難になりますし、逆に制約がなさすぎると答えを見るけることができません。もちろん最適化問題の特性を把握して、適切な手法を用意することは肝要ですが、そもそも自分が解こうとしている問題(最適化問題)は解けるものなのか、という観点に注意しておく必要があります。
出てきた"解"をどう活用するか
モデル操作によって導かれた結果(デザイン案)もまたモデルです。どのように解釈して具体化するかはデザイナーに委ねられていて、もちろんその方法にも汎用的な手法は存在しません。
最適設計の枠組みは、設計問題から数理的に記述できる部分を抜き出したものにすぎないため、結果の意味や効果はモデルの厳密さに紐づいています。詳細設計で解くべき問題がはっきりしている場合はまだしも、抽象的に定式化した問題で得られる結果もまた抽象的であり、上流の段階で対象の抽象度が高まれば、その結果の扱いにくさもまた高まります。
最適設計を通してデザイン全体を進行させるには、デザイナーがその限定性を理解し、構築したモデルや最適化問題の定式化に立ち戻って結果を深く理解・解釈することが大切です。最適化技術の探究だけでなく、意思決定の局面を合理的に進める方法論の構築もまた重要であると考え、鋭意研究がすすめられています。
最後に
本記事では「設計」と「デザイン」という言葉を混ぜて使っていますが、本記事のように抽象的な議論をする上ではその差は小さいと考えられています。私は「設計」を背景に研究活動を行っていましたが、Tangityに参加してサービスデザインを実践している中で、その営みの類似性を肌に感じる日々です。難しい箇所も多かったと思いますが、何か気付きを与えていれば嬉しく思います。最後までお読みいただきありがとうございました。
デザイナーさん大募集
現在Tangityではデザイナー職を積極的に採用しています!サービスデザイン、UXデザインのクライアント業務の経験がある方、ぜひ私たちと一緒に働きませんか?
Toiが所属する共創を推進するビジネス・サービスデザインチームの募集はこちら。テクノロジーを起点としたUXデザイナーの募集要項はこちらです。
双方のポストはプロジェクトで連携する機会もあります。お待ちしております。
インスタグラムやってます!
TangityのInstagramです。ぜひフォローしてください!