Datengesteuerte Entscheidung am Beispiel der Auswahl einer Farbe zum Streichen von Wänden

Als ich anfing, eine Farbe für die Bemalung der Wand im Raum zu wählen, stieß ich auf eine interessante Sache. Der gesamte Prozess ähnelte von Anfang an der Arbeit an einem IT-ML-Blah-Blah-Blah-Analyse-Projekt.

Es gibt auch einen Kunden, der nicht wirklich versteht, was er genau will, aber will, dass alles gut ist und er mag. Es gibt noch einige Interessenten seitens des Kunden, die sich nicht darauf einigen können, was „gut“ ist. Es gibt einige Neuformulierungen des Problems, die unter einer großen Frage für dieses „Gute“ relevant, aber zumindest irgendwie gelöst sind. Es gibt eine Auswahl von Lösungsmethoden und Versuchen, diese zu implementieren. Es gibt Iterationen, die implizit, aber monoton zu einer Lösung führen, die für jeden geeignet ist. Und es gibt einige seltsame Schlussfolgerungen, die in einem „echten“ Projekt kaum gezogen werden könnten, da aufgrund der allgemeinen Nervosität und der Teilnahme am Geldprozess der Fokus der Aufmerksamkeit selten an diesen Stellen des Prozesses stehen bleibt.



Wenn Sie die Wahl der Farbe im Raum als analytischen Prozess betrachten, kann sich dies im Allgemeinen als interessant herausstellen.

Erklärung des Problems


Es gibt Dinge, die ekelhafter und ärgerlicher sind als die Wahl mehrerer Personen in der Farbe, in der die Wand im Raum gestrichen werden soll, aber es gibt nur wenige. Meistens sind sie mit einer Krankheit oder Verletzung verbunden.

Das methodische Betrachten von Blumen ruft ein Meer von Assoziationen mit Krankenhäusern, Supermärkten, Regierungsbehörden, sowjetischen Küchen in Gemeinschaftswohnungen und öffentlichen Toiletten hervor. Und wenn es Sie nicht verursacht, hatte der Gesprächspartner genau diese Farbe an der Wand im Schulkorridor, wo der Gesprächspartner die schlimmsten Jahre seines Lebens verbracht hat. Die Reizung nimmt tendenziell zu und eine Entscheidung, nicht getroffen zu werden.

Damit entsteht die Aufgabe. Die Qualitätskriterien zur Lösung dieses Problems lauten wie folgt:

KPI: Der Grad der Zufriedenheit aller Beteiligten mit der Farbe der Wände im Raum. Ein positiver KPI ist vor dem Malen als solches direkt nicht erreichbar (aber ich habe keine Lust, 10 Mal neu zu streichen), daher muss ich etwas anderes verwenden.

Realistischer KPI: Der Grad der Zufriedenheit aller interessierten Parteien mit der Wahl der Farbe für die Bemalung der Wand (es sollte sofort beachtet werden, dass eine zufriedenstellende Wahl der Farben keine Zufriedenheit mit dieser Farbe an der Wand garantiert, aber es gibt keine große Auswahl. Entscheidungen müssen unter Bedingungen getroffen werden, bei denen das Ergebnis der Entscheidungen noch nicht bekannt ist).

Eingabedaten:

  • Zimmer
  • RGB-Palette
  • Interessenten, die eine Farbe für den Raum wählen

Nun, hier beginnt der Prozess, der jeder Person vertraut ist, die Unternehmensprojekte umsetzt.

Aber ich mache es nicht mit meinem Finger, da ich mir jetzt etwas Kluges-Mathematisches einfallen lassen werde!


Schauen Sie sich die Farben an und sehen Sie deutlich, wie es an der Wand aussehen wird, können im Grunde nur Menschen mit einer Kunstausbildung. Aber sie sind nicht wir. Wir müssen herausfinden, wie die Farben mit den Wänden korreliert werden können, damit die Entscheidung schneller und irgendwie gerechtfertigter getroffen wird. Und paint.net ist unser Heil. Sie können ein Panoramafoto des Raums aufnehmen, die Wände vom Foto löschen und sie dann mit etwas übermalen. Vielleicht hilft dies dabei, eine Entscheidung zu treffen, die jedem passt? In unserem Fall fing alles damit an:



Hier ist es ein Raum mit schlecht abgenutzten Wänden. Jetzt können Sie die Wände in alles streichen und sehen, ob es uns gefällt oder nicht. Gehen Sie zum Beispiel folgendermaßen vor:



Und es ist irgendwie wunderbar.

Aber nein!

