Self-Organizing Map#

In this example, we illustrate the use of the SOM plot on the Sobieski's SSBJ problem.

The SOM post-processing performs a Self Organizing Map clustering on the optimization history. A SOM is a 2D representation of a design of experiments which requires dimensionality reduction since it may be in a very high dimension.

A SOM is built by using an unsupervised artificial neural network [KSH01]. A map of size n_x.n_y is generated, where n_x is the number of neurons in the \(x\) direction and n_y is the number of neurons in the \(y\) direction. The design space (whatever the dimension) is reduced to a 2D representation based on n_x.n_y neurons. Samples are clustered to a neuron when their design variables are close in terms of their L2 norm. A neuron is always located at the same place on a map. Each neuron is colored according to the average value for a given criterion. This helps to qualitatively analyze whether parts of the design space are good according to some criteria and not for others, and where compromises should be made. A white neuron has no sample associated with it: not enough evaluations were provided to train the SOM.

SOM's provide a qualitative view of the objective function, the constraints, and of their relative behaviors.

from __future__ import annotations

from gemseo import execute_post
from gemseo.settings.post import SOM_Settings

execute_post(
    "sobieski_mdf_scenario.h5",
    settings_model=SOM_Settings(save=False, show=True),
)
Self Organizing Maps of the design space, -y_4, g_1[0], g_1[1], g_1[2], g_1[3], g_1[4], g_1[5], g_1[6], g_2, g_3[0], g_3[1], g_3[2], g_3[3]
    INFO - 16:25:54: Importing the optimization problem from the file sobieski_mdf_scenario.h5
    INFO - 16:25:55: Building Self Organizing Map from optimization history:
    INFO - 16:25:55:     Number of neurons in x direction = 4
    INFO - 16:25:55:     Number of neurons in y direction = 4

<gemseo.post.som.SOM object at 0x72a4e1adf710>

The following figure illustrates another SOM on the Sobieski use case. The optimization method is a (costly) derivative free algorithm (NLOPT_COBYLA), indeed all the relevant information for the optimization is obtained at the cost of numerous evaluations of the functions. For more details, please read the paper by [KJO+06] on wing MDO post-processing using SOM.

tutorials/ssbj/figs/MDOScenario_SOM_v100.png

SOM example on the Sobieski problem.#

A DOE may also be a good way to produce SOM maps. The following figure shows an example with 10000 points on the same test case. This produces more relevant SOM plots.

tutorials/ssbj/figs/som_fine.png

SOM example on the Sobieski problem with a 10 000 samples DOE.#

Total running time of the script: (0 minutes 0.634 seconds)

Gallery generated by Sphinx-Gallery