부스트캠프 AI Tech 2주차 회고 (2021-08-09 ~ 2021-08-13)

강의내용

  • 강의정리 및 강의노트는 저작권상 이유로 공개하지 않습니다.

학습현황

  • 21.08.09 월 (09:47 ~ 19:20)
  • 21.08.10 화 (09:30 ~ 19:19)
  • 21.08.11 수 (09:34 ~ 20:44)
  • 21.08.12 목 (09:30 ~ 23:35)
  • 21.08.13 금 (09:50 ~ 20:30)

진도

  • Data Viz (시각화의 요소 - Python & Matplotlib - Bar Plot - Line Plot - Scatter Plot)
  • Deep Learning Basic (MLP - Optimization - Convolution - Modern CNN - CV App - RNN - Transformer - Generative Models)

지난 주 선언에서 지킨 것과 지키지 못한 것

  • 수식을 손으로 풀어보자고 했는데 하지 않았다.
  • 따로 수학공부를 시작했다.

이번 주의 개선할 사항 및 자기성찰

  • 이론적인 부분에 많이 몰입하지 못했다.
  • 수학 공부를 따로 시작했으나 목표를 세우지 않고 시작하여 학습에 대한 기준점을 세우지 못했다.
자세히 보기

RNN 소개

Sequential Model

  • 일상에서 다루는 대부분의 데이터가 시퀀셜 데이터다. (말, 영상 등)
  • 시퀀셜 데이터를 다루는 가장 큰 어려움은, 우리가 가장 얻고 싶은 것은 어떤 영역에 어떤 정보가 있다와 같은 것인데, 시퀀셜 데이터는 길이가 얼마나 될지 모르는 것이다. 즉 데이터가 몇개의 차원으로 되어있을지 모른다는 것인데, 이것은 시퀀셜 모델은 몇 개의 데이터가 들어오든 동작할 수 있어야 한다.
  • 이전에 어떤 데이터가 들어왔을 때 다음에 어떤 데이터가 들어올 지 예측하는 것이 가장 기본적인 모형이다.
  • 과거에 고려해야 하는 정보량이 계속 늘어난다는 것이 가장 큰 어려움이다.

시퀀셜 모델을 가장 간단히 만들 수 있는 방법은, Fix the past timespan 과거의 데이터를 몇 개만 보겠다고 정해두는 것이다.

  • Autoregressive model
  • Markov model (first-order autoregressive model) 가장 큰 특징은 가정을 할 때 바로 이전 과거에만 dependent 한다는 것이다. 이러한 마르코프 모델은 과거의 많은 정보를 버릴 수밖에 없다는 단점이 있다.

Latent autoregressive model

  • 위의 모델들은 과거의 많은 정보를 사용할 수 없기에 대안으로 나온 것이 Latent autoregressive model이다.
  • 중간에 Hidden state가 들어가 있는데, 이것은 과거의 정보를 요약하고 있다고 생각하면 됨.
  • 즉 바로 직전 과거에 의존하는 것이 아닌 hidden state에 의존하는 구조이다.

Recurrent Neural Network

자기 자신으로 돌아오는 구조가 하나 있다. 나의 h_t 에서의 t에서의 hidden state는 x_t에 의존하는 것이 아니라 t - 1에서 얻어진 cell state에 의존하는 구조임.

Recurrent 구조를 시간순으로 풀게 되면 입력이 많은 FC Layer로 표현할 수 있다.

자세히 보기