In der Welt der rosa Ponys mit herausgerissenen Augen geht es nicht um uns. Die Diskussion der Stakeholder über die Wahl der Farbe bei der Überlagerung des Fotos kommt ebenfalls schnell zum Erliegen. Ein paar Stunden viel Aufhebens um Farbe und kein Konsens. Jedoch! Wir haben ein Werkzeug. Es kann verwendet werden. Wenn es uns nicht gelingt, gibt es vielleicht Leute, die das für uns tun können?

Kompetente Lösung


Experten riefen alle interessierten Abonnenten der VK an. Die Wette war, dass das Jahr 2018 auf dem Hof ​​liegt, aber wir haben immer noch ein Land mit Ratschlägen. Lassen Sie alle anfangen, alle zu beraten.

Für das oben erwähnte Meisterwerk der Fotografie wurde eine „Site“ erstellt, die ein Foto des Raums und einen Farbwähler enthielt, mit dem die Farbe der Wände geändert werden konnte. In VK wurde ein Link zur Website mit der Bitte veröffentlicht, bei der Auswahl der Farbe zu helfen.

Experten äußerten eine Reihe von Meinungen und teilten ihre Optionen. Leider führte dies nicht zu einem Konsens, sondern führte zu einer Reihe von Verschiebungen der ästhetischen Prioritäten bei den interessierten Parteien. Und diese Vorurteile führten weiter zu einem Konsens.

Weg zum maschinellen Lernen


Die Experten hatten zwei Probleme.

  • Die Meinung des Sachverständigen stimmte nicht immer mit der Meinung des Betroffenen überein.
  • Es gab nur wenige Experten, und alle ihre Meinungen konnten nicht zusammengetragen werden, um eine durchschnittliche Entscheidung zu treffen.

Beide Probleme zusammen lieferten keine Lösung.

  • Wenn es viele Experten gäbe, könnten sie die Menge in Bezug auf eine Option zerdrücken,
  • Wenn es nur wenige von ihnen gäbe, aber alle die gleiche Meinung wie die interessierten Parteien hätten, könnte man einfach den Experten zustimmen.

Die Formulierung des Problems der Expertenmeinung gab jedoch den Schlüssel für die nächste Iteration.

Sie müssen eine Menge Bewertungen haben. Wenn es viele davon gibt und alle Stimmen für etwas Bestimmtes sind, ist es einfacher, dies zu ertragen. Aber wie geht das?

Um beispielsweise eine kleine Desktop-Anwendung zu erstellen, die zufällige Gamma-Optionen auf das Bild anwendet, und interessierte Personen diese Optionen von 0 bis 10 bewerten, wurden mehr als 300 verschiedene Farbbewertungen im folgenden Format erfasst:

 beginpmatrixr in[0,255]g in[0,255]b in[0,255]V in[0,10] endpmatrix

Natürlich meistens mit 0 bewertet.

Jetzt haben wir eine Stichprobe mit Schätzungen, die für die Analyse jedoch nicht sehr praktisch ist. Sie können umformulieren, dass V zwischen 0 und 10 liegt. Dies ist nicht wirklich eine Farbbewertung, sondern die Anzahl der Personen, die für diese Option gestimmt haben. Und drehen Sie einen 4-dimensionalen Vektor (r,g,b,V)T in v 3-dimensional (r,g,b)T . Nullen verschwinden natürlich. Und jeder Vektor ist jetzt eine gleiche Stimme für den entsprechenden Farbton. Es ist praktisch, den RGB-Werten zufällige kleine Offsets hinzuzufügen, damit Sie nicht genau die gleichen Farbtöne erhalten.

In dieser Formulierung wird eine typische Formulierung des Problems des Findens der maximalen Dichte einer mehrdimensionalen Verteilung erhalten. Das heißt, Wir suchen nach einem Bereich, in dem Menschen häufiger "wählen" würden.

Wenn wir den Einfluss hoher Ratings verstärken wollen, können wir V² bei der Konvertierung von 4-d in 3-d verwenden. Dann ergibt eine Punktzahl von 2 4 Stimmen und eine Punktzahl von 4 16 Stimmen. So können wir den Einfluss der Farben, für die wir gestimmt haben, reduzieren, aber nicht direkt stark.

ML


Die zwei einfachen Dinge, die mir in den Sinn kommen, sind, dass Sie die resultierende Verteilung wahrscheinlich mit einer mehrdimensionalen Normalverteilung oder einer quadratischen Funktion in 3-d approximieren können (etwas, das mit einem ausgeprägten Maximum so gewölbt ist). Es ist nicht so, dass alles dort wirklich durch so einfache Funktionen wunderschön beschrieben wurde, aber in diesem Fall war es definitiv möglich, ein kleines Auge zuzuwenden.

