대학원생 모집

카테고리 없음 2020. 8. 13. 15:09 Posted by KDST

KDST 팀에서 대학원생(석사, 박사, 석박 통합)을 모집합니다. 

공고는 아래 링크에서 확인하실 수 있으며, 기간은 8.24(월) 까지입니다. 

www.kist.re.kr/kist_web/?state=view&sub_num=3884&searchKind=&searchWord=&v_pagesize=10&v_page=1&idx=6125&seqNo=1&reportMediaTypeCode=

세부전공에서 영상미디어연구단 부서 아래에

"딥러닝 경량화/가속화, 딥러닝 한계 극복 모델, 시계열 데이터 분석, 지능형 첨단 미디어"를 선택하시면 됩니다. 

 

고려대, 연세대 등의 학위를 받으면서 KIST에서 실험실 생활할 수 있는 좋은 기회입니다. 

KIST가 대학교들과 공동 운영하고 있는 학연과정이며, 아래에 자세히 소개되어 있습니다. 

https://www.kist.re.kr/kist_web/?sub_num=2926

 

KIST 한국과학기술연구원

학·연협동연구 석·박사과정 어린이 학·연협동연구 석·박사과정 소개 KIST 학연 석 · 박사과정은 연구를 주임무로 하는 KIST와 인력양성을 주임무로하는 대학이 협동하여, 기존의 석ㆍ박사과정�

www.kist.re.kr

딥러닝 분야로 연구하고 싶은 분들의 많은 지원 부탁드립니다. 

궁금하신 점 있으시면 언제든 이메일로 문의 주세요. (suhyun_kim 애ㅌ kist.re.kr)

 

본 게시글에서는 얼마전 진행되었던 2020 CVPR에서 인상깊었던 논문인 "Dreaming to Distill: Data-free Knowledge Transfer via DeepInversion"을 소개해드리고자 합니다. Training dataset에 대한 사전 정보 없이 network inversion 방식을 통해 noise 이미지에서 해당 클래스에 속하는 이미지를 생성하는 방법론에 대한 논문입니다. 논문 링크는 이곳을 클릭해주세요. 

 

논문 포스팅에 앞서 Neural network inversion 방법론에 대해 간략히 소개합니다.

 

기존에 모델을 학습시켰던 training dataset에 대한 정보가 없을때, training dataset 이미지의 input space를 복원하는 방법론 중에는 Neural network inversion 방식이 있습니다. Neural network inversion은 기존에 pre-trained 된 모델의 weight를 고정시킨채로 noise한 이미지를 모델에 포워딩시키고, back propagation을 수행하며 weight가 아닌 node의 output 값을 update하는 방식입니다. 

 

이러한 Neural network inversion방식은 크게 2가지 카테고리로 분류할 수 있습니다.

  • Optimization based inversion
    • loss 값을 back propagation하며 gradient를 기반으로 optimization기법을 수행하여 실제 이미지와 근사한 input space를 예측하는 방식
  • Training based inversion
    • image를 생성하는 sub network가 존재하며 sub network를 학습시키며 input space를 예측하는 방식
    • ex ) Generative Adversarial Network와 같이 image generator를 활용하는 경우 

해당 논문은 첫번째 카테고리인 Optimization based inversion 방식으로, sub network를 활용하지 않고 optimization 기법을 통해 synthesized image를 생성해 내는 방식입니다. 본 논문에서는 기존의 DeepDream 방법론에서 사용하였던 loss function에 Regularization term을 추가하여 복원된 이미지를 실제 이미지와 비슷한 분포로 생성해 냈습니다.

 

DeepDream은 Optimization based inversion 기법중 하나로, 아래와 같은 loss function을 통해 noise에서 synthesized image로 optimize하는 방식입니다. 

 

loss function의 첫번째 term은 실제 이미지의 target label인 y와 inversion 과정에서 생성된 synthesized image인 x hat과 의 classification loss 입니다. 두번째 term은 image의 regularization term으로 생성된 이미지의 total variance (R_tv)와 l2 norm (R_l2)로 구성되어있습니다. 이러한 regularization term은 실제 이미지에 생성된 이미지가 수렴할수 있도록 도움을 주는 term입니다. 

