Abstract

We propose Efficient Neural Architecture Search (ENAS), a fast and inexpensive approach for automatic model design. In ENAS, a controller discovers neural network architectures by searching for an optimal subgraph within a large computational graph. The controller is trained with policy gradient to select a subgraph that maximizes the expected reward on a validation set. Meanwhile the model corresponding to the selected subgraph is trained to minimize a canonical cross entropy loss. Sharing parameters among child models allows ENAS to deliver strong empirical performances, while using much fewer GPUhours than existing automatic model design approaches, and notably, 1000x less expensive than standard Neural Architecture Search. On the Penn Treebank dataset, ENAS discovers a novel architecture that achieves a test perplexity of 55.8, establishing a new state-of-the-art among all methods without post-training processing. On the CIFAR-10 dataset, ENAS finds a novel architecture that achieves 2.89% test error, which is on par with the 2.65% test error of NASNet (Zoph et al., 2018).


우리는 빠르고 계산 비용이 저렴한 자동화 모델 ENAS를 제안한다.

ENAS에서 컨트롤러는 거대한 계산 그래프에서 최적화된 그래프를 찾아 신경망 아키텍처를 발견한다.

컨트롤러는 검증셋에서의 보상을 최대화하는 서브그래프를 선택하는 정책 그래디언트를 통해 학습된다.

서브그래프에 해당하는 모델은 표준 크로스엔트로피 손실 함수를 최소화하도록 학습한다.

하위 모델간에 매개변수를 공유하는 것은 ENAS가 기존의 자동 모델 설계 방법보다 강력하고, 훨씬 적은 GPU를 사용하며, 1000 배 이상 비용이 저렴하다.

Penn Treebank 데이터셋에서 ENAS는 어떠한 전처리를 거치지 않고 가장 좋은 성능을 달성하였다.

CIFAR-10 데이터셋에서도 ENAS는 NASNet 2.65%에 가까운 2.89%의 테스트 에러를 보여주었다.


요약

  • NAS의 방식은 컨트롤러가 하이퍼파라미터를 예측해서 이를 반환해주고, 반환된 하이퍼파라미터를 통해 metric을 산출한 뒤, 이를 reward로 책정하여 강화학습을 통해 모델을 결정하는 방식
  • 기존의 NAS는 GPU 시간을 너무 많이 쓰고, 비효율적이라는 문제점이 존재한다. 또, 컨트롤러(RNN)가 뱉어내는 모델마다 새로 학습하기 때문에 병목 현상을 발생시키고 있다.
  • 이 논문에서 제안하는 ENAS는 RNN이 뱉어내는 모델의 파라미터를 공유하도록 해서 학습시간을 줄여보자는 것이다.

  • 위 그림에서 각 노드는 모델 구성에 결정할 하이퍼파라미터에 대한 정보를 담고 있고, 각 엣지는 어떤 노드로 연결될지를 의미한다. 각 노드안에서 사용한 파라미터는 다음 번에도 사용된다.
  • 첫 번째 노드 선택은 고정, 이후 노드 선택은 랜덤, 마지막 노드 선택은 남은 노드를 전부 선택하여 결과를 평균내는 방식으로 진행한다.
  • 큰 방식은 전체 모델 구조를 정한 뒤, 노드를 정해서 세부 구조를 정하는 방식.
  • 크게 다른 것은 없고, CNN 모델을 구성하는 경우에도 위와 같은 방식을 사용하여 모델을 구성한다는 것을 계속해서 설명한다.

 

 

Reference

Pham, H., Guan, M. Y., Zoph, B., Le, Q. V., & Dean, J. (2018). Efficient neural architecture search via parameter sharing. arXiv preprint arXiv:1802.03268.
https://www.youtube.com/watch?v=fbCcJaSQPPA&list=PLWKf9beHi3Tg50UoyTe6rIm20sVQOH1br&index=69

ABSTRACT

