Décision basée sur les données sur l'exemple de choix d'une couleur pour la peinture des murs

Commençant à choisir une couleur pour peindre le mur de la pièce, je suis tombé sur une chose intéressante. Tout le processus depuis le tout début a commencé à ressembler au travail sur un projet analytique IT-ML-Blah-blah-blah.

Il y a aussi un client qui ne comprend pas vraiment ce qu'il veut exactement, mais qui veut que tout soit bien et qu'il a aimé. Il y a encore quelques parties intéressées de la part du client qui ne parviennent pas à s'entendre sur ce qui est «bon». Il y a quelques reformulations du problème qui, sous une grande question, sont pertinentes pour ce «bien», mais au moins d'une manière ou d'une autre résolues. Il existe une sélection de méthodes de solution et tente de les mettre en œuvre. Il y a l'itération qui, implicitement, mais monotone, conduit à une sorte de solution qui conviendrait à tout le monde. Et il y a des conclusions étranges qui pourraient difficilement être tirées dans un «vrai» projet, car en raison de la nervosité générale et de la participation au processus monétaire, l'attention ne s'arrête que rarement à ces endroits du processus.



En général, si vous regardez le choix de la couleur dans la pièce, en tant que processus analytique, cela peut s'avérer intéressant.

Énoncé du problème


Il y a des choses plus dégoûtantes et ennuyeuses que le choix par plusieurs personnes de la couleur dans laquelle peindre le mur de la pièce, mais elles sont peu nombreuses. Le plus souvent, ils sont associés à une sorte de maladie ou de blessure.

L'observation méthodique des fleurs évoque une mer d'associations avec des hôpitaux, des supermarchés, des agences gouvernementales, des cuisines soviétiques dans des appartements communaux et des toilettes publiques. Et si cela ne vous cause pas, alors l'interlocuteur avait exactement cette couleur le mur dans le couloir de l'école, où l'interlocuteur a passé les pires années de sa vie. L'irritation a tendance à augmenter et une décision ne doit pas être prise.

Ainsi, la tâche se pose. Les critères de qualité pour résoudre ce problème sont les suivants:

KPI: Le degré de satisfaction de toutes les parties prenantes sur la couleur des murs de la pièce. Un KPI positif est directement inaccessible avant de peindre en tant que tel (mais je n'ai pas envie de repeindre 10 fois), donc je dois utiliser autre chose.

KPI réaliste: le degré de satisfaction de toutes les parties intéressées par le choix de la couleur pour la peinture du mur (il convient de noter tout de suite qu'un choix satisfaisant de couleurs ne garantit pas la satisfaction de cette couleur sur le mur, mais il n'y a pas beaucoup de choix. Les décisions doivent être prises dans des conditions où le résultat des décisions est encore inconnu)

Données d'entrée:

  • Pièce
  • Palette RVB
  • Les personnes intéressées qui choisissent une couleur pour la chambre

Eh bien, le processus commence ici, familier à toute personne mettant en œuvre des projets d'entreprise.

Mais je ne le fais pas avec mon doigt, car maintenant je vais trouver quelque chose d'intelligent-mathématique!


Regardez les couleurs et voyez clairement à quoi cela ressemblera sur le mur, ne pouvez essentiellement que des personnes ayant une éducation artistique. Mais ce ne sont pas nous. Nous devons comprendre comment corréler les couleurs avec les murs, afin que la décision soit prise plus rapidement et en quelque sorte plus justifiée. Et paint.net est notre salut. Vous pouvez prendre une photo panoramique de la pièce, effacer les murs de la photo puis peindre dessus avec quelque chose. Peut-être que cela aidera à prendre une décision qui convient à tout le monde? Dans notre cas, tout a commencé par ceci:



Ici, c'est une pièce aux murs peu usés. Maintenant, vous pouvez peindre les murs en n'importe quoi et voir si cela nous plait ou non. Par exemple, faites quelque chose comme ceci:



Et c'est plutôt merveilleux.

Mais non!

Le monde des poneys roses avec les yeux arrachés ne nous concerne pas. La discussion des parties prenantes sur le choix de la couleur lors de sa superposition sur la photo s'arrête également rapidement. Quelques heures de tapage avec de la peinture et aucun consensus. Cependant! Nous avons un outil. Il peut être utilisé. Si nous ne réussissons pas, peut-être qu'il y a des gens qui peuvent le faire pour nous?

Solution experte


Les experts ont appelé tous les abonnés intéressés du VK. Le pari était que l'année 2018 est dans la cour, mais nous avons toujours un pays de conseils. Que tout le monde commence à conseiller tout le monde.

Pour le chef-d'œuvre de la photographie mentionné ci-dessus, un «site» a été réalisé, qui contenait une photo de la pièce et un sélecteur de couleurs qui permettait de changer la couleur des murs. Un lien vers le site a été publié dans VK avec une demande d'aide pour le choix de la couleur.

Les experts ont exprimé un certain nombre d'opinions et partagé leurs options. Hélas, cela n'a pas conduit à un consensus, mais a provoqué un certain nombre de changements dans les priorités esthétiques parmi les parties intéressées. Et ces biais ont en outre conduit à un consensus.

Chemin vers l'apprentissage automatique


Les experts ont eu deux problèmes.

  • L’avis de l’expert ne coïncide pas toujours avec celui de la personne concernée,
  • Il y avait peu d'experts et toutes leurs opinions ne pouvaient pas être rassemblées afin de prendre une décision moyenne.

Ensemble, les deux problèmes n'ont pas apporté de solution.

  • S'il y avait beaucoup d'experts, ils pourraient écraser la quantité par rapport à une option,
  • S'il y en avait peu, mais que tout le monde était du même avis que les parties intéressées, on pourrait simplement être d'accord avec les experts.

Mais la formulation même du problème de l'opinion des experts a donné la clé de la prochaine itération.

Vous devez avoir BEAUCOUP de notes. S'il y en a beaucoup et que tous les votes sont pour quelque chose de spécifique, c'est plus facile à supporter. Mais comment faire?

Par exemple, pour créer une petite application de bureau qui appliquerait des options gamma aléatoires à l'image, et les personnes intéressées évalueraient ces options de 0 à 10. Ainsi, plus de 300 notes de couleurs différentes ont été collectées au format:

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

Couleurs notées à 0, bien sûr.

Nous avons maintenant un échantillon avec des estimations, bien que ce ne soit pas très pratique pour l'analyse. Vous pouvez reformuler que V est de 0 à 10, ce n'est pas vraiment un score de couleur, mais le nombre de personnes qui ont voté pour cette option. Et transformer un vecteur à 4 dimensions (r,g,b,V)T en v en 3 dimensions (r,g,b)T . Les zéros disparaissent naturellement. Et chaque vecteur est maintenant une voix égale pour la nuance correspondante. Il est pratique d’ajouter de petits décalages aléatoires aux valeurs RVB afin de ne pas obtenir exactement les mêmes teintes.

Dans cette formulation, une formulation typique du problème de trouver la densité maximale d'une distribution multidimensionnelle est obtenue. C'est-à-dire nous recherchons un domaine dans lequel les gens "voteraient" plus souvent.

Si nous voulons renforcer l'influence des notes élevées, nous pouvons prendre V² lors de la conversion 4-d en 3-d. Ensuite, un score de 2 tourne 4 votes, et un score de 4 en 16 votes. Ainsi, nous pouvons réduire l'influence de ces couleurs pour lesquelles nous avons voté, mais pas directement fortement.

ML


Les deux choses simples qui me viennent à l'esprit sont que vous pouvez probablement approximer la distribution résultante avec une distribution normale multidimensionnelle ou une fonction quadratique en 3D (quelque chose de si bombé avec un maximum prononcé). Ce n'est pas que tout y était vraiment magnifiquement décrit par des fonctions aussi simples, mais dans ce cas, il était définitivement possible de fermer les yeux.

Pour approximer la normale multidimensionnelle , il suffit d'estimer selon les données la matrice de covariance et l' espérance pour toutes les distributions marginales . Après cela, vous pouvez calculer analytiquement le maximum, mais il est beaucoup plus facile (pour le cerveau) de simplement parcourir toutes les combinaisons de couleurs possibles avec une étape, en remplaçant les paramètres de distribution et les valeurs de couleur dans la formule de distribution. Prenez ensuite le point maximum.

max(N( boldsymbol mu, boldsymbol Sigma, boldsymbolColor)),où

ù

 boldsymbol muestlevecteur espacedesmatrices, boldsymbol Sigmaestlamatrice espacedecovariance, boldsymbolColor=perm((r,g,b)T),perm()tout espacepossible espaceprédéfini permutationsdespace couleursdespace,éé
L'approximation par la normale multidimensionnelle et la recherche de son maximum ont donné une bonne couleur bleu-violet du degré de trouble souhaité:



Le zoom avant est encore plus facile.

Pour ce faire, dans le matlab une fonction du formulaire a été définie pour toutes les variantes possibles i,j,k :

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

Pour toutes les données possibles, les coefficients ont changé cijk et la méthode de simulation du recuit a minimisé l'erreur quadratique de la densité des points dans le voisinage:

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

ù

 espacep(r,g,b)estladensitéde lespacevoix espacedans espacevoisinage espacedupoint espace(r,g,b).é
Après avoir défini les coefficients polynomiaux, le maximum a été calculé en calculant la dérivée de la fonction C en utilisant la boîte à outils symbolique et approfondir les racines du dérivé. Il y avait plusieurs racines, mais une convenait aux restrictions sur les valeurs de couleur.

L'approximation par une fonction quadratique et la recherche de son extremum ont donné une version similaire avec une distribution normale. Un peu plus bleu et moins rouge:



Mais parfois, vous ne pouvez pas penser aux approximations et simplement écrire un réseau de neurones, qui alimente toutes les données. Cela n'a aucun sens de parler des paramètres du réseau neuronal, mais il y avait beaucoup d'options, de nombreuses architectures et plusieurs perversions différentes sur les variables. En conséquence, il s'est avéré dégager une opinion assez stable sur la meilleure couleur. Les évaluations précédentes de la «qualité» des couleurs ont fait fonctionner le réseau dans presque tout sauf le vert. Elle a généreusement ajouté du vert.



Soit dit en passant, si nous reformulons les densités en classes, par exemple, en recherchant des valeurs supérieures à 5, et en utilisant le Gradient Boosting Classifier pour trouver les zones de l'espace où les estimations positives sont les plus denses, nous obtenons à peu près la même chose.

Et là encore, un problème s'est manifesté, qui se manifeste souvent dans des projets réels lors de la présentation des soi-disant «résultats intermédiaires». Cela ressemble à ceci:

Bien sûr, tout cela est très bon: réseaux de neurones, distributions, mais pour une raison quelconque, je ne veux pas cela ... Je voudrais que ce soit bon.

Le moment ici est très intéressant que ce qui est jugé beau sur une photo n'est pas nécessairement ce que vous voulez avoir sur votre mur si vous l'évaluez à nouveau plus attentivement!

Ainsi, dans les projets réels, certains indicateurs, dont la confiance semblait auparavant objective et constructive, deviennent soudainement déprimés lorsqu'ils obtiennent un résultat sur eux (même si, en général, cela fonctionne bien en termes de chiffres). Et une chose demeure. Retrouvez tout le bien que nous avons réussi et présentez avec de belles photos pour que tout le monde soit content.

Visualisation


Dessinons en quelque sorte magnifiquement, comment avons-nous voté pour les couleurs? Par exemple, nous allons créer un nuage de points en 3D dans le matlab pour HSV (255,255,255), où les lieux pour lesquels ils ont voté seront représentés par des boules de la couleur souhaitée. Plus le ballon est gros, plus ils votent. Dans notre cas, cela ressemblait à ceci:

Désolé de ne pas avoir amené HSV à 360/100/100, c'était de la paresse, et tout de 0 à 1 dans matlab.

Plus la balle est grosse, plus vous aimez la couleur.

À partir des projections de ce graphique, y compris, il devient évident pourquoi différentes méthodes ont donné les résultats qu'elles ont donnés. Par exemple:


Couleur / teinte de projection

À partir de la projection Couleur / Teinte, on peut voir que si vous construisez un gaussien ou l'approximez par une fonction quadratique, le maximum sera quelque part entre le bleu et le violet. Dans ce cas, la couleur maximale sera d'environ 100 et les couleurs très vives ne sont pas sélectionnées. Un réseau de neurones dans lequel l'espace sera assez complexe avec un grand nombre d'extrêmes locaux a la capacité de prendre en compte la partie verte. Apparemment, il y avait quelque part un pic rosâtre, mais un peu plus bas, donc je ne suis pas entré dans le résultat final. Etc.

L'examen de la visualisation a révélé 3 pseudo-grappes notables.



Les capacités moyennes de toutes les méthodes brutes ont joyeusement fusionné le bleu clair et le bleu foncé en un résultat bleu moyen. Dans le même temps, la logique a suggéré qu'il ne vaut pas la peine de peindre la pièce dans des couleurs sombres (même si elles ne semblent rien sur la photo), donc ce groupe doit être jeté. Et personne n'aimait vraiment le vert, car il provoquait toutes sortes d'associations hôpital-communauté pendant une longue observation. Pourquoi y a-t-il des mathématiques ici, hein?

Dans le groupe restant, il vous suffisait de prendre la moyenne conditionnelle et de la terminer d'une manière ou d'une autre avec vos mains.



Sur ce point, toutes les parties intéressées sont convenues qu’il s’agissait en général d’un compromis qui mérite d’être arrêté.

Après quelques semaines, la réalité n'a pas trop déformé les attentes (même si elle était légèrement plus rose que ce que les réalités sont censées être) ...



Une telle couleur rosée en soi, bien sûr, est une chose douteuse, mais nous la voulions nous-mêmes. Maintenant, il ne reste plus qu'à acheter des meubles de la couleur appropriée. Hm. Mais ne pensez pas à l'agencement optimal automatique des meubles dans la pièce? Il s'agit d'un problème d'optimisation convexe typique ...

Conclusions


Étant à la fois de la part du client et de l'entrepreneur, j'ai été surpris de voir comment je n'arrive pas à comprendre moi-même une question dans laquelle j'étais un peu intéressé à résoudre les deux côtés. Aussi, j'ai été surpris de voir comment ces choses que je pensais être objectives et directement déduites des données qui me satisfont en tant qu'artiste ne peuvent pas me satisfaire en tant que client.

La folie ajoute ici que j'ai moi-même compilé les données, indiquant directement en elles ce qui pourrait potentiellement me satisfaire. Et apparemment, je ne pouvais pas les compiler correctement, pour une raison que je n’étais pas trop claire moi-même. Par exemple, j'ai donné des notes élevées aux couleurs sombres, bien qu'elles n'aient manifestement pas pu être sélectionnées à la fin. Pourquoi? Parce que la photo était mignonne. La vraie tâche était complètement différente, mais le choix d'une couleur à partir de considérations plus complexes sur la machine n'était pas réaliste.

Finalement, dans les données que j'ai générées, la solution était cachée. Mais comment il fallait immédiatement prendre une décision, sans ces étranges danses avec un tambourin, qui corrigeaient ma propre idée de ce dont j'avais besoin (ou certainement pas nécessaire), ce n'était pas très clair. J'ai regardé la visualisation avec des balles et avant de commencer à chercher le maximum en utilisant différentes méthodes. Mais je n'ai vu les "clusters" dessus qu'après.

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


All Articles