본 논문에서 소개하는 DeepInversion은 DeepDream에서 사용하였던 loss function을 확장하여 synthesized image가 실제 이미지와 더 유사해지도록 만들었습니다. 

 

DeepInversion은 실제 training dataset 이미지와 synthesized image를 CNN에 포워딩 시켰을 때 각 레이어의 feature map 거리를 최소화 시켜 원래 이미지의 데이터 분포를 따라가게 하는 term을 추가 했습니다. feature 통계정보로서 feature map에서의 평균분산을 활용하였고 이러한 정보는 생성된 이미지가 실제 이미지의 분포를 따를 수 있도록 정규화 합니다. 따라서 synthesized image가 실제 training dataset batch단위의 평균과 분산을 따라가게 하는 R_feature term은 아래와 같습니다.  

 

실제 training dataset의 배치마다의 평균과 분산은 CNN 아키텍처에서 널리 사용되는 BatchNorm (BN) layer에 저장되어있습니다. 따라서 실제 training dataset 배치 x 평균의 기대값과 분산의 기대값은 아래와 같이 BN layer에 저장된 정보로 치환가능합니다.

 

따라서 DeepInversion의 regularization term은 R_prior와 R_feature를 추가함으로써 아래와 같이 정의할 수 있습니다. 

 

DeepInversion Regularization term

추가로, 논문에서는 DeepInversion의 성능을 개선시키기 위해 Adaptive DeepInversion (ADI) 방법론을 소개하고 있습니다. DeepInversion 방식으로 생성된 이미지의 다양성을 위해 정규화 term을 확장시켰습니다. 본 논문에서 주장하는 이미지의 다양성이란, 동일 클래스에 속하는 이미지더라도 다양성을 추구하는 이미지를 생성하는 것을 의미합니다. 

 

논문에서는 Jensen-Shannon divergence를 활용한 정규화 term을 추가하여 synthesized image가 student 모델과 teacher 모델의 output의 분포의 불일치를 유도합니다. Jensen-Shannon divergence는 KL divergence의 평균으로, 두 output간의 분포를 거리로 치환하여 거리를 최소화 시킴으로써 두 분포를 일치시킵니다. 하지만 본 논문에서는 이미지의 다양성을 추구해야 하므로 두 분포의 거리를 최대화 시키기 위해 Jensen-Shannon divergence 값을 1에서 뺍니다. 

 

따라서 Adaptive DeepInversion의 regularization term은 아래와 같이 정의할 수 있습니다. 

 

Adaptive DeepInversion Regularization term

아래의 그림은 위에서 설명한 loss function을 활용하여 random noise를 신뢰도 있는 synthesized image로 최적화하는 플로우 입니다. loss 값을 backpropagation 하며 원래 training dataset에 대한 정보 없이 input 이미지를 업데이트하며 synthesized image를 생성하게 됩니다. 향후 생성된 이미지로 Knowledge distillation 기법을 통해 student network를 학습시키며 높은 accuracy를 달성합니다. (논문의 4.4 section 참고) 

 

본 논문에서는 synthesized image가 얼마나 실제 training dataset의 분포와 비슷한지를 보여주고 있으며 다양한 application에 Data-free 기법으로 접근하여 높은 성능에 달성한 결과를 보여주고 있습니다. Pruning, Knowledge distillation, Continual learning 등에서 state-of-the-art 성능을 달성하며 자세한 실험 결과는 논문을 참조해주세요.

이상 논문 리뷰를 마치도록 하겠습니다. 자세한 내용은 full paper를 참고해주세요!

감사합니다.

개요:

요즘 스마트 엣지 혹은 엣지 단에서의 고속 스트림 프로세싱과 같은 표현들이 많이 보입니다. 데이터 처리 파이프라인에서, 보통 엣지 디바이스들은 센서 네트워크 등의 데이터 수집 전달, 그리고 서버 혹은 클라우드는 머신 러닝 러닝 등의 알고리즘으로 데이터를 분석하는 것으로 역할이 나뉘었습니다. 따라서, 앞에서 언급한 새로이 보이는 표현들이 점점 자주 보이는지 궁금해 하시는 분들이 많을 같습니다.

 

