내추럴 컴퓨팅은 자연에서 영감을 얻은 문제해결 방법을 연구하는 분야로, 이러한 기술을 이용해서 복잡한 문제를 해결하기 위한 새로운 알고리즘을 개발하고, 자연의 모델을 합성하며, 나아가 새로운 컴퓨팅 시스템을 설계할 수 있다.
이 책은 이러한 중요한 연구 분야의 핵심 주제를 다룬다.
1장은 신경망과 오류 역전파 학습 알고리즘 소개로 시작해서, TensorFlow 프레임워크 응용사례 설명으로 끝난다.
2장은 딥러닝 아키텍처를 다룬다: Keras 도구를 사용한 CNN, RNN, 그리고 오토인코더. 마지막 절에서는 OpenAI를 사용한 강화학습을 집중적으로 설명한다.
3장은 자연의 진화 원리를 응용한 유전 알고리즘이다. 순회 외판원 문제를 해결하는 유전 알고리즘을 어떻게 만드는지 보여주고, gplearn을 사용해서 복잡한 수학 문제를 해결하는 방법을 알아본다.
4장은 대표적인 떼 지능을 구현한다: 개미 집단 및 입자 군집 최적화. 마지막 절에서 SwarmPackagePy 프레임워크로 인공 벌 알고리즘을 구현한다.
5장은 세포 자동자 혹은 셀룰러 오토마타를 다룬다. 이 모델은 전통적인 수학적 기술로 다루기 어려운 아주 복잡한 물리적 문제를 해결하는 데 유용한 수학적 도구다. 우리는 가장 대표적이자 중요한 세포 자동자인 라이프 게임, 랭턴의 개미, 그리고 울프람의 세포 자동자를 구현한다.
6장은 프랙털과 그것이 생성하는 놀라운 수학적 세계에 대해 설명한다. 칸토어 집합과 만델브로 집합 같이 가장 잘 알려진 프랙털을 감상하는 프로그래밍 예제들과 IFS와 LS 시스템 같이 자연과 프랙털을 연결하는 수단에 대해 살펴본다.
7장은 양자 컴퓨팅을 소개한다. 양자 알고리즘의 원리를 설명하고, QiSkit 툴을 사용해서 양자 프로그램을 개발하는 방법을 알아본다. 이 프로그램은 IBM Q 머신이라는 실제 양자 컴퓨팅 플랫폼에 실행된다.
8장은 DNA 컴퓨팅의 주요 특징을 설명한다. 마지막 절에서 애들먼 실험에 대한 파이썬 모의실험을 살펴본다. 애들먼 실험은 분자 수준에서 계산을 수행할 수 있음을 보여준 최초의 실험이다.
CHAPTER 1 신경망 Neural Network
CHAPTER 2 딥러닝 Deep Learning
CHAPTER 3 유전 알고리즘 및 프로그래밍 Genetic Algorithms and Programming
CHAPTER 4 떼 지능 Swarm Intelligence
CHAPTER 5 세포 자동자 Cellular Automata
CHAPTER 6 프랙털 Fractals
CHAPTER 7 양자 컴퓨팅 Quantum Computing
CHAPTER 8 DNA 컴퓨팅 DNA Computing