
Introduction
머신러닝 / 딥러닝 분야는 지난 10년 동안 0~9 숫자 분류 같은 단순한 작업에서 시작해 DALL·E, ChatGPT 등 일견 인간의 창의력을 모방하는 수준에 이르러 눈부신 발전 속도를 보여주었지만, 이를 배우는 입장에서 기술 발전 트렌드의 빠른 변화와, 개발언어를 사용해 새로 나온 딥러닝 개념을 실제 코드로 구현하는 technicality 한 부분을 균형 있게 담고 있는 교보재를 찾기 어려웠다. 그런 점에서 이 책은 머신러닝 초보자라도 기초개념부터 시작해 상당히 구체적이고 심도 있는 개념을 실제로 적용하기까지 험난한 과정을 훨씬 쉽고 안전하게 바꾼 점에서 의의가 있다.
머신러닝 문제의 종류
- 지도학습 (Supervised Learning)
- 비지도 / 자가 학습 (Unsupervised / Self-Supervised Learning)
- 강화학습 (Reinforcement Learning)
머신러닝 분야의 발전과정
> 이론적 토대
- multilayer perceptrons (McCulloch and Pitts, 1943)
- convolutional neural networks (LeCun et al., 1998)
- long short-term memory (Hochreiter and Schmidhuber, 1997)
- Q-Learning (Watkins and Dayan, 1992)
> 컴퓨터 성능의 비약적 발전
- 데이터 스토리지 (Kryder’s law)
- CPU 성능 (Moore’s law)
- 다만, 메모리 용량은 데이터 세트 크기 증가에 비례해서 성장하지 못했기 때문에 효율적인 메모리 관리 기술이 머신러닝 분야에서 중요한 토픽이 되었다.
딥러닝 프레임워크 변천사
- 1세대: Caffe, Torch, Theano
- 2세대: TensorFlow, CNTK, Caffe 2, Apache MXNet
- 3세대: Chainer, PyTorch, GluonAPI of MXNet, JAX