이번 포스팅에서는 이러한 새로운 시스템 디자인 트렌드가 생겼는지 살펴보고, 국내외 스마트 엣지 플랫폼에는 현재 어떠한 것들이 있는지 살펴 보겠습니다.

 

스마트 엣지와 스마트 시티, , 팩토리 플랫폼:

인공지능을 이용해서 가정, 공장, 그리고 주거 인프라를 최적화하여 가용성을 높일 뿐만 아니라, 다양한 서비스를 제공하기 위한 플랫폼을 개발하기 위해서 스마트 , 팩토리, 시티 등의 새로운 분야들이 생겨났습니다. 이러한 새로운 개념의 플랫폼들은 다양한 센서들로부터 실시간으로 데이터를 수집하고, 처리해야 합니다. 여기서 기존의 데이터 파이프라인 디자인과 크게 달라지는 부분은 다양한 종류의 센서들이 규모로 네트워크를 형성한다는 점입니다.

다수의 영상 고속의 센서 데이터 스트림을 집중화된 서버나 클라우드 시스템에서 처리하는 것은 서버나 클라우드 시스템을 그만큼 크게 증설해야만 뿐만 아니라, 증가하는 트래픽을 감당할 네트워크 증설까지 이루어져야 합니다. 예를 들면, 출입자 체온 측정의 경우, 만약에 엣지에서 출입자를 특정해서  출입자의 이미지와 측정된 체온을 스트리밍 한다면 네트워크 트래픽 서버의 부하가 크게 줄어들 것입니다. 이러한 센서 플랫폼을 도시 혹은 공장 규모로 확장해 보면, 엣지에서의 프로세싱이 주는 이점을 체감할 있을 것입니다.

 

스마트 엣지 플랫폼 스트리밍 플랫폼:

Gartner에서 2022년까지 80%이상의 기업 IoT 프로젝트는 IoT 디바이스에 AI 내장하게 것이라고 예측하고 있습니다. 트렌드에 맞춰서 이미 많은 기업들이 스마트 엣지를 기존의 플랫폼에 더하기 위해 다양한 시도를 하고 있습니다. Google Cloud IT Core 엣지에서 실시간 분석 ML 알고리즘들을 실행하기 위한 라이브러리를 더했습니다 [그림 1]. 라이브러리는 구글이 개발한 Edge TPU 디바이스에 최적화되어 있습니다. 트래픽 분산 실시간 처리 강화 뿐만 아니라, RAW 데이터를 로컬에 둠으로서 보안 향상 네트워크 장애 경우에 대한 시스템의 신뢰도를 향상시킬 목적입니다.  마이크로소프트도 Azure IoT Edge플랫폼[그림 2]이라는 구글과 유사한 컨셉의 플랫폼이 있고, 스마트 팩토리, 씨티 각각을 타겟으로 하는 솔루션들을 국내 대기업들도 개발 판매를 진행 중입니다.

 

위에 언급한 라이브러리 플랫폼들은 유료입니다. 오픈 소스 (무료 플랫폼) 경우에는 위의 경우들처럼 전체 파이프라인 다양한 엣지 디바이스 (센서 게이트웨이 혹은 헤비 라이트) 대해서 개발 가능하도록 편리하게 패키징 것은 찾기 힘든 같습니다. 그동안 엣지 디바이스에서의 스트림 프로세싱은 데이터 수집 전달 기능에 무게 중심이 있어 보입니다. 하지만, Apache Edgent 처럼 엣지 디바이스에서 다양한 프로세싱을 염두에 플랫폼들이 있지만, 실제로 사용해보면 연동성 면에서는 조금 미흡한 부분이 있습니다. 따라서, 일반 스트림 프로세싱 플렛폼 – Apache Flink, Spark structured streaming, Storm등도 연동성 측면에서 고려대상이 있습니다.

 

 

