Note
Go to the end to download the full example code.
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]](../../../_images/sphx_glr_plot_som_001.png)
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.
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.
SOM example on the Sobieski problem with a 10 000 samples DOE.#
Total running time of the script: (0 minutes 0.634 seconds)