Um die mehrdimensionale Normalen zu approximieren , müssen nur die Kovarianzmatrix und die Erwartung für alle Randverteilungen anhand der Daten geschätzt werden. Danach können Sie das Maximum analytisch berechnen, aber es ist viel einfacher (für das Gehirn), einfach alle möglichen Farbkombinationen mit einem Schritt durchzugehen und die Verteilungsparameter und Farbwerte in der Verteilungsformel zu ersetzen. Dann nimm den Maximalpunkt.

max(N( boldsymbol mu, boldsymbol Sigma, boldsymbolColor)),wobei

 boldsymbol muistderVektor RaumderMatrizen, boldsymbol SigmaistdieMatrix RaumderKovarianz, boldsymbolFarbe=perm((r,g,b)T),perm()alle Raummöglich Raumvoreingestellt RaumPermutationen RaumFarben,ö
Die Annäherung durch mehrdimensionale Normalen und die Suche nach ihrem Maximum ergab eine gute blau-violette Farbe mit dem gewünschten Trübungsgrad:



Das Vergrößern ist noch einfacher.

Zu diesem Zweck wurde im Matlab eine Funktion des Formulars für alle möglichen Variationen festgelegt i,j,k ::

C(r,g,b, boldsymbolc)= sumi,j,kcijkrigjbk,(i,j,k) inN,i+j+k le2

Für alle möglichen Daten haben sich die Koeffizienten geändert cijk und das Verfahren zum Simulieren des Temperns minimierte den quadratischen Fehler der Punktdichte in der Nähe:

min( sumD(C(r,g,b, boldsymbolc)p(r,g,b))2),wobei

 Raump(r,g,b)istdieDichtevon Raumstimmen Raumin Raumnachbarschaft RaumdesPunktes Raum(r,g,b).
Nach dem Einstellen der Polynomkoeffizienten wurde das Maximum durch Berechnen der Ableitung der Funktion berechnet C Verwenden Sie die symbolische Toolbox und fördern Sie die Wurzeln der Ableitung. Es gab mehrere Wurzeln, aber eine war für die Einschränkungen der Farbwerte geeignet.

Die Approximation durch eine quadratische Funktion und die Suche nach ihrem Extremum ergab eine ähnliche Version mit einer Normalverteilung. Ein bisschen blauer und weniger rot:



Aber manchmal kann man nicht über Annäherungen nachdenken und einfach ein neuronales Netzwerk schreiben, das alle Daten speist. Es macht keinen Sinn, über die Parameter des neuronalen Netzwerks zu sprechen, aber es gab viele Optionen, viele Architekturen und verschiedene Perversionen über Variablen. Infolgedessen stellte sich heraus, dass eine ziemlich stabile Meinung über die beste Farbe abgegeben wurde. Frühere Bewertungen der „Güte“ von Farben haben dazu geführt, dass das Netzwerk in fast allen Bereichen außer Grün funktioniert. Sie fügte großzügig Grün hinzu.



Übrigens, wenn wir die Dichten als Klassen umformulieren, zum Beispiel nach Werten größer als 5 suchen und den Gradientenverstärkungsklassifikator verwenden, um die Bereiche des Raums zu finden, in denen die positiven Schätzungen am dichtesten sind, erhalten wir ungefähr die gleichen Werte.

Und auch hier zeigte sich ein Problem, das sich häufig in realen Projekten bei der Präsentation der sogenannten „Zwischenergebnisse“ manifestiert. Es klingt so:

Das ist natürlich alles sehr gut: neuronale Netze, Verteilungen, aber aus irgendeinem Grund möchte ich das nicht ... Ich möchte, dass es gut ist.

Der Moment hier ist sehr interessant, dass das, was auf einem Foto als schön beurteilt wird, nicht unbedingt das ist, was Sie an Ihrer Wand haben möchten, wenn Sie es noch einmal genauer bewerten!

In realen Projekten werden einige Indikatoren, deren Abhängigkeit zuvor objektiv und konstruktiv schien, plötzlich irgendwie deprimiert, wenn ein Ergebnis erzielt wird (auch wenn es im Allgemeinen zahlenmäßig gut funktioniert). Und eins bleibt. Finden Sie all das Gute, das uns gelungen ist, und präsentieren Sie einige schöne Bilder, damit alle glücklich sind.

Visualisierung


Lassen Sie uns irgendwie schön zeichnen, wie haben wir für die Farben gestimmt? Zum Beispiel erstellen wir im Matlab ein 3-D-Streudiagramm für den HSV (255.255.255), in dem die Orte, für die sie gestimmt haben, durch Kugeln der gewünschten Farbe dargestellt werden. Je größer der Ball, desto mehr stimmten sie ab. In unserem Fall sah es so aus:

Tut mir leid, dass ich den HSV nicht auf 360/100/100 gebracht habe, es war Faulheit und alles von 0 bis 1 in Matlab.

Je größer der Ball, desto mehr Farbe magst du.

Aus den Projektionen dieses Diagramms wird deutlich, warum verschiedene Methoden die Ergebnisse lieferten, die sie lieferten. Zum Beispiel:


Projektionsfarbe / Farbton

Aus der Farb- / Farbtonprojektion geht hervor, dass das Maximum zwischen Blau und Violett liegt, wenn Sie einen Gaußschen Wert erstellen oder ihn durch eine quadratische Funktion approximieren. In diesem Fall liegt die maximale Farbe bei etwa 100, und es werden keine sehr hellen Farben ausgewählt. Ein neuronales Netzwerk, in dem der Raum mit einer großen Anzahl lokaler Extrema ziemlich komplex sein wird, kann den grünen Teil berücksichtigen. Anscheinend gab es irgendwo einen rosafarbenen Höhepunkt, aber etwas niedriger, so dass ich nicht zum Endergebnis kam. Usw.

Ein Blick auf die Visualisierung ergab 3 auffällige Pseudo-Cluster.



Die Mittelungsfähigkeiten aller groben Methoden verschmolzen freudig Hellblau und Dunkelblau zu einem mittelblauen Ergebnis. Gleichzeitig schlug die Logik vor, dass es sich nicht lohnt, den Raum in dunklen Farben zu streichen (auch wenn sie auf dem Foto nicht so aussehen), weshalb dieser Cluster verworfen werden sollte. Und niemand mochte Grün wirklich, weil es während des langen Starrens alle möglichen Assoziationen zwischen Krankenhaus und Gemeinde verursachte. Warum gibt es hier irgendeine Art von Mathematik?

Im verbleibenden Cluster mussten Sie nur den bedingten Durchschnitt nehmen und ihn irgendwie mit Ihren Händen beenden.



In diesem Punkt waren sich alle interessierten Parteien einig, dass dies im Allgemeinen ein Kompromiss ist, der einen Besuch wert ist.

Nach ein paar Wochen hat die Realität die Erwartungen nicht zu sehr verzerrt (obwohl sie etwas rosiger war als die Realität) ...



Eine solche rosa Farbe an sich ist natürlich eine zweifelhafte Sache, aber wir selbst wollten es. Jetzt müssen nur noch Möbel der entsprechenden Farbe gekauft werden. Hm. Aber denken Sie nicht an eine automatische optimale Anordnung der Möbel im Raum? Dies ist ein typisches konvexes Optimierungsproblem ...

Schlussfolgerungen


Da ich gleichzeitig seitens des Kunden und des Auftragnehmers war, war ich überrascht zu sehen, dass ich selbst kein Verständnis für eine Angelegenheit finden kann, an der ich irgendwie interessiert war, beide Seiten zu lösen. Ich war auch überrascht zu sehen, wie die Dinge, die ich für objektiv hielt und die direkt aus den Daten abgeleitet wurden, die mich als Künstler zufrieden stellen, mich als Kunden nicht zufrieden stellen können.

Der Wahnsinn hier fügt hinzu, dass ich die Daten selbst zusammengestellt habe und direkt darin angegeben habe, was genau mich möglicherweise zufriedenstellen könnte. Und anscheinend konnte ich sie nicht vollständig angemessen zusammenstellen, aus irgendeinem Grund, dass ich selbst nicht zu klar war. Zum Beispiel habe ich dunklen Farben gute Noten gegeben, obwohl sie am Ende offensichtlich nicht ausgewählt werden konnten. Warum? Weil das Bild süß war. Die eigentliche Aufgabe war völlig anders, aber die Auswahl einer Farbe aus komplexeren Überlegungen an der Maschine war nicht realistisch.

Letztendlich war die Lösung in den von mir generierten Daten verborgen. Aber wie es sofort zu einer Entscheidung kam, ohne diese seltsamen Tänze mit einem Tamburin, die meine eigene Vorstellung davon korrigierten, was ich brauchte (oder sicherlich nicht brauchte), war nicht sehr klar. Ich habe mir die Visualisierung mit Bällen angesehen und bevor ich mit verschiedenen Methoden nach dem Maximum gesucht habe. Aber ich habe die "Cluster" erst danach gesehen.

Source: https://habr.com/ru/post/de421795/


All Articles