<그림1: Google Cloud Platform overview from https://cloud.google.com/iot-core/>

 

 

<그림 2: Microsoft Azure IoT platform heavy vs light edge concept from azure.microsoft.com>

 

아파치 스트리밍 플랫폼들

끝으로, 위에서 언급한 아파치 플랫폼 들에 대해 간략히 정리하겠습니다. 먼저, Hadoop Spark에서의 Map-reduce 모델은 다량의 데이터를 노드에 나누어 적용할 오퍼레이션을 맵핑한 다음, 처리된 데이터를 다시 key, value 쌍으로 스토리지에 저장하는 모델입니다. 네트워크 I/O 오버헤드를 고려하면, 데이터가 일정 이상 크기여야 오버헤드를 상쇄하고 이득을 있습니다. 따라서, 데이터의 batch 가지고 처리합니다.

하지만, 실시간 처리에서는 단일 이벤트 처리 관점에서의 지연 시간을 봤을 적합하지 않을 있습니다. 데이터 Batch 가지고 최적화된 모델은 throughput, , 처리량에 최적화된 모델이고, 실시간 처리에서는 이벤트당 처리 시간 latency 최적화가 이루어 져야 합니다.

 

실시간 처리에 최적화되어 가장 먼저 주목을 받은 것은 Apache Storm입니다. 하지만, 기존의 배치 프로세싱과 너무 다른 프로그래밍 인터페이스, 그리고 빅데이터의 가장 중요한 분야인 배치 프로세싱이 처음에 지원되지 않았습니다. 따라서, 다양한 경쟁 제품 들이 나오게 됩니다. Apache Flink는 기존의 Map-Reduce프레임 워크 들과 유사한 프로그래밍 인터페이스, 그리고 batch job을 통해 어느 정도 배치 프로세싱도 지원합니다. 

실시간 스트리밍 처리의 인기에 힘입어, 가장 인기있는 빅데이터 플랫폼 중에 하나인 Apache Spark에도 스트리밍 프로세싱 기능이 추가되게 됩니다. 개념적으로 batch를 쪼갠 mini batch를 만들어서 이벤트당 지연시간을 최적화하는 개념으로 구현되었습니다. 그리고, Apache Edgent처럼 엣지 디바이스에 최적화된 스트리밍 플랫폼도 등장합니다. 가볍게 만들기위해, 단일 노드안에서 실행하는 경우에 필요치 않은 여러가지 부가 매커니즘들을 없애서 가볍게 만들고, 원격으로 재설정 및 기기 생존을 체크하는 heart beat 등의 기능과 함께 구현되어 있습니다.

 

본 포스팅은 NIPS2018에 발표된 Knowledge distllation 연구 결과를 리뷰하도록 하겠습니다. 포스팅에 앞서, 주제와 관련된 모든 연구 내용은 Knowledge Distillation by On-the-Fly Native Ensemble 참조했음을 먼저 밝힙니다.

 

Preliminary


Knowledge distillation은 기계 학습 모델의 인상적인 성능 향상을 달성한 방법 중 하나입니다. 2014년 Hinton 교수 (NIPS 2014 Workshop)가 재해석한 distillation에 의하면 representation capacity가 큰 teacher model을 smaller capacity를 가진 student model이 aligning 할 수 있도록 하면, student model이 vanila process보다 qualifed performance를 달성할 수 있다고 하였습니다. 이를 바탕으로, 매우 다양한 형태의 distillation 방법들이 소개되었는데요. 본 연구는 지금까지 소개된 distillation의 방법론이 3가지 측면에서 문제가 있다고 지적합니다. 첫 째, longer training process, 둘 째, 상당한 extra computational cost and memory usage, 셋 째, complex multi-phase training procedure. 따라서, 저자는 distillation procedure의 simplification이 필요하다고 말하며, 2018년 Hinton 교수 (ICLR 2018)가 언급한 online distillation을 motivation 삼아 one-phase distillation training을 제안하였습니다.

 

