3 ポイント 投稿者 GN⁺ 2024-05-06 | 1件のコメント | WhatsAppで共有

シンプルさは長所だが、残念ながら複雑さの方がよりよく売れる

なぜ複雑さの方がよりよく売れるのか?

  • 複雑さは努力を意味する
    • 難解なアイデアと技術的な詳細を含む論文は、血のにじむような努力を想起させる
    • より多くの構成要素と機能を持つシステムは、少ないシステムよりも多くの労力が必要に見える
    • 複雑な成果物は、より多くの努力を要すると考えられるため、作るのが難しく価値があるように見なされる
    • 複雑さに伴う労力のため、しばしばより高い品質だと判断される
  • 複雑さは熟練を意味する
    • 多くの可動部品を持つ複雑なシステムは、設計者が各部品に熟練しており、それらを統合できる能力があることを示唆する
    • 専門用語と証明で満たされた理解しにくい論文は、そのテーマに対する専門性を示す
    • 一般人が複雑なアイデアやシステムを理解できないなら、その創始者は専門家だろう
  • 複雑さはイノベーションを意味する
    • 完全に新しいモデルアーキテクチャを発明する論文は、既存ネットワークを適用する論文より新規性が高いと認められる
    • 最初から作った構成要素を持つシステムは、既存の部品を再利用するシステムよりも創造的だと見なされる
    • 既存の作業をベースにしたり再利用したりする作業は、それほど革新的ではない
  • 複雑さはより多くの機能を意味する
    • 組み合わせて整合させることができる構成要素を持つシステムは、あらゆる基盤を扱える柔軟性を示唆する
    • 複雑なシステムは単純なシステムより多くのブロックを持つため、適応力が高く、変化によりよく対応できると見なされる

シンプルさが長所である理由

  • シンプルなアイデアと機能は理解しやすく使いやすい
    • これは採用可能性を高め、インパクトを生む
    • コミュニケーションとフィードバックを得ることも容易
    • 一方、複雑なシステムは説明や管理が難しく、利用者が何をすべきで、どうすべきかを把握しにくい
  • シンプルなシステムは構築と拡張が容易
    • コンポーネントが少なければ少ないほど、実装は容易になる
    • 標準の既製技術を使えば、実装・保守できる資格を持つ人を見つけやすくなる
    • シンプルなシステムは複雑性、コード、システム内の相互作用が少ないため、理解しやすくテストもしやすい
    • 一方、不要に複雑なシステムは、より多くの時間と資源を必要とし、非効率や無駄につながる
  • シンプルなシステムは運用コストが低い
    • システムのデプロイはゴールではなくスタート地点である
    • ほとんどの努力はシステムが本番環境にあるときに費やされるため、システムをシンプルに保つことで保守コストを下げ、寿命を延ばせる
  • 機械学習では、シンプルな技術がより高度な技術より性能が低くならない場合が多い
    • 木ベースのモデルが中程度の表形式データで深層ニューラルネットワークより優れる
    • 貪欲アルゴリズムが組合せグラフ問題でグラフニューラルネットワークより優れる
    • シンプルな平均値がマルチタスク学習問題で複雑なオプティマイザーと同等か、それ以上の性能を示す
    • 32本の論文において予測精度の点で、シンプルな手法が複雑な手法より優れている
    • レコメンデーションと検索において内積がニューラル協調フィルタリングよりも性能が高い

複雑さの報酬の問題

  • 人々が不必要に複雑に作ることを助長する
    • シンプルな方法を使う、あるいはシンプルなシステムを構築するのは容易に見えるため、価値が低く評価される
    • 結果として、人々はより多くの報酬を得るためにシステムを操作し、最も単純な解決策がもはや最も明白なものではなくなる
  • 「ここで発明しない」思考を奨励し、時間と労力を節約できるのに、既存のコンポーネントの再利用を避け、最初から構築することを好む
    • これは時間と資源の浪費につながり、しばしばより悪い結果を招く

複雑さについてどう考えるべきか

  • 目標は、可能な限り単純な解決策で複雑な問題を解くこと
    • 解決策の複雑性に焦点を当てるのではなく、問題の複雑性に焦点を当てるべき
    • 単純な解決策は、問題に対する深い洞察と、より複雑で高コストの解決策を回避できる能力を示す
  • 万能的な複雑解の代わりに、複数の集中した解決策を検討する
    • 万能解は通常、期待ほど柔軟で再利用可能ではない
    • 複数のユースケースとステークホルダーに対処するため「密接に結合」される傾向があり、計画や移行時により多くの調整が必要になる
    • 一方、単一目的システムを運用して廃棄するほうが容易である

GN⁺の意見

  • この文章は、なぜ複雑さが好まれるのか、なぜシンプルさが利点なのかを説得力をもって説明している。複雑さが熟練、革新、機能などを示唆するために好まれるという点が興味深かった。
  • ただし、すべてのケースでシンプルな解決策がより良いとは言い切れないと思う。問題の性質によっては、ある程度の複雑さが必要になることもある。シンプルさと複雑さのバランスを取ることが重要だろう。
  • 機械学習分野で、シンプルなモデルが性能で優れる事例が興味深かった。新しいモデルを開発するときは、既存のシンプルな手法と比較するのが良い。
  • 組織で成果評価する際は、複雑さを過度に強調しないよう注意が必要だ。代わりに、問題の難しさと解決策の有効性に焦点を当てるのが望ましい。
  • アーキテクチャ設計では、万能の複雑システムより、単一目的のシンプルな複数システムを検討することも良い方法だと思う。

1件のコメント

 
GN⁺ 2024-05-06
Hacker Newsのコメント

要約:

  • MVP(最小実行可能製品)を反復的に積み上げていく方法が、かえって複雑性を生み出す原因になることもある
  • 複雑な問題を解決するほど高い報酬を与えるシステムは、逆に不必要な複雑さを生むことがある
  • 上位志向の消費者と憧れ消費者の欲求差のため、企業は憧れ消費者の要求に応えることが合理的な選択になることもある
  • 複雑でバグの多いソフトウェアが好まれるのは、背後に隠れられるからである
  • 幼い頃から「多ければ多いほど良い」という考え方に染まっている
  • エンジニアとして、単純な解決策より挑戦的なものに惹かれる傾向がある
  • 単純なものを好みつつ、単純に見えるものを嫌うという矛盾した心理がある
  • 事後的に複雑な解決策を批判するのは簡単だが、当時の制約条件と要件を知らないまま行う批判は空虚だ
  • 「できるだけシンプルに、しかし過度にシンプルにしない」という原則は、常に正しいが、実装は容易ではない
  • プロジェクト初期にはシンプルだったものでも、要件が拡大することで避けられず複雑化することが多い