ga-open-ai

animatedThe main aim of the project was to train neural networks using genetic algorithms. For that task, I used OpenAI Gym environments. In brief, the initial population consists of neural networks with randomly initialised weights and biases. During evolution, the best two parents are selected to create modified children (crossover and mutation). Finally, the genotype is represented as the flatten weights and biases matrix neural network. In conclusion, I trained three agents using this approach (even CNN network with over 787k parameters, see gif on the left).

real-q-voter

animatedI decided to conduct various experiments on the q-voter model, which is popular in sociophysics. How the number of agents influences the dynamics of the system? What is the impact of the network topology (directed and undirected)? What if we select agents based on their degree (the number of friends), not entirely randomly? I've made multiple simulations and plotted the relationship between the independence factor and mean opinion to answer those questions.

Own implementation of selected publications

Sentiment classification of movie reviews with CNN

animatedBased on two papers by Yoon Kim [1] and Xiang Zhang et. al [2] I created three neural network architecture: (i) character-level CNN, (ii) world-level CNN, (iii) hybrid approach combining DNN and word-level CNN for the sentiment classification task. The results on the movie review dataset show a slight improvement in merging networks for that task, e.g. (iii). For more information, take a look at my report.

[1] Kim, Yoon. "Convolutional Neural Networks for Sentence Classification." Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2014.
[2] Zhang, Xiang, Junbo Zhao, and Yann LeCun. "Character-level convolutional networks for text classification." Advances in neural information processing systems. 2015.

CNN for complex network classification

animated In paper by Xin et. al [1] the authors first embedded network using DeepWalk algorithm into 2-dimensional space. The rasterised image from 2D-embeddings was the input for CNN. In the last step, I've used a different approach. Namely, I plot 2D embeddings using matplotlib, and with OpenCV, I converted that image into the input to CNN. The network tried to distinguish images from two complex networks: (1) the Barabasi-Albert model and (2) the Watts-Strogatz model. The results in the case of accuracy and AUC were respectively 0.82 and 0.91.

[1] Xin, Ruyue, Jiang Zhang, and Yitong Shao. "Complex network classification with convolutional neural network." Tsinghua Science and Technology 25.4 (2020): 447-457.