Teaching a Machine Beauty
Total Page:16
File Type:pdf, Size:1020Kb
Teaching a machine beauty Intelligent interactive evolution of abstract animations Wouter Deenik M.Sc. Thesis August 2017 Supervisors: dr. M. Poel dr. ir. D. Reidsma Abstract Generative art in the form of animations is used more and more in the current screen-filled world. If these animations would be generated with as much freedom as possible, some problems arise. More freedom means more ‘ugly’ animations are generated, and an ugly animation can get unpleasant to look at, in contrast to an ugly image. Also, to steer the algorithm towards better animations, human feedback is needed, but giving feedback on animations takes time. A system is proposed and developed which can generate diverse abstract animations, while minimizing the number of unpleasant animations in its output to (partly) solve the stated problems. This system uses a modified version of an algorithm developed by Karl Sims [1] to render the animations, a genetic algorithm to improve those animations and a neural network acting as a filter to reject unpleasant animations from the system’s output. Feedback is gathered using a custom developed feedback interface. The system is evaluated and the performance of the filtering component determined in terms of precision, recall and F score in several different tests. When a system without a neural network to reject unpleasant animations, and one with such a network are compared, the system with neural network shows significantly less unpleasant animations. The precision of the neural network in the different tests tends to be around 0.75, which means around one out of four animations that pass the filter is given the lowest rating by users. Without a filter, the precision of the system is on average around 0.66: one in three of the shown animations would get the lowest rating. This shows an increase in precision when a neural network is used to filter the animations. Some good animations are rejected too, but since the system has a near infinite ‘pool’ of animations to draw from, this is not considered as a big problem. Several different neural networks are tested, but only the learning rate seems to matter in terms of performance. However, the learning speed seems to depend much on the dataset used for training the neural network. 50-100 animations seem to be the minimum number to train an untrained network to a performance close to the 0.75 precision observed in other tests. Several suggestions are made on how to improve the system. Table of contents 1 Introduction ............................................................................................................. 4 2 Context ...................................................................................................................... 9 2.1 Preference in art ................................................................................................ 9 2.1.1 Static art ...................................................................................................... 9 2.1.2 Animations ................................................................................................ 11 2.2 User feedback methods ................................................................................... 11 2.2.1 Feedback scales ......................................................................................... 11 2.2.2 Reliability ................................................................................................. 12 2.2.3 Usability .................................................................................................... 12 2.2.4 Animations ............................................................................................... 13 2.3 State of the art .................................................................................................. 13 2.3.1 Electric Sheep ........................................................................................... 13 2.3.2 Milkdrop ................................................................................................... 14 2.3.3 Self-developed ......................................................................................... 15 2.3.4 Karl Sims ................................................................................................... 16 2.3.5 Differences ............................................................................................... 16 3 Design & Implementation .................................................................................... 18 3.1 Main goal & requirements ............................................................................ 18 3.2 System architecture........................................................................................ 19 3.2.1 Animation renderer ............................................................................... 20 3.2.2 Animation improvement ...................................................................... 20 3.2.3 Feedback gathering ................................................................................. 21 3.2.4 Filtering..................................................................................................... 21 3.3 Animation renderer ...................................................................................... 23 3.3.1 Choosing an algorithm .......................................................................... 23 3.3.2 The algorithm explained ....................................................................... 24 3.3.3 Implementation ...................................................................................... 26 1 3.3.4 Reflection ................................................................................................. 30 3.4 Animation Improvement ............................................................................. 32 3.4.1 Structure and methods .......................................................................... 32 3.4.2 Construction of generations .................................................................33 3.4.3 Settings ...................................................................................................... 35 3.4.4 Reflection .................................................................................................. 38 3.5 Feedback gathering ....................................................................................... 40 3.5.1 Scale .......................................................................................................... 40 3.5.2 Interface .................................................................................................... 41 3.5.3 Reflection .................................................................................................. 41 3.6 Filtering component ...................................................................................... 43 3.6.1 Method ..................................................................................................... 43 3.6.2 Feature extraction .................................................................................. 44 3.6.3 Machine learning algorithm ................................................................ 48 3.6.4 Reflection .................................................................................................. 51 4 Testing ..................................................................................................................... 52 4.1 Overview .......................................................................................................... 52 4.2 Test 1 .................................................................................................................. 55 4.2.1 Method ...................................................................................................... 56 4.2.2 Results ....................................................................................................... 59 4.3 Test 2 ................................................................................................................. 63 4.3.1 Method ...................................................................................................... 63 4.3.2 Results ...................................................................................................... 64 4.4 Test 3 ................................................................................................................. 68 4.4.1 Method ...................................................................................................... 68 4.4.2 Results ....................................................................................................... 68 5 Discussion .............................................................................................................. 70 5.1 REQ1 ................................................................................................................. 70 2 5.2 REQ2 ................................................................................................................ 70 5.3 REQ3 ................................................................................................................. 71 5.4 REQ4 ................................................................................................................. 71 5.5 REQ5 .................................................................................................................. 72 5.6 REQ6 ................................................................................................................. 72 6 Conclusion .............................................................................................................