안녕하세요, KDST에서 인턴 연구원으로 근무했던 김우정입니다.

 

이번에 김수현 박사님, 박민철 인턴 연구원님, 전근석 학연님과 함께 제출했던 논문이 NeurIPS (NIPS) 2020에 poster presentation으로 accept 되었습니다. 논문 제목은 "Neuron Merging: Compensating for Pruned Neurons" 입니다.

 

기존 structured network pruning 논문들에서는 신경망에서 덜 중요한 뉴런이나 필터를 제거하고 accuracy를 회복하기 위하여 fine-tuning을 합니다. 하지만 이때 제거된 뉴런에 상응하는 다음 layer의 차원 또한 제거됩니다. 따라서 pruning 직후에 다음 layer의 output feature map이 원래 모델과 매우 달라지게 되어 accuracy loss가 발생합니다.

본 논문에서는 제거된 neuron의 효과를 보상할 수 있는 "Neuron Merging" 컨셉을 제안했습니다. 또한 Neuron Merging 컨셉 안에서의 한가지 방법론으로, 추가적인 training이나 data 없이 pruning 직후 accuracy를 향상시키는 알고리즘을 제안했습니다. 

 

더욱 자세한 내용은 Conference 후에 다른 게시글로 소개하겠습니다. 감사합니다.

 

댓글을 달아 주세요

새 도메인 주소 (kdst.re.kr)

카테고리 없음 2020. 9. 26. 14:00 Posted by KDST

이제 https://kdst.re.kr 또는 http://www.kdst.re.kr 주소로도 저희 블로그에 접속하실 수 있습니다. 

물론 기존 그대로 kdst.tistory.com 주소도 동작합니다. 

 

댓글을 달아 주세요

대학원생 모집

카테고리 없음 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 등의 기능과 함께 구현되어 있습니다.

 

댓글을 달아 주세요

  1. Twodragon 2020.08.27 00:32 신고  댓글주소  수정/삭제  댓글쓰기

    잘 읽었고 많은 도움이 되었습니다.