Deep Learning 개론 (서강대 강석주 교수)
※강연을 들으며 정리한 내용입니다.
<Outline>
- Introduction to Research Topics
- Introduction to Deep Learning
- Deep Learning Techniques and Applications
<Introduction to Research Topics>
- 연구실 연구 분야 : Computer Vision Software Application & Realistic Display Hardware Application
- 세부 연구 내용
- 딥러닝 기반 FPGA 하드웨어 구조 및 설계 연구
- 360도 VR 영상 획득 및 카메라 기술 연구
- 딥러닝 기반 차량 모니터링 시스템 개발 연구
- 딥러닝 기반 영상 처리 알고리즘 개발 연구
<Introduction to Deep Learning>
- 머신러닝의 종류 3가지
- Supervised Learning(지도학습)
- Unsupervised Learning(비지도학습)
- Reinforcement Learning(강화학습)
- 오늘 주로 얘기할 내용은 Supervised learning의 ANN, CNN, RNN.
- Supervised Learning은 Classification(분류)과 Regression(회귀)으로 나누어진다.
- Classification은 주어진 데이터를 정해진 카테고리에 따라 분류하는 문제
- Regression은 연속된 값을 예측하는 문제
- Unsupervised Learning은 대표적으로 Clustering(군집화)이 있다.
- Clustering은 주어진 데이터를 구분할 수 있는 클래스에 대한 지식이 없는 상태에서, 각 데이터들의 유사도에 근거하여 데이터를 구분하는 방법이다.
- Reinforcement Learning은 지도 학습, 비지도 학습과는 다른 개념이다. 자신이 한 행동에 대해 보상(reward)을 받으며 학습하는 것을 말한다. reward를 +,-주며 학습시킨다.
ex) Pepper robot learning "ball in a cup" www.youtube.com/watch?v=jkaRO8J_1XI
- Deep Learning은 오래전부터 연구가 되었던 분야이고, 현재 왜 이슈가 되는지 이해할 필요가 있다.
- 과거의 문제점으로 High computational cost와 Lack of big training data가 있었지만, 이것이 해결되었기 때문이다.
(Advance in Hardware, Advance in Algorithm, Big Data)
- Deep Learning을 적절히 잘 사용하니 Speech Recognition과 Image Classification이 아주 크게 개선되었다.
<Deep Learning Overview>
- 딥러닝에서의 가장 기본적인 unit은 neuron이다. 뇌에서의 neuron을 수학적으로 모델링한다.
- Biological Neural Network를 흉내내어 Computer Neural Network로 사용한다.
- hidden layer가 1개 있는 경우 Single-layer Neural Network, 2개 이상 있는 경우 Multi-layer Neural Network라고 한다.
- Layer을 왜 많이 사용해야 하는가?
- Different Position: 왼쪽으로 보고있는 개와 오른쪽을 보고있는 개를 position을 고려 못하면 다르게 구분할 수 있다.
- Wolf Vs. Samoyed: 어떤 부분이 다른지 인식을 못하면 구분을 못한다. 즉, 고유의 특징을 파악하지 못하면 구분 못한다.
- Deep하게 Layer를 쌓으면 feature를 적절하게 잘 추출할 수 있다.
- 잘 모르는 형태의 feature들이 Deep structure에서 layer들을 거치면 High-level feature들이 나오기 때문에 더 잘 분류할 수 있는 문제로 변하게 된다.
- 기존의 머신러닝보다 딥러닝이 좋은 점은 여러 가지 feature들을 다 볼 수 있고, 이를 통해 Classifier를 거쳐서 무엇인지 판단할 수 있다는 것이다.
<Convolutional Neural Networks (CNN)>
- Limitation of clssical neural network
- No consider topology(위상 배치) of image
- Too many training data are required to train
- Too much time is needed to learn
- CNN(합성곱 신경망)은 한 픽셀 단위로 보는게 아니라 convolution(합성)을 한다. 묶어서 대표값으로 뽑아내고 본다. 이를 여러번 거치면 topological image를 뽑아낼 수 있다. (비슷한 형태로 추상화된다)
- 항상 deep하면 deep할수록 좋은게 아니다. 어느 시점이 되면 덜 deep한게 성능을 충분히 낼수도 있다. 실제로 2살보다 6살이 더 dense하지만 6살이 지능적으로 뛰어나다. 6살 이후로는 거의 비슷한 neuron density를 가진다.
- pruning을 하면 특별하게 가중치가 없는건 끊는다. 의미있는 connectivity나 노드를 남겨서 sparse하게 만들어준다. sparse해도 성능은 거의 같다. resource와 complexity를 줄일 수 있어서 좋다.
<Application>
- Image colorization: 학습된 내용을 바탕으로 흑백사진에 컬러를 입힐 수 있다.
- High Dynamic Range: 밝음과 어두움을 조절하여 보기 좋게 화질을 향상 시킬 수 있다.
- Photo-realistic Image Synthesis: 실루엣만 그리면 나머지를 적절하게 잘 채워준다.
- Image Generation: 사진에서 Zebra->horse, Summer->Winter같은 것을 고퀄리티로 가능하게 해준다.
- Recent News: 영상을 해석해서 문장화시켜준다.
- Autonomous Driving: 핸들을 어떻게 할지 모델링하고 학습시켜서 자율주행을 가능하게 해준다.