YouTube represents one of the largest scale and most sophisticated industrial recommendation systems in existence. In this paper, we describe the system at a high level and focus on the dramatic performance improvements brought by deep learning. The paper is split according to the classic two-stage information retrieval dichotomy: first, we detail a deep candidate generation model and then describe a separate deep ranking model. We also provide practical lessons and insights derived from designing, iterating and maintaining a massive recommendation system with enormous userfacing impact.


유튜브는 가장 거대하고 정교한 상업적 추천시스템이다.

이 논문은 높은 수준으로 시스템을 설명하고 딥러닝으로 인한 극적 성능 향상의 설명을 다룬다.

논문은 고전적인 2단계 정보 검색 이분법에 따라 분할하여 설명한다.

첫 번째, 깊은 후보 생성 모델을 자세히 설명하고 별도의 깊은 순위 모델을 설명한다.

또한, 대규모 사용자 추천 시스템을 설계, 반복 및 유지 관리하는 데 도움이 되는 실질적인 교훈과 통찰을 제공한다.


요약

  • 크게 두 가지를 사용한다. Candidate Generation Model과 Ranking Model.
  • 실제 상황에서는 엄청난 양의 데이터와 제한된 컴퓨팅 파워, 새로운 컨텐츠, 그리고 노이즈 데이터와 같은 문제를 해결해야 한다.
  • 전체적인 구조는 다음과 같다.

  • 수백만개의 비디오를보고 유저 정보를 통해 후보들을 만들어낸다. -> 후보들을 추려내고 비디오 특징을 통해 랭킹을 매겨서 최종적으로 추천을 하게 된다.

< 후보 생성 모델 >

  • Video Embedding과 Search Token Embedding을 사용하였고, 모두 Dense Vector를 사용. Embedding 다음으로는 Combiner를 통과하는데, Combiner는 Embedding의 값을 average하여 watch vector와 search vector를 만듬.
  • 위에서 만든 2개의 벡터와 Example age, gender 등의 모든 정보를 concat함. 이렇게 만들어진 vector를 fcn에 통과시킴. 모든 단계는 다음 그림과 같다.

  • 출력값은 유저가 어떠한 정보를 선호하는가에 대한 값이며, 이를 softmax로 구함. 하지만 출력값은 몇백만개가 되므로 Negative Sampling을 통해 거르고 난 후의 결과를 사용함.
  • 모델 학습이 과거의 동영상을 사용하기 때문에, 실제 추천에서도 과거 동영상을 고르는 경우가 많음. 따라서 이를 방지하기 위해 Example Age, 즉 영상의 나이를 피처로 추가하였음. 특히 이런 피처들을 넣었을 경우 성능 향상을 직접적으로 경험하였다고 실험에서 보여주었음.
  • 그 외에 모든 비디오 시청이력을 사용하였고, heavy user에 치우치지 않도록 이용자별 영상 횟수를 fix하고, 새로운 검색 쿼리에 추천엔진을 반영하지 않고, 비대칭적인 감상 패턴을 적용한다. 여기서 비대칭적인 감상 패턴은 A -> B -> C 순서의 동영상 시청처럼 규칙적인 것이 아닌 것을 말한다.

< 랭킹 모델 >

  • 동일하게 임베딩을 사용함. 대신 이 모델의 임베딩에서는 average 뿐만 아니라 임베딩 값을 직접 활용하는 등의 계산이 추가되어 있음. 또한, 임베딩 concat에서 여러 가지 특징을 normalize해서 concat 하도록 함.
  • 출력값 부분에서는 감상 시간별로 가중치를 주는 방법을 통해 성능을 개선시켰음(weighted logistic reg). 이는 추천된 영상을 얼마나 오랫동안 볼지 예측하는 것을 목표로 하는 것임. 감상 시간은 안봤으면 0, 봤으면 본 시간을 값으로 넣음. 
  • 이전에는 감상 시간이 아니라 안봤다, 봤다 또는 영상을 클릭했냐 안했냐(0과 1)로 판단하였다고 함. 이를 CTR(Click Through Rate)라고 함.
  • 추가로 구글에서는 전통 머신러닝처럼 Feature Engineering을 행하여서 성능 향상을 이루었음. 가장 좋은 feature는 비슷한 비디오에 대한 유저의 반응이라고 함.

 

