【画像処理のKIT】閃きと分析
アルゴリズムを産み出す上で、大切な事ってなんですか?と言う質問をうけました。
「閃き」と「分析」です。と回答しそれぞれについて詳しく説明していきました。
質問された方は、普段アルゴリズム開発をされた方から引き継いで製品に適した実装を行う事を、自信のミッションとされている方でした。
「アルゴリズム開発の人は、実装の事を考えてくれないのでいつも苦労ばかりです」との事です。
実装を意識して、アルゴリズム開発を行うと、どうしても頭の中に制約事項が意識され、新しいアプローチを発案できません。
アルゴリズム発案フェーズでは、全ての制約を忘れ、これまでに無い結果を産み出す手法を、【複数】考える事が重要です。
この【複数】がとても難しいです。どうしても自分で一つ実現アイデアが浮かんでしまうと、そこから離れられなくなります。試したくなるのです。
そこを、ぐっとこらえて頭をリセットして別の実現手段に考えを変える事これが、「閃き」です。
こうして、複数の実現手段をリストアップし、その次にアルゴリズムの選定フェーズに移ります。
選定フェーズでは、実現の容易性、処理速度、ハード化規模、弱点などの複数の項目で評価します。この評価も机上評価です。
選定フェーズで、そのプロジェクトに適したと思われる総合点を得たものから順に実装してみて、その結果を「分析」します。
評価フェーズで1番だったものだけを実装するのは危険です。
その時、欠点と思えた事を後から解決できる事も珍しくないからです。
この「分析」をした結果をフィードバックし、アルゴリズム改良フェーズに進みます。
一番難しいのは、発案時には自分で一切否定せず「閃き」に任せてアイデアを沢山出す事。評価、分析フェーズでは、先に禁じた事をメインに行う事。一人二役です。この切り替えができるか。それが勝負です。