김승일

모두의연구소 연구소장

모두의연구소 딥러닝연구실 DeepLAB 랩짱



모두의연구소 페이지와 모두의연구소 커뮤니티에 오시면 더 많은 정보를 만나보실 수 있습니다.

모두의연구소 페이스북 페이지 : https://www.facebook.com/lab4all

모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs



----------


올해는 딥러닝을 한번 공부해봐야지 하고 있던 차에,

<딥러닝 워크샾 : 딥러닝의 현재와 미래>

라는 워크샾이 있다는 소식에 냉큼 신청하고 다녀왔습니다.

 
(링크 :  http://mlcenter.postech.ac.kr/workshop )

워크샾에서 딥러닝이 뭔지 다 알아보고 오겠다!! 라는 목표로 간 건 아니고,

앞으로 공부할 때 진입장벽을 낮춰보고자
어떤 분야들이 있는지.. 어떤 주제들이 회자되고 있는지
등등을 알아보러 간 것이었습니다.

잘 모르는 상태에서 남기는 거라 + 현재 발표자료가 공유가 되지 않아서
정돈되지 않은 내용이지만, 그래도 안적어 놓으면 까먹으니 메모 차원에서 적어봅니다.

 

1. Deep Learning : A Quick Overview
(최승진 교수, POSTECH)

왜 deep learning이 성공했을까?

  • layer 별로 pre-training을 시켜서 initialization을 잘했다.
  • training 시 drop-out (몇몇 node를 training 할 때 빼버리고 함)시킴으로써 over-fitting(node 수가 너무 많아서 over-estimate되는 것) 을 감소 시켰다.
  • 기존의 sigmoid 함수를 rectified unit function로 대체함으로써, vanishing gradient effect (back propagate되는 error가 input layer에 가까울수록 사라져버리는 현상)를 줄였다.

Restricted Boltzmann Machine

Restricted란, 같은 layer끼리는 연결시키지 않는 것을 의미.
RBM은 주로 pre-training에 사용.

 

2. Artificial Intelligence and Intelligence Business
(정상근 박사, SKT미래기술원)

Latent Variable

Latent(Hidden) Variable , h , 가 DNN의 핵심. 그래서 h의 의미를 알아야 함.

h의 의미를 알아보기에 앞서,
input x를 살펴보면,
input x는 관측 가능하고, 이세상에 존재하는 것. 따라서 확률로 모델링도 가능.

latent variable, h, 는 가상의 값이며, 간접적으로 측정가능하고, 무엇이든 될 수 있음.
즉, 무한대의 의미를 가지는 영역이라고 볼 수 있음.
어떻게 DNN을 설계하느냐에 따라 h를 우리가 원하는 곳으로 수렴을 시킬 수 있음.

무한대의 h 영역을 보다 작은 + 보다 의미있는 영역으로 줄여야 하는데

- x와 연관을 가지도록 만듬. (조건부 확률을 이용)
- 많은 input data set (많은 x)를 사용해서 h 영역을 더 줄일 수 있다.
- output y를 추가로 고려해서 h영역을 더 줄일 수 있다. 여기서 output y역시 x와 같이 관측 가능한값. training을 시킨다를 의미하는 듯.

Semantic Converter

DNN은 observation(사물이나 현상)을 semantic(숫자)을 바꾸어 주는 역할을 한다.

예전에는 Analog to Digital Converter가 나오면서 과학기술이 엄청나게 발전했다면,
앞으로는 Observation to Semantic Converter가 나오면서 또 번의 큰 발전이 있을 것 같다.

특히 Semantic Converter는 후발주자가 따라 오기 힘드므로, 연구에 힘써야 한다. (많은 data와 경험이 필요)

 

3. Recent Advances in Recurrent Neural Networks
(최희열 박사, 삼성종합기술원)

Convolutional Neural Network vs Recurrent Neural Network

CNN은 모든 발표에서 빠지지 않는 feature extraction과 pattern recognition을 한방에 DNN으로 돌리는 것.

RNN은 node가 자기자신의 node로 다시 연결되는 것.
(추측. 아마도 자기 자신으로 연결될 때 time delay을 주고 연결시키는 것 같음. 그래서 memory 기능을 탑재하고 + temporal structure를 만드는 듯).

따라서, 음성인식(여러 frame의 data을 활용하여 하나 or 몇 개의 출력을 내보내는 것)에 응용 가능.
CNN은 하나의 still image만 사용하는 영상 인식에 주로 응용. (아마도 video 분석이라면 RNN도 사용하지 않을까 추측됨)

Bidirectional RNN

Unfolding

RNN은 자기 자신 node로 들어오는 녀석 때문에 학습을 위해 각 time stamp별로 NN를 만들어서 한다.
그러므로, back propagation으로 adaptation할 weight가 엄청나게 많아짐. 따라서 RNN은 학습이 매우 어렵다.

또한 일반적은 CNN에서도 vanishing gradient 문제가 있는데, RNN은 unfolding하므로 더더욱 큰 문제가 됨.
현재는 LSTM(Long Short-term Memory)라는 기술을 사용하는 것이 일반적.

Connectionist Temporal Classification (CTC)

많은 프레임의 음성이 입력되도 à 출력은 결국 몇 개의 음성인식 처리한 값만 나오게..

Attention Mechanism (최근 뜨고 있는 중요한 내용이라고 함.)

Attention decides which parts you have to look at.

Regularization

Local Minima를 피하는 방법

Transfer Learning

이미 만들어진 시스템을 다른쪽에 가져다가 활용하기 ex. 한국어 음성인식기를 구비하고 있으면, 그 정보를 영어음성인식기에도 활용.

Curriculum learing / Incremental learning

training 다 했는데, 입력이 또 새로 몇 개 들어오면??

Dark Knowledge

deep network 가 너무 크니까 작게 만드는 방법.

deep network가 모두 training 되면, 그걸로 다시 shallow network를 만듬. 출력 layer보다 hidden layer가 보다 많은 정보를 가지고 있음을 활용. 출력 layer를 빼고 잘 처리 해서 만듬. (노드를 많이 줄이고 레이어를 조금 늘려도 될거고, 레이어를 많이 줄이고 노드를 조금 늘려도 될거고??)

DNN의 응용

machine translation : 문장 자체를 하나의 점으로 표현해 버림. (해당점을 아마 다른 언어로 다시 풀겠지?)

image caption : image가 주어지면 그걸 문장으로 설명. 이게 되면 파란 차 나온 사진을 x 라고 하면, x – (blue) + Red 라고 하면 빨간 차가 검색됨. 비슷하게 Beijing 사진 – China + Japan 하면 Tokyo 사진을 검색해 올 수 있음.

 

4. Deep Learning, Long Learning, and Human-Level AI
(장병탁 교수, 서울대)

Long Learning, Human Lifeome Learning

아주 오랫동안의 human data를 가지고 learning을 하고 싶다. 그래서 'Human Life Grammer'를 찾고 싶다. 그래서 전단계로 video를 활용해서 long learning을 해봄. 처음에는 10년짜리 동영상인 Friends로 했었는데 너무 어렵더라.. 그래서 좀 쉬운 애니메이션으로 다시 도전. (Maisy ABC, 뽀로로)

183편의 뽀로로를 가지고 Multi-modal concept map을 만들고, vision-language translation을 수행. (비디오가 주어지면 그 비디오를 문장으로 바꿈) 그 반대인 문장이 주어지면 비디오로 바꾸는 것도 연구중. 이게 되면 진정한 '상상력 기계'가 완성되고 184편을 알아서 자동으로 생성하게끔 할 수도 있을 것.

최근에는 wearable 기기와 IoT 가 뜨면서 많은 사용자 data 획득이 가능해졌음. 이것들을 이용하여 human life grammer를 완성할 수 있을 것인가?

현재는 서빙 보는 웨이터에게 이런저런 wearable 기기를 부착해서 데이터를 수집하고 있음. (대화/시선/행동 등) 그리고 이걸 학습한 모델을 웨이터 로봇에게 이식.

 

5. Rotating Your Face Using Multi-Task Deep Neural Network
(김준모 교수, KAIST)

큰 반향을 일으킨 페이스북의 DeepFACE 가 나오고 몇 달 있다가 DeepID2를 개발해 최고의 얼굴인식기를 발표한 이름까먹은 회사 ( 발표자료 공유 좀… -_-;; ) 에서 2013년도에 재밌는 논문을 하나 발표. '정면이 아닌 얼굴' + '아무렇게나 막 조명' 인 입력 사진을 정면샷 + 노멀한 조명 으로 변신시켜주는 알고리즘을 발표했음.

그렇다면, 우리는

  • 임의의 pose + 노멀한 조명을 만들어 보자!
  • 임의의 pose를 만들수 있다면 다양한 pose image를 출력하고, 그것을 다시 얼굴 인식의 input으로 넣으면 성능향상이 있지 않겠냐?

라고 생각해서 열심히 실험했으나, 위의 그 회사에서 먼저 발표.

어쩔 수 없이 그 회사의 것보다 더 좋은 걸 만들어야 해서 Multi-Task Learning을 추가.

Multi-Task Learning이란, 수학을 잘하는 학습기만 있으면 되는데 괜히 물리를 잘하는 학습기까지 같이 만들어 버리는 것. 그러면 수학을 더 잘해짐.

즉, 학습기의 특정 부분을 split해서 두개로 쪼개어 학습시키면 쪼개져 나간 녀석으로 인해 원래부분이 더 잘 돌아감. 여기서는 split하진 않고 cascade하게 뒷단에 하나를 더 붙임. 임의의 pose가 나오게 만든 후, 그 결과를 다시 원영상을 만들도록 하는 학습기를 더 둠. ( 내 생각 1. 결국 constraint를 하나 더 두는 거지..) (내 생각 2. 제안된 multi-task learning system을 모두 통 틀어서 보면 결국 auto-encoder의 형태가 되는거 아닌가? 차원을 줄이는 효과는 없겠지만.. 나중에 좀 깊이 파서 공부하면 재밌을 듯.)

 

6. Exploiting the Power of Deep Learning with Constrained Data
(백승욱 대표이사, 클디)

Multi-Scale CNN

SIFT같은 local descriptor는 multi-scale을 처리. CNN도 그렇게 만들어보자.

scale이 작은 경우 (큰 patch)에서 fully connected layer를 사용하면 계산량이 너무 많음. 그걸 CNN으로 대체. (내 생각. locally connected NN를 썼다는 거 였나??)

그래도 over-fit됨. 생각해보니 CNN은 mid or high level feature를 뽑는데 좋음 (vs. SIFT는 local feature) 따라서 너무 작은 patch(큰 scale)까지 CNN을 하면 오히려 성능이 하락. 너무 작은 건 안하도록 만듬. 그랬더니 성능이 state-of-art 수준으로 올라가더라.

 

ps1. 내용에는 사기치는 부분도 있을 수 있으며, 사기라기 보다는 몰라서 그랬다고 생각해주세요. 댓글로 알려주시면 고치겠습니다.

ps2. 주최측에서 자료를 오픈하지 않아서 손메모에 의존한 거라 내용이 많이 빈약하고 모든 세션을 다 다루지는 못하겠네요. 깔끔한 운영이었으나 자료를 워크샾 전에 오픈했으면 좋았을텐데 하는 아쉬움이 남았습니다.

 



신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. 하성주 2015.04.27 15:42 신고

    저도 다녀왔었는데 시간이바빠 정리를 못해서 가지고있었는데 다시한번 보고 리마인드할 수 있어 좋았습니다. 감사합니다.

    • 이게 그림도 하나 없이 글로 쓱쓱 적은거라.. 많이 도움이 되었을지 모르겠네요.
      언제 잘 공부해서 관련 내용들을 정리해 보도록 하겠습니다 ^^

  2. ejlee 2015.10.20 15:51 신고

    감사합니다. 정리가 잘 되어있어 도움이 되었습니다 :)

+ Recent posts