Reference

Covington, P., Adams, J., & Sargin, E. (2016, September). Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM conference on recommender systems (pp. 191-198). ACM.
https://www.youtube.com/watch?v=V6zixdCIOqw&list=PLWKf9beHi3Tg50UoyTe6rIm20sVQOH1br&index=60

Abstract

This paper focuses on style transfer on the basis of non-parallel text. This is an instance of a broad family of problems including machine translation, decipherment, and sentiment modification. The key challenge is to separate the content from other aspects such as style. We assume a shared latent content distribution across different text corpora, and propose a method that leverages refined alignment of latent representations to perform style transfer. The transferred sentences from one style should match example sentences from the other style as a population. We demonstrate the effectiveness of this cross-alignment method on three tasks: sentiment modification, decipherment of word substitution ciphers, and recovery of word order.


이 논문은 non-parallel text에 기초한 style transfer에 대해 다루고 있다.

이것은 기계 번역, 해독 및 감정 변화를 포함한 광범위의 문제를 다룬다.

주요 도전 관점은 컨텐츠를 스타일과 같은 다른 측면과 분리하는 것이다.

우리는 서로 다른 텍스트 corpora를 사용하여 latent content distribution의 공유를 가정하고, style transfer을 위한 잠재 표현의 정렬을 활용하는 방법을 제안한다.

한 가지 스타일로부터 전송된 문장은 모집단으로서 다른 스타일의 예제 문장과 일치해야 한다.

우리는 다음 세 가지 작업에 대해서 교차 정렬 방법의 효율성을 증명한다: 감정 변화, 단어 해독, 단어 순서 복구


요약

  • parallel data이라는 것은 positive한 문장이 있을때 negative 문장에서 정반대의 문장이 존재하는 것을 의미한다. 예를 들어서 '나는 차가 좋다' 라는 문장이 있으면 negative에서 '나는 차가 싫다'라는 문장이 있어야하는 것이다. non-parallel은 이와 다르게 '나는 차가 좋다'라는 문장이 있지만, negative에서는 '나는 차가 싫다'라는 문장이 명시적으로 없는 것을 의미한다. 즉, 대칭되는 문장이 없는 것을 의미한다.
  • 이 논문은 주로 AE + GAN의 방법을 사용한다.
  • 이 논문은 VAE가 좋지 않다고 주장하며 사용하지 않는데, 그 이유는 사용하는 분포를 제한하지 않고 모든 변수를 사용하고 싶다고 한다. 분포를 제한하는 것은 non-parallel 데이터에 부정적인 영향을 끼친다고 설명한다.
  • 먼저 제안하는 Aligned AE는 다음 loss를 최소화한다.

  • 또, encoder E와 generator G, RNN 1개의 층을 사용하여 학습한다.
  • Cross-aligned AE의 구조는 다음 그림과 같다.

  • 위의 그림은 x1 -> x2가 먼저 수행되고, 다음으로 x2에서 x1으로 다시 넘어오게 되면서 스타일이 변형된다.

Reference

Shen, T., Lei, T., Barzilay, R., & Jaakkola, T. (2017). Style transfer from non-parallel text by cross-alignment. In Advances in neural information processing systems (pp. 6830-6841).
https://www.youtube.com/watch?v=w-P2V2LlrHg&list=PLWKf9beHi3Tg50UoyTe6rIm20sVQOH1br&index=59

Abstract

We present a conceptually simple, flexible, and general framework for object instance segmentation. Our approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance. The method, called Mask R-CNN, extends Faster R-CNN by adding a branch for predicting an object mask in parallel with the existing branch for bounding box recognition. Mask R-CNN is simple to train and adds only a small overhead to Faster R-CNN, running at 5 fps. Moreover, Mask R-CNN is easy to generalize to other tasks, e.g., allowing us to estimate human poses in the same framework. We show top results in all three tracks of the COCO suite of challenges, including instance segmentation, bounding-box object detection, and person keypoint detection. Without tricks, Mask R-CNN outperforms all existing, single-model entries on every task, including the COCO 2016 challenge winners. We hope our simple and effective approach will serve as a solid baseline and help ease future research in instance-level recognition. Code will be made available.


