WOLFRAM NOTEBOOK

In[]:=
Rotate[GridGraph[{5,5}],45Degree]
Out[]=
m bits of initial data; m’ bits of final data
FoldPairList
In[]:=
ica[rules_,state_]:=MapIndexed[CellularAutomaton[rules[[First[#2]]]][#][[2]]&,RotateLeft[Partition[state,3,1,1],-1]]
In[]:=
cainf[ra_,init_]:=Fold[ica[#2,#1]&,init,ra]
In[]:=
cainflist[ra_,init_]:=FoldList[ica[#2,#1]&,init,ra]
In[]:=
ica[{30,90,30,90},{1,0,1,1}]
Out[]=
{0,0,1,0}
In[]:=
RandomInteger[1,30]
Out[]=
{1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1}
In[]:=
Partition[%,2,1]
Out[]=
{{1,1},{1,1},{1,1},{1,0},{0,0},{0,0},{0,1},{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,1},{1,0},{0,1},{1,0},{0,0},{0,1},{1,0},{0,1},{1,1},{1,1},{1,0},{0,0},{0,1},{1,1}}
Can I build an autoencoder just with non-identity rules?
Can it be incrementally trained?
Just have a big space; doesn’t need continuous variables

Evolutionary rule

Look at n changes, and pick out k (<<n) “winners”

Setups

1. Cellular automaton with the same rule everywhere; adjust the rule [ analog of biological evolution ]
2. Inhomogeneous CA, e.g. 2 different possible rules [ analog of neural net ]

ICA with 2 rules

E.g. 240 and 170
In[]:=
RandomChoice[{240,170},{20,10}]
Out[]=
{{240,240,170,240,240,240,240,170,170,240},{240,240,170,240,240,170,240,240,240,240},{170,240,240,240,170,170,240,240,240,170},{170,170,240,240,170,170,170,170,170,170},{170,170,170,170,240,240,240,240,170,240},{170,240,170,170,170,240,240,240,170,170},{170,240,170,170,170,240,240,240,240,240},{170,170,240,170,170,240,240,170,170,170},{170,240,170,170,170,170,170,170,170,170},{240,240,170,170,240,170,170,170,170,170},{170,170,170,170,240,170,240,170,170,170},{170,240,170,240,170,170,170,170,170,170},{170,240,170,170,170,240,170,170,170,170},{240,240,240,240,240,240,240,240,240,240},{240,240,170,170,240,170,170,240,240,170},{240,240,240,170,170,170,240,240,170,240},{170,240,170,170,170,170,170,170,170,240},{170,170,240,170,240,240,170,240,170,170},{240,170,240,240,170,170,240,240,170,170},{170,170,170,240,240,170,240,240,240,170}}
In[]:=
ArrayPlot[cainflist[RandomChoice[{240,170},{10,20}],CenterArray[{1},20]]]
Out[]=
In[]:=
ArrayPlot[cainflist[RandomChoice[{240,170},{100,200}],CenterArray[{1},200]]]
Out[]=
In[]:=
Table[ArrayPlot[cainflist[RandomChoice[{240,170},{100,200}],CenterArray[{1},200]]],10]
Out[]=
,
,
,
,
,
,
,
,
,
Let’s try to autoencode blocks of black cells ; i.e. we have n black cells in the initial state; get the same thing out.
In this situation, it’s conceivable that a complete autoencoder is possible....
Wolfram Cloud

You are using a browser not supported by the Wolfram Cloud

Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.


I understand and wish to continue anyway »

You are using a browser not supported by the Wolfram Cloud. Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.