Computer Vision Applications (Semantic Segmentation and Detection

Semantic Segmentation

이미지 픽셀 별 분류 과제이다. Dense Classification, Perl Pixel 등으로 불리기도 한다.

  • Fully Convolutional Network

    • output이 1000개의 채널이라고 하면, Dense Layer를 없애고 Fully Convolutional Network 로 변경하려는 것임.

    • Fully Connected (Dense) Layer를 사용하는 것과 결과적으로 똑같음. 파라미터도 완전히 똑같음.

    • 이러한 과정을 convolutionalization 이라고 한다.

      • Transforming fully connected layers into convolution layers enables a classification net to output a heat map.
    • While FCN can run with inputs of any size, the output dimensions(special dimension) are typically reduced by subsampling. So we need a way to connect the coarse output to the dense pixels.

  • Deconvolution (conv transpose)

    • 직관적으로 보았을 때 Convolution의 역 연산이다.

    • special dimension을 키워주는 역할을 하게 된다.

    • 엄밀히 말하면 convolution의 역 연산은 존재할 수 없다. 원래의 값으로 완전히 복원할 수는 없기 때문이다. 하지만 이렇게 생각하면 좋은 이유는 네트워크 구조를 짤 때 파라미터 크기와 네트워크 입출력을 계산할 때 역으로 생각하면 편하기 때문이다.

Detection

Semantic Segmentation 이랑 비슷하지만, 퓨어픽셀을 이용한 히트맵을 찾는 것이 아니라 객체들의 bounding box를 찾는 과제로 만든 것이다.

  • R-CNN
    1. R-CNN takes an input image,
    2. extracts around 2,000 region proposals (using Selective search),
    3. compute features for each proposal (using AlexNet),
    4. and then classifies with lenear SVMs.
  • SPPNet
    • RCNN의 가장 큰 문제는 이미지에서 2000개의 바운딩박스를 뽑았을 때, 2000개의 이미지 혹은 패치를 모두 CNN에 통과시켜야 한다. 즉 하나의 이미지를 처리하는데 CPU에서는 1분의 시간이 소요되었었다.
    • 이미지 전체에 대한 컨볼루션 피쳐맵을 만들고, 뽑힌 바운딩박스 위치에 해당하는 컨볼루션 피쳐맵의 텐서만 뽑아온 것으로 CNN에 통과시킴으로써 훨씬 빨라지며, 한 번의 CNN으로 결과를 얻을 수 있다.
  • Fast R-CNN
    • 기본 컨셉은 SPPNet과 굉장히 유사하지만, 뒷단의 Neural Net(RoI)을 통해서 바운딩박스 리그레션과 분류를 진행했다.
  • Faster R-CNN
    • 이미지를 통해 바운딩박스를 뽑아내는 Region Proposal 역시 학습을 시키자는 것임.
    • Region Proposal Network
      • 이미지가 있으면 이미지 속 특정 영역(패치)이 바운딩박스로서 의미가 있는지 없는지(즉 영역에 물체가 있는지)를 판단하는 것이다.
      • anchor boxes가 필요한데, 이것은 미리 정해놓은 바운딩박스의 크기이다. 내가 이 영역에 어떤 크기의 물체가 있을 것 같다라는 예상을 전제로 만들어 놓은 것임.
      • Fully Conv 레이어가 사용됨.
    • YOLO
      • extremely fast object detection algorithm
      • It simultaneously predicts multiple bounding boxes and class probabilities.
        • No explicit bounding box sampling (compared with Faster R-CNN)
        • 이미지 안에 찾고싶은 물체의 중앙이 그리드 안에 들어가면, 그 그리드 셋이 해당 물체의 바운딩 박스와 해당 물체가 무엇인지 같이 예측을 해야 한다.
        • 이 때 B개의 바운딩 박스를 예측하게 된다. 이후 바운딩박스의 refinement(x/y/w/h)를 예측하고, 각각의 그리드셋이 속하는 중점의 오브젝트가 어떤 클래스인지 예측한다.
        • 이 두 가지 정보를 취합하게 되면 박스와 박스가 어떤 클래스인지 예측할 수 있다.
자세히 보기

Context-Dependent-Pre-Trained-Deep-Neural-Networks-for-Large-Vocabulary-Speech-Recognition

Large-Vocab 음성인식을 위한 문맥의존적 사전학습 심층 신경망 - 음성인식에서 딥러닝이 고전 모델을 이긴 첫 사례

  • 기존에 잘 작동하는 모델들(특히 CD-GMM-HMM)은 적은 수의 레이어만을 가지고 있었기 때문에 역전파 알고리즘과 오토인코더 학습만으로 좋은 결과를 얻을 수 없었기에 실제 사용에 있어서 ASR(Automatic Speech Recognition)의 성능은 인간 수준에 미치지 못했다.
  • CD-DNN-HMM은 CD-GMM-HMM에서 HMM구조와 심층신경망을 결합한 형태로, 비지도학습 방식의 사전학습 HMM 모델의 정답을 DNN의 Training Label로 활용하는 준지도학습 방식의 딥러닝모델이다. 사전학습 때에는 심층 신뢰망(BDN)을 모방하여 오토인코더로 비선형적인 패턴을 학습하며 이후에는 BDN의 구조를 버리고 라벨링된 데이터를 가지고 Fine-Tuning을 진행하며 학습을 진행한다.
  • 적은 데이터만으로도 적은 Training Error를 기록하며 CD-GNN-HMM보다 훨씬 나은 성능을 입증했으며 딥러닝 모델로 시퀀셜한 데이터를 정교하게 학습할 수 있음을 입증했다.

어떤 문제가 있는지, 그 문제를 풀기위한 기존의방법, 기존 방법의 한계와 이 논문의 방법은 어떻게 문제를 해결했는지

Abstract

해당 논문에서는 대규모 단어집합의 음성인식(LVSR)을 위해 새로운 CD(Context-Dependent) 모델을 제안한다. 해당 모델은 DNN-HMM(Deep Neural Network - Hidden Markov Model) 구조로 되어있고, Senone(음성 인식의 term)의 분포를 출력하도록 훈련한다. 또한 CD-DNN-HMM을 LVSR에 적용하는 절차를 설명하고 고전적인 GMM-HMM(Gaussian Mixture Model) 구조의 성능을 크게 능가하는 것을 입증한다.

Introduction

최근 MMI(Maximum Mutual Information) Estimation, MCE(Minimum Classification Error) Training, MPE(Minimum Phone Error) Training, large-margin techniques, HMM(Hidden Markov Model), CRF(Conditional Random Fields, 새로운 음향모델) 등 주목할만한 발전이 있었지만, 그럼에도 불구하고 실제 사용에 있어서 ASR(Automatic Speech Recognition)의 성능은 인간 수준에 미치지 못했다.

최근 촘촘하게 직결되어 있고 많은 hidden layer를 가진 신뢰망(Belief Nets)에 주요한 발전이 있었다. 그 결과 심층신뢰망은 데이터에서 복잡한 통계적 패턴을 포착할 수 있는 비선형적인 특징 검출기의 계층을 학습할 수 있었다. 심층신뢰망의 학습 알고리즘은 우선 각각 레이어의 가중치를 순전히 비지도(unsupervised)적인 방법으로 개별적으로 초기화하고 라벨링된 데이터로 전체 네트워크를 미세조정한다. 이러한 준지도(semi-supervised)적인 접근은 음성, 오디오, 텍스트, 이미지 데이터의 분류 등을 포함한 수많은 어플리케이션에 효과적이라는 것이 입증되었다. 이러한 발전은 사전학습된 신경망과 ASR을 위한 다른 딥러닝 테크닉들을 기반으로 한 음향모델(acoustic model) 개발에 흥미를 불러일으켰다. 예를들어 문맥독립적인 사전학습된 심층신경망 HMM 하이브리드 구조는 최근에 전화인식 분야에 제안되었고 매우 경쟁력있는 성능을 달성했다. 심층신경망의 가중치를 초기활 때 사전학습을 사용하는 것은 문헌에서 논의된 두 가지의 잠재적인 이점이 있다. 사전훈련은 테스트케이스가 반복되지 않을 정도로 방대한 데이터셋이 있을 때에도 더 많은 데이터에 대해 일반화의 오류가 줄어들지 않는 효과를 가진 데이터 의존적인 독특한 종류의 정규화 방식으로 보자는 근거가 제시되었다. 입력들의 분포에 대한 정보를 사용함으로써 정규화를 통해 비교적 적은 라벨링 데이터로도 매우 표현력이 뛰어난 모델을 학습시킬 수 있다. 또한 다른이들도 추후의 최적화(전통적으로 SGD)를 목적으로 한 사전훈련과 일치한다는 증거를 보고했다. 결론적으로 사전훈련된 신경망은 사전훈련되지 않은 신경망보다 낮은 training error를 달성한다. 이러한 효과는 특히 깊은 오토인코더에서 두드러진다.

심층신뢰망은 최초의 사전훈련방식으로 연구된 방법이다. 깊은 오토인코더들이 사전훈련 심층신뢰망으로 효율적으로 학습될 수 있다는 것이 밝혀지고, 더 깊은 신경망에 대한 관심이 되살아났다. 많은 연구자들 역시 사전훈련이 많은 문제들과 모델 아키텍쳐, 심지어 거대한 데이터셋으로 훈련된 하나의 싱글레이어를 가진 신경망의 경우에도 도움이 될 것이라고 보고했다. 우리는 비지도학습 방식의 사전훈련 테크닉들을 많은 히든 레이어를 가진 신경망을 학습하는데 편리하고 강력한 방법이라고 보았다.

이러한 경유로 본 논문에서는 사전훈련된 심층신경망(DNN)과 문맥의존적(CD) 히든 마르코프 모델 사이의 하이브리드 구조인 새로운 음향모델을 제안한다. 본 모델에 사용된 사전학습 알고리즘은 심층신뢰망(DBN)이지만, dynamic Bayes net과 구별하고, 사전훈련이 끝난 후에 심층신뢰망을 버리고 오직 인식가중치를 유지하고 훈련하는 것과 구별하기위해 DNN-HMM이란 용어로 축약할 것이다. CD-DNN-HMM은 심층신경망의 힘과 CD-HMM의 시퀀셜한 모델링 능력을 결합한다. 즉, 모델의 주요 요소를 설명하고 파라미터를 학습하는 과정을 설명하며 CD-GMM-HMM의 성능을 뛰어넘는 것을 입증할 것이다.

자세히 보기