우리는 간단하고 융통적이며 일반적인 객체 사물 분할 프레임워크를 소개한다.

우리의 접근법은 각 인스턴스에 대해 높은 수준의 분할 마스크를 동시다발적으로 생성하여 객체를 효율적으로 탐지한다.

Mask R-CNN은 bbox 인식을 위해 기존 브랜치와 병렬로 객체 마스크를 예측하기 위한 브랜치를 ㅊ누가하여 Faster R-CNN의 개념을 확장한다.

또한, 학습이 쉬우며, 5 fps로 수행되는 Faster R-CNN에 작은 오버헤드만 추가된다.

게다가 동일한 프레임워크에서 사람 포즈를 인식하는 것과 같은 다른 task에 일반화하기 쉽다.

인스턴스 분할 문제가 포함된 COCO 챌린지, bbox 객체 탐지, 사람 특정 포인트 탐지와 같은 3개의 작업에서 모두 최상의 결과를 보여준다.

어떠한 트릭도 없이 Mask R-CNN은 COCO 2016 대회의 우승을 포함하여 모든 task에서 outperform 하였다.

우리는 간단하고 효과적인 접근 방식이 훌륭한 baseline이 되고, 향후 인스턴스 수준의 인식에 대한 연구를 용이하게 하기를 희망한다.


요약

  • 이 논문은 Instance Segmentation 문제를 다루고 있는데, 이와 동일한 분야로 bbox를 통한 분류, semantic segmentation이 존재한다. 각가은 객체를 찾을 수 있지만 seg 할 수 없는 문제와 seg를 할 수 있지만 각각의 객체를 분할할 수 없는 단점을 가지고 있다. 하지만 Instance Segmentation은 seg도 할 수 있으면서 객체 분류까지 다뤄보는 문제이다.
  • 기존의 방법ㅇ은 clasfication 과 bbox regression 브랜치를 사용하는데, 이 방법은 단순하게 원래의 방법에 더하여서 mask brarnch를 추가한 방법이다. mask branch는 물체가 어떤 물체인지에 대한 판단을 상관하지 않고, 해당 물체의 mask만 학습한다. 
  • fully connected나 pooling을 사용하면 translation-equivariant가 깨지게 되는데, Faster R-CNN이나 본 논문에서 사용하는 구조는 Fully Convolution Network로 구성되어 있기 때문에 위의 공식이 깨지지 않는다.
  • 기존의 Fast R-CNN은 bbox reg, cls를 위해 fully connected를 거치게 되는데, 이를 위해 추론된 모든 field를 동일한 크기로 맞춰주기 위해 ROI pooling을 사용한다. Mask R-CNN은 이와 거의 동일하게 ROI Align을 사용하는데, 일단 기존의 ROI pooling에서 사용되는 크기인 7x7로 통일되는 feaeture의 크기가 너무 작아서 사용한다.
  • 또 기존의 ROI pooling은 실수값으로 region pixel을 예측하는데, 이를 대충 자른 후 큰 값을 찾고 이를 통해 공통된 크기로 통일하게 된다. 이때 약간 비대칭적인 또는 정렬되지 않는 문제가 발생한다. 그래서 이를 align하게 가져가기 위해 ROI align을 사용한다. 
  • ROI align은 field에서 각각의 걸쳐있는 부분의 interpolation을 통해 pixel의 최종 값을 구하게 된다.
  • ROI를 할때 zeropadding을 하게 되는데, 그 이유는 학습 과정에서 객체가 겹칠 수 있기 때문이다.

  • backbone으로는 ResNet과 FPN 구조를 사용하였다.

 

Reference

He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask r-cnn. In Proceedings of the IEEE international conference on computer vision (pp. 2961-2969).
https://www.youtube.com/watch?v=RtSZALC9DlU&list=PLWKf9beHi3Tg50UoyTe6rIm20sVQOH1br&index=57

Abstract

