Einfachheit hat Vorteile, aber die bittere Realität ist, dass Komplexität sich besser verkauft
Warum wird Komplexität besser verkauft?
- Komplexität bedeutet Aufwand
- Paper mit schwierigen Ideen und technischen Details lassen an Schweiß und Tränen denken
- Ein System mit mehr Komponenten und Funktionen wirkt wie ein System, das mehr Aufwand erfordert als ein kleineres System
- Komplexe Ergebnisse werden als mit mehr Mühe verbunden betrachtet und daher als schwieriger zu erstellen und wertvoller eingeschätzt
- Wegen des mit Komplexität verbundenen Aufwands wird oft eine höhere Qualität angenommen
- Komplexität bedeutet Kompetenz
- Ein komplexes System mit vielen beweglichen Teilen signalisiert, dass der Designer jedes Teil beherrscht und weiß, wie er sie integriert
- Eine schwer verständliche Arbeit voller Fachbegriffe und Beweise vermittelt Expertise zu diesem Thema
- Wenn Laien eine komplexe Idee oder ein komplexes System nicht verstehen, muss der Erfinder ein Experte sein
- Komplexität bedeutet Innovation
- Eine Arbeit, die eine vollständig neue Modellarchitektur erfinderisch entwickelt, wird als neuer angesehen als eine Arbeit, die bestehende Netzwerke anwendet
- Ein System mit Komponenten, die von Grund auf neu entwickelt wurden, gilt als kreativer als ein System, das bestehende Teile wiederverwendet
- Auf bestehenden Arbeiten aufbauende oder wiederverwendende Arbeiten gelten als weniger innovativ
- Komplexität bedeutet mehr Funktionen
- Ein System mit Komponenten, die gemischt und kombiniert werden können, deutet auf Flexibilität hin, um jede Grundlage abzudecken
- Komplexe Systeme gelten als anpassungsfähiger und besser anpassbar an Veränderungen, da sie mehr Blöcke haben als einfache Systeme
Warum Einfachheit im Vorteil ist
- Einfache Ideen und Funktionen sind einfach zu verstehen und zu nutzen
- Das erhöht die Wahrscheinlichkeit der Adoption und erhöht den Einfluss
- Sie sind leichter zu kommunizieren und Feedback ist leichter einzuholen
- Komplexe Systeme sind hingegen schwer zu erklären und zu verwalten, wodurch Nutzer oft nicht erkennen, was sie tun und wie sie vorgehen sollen
- Einfache Systeme sind einfacher zu bauen und zu skalieren
- Je weniger Komponenten, desto leichter ist die Implementierung
- Mit Standardfertigprodukten ist es einfacher, Personen zu finden, die in der Lage sind, sie zu implementieren und zu warten
- Einfache Systeme sind einfacher zu verstehen und zu testen, da sie weniger Komplexität, weniger Code und weniger Interaktion innerhalb des Systems haben
- Unnötig komplexe Systeme erfordern jedoch mehr Zeit und Ressourcen und führen zu Ineffizienz und Verschwendung
- Einfache Systeme haben niedrigere Betriebskosten
- Die Bereitstellung eines Systems ist nicht der Zielstrich, sondern der Startstrich
- Der Großteil der Arbeit entsteht, wenn das System in der Produktion ist, und durch die Aufrechterhaltung eines einfachen Systems können Wartungskosten sinken und die Lebensdauer verlängert werden
- In Machine Learning schneiden einfache Methoden oft nicht schlechter ab als ausgefeiltere Methoden
- Baum-basierte Modelle übertreffen tiefe neuronale Netze bei mittleren Tabellendatensätzen
- Greedy-Algorithmen schneiden in Kombinationsgraphproblemen besser ab als Graph Neural Networks
- Einfache Mittelwerte zeigen bei Multi-Task-Learning-Datensätzen die gleiche oder bessere Leistung wie komplexe Optimizer
- In 32 Papieren sind einfache Methoden in Bezug auf Vorhersagegenauigkeit besser als komplexe Methoden
- Bei Empfehlung und Suche ist die innere Multiplikation leistungsstärker als neuraler kollaborativer Filter
Das Problem mit Belohnungen für Komplexität
- Menschen werden ermutigt, unnötig komplex zu bauen
- Es gilt als weniger wertvoll, wenn man einfache Methoden verwendet oder einfache Systeme aufbaut, weil dies einfacher erscheint
- Menschen optimieren dann Systeme, um mehr Belohnung zu erhalten; die einfachste Lösung ist nicht mehr zwangsläufig die offensichtlichste
- Die "Not-Invented-Here"-Haltung wird gefördert, sodass man bestehende Komponenten trotz möglicher Zeit- und Arbeitserparnis lieber selbst neu aufbaut statt wiederzuverwenden
- Das verschwendet Zeit und Ressourcen und führt oft zu schlechteren Ergebnissen
Wie sollte man über Komplexität nachdenken?
- Das Ziel sollte sein, möglichst einfache Lösungen für komplexe Probleme zu finden
- Statt auf die Komplexität der Lösung zu schauen, sollte man sich auf die Komplexität des Problems konzentrieren
- Eine einfache Lösung zeigt tiefe Einsicht in das Problem und die Fähigkeit, übermäßig komplexe und teure Lösungen zu vermeiden
- Statt einer umfassenden komplexen Lösung sollte man mehrere fokussierte Lösungen prüfen
- Eine Universal-Lösung ist meist weder so flexibel noch so wiederverwendbar, wie erhofft
- Da sie für mehrere Anwendungsfälle und Stakeholder gedacht ist, neigt sie dazu, sich "engen Kopplungen" hinzugeben und erfordert in der Planungs- und Migrationsphase stärkere Abstimmungen
- Im Gegensatz dazu ist der Betrieb und die Stilllegung eines Systems mit einem einzigen Zweck leichter
GN⁺ Meinung
- Dieser Artikel erklärt überzeugend, warum Komplexität bevorzugt wird und welche Vorteile Einfachheit hat. Es war spannend zu sehen, dass Komplexität häufig als Hinweis auf Kompetenz, Innovation und Funktionsumfang angesehen wird
- Dennoch halte ich es für schwierig zu behaupten, dass einfache Lösungen in jedem Fall besser sind. Je nach Art des Problems kann ein gewisses Maß an Komplexität notwendig sein. Es wird wichtig sein, das richtige Gleichgewicht zwischen Einfachheit und Komplexität zu finden
- Im Bereich Machine Learning waren interessante Beispiele dabei, in denen ein einfaches Modell eine bessere Leistung aufweist. Beim Entwickeln neuer Modelle lohnt es sich, sie mit bestehenden einfachen Methoden zu vergleichen
- In der Leistungsbewertung einer Organisation sollte man vorsichtig sein, Komplexität nicht zu stark zu betonen. Stattdessen ist es sinnvoll, sich auf die Schwierigkeit des Problems und die Effektivität der Lösung zu konzentrieren
- Bei der Architekturplanung kann es eine gute Herangehensweise sein, mehrere einfache, auf einen Zweck ausgerichtete Systeme statt eines universell komplexen Systems in Betracht zu ziehen
1 Kommentare
Hacker News Kommentare
Zusammenfassung: