Why should reals have all the fun?

This post made me think if we can use some aspect of machine learning to decipher interesting fractals in “an infinite universe”. Whenever someone asks the question: “Is there a way to automate finding “interesting” beautiful Mandelbrot structures?”, my first thought is why not use machine learning and neural networks? That was one of the inspirations for the post. I think another inspiration was to explore the word of complex dynamics (and hopefully make the complex number visuals dance using GIFs with FeatureSpacePlots).
​
Steps 1-3 exactly follows the post linked, steps 4-5 uses machine learning and neural networks for further analysis.

1. Define a function that approximates Mandelbrot set boundary


2. Define boundary approximation as a geometric region


3. Use RandomPoint to sample fractal frames along boundary


4. Use Clustering to identify interesting fractals with black and white images

Converting the graphics to images and using Clustering analysis to group them together. Just using black and white images as inspired by the post and “GaussianMixture” as the chosen method (after minor experiments)
In[]:=
picsbw=ColorConvert[#,"GrayScale"]&/@pics;​​SeedRandom[1234];randomsample=RandomSample[picsbw,50];
In[]:=
clusters=FindClusters[randomsample,Method->"GaussianMixture"]
Out[]=

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,


5. Use FeatureSpacePlot and neural networks to identify fractals

Next use neural networks as feature extractors to group the similar images together. Once it is grouped together, you can easily identify the interesting fractals. You can easily identify the interesting fractals in the two dimensional space.
In[]:=
extractor=NetDrop[NetModel["EfficientNet Trained on ImageNet with NoisyStudent"],-3];
In[]:=
SeedRandom[12];randomsamplecolor=Rasterize/@RandomSample[pics,20];​​fsp=FeatureSpacePlot[randomsamplecolor,FeatureExtractorextractor,LabelingSize90,ImageSize500,PlotRange->{{-7,7},{-2,2.6}}]
Out[]=
In[]:=
list=Table[ReplaceAll[fsp,list:{__Text}Take[list,i]],{i,20}];
In[]:=
Export["complex20dance.gif",list,AnimationRepetitions->Infinity,"DisplayDurations"ConstantArray[0.2,20]]
Out[]=
complex20dance.gif