이 글은 Edwith 최성준님의 ‘논문으로 짚어보는 딥러닝의 맥’ 강의 중 ‘딥러닝 준비하기 - 딥러닝 & 딥러닝 개발도구’ 의 글을 정리한 내용입니다. 덜 중요하다고 생각된 내용들은 생략될 수 있습니다.
강의주소 : https://www.edwith.org/deeplearningchoi
딥러닝 이란?
Definition
위키피디아에 딥러닝을 찾아보면 다음과 같이 정의를 요약할 수 있습니다.
Deep learning is a branch of machine learning based on a set of algorithms that attempt to model high-level abstractions in data by using multiple processing layers, with complex structures or otherwise, composed of multiple non-linear transformations.
keywords : machine learning, high-level abstractions, network
- Deep Learning, AI 은 동의어가 아닙니다.
- Machine Learning 이라는 분야 : 데이터가 주어졌을 때 이 데이터로부터 유용한 정보를 뽑아내는 것.
- Machine Learning 안에 Deep Learning 이라는 분야가 있습니다. Machine Learning의 좋은 알고리즘 들 중 하나입니다.
Deep Learning 안에는 다음과 같은 것들이 있습니다.
- MLP : Multi-layer Perceptron (feedforward network)
- CNN : Convolutional Neural Network (영상처리에 특화)
- RNN : Recurrent Neural Network
사실 딥러닝은 최근에 나온 것이 아니라 굉장히 역사가 길고 딥러닝의 시초가 되는 모델들은 20세기 초부터도 있었습니다.
- Inception, GoogLeNet등 최근 나온 모델들도 있습니다.
- 최근에 주목을 받은 이유는 CPU, GPU의 발전으로 더 많은 데이터를 처리할 가능성 덕분입니다.
- 딥러닝은 인간, 생체를 모방했기 때문에 잘 되는 것이 아닙니다. 비행기가 새 처럼 만들어야 잘 나는 것이 아니라 유체역학 구조를 이용해야 더 잘 나는 것 처럼요.
- 딥러닝은 사람의 뉴런을 모방하기 때문에 잘 되는 것이 아니라 그 구조가 많은 데이터를 처리하기에 적합하기 때문에 잘 되는 것입니다.
- MLP구조는 이미 많은 것을 할 수 있고 어떠한 함수를 모방할 수 있습니다.
- 딥러닝은 모든 것을 할 수 있는 것은 아닙니다. 학습시키기 위한 테크닉과 많은 데이터도 필요합니다.
딥러닝 활용 도구
- 딥러닝 개발을 위한 툴들은 아주 많습니다.
- Tensorflow(실습에 사용 예정)
- PyTorch
- Caffe
- Keras 등
- 딥러닝을 개발하다보면 모듈 하나하나를 다 바꾸고 싶을 수가 있고, 있는 기능들을 활용하고 싶을 때가 있습니다. 기존 모듈을 그냥 활용하기는 쉽지만 새로운 것을 만들기는 힘든 것을 Blackbox라 하고, 입맛대로 바꿀 수 있는 것을 Whitebox라고 하면 기존의 툴들을 그림과 같이 배열해볼 수 있습니다.