This chapter addresses the computation–memorization trade-offs in the context of genetic programming (GP). We introduce genetic programming with memoryGenetic programming with memory (GPM) in which GP evolves not only the expression but also the content of a small local memory to better approximate the original data set. In particular, we evolved expression–memory pairs that can serve as weight generators and thus approximate the weights associated with convolutional layers of some convolutional neural networksConvolutional neural network (CNNs). This is potentially interesting for the efficient implementations of hardware acceleratorsHardware accelerator of CNNs in which memory access is significantly more energy-demanding than arithmetic operations. In our approach, most of the weights are approximated using an evolved expression; only some fraction of them must be read from memory. For example, if memory contains 10% of the original weights, the weight generator evolved for a convolutional layer can approximate the original weights such that the CNN utilizing the generated weights shows less than a 1% drop in the classification accuracy on the MNIST data set. The memory requirements are reduced 3.1 \(\times \) or 12.6 \(\times \) for 8-bit or 32-bit weights, respectively. Additional experiments conducted for more complex CNNsConvolutional neural network and challenging image classification benchmarks show various impacts of weights’ approximation on classification accuracyGenetic programming with memory.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Genetic Programming with Memory for Approximate Data Reconstruction

  • Lukas Sekanina,
  • Tadeas Juza

摘要

This chapter addresses the computation–memorization trade-offs in the context of genetic programming (GP). We introduce genetic programming with memoryGenetic programming with memory (GPM) in which GP evolves not only the expression but also the content of a small local memory to better approximate the original data set. In particular, we evolved expression–memory pairs that can serve as weight generators and thus approximate the weights associated with convolutional layers of some convolutional neural networksConvolutional neural network (CNNs). This is potentially interesting for the efficient implementations of hardware acceleratorsHardware accelerator of CNNs in which memory access is significantly more energy-demanding than arithmetic operations. In our approach, most of the weights are approximated using an evolved expression; only some fraction of them must be read from memory. For example, if memory contains 10% of the original weights, the weight generator evolved for a convolutional layer can approximate the original weights such that the CNN utilizing the generated weights shows less than a 1% drop in the classification accuracy on the MNIST data set. The memory requirements are reduced 3.1 \(\times \) or 12.6 \(\times \) for 8-bit or 32-bit weights, respectively. Additional experiments conducted for more complex CNNsConvolutional neural network and challenging image classification benchmarks show various impacts of weights’ approximation on classification accuracyGenetic programming with memory.