Summary


본 연구에서 언급하는 simplification의 주된 영감은 multi-branch neural network라고 말합니다. Multi-branch neural network는 아키텍쳐 관점에서 대표적으로 ResNet이 있으며 이 모델은 feedforward propagation에서 identity를 고려하는 대표적인 two-branch network인 반면, Convolution 연산 관점에서는 group convolution을 예로 생각할 수 있습니다. group convolution의 경우 depthwise convolution과 같이 convolution을 특정 chnannel만큼 분할하여 수행하는 연산으로 ShuffleNet이나 Xception 등에 활용되었습니다. 이러한 Branch 구조는 최근 deep neural network가 더욱 깊어짐에 따라, 비례적으로 증가하지 못한 capacity 확장성 문제를 극복하기 위해 사용되었고 매우 성공적인 연구 결과를 도출하였습니다.

  이에 따라 본 논문은 성공적으로 모델 성능 효과를 달성했던 knowledge distillation을 multi-branch 컨셉에 접목하여 resource efficient distillation 알고리즘을 제안하였습니다. 아래의 그림은 제안하는 알고리즘의 overview인데요. Teacher model을 사용하던 과거의 컨셉과는 달리, network의 last level block에서 동일한 block을 병렬적으로 추가하여 ensemble 구조를 구현하였습니다. 이를 논문에서는 peer 혹은 auxiliary branch라고 표현하였으며, 이들의 logits 결과를 적절히 combination을 하면, teacher의 representation을 approximation 할 수 있다고 말합니다. 더욱 자세한 직관을 위해 그림을 설명드리면, 각 branch block은 동일한 아키텍쳐의 low-level layer를 공유하고 branch block마다 별도의 cross-entropy를 수행하도록 하였으며, 이 때 활용된 각각의 logits을 하나의 gate layer로부터 가중치를 얻어 summation을 하면 ensemble logits을 확보할 수 있는데, 이를 teacher logits으로 estimation 하고 ensemble cross-entropy를 처리하였습니다.

Overview of online distillation by the proposed On-the-fly native Ensemble (ONE)

 

본 논문에서 제안하는 Total loss는 아래처럼 총 3가지 텀으로 정의할 수 있습니다. (1) 각각의 branch에서 발생하는 cross-entropy의 합 (2) teacher의 것으로 estimation된 cross-entropy (3) teacher의 logits과 각 branch의 logits과의 KLLoss (Hinton KD). 본 논문에서 Hinton KD를 사용하기 위해 활용된 T는 3으로 하였으며 branch 개수는 [1, 2, 3, 4, 5]에 대해 각각 결과를 보여주었습니다.

Overall loss function by ONE

 

아래의 그림은 전체 알고리즘 동작에 관한 설명이며, Eq (1), Eq (3), Eq (4), Eq (6), Eq (7)에 관한 loss term은 논문에서 직접 확인 가능합니다. 본 논문의 data scale은 CIFAR10, CIFAR100, SVHN, ImageNet에서 하였으며, 모델은 ResNet에서 하였습니다. 

ONE Algorithm


서술한 내용 외에 본 논문에 대한 궁금한 점은 댓글로 남겨주세요.

 

감사합니다.

Mincheol Park

이번에 "Journal of Statistical Physics"에 accept된 논문 제목입니다. 

실제 네트워크의 공통 특성들을 반영하는 그래프 생성 모델이 몇가지 있는데 이론적인 특성에 치우친 경우가 많습니다.

본 논문에서는 현실을 반영한 "기존 노드간의 연결 추가"라는 새로운 모델 속에서 두 가지 종류의 연결을 섞어서 더 실제와 유사한 그래프를 생성하는 방법을 제안했습니다. 

내용은 아래 링크 누르시면 바로 확인이 가능합니다. 

(SharedIt이라고 읽기는 되지만 저장은 안 되는 서비스입니다)

https://rdcu.be/b2D3T

학부를 물리학과 나온 제게는 처음으로 물리학 관련 저널에 논문이 실려서 더 의미있게 다가옵니다.