A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or an object part. We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation parameters. Active capsules at one level make predictions, via transformation matrices, for the instantiation parameters of higher-level capsules. When multiple predictions agree, a higher level capsule becomes active. We show that a discrimininatively trained, multi-layer capsule system achieves state-of-the-art performance on MNIST and is considerably better than a convolutional net at recognizing highly overlapping digits. To achieve these results we use an iterative routing-by-agreement mechanism: A lower-level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule.


캡슐은 activity vector가 객체나 객체 부분과 같은 특정 유형의 인스턴스화 매개 변수를 나타내는 뉴런 그룹이다.

우리는 엔터티가 존재할 확률을 나타내는 activity vector의 길이와 인스턴스화 매개 변수가 나타내는 방향을 사용한다.

한 레벨의 활성 캡슐은 변환 매트릭스를 통해 상위 레벨 캡슐의 인스턴스화 매개 변수를 추론한다.

다수의 예측이 올바를 때, 하위 레벨 캡슐이 활성화된다.

차별적으로 훈련된 다층 캡슐 시스템이 MNIST에서 높은 성능을 달성하였고, 매우 많이 겹치는 숫자를 인식하는데 있어서 CNN보다 더 나은 성능을 보여주었다.

이러한 결과를 달성하기 위해 반복적 routing-by-agreement 메커니즘을 사용한다: 하위 레벨의 캡슐은 하위 레벨의 캡슐로부터 나오는 예측과 함께 큰 스칼라 곱을 가지는 activity vector를 갖는 상위 수준의 캡슐로 출력을 보내는 것을 선호한다.


요약

  • 기존의 CNN은 feature 학습에 있어서는 뛰어나지만, feature 간 특수 관게 학습에는 어려움이 존재한다. 또한, 기존에 사용되는 Data augmentation이나 max pooling 같은 경우는 상당히 비효율적 계산 비용을 발생하는 문제를 가지고 있다.
  • 우리가 원하는 것은 위치나 크기가 바뀌던 특징을 인식하여 그 물체가 동일한 물체라는 것을 인식할 수 있도록 하는 것이다.

  • 여기서 말하는 캡슐은 다수의 뉴런을 하나의 그릅으로 묶어놓은 형태이다. 이러한 다수의 뉴런은 위치, 회전, 크기 등의 특징을 학습하게 된다. 또, 캡슐이 내보내는 출력값을 activation vector라고 하는데, 뉴런의 활성화 정도로 객체를 판단하는게 아니라 벡터의 길이를 통해 객체를 판별해내는 방식이다.
  • ROUTING 알고리즘은 캡슐넷의 핵심 알고리즘이다. 
  • 캡슐넷의 출력으로는 activation vector의 길이로 판단한다고 하였는데, 이때 캡슐에 존재하는 예측된 값을 통해 벡터의 agreement의 정도를 판단하고 최종적으로 agreement가 높은 것이 활성화되어 다음 층의 입력으로 사용된다. agreement의 높고 낮음은 벡터의 방향에 의해 결정되며, 내부적으로 계산되는 가중치에 의해 중요성이 결정된다.
  • 캡슐넷의 구조에서 하위 레벨의 캡 슐들은 예를 들어 보트같은 경우 삼각형에 해당하는 돛이 있냐 없냐에 대한 것을 다루고, 상위 레벨 같은 경우는 전체적인 객체의 형태가 보트인지 또는 집인지에 대한 판단을 하게 된다.
  • 층의 마지막에 FCN을 사용하여 reconstruction 할 수 있도록 하여 훨씬 더 robust한 모델을 얻을 수 있었다고 한다.

  • routing 과정 때문에 학습 또는 추론 속도가 매우 느리다. 또한, 캡슐넷은 매우 동일한 객체가 겹쳐있을 경우, 하나만 인식하고 나머지 하나는 무시해버리는 문제가 있다.

 

Reference

Sabour, S., Frosst, N., & Hinton, G. E. (2017). Dynamic routing between capsules. In Advances in neural information processing systems (pp. 3856-3866).
https://www.youtube.com/watch?v=_YT_8CT2w_Q&list=PLWKf9beHi3Tg50UoyTe6rIm20sVQOH1br&index=56