Use neural network, based on user or CNN generated data, to determine whether one graph of CA will be liked. It is firstly an attempt to use NN to understand a chaos system, and secondly an attempt to simulate human aesthetics with algorithm.
So why don't use CNN directly for aesthetic appreciation? Because I want to try to connect the seed of a CA to the effect its graph creates: is it possible for such a chaotic system? That's the question that interests me.
- ANN_Judge.py uses artificial neural network to judge whether one particular CA graph satisfies user's standard.
- atm.py is 1D cellular automata with r = 2, k = 2.
- User_data_collection.py use atm.py to make it easy for users to generate preference data.
- CNN_Generator.py uses convolutional neural network to judge whether a CA picture satisfies user-induced standard. This now serves to provide data for ANN_Judge, because now it cannot understand the relation between a CA seed (in my case a 31-digit binary number) and features of its graph.
- Afterwards I found CNN_Generator not usful and switched to normal methods: to manually determine whether a map satisfies the triange criteria. Functionally speaking, Normal_Generator is completely equal to CNN_Generator.
- ANN_Data/Data_1 includes 200 training data and 30 testing data originally used to see the validity of ANN_Judge. It seems the data quantity is not enough. So I introduced CNN.
- ANN_Data/Data_2 includes enough data generated by Normal_Generator in the use of training ANN_Judge. 50,000 trainig and 5,000 testing data sets.
- CNN_Data/Data_1 includes 100 graphs and 100 results for training CNN_Generator.