데이터/Machine Learning

Deep Learning for AI 아티클 요약

성장하기 2023. 10. 29. 19:33

https://dl.acm.org/doi/10.1145/3448250

 

Deep learning for AI | Communications of the ACM

How can neural networks learn the rich internal representations required for difficult tasks such as recognizing objects or understanding language?

dl.acm.org

- turing lecture에 게재된 아티클인 Deep Learning for AI를 나만의 방식으로 요약해보고자 한다.

무려 Yoshua Bengio, Yann LeCun, Geoffrey Hinton가 함께 쓴 아티클이다.

( Yoshua Bengio, Yann LeCun, Geoffrey Hinton는 Andrew Ng과 함께 AI 4대 구루로 불린다.)

 

 

주제 : neural network가 어떻게 객체 인식이나 언어 이해와 같은 어려운 일에서 필요한 internel representation을 학습할 수 있을까?

  딥러닝은 많은 레이어를 쌓고 연결 강도를 학습한다고 답한다.

  우리는 이 논문에서 딥러닝의 기원, 최근 몇 년간의 발전, 미래의 challenge에 대해 간단히 이야기한다. Supervision이 거의 없거나 아예없는 상태에서의 학습 등을 포함한다.

  딥러닝에서는 2가지 페러다임이 있는데, logic-inspired paradigm은 수동으로 고안된 룰을 이용하여 컴퓨터가 추론하는 것이고, brain-inspired paradigm은 데이터의 representation을 학습하며, 수동으로 고안되거나, 발전된 룰에 따라 neuron들의 connetcion을 수정해나가는 것이다.

 

From Hand-Coded Symbolic Expressions to Learned Distributed Representations

  Logic inspired paradigm에서는 symbol이 의미있는 내부 구조를 갖지 않지만 brain-inspired paradigm에서는 외부 심볼들이 뉴런 활동에 의한 내부 벡터의 변환이며, 매우 유사한 구조를 갖는다. 뉴런 활동에 의한 벡터와 가중치 matrix를 사용하는 가장 큰 이점은, 자동화된 생성으로 이끈다는 점이다. 유사한 벡터를 가지면, 다른 벡터에 유사한 영향을 줄 것이다. 이것은 아날로그 추론을 가능하게 하는데, 이러한 즉각적이고 직관적인 아날로그 추론이 인간의 추론의 대부분이며, 논문에서 논의할 논리적인 추론은 한참 뒤에 발전했다.

 

The Rise of Deep Learning

  GPU의 발전과 많은 데이터 셋의 사용성은 딥러닝의 핵심 성공 요소였으며, 많은 오픈소스와 소프트웨어 플랫폼으로 딥러닝은 매우 발전했다. 더 많은 레이어는 더 복잡한 non-linearities를 가능하게 했으며, 훨씬 좋은 결과를 냈다.

왜 깊은 레이어인가? 깊은 레이어는 아키텍쳐와 학습 과정에서 이점이 있다. 왜 깊은 레이어가 더 generalize하는 가에 대해서는, 단지 파라미터가 많기 때문은 아니다.(실험적으로 종종 같은 수의 파리미터를 가진 얕은 레이어에서 generalize가 잘 되기 때문에) 가장 유명한 컴퓨터 비전 아키텍쳐인 ResNet은 이미지 변형, drop out, batch normalization이 효과적이라는 것을 증명해냈다.

  Label된 데이터가 task를 수행하기에 부족할 때, 다른 정보로 feature detector의 레이어를 만들고, 적은 labeled 데이터로 그 feature detector fine-tune하는 것이 좋다. Transfer learning 방식은 supervised learning된 다른 정보를 사용했으나, auto-encoder stack하면 어떠한 label없이도 feature detectorlayer를 만들 수 있다.

  그 방법은 첫째로, inputreconstruct하는 feature detector의 첫번째 layer를 학습시키고, 첫번째 레이어의 activitiesreconstruct하는 두번째 레이어를 학습시킨다. 마지막 hidden layerlabel을 예측할 수 있고, 에러를 backpropagate한다. 이러한 pre-training inputrepresentation으로 변형하기에, classification을 쉽게 만들어준다.

  뿐만 아니라, fine tuning을 쉽게 만들어주는 weight initialize해준다. 이러한 optimization에서의 pre-training은 딥러닝이 학습이 어렵다는 관점을 뛰어 넘는데 중요한 역할을 했다. 또한 generalization에서의 pre-training은 매우 중요하며, 매우 큰 양의 unlabelled 데이터로 매우 큰 모델을 만드는 것을 가능하게 했다.

  ReLU의 성공. 기존 딥러닝에서는 unsupervised pre-traininglogistic sigmoid 혹은 hyperbolic tangent를 레이어에 사용하는 방식으로 구성되어있었는데, 대신에 ReLu를 사용해 layerwise pre-training없이도, backprobSGD가 쉽게 가능함이 입증되었다.

  Speechobject recognition에서의 딥러닝의 업적. 2009년에 pre-trained된 딥러닝 모델로, TIMIT dataset에서 Sota를 달성했고, 이후 구글에서 voice search를 개발하면서 딥러닝은 speech 분야에서도 큰 성과를 입증했다.

  같은 때에, 딥러닝은 2012 ImageNet 컴페티션에서도 놀라운 성과를 거뒀는데, 그 핵심은 100만장 이상의 labeled 데이터를 얻고, GPU를 효율적으로 사용함에 있었다. 이 모델은 ReLU의 사용이나, drop out같은 약간의 혁신은 있었으나, 기본적인 Convolution Neural Network 뿐이었다. 이후 많은 computer vision cummunity들은 deep learning으로 넘어왔다.

 

Recent Advances

  딥러닝의 발전 중 Sequential processing에서 가장 중요한 부분은 soft attention을 이용한 곱 연산의 interaction의 사용이다. 이러한 아키텍쳐는, 동적으로 정보를 연관된 memory에서 다르게 저장할 수 있는데, graph같은 데이터 구조에서도 잘 작동할 수 있다.

  Soft attention은 레이어에서 모듈로 사용되는데, output을 계산하기 위한 이전레이어의 벡터를 동적으로 선택하는 역할을 하며, input이 배치된 순서와는 무관하게 (Set 자료구조에서 사용할 수 있다), 그리고 서로의 관계를 사용하면서(그래프 자료구조에서 사용할 수 있다) output을 만들어낸다.

  트랜스포머 아키텍쳐는 self attention의 많은 layer를 쌓는 아키텍쳐이며, 현재 가장 많이 적용되는 아키텍쳐다. 레이어의 각 모듈은 쿼리 벡터와 키 벡터를 scalar product한 후, nomarlize된 이 coefficient를 이전 레이어로 생성된 value벡터에 사용하여 convex combination을 구한다. 그 결과값 벡터는 다음 단계의 input으로 사용된다.

트랜스포머는 NLP를 진화시키는 엄청난 성능 향상을 만들었다. 또한, masking된 다음 단어를 맞추도록 self supervised방식으로 pre-trained되서 사용된다. 뿐만 아니라 트렌스포머는 convolution net의 출력 레이어에 사용되면서 object dectection에서 SOTA의 성능을 보여주며 최근 사용되는 것이 트렌드이다.

 

Unsupervised and self-supervised learning

Supervised learningreinforcement learning은 학습된 특정 분야 및 좁은 도메인에서만 사용이 가능하다. 사람과 동물은 많은 양의 배경 지식을 관찰을 통해서 학습하는 것으로 보인다. ‘사람은 어떻게 관찰 만으로 많은 양을 학습할 수 있을까AI의 미래에서 중요한 질문이다.

오디오, 이미지, 비디오 등은 현실 세계의 매우 많은 정보를 가진 데이터 형식을 가지는데, 이러한 사실은 self-supervised learning의 발전을 가져왔다. Self-supervised learningdownstream task로 매우 잘 동작한다.

그러나 고차원의 연속적인 정보를 갖는 비디오 등은, 합리적인 distribution을 적절히 표현하는 것은 여전히 풀리지 않은 문제이다.

 

Contrastive Learning

이러한 문제를 푸는 한가지 방법은 energy를 할당하는 모델을 이용할 수 있다. 에너지 펑션 E(X, Y)는 비디오 X와 그 정보 Y가 주어졌을 때, XY가 함께 사용되는 정보이면 E(X, Y)가 작은 값을 갖고, 그렇지 않으면 높은 값을 반환하는 것이고, deep neural net으로 계산될 수 있다. YX에 의존하도록 representation하는 방법은 다양하고 multimodalsetmodeling하는 것을 가능하게 했다.

이러한 contrastive learning의 가장 어려운 점은 좋은 negative 샘플(에너지 Y값을 적절히 멀리 두는)을 찾는 것이다.

GAN(Generative Adversarial Networks)는 알려진 데이터의 분포로부터 contrastive한 샘플을 만들기 위해 학습된다. Generator는 모델이 low energy를 주도록 하는 Y hat을 생성하고, model은 모델은 train 샘플에는 low energy를 주고, 생성된 샘플에는 높은 energy를 주도록 학습한다.

Convolution net을 사용하는 다양한 논문에서도, contrastive learning을 사용해 좋은 결과를 만들어 낸다. Positive pair는 같은 이미지를 crop하거나, scaling, 회전, 색 변경 등으로 구성되고, negative pair는 다른 이미지에서 위와 같이 구성되나, 이것은 어렵기 때문에 minibatch 내의 모든 다른 이미지를 사용하기도한다. 이렇게 학습된 hidden layervectorsupervised manner로 학습된 classifierinput으로 입력되어 사용된다.

가장 유명한 self-supervised learningVariational auto-encoder(VAE)이다. Code space로 이미지를 매핑 시키는 encoder network와 이러한 코드로부터 이미지를 생성하는 decoder network로 구성된다. 또한 Gaussian nois encoder의 아웃풋에 추가함으로써 정보의 양을 제한한다. 이것은 작고 노이지한 창을 최소 반경의 구로 포장하는 것과 같다.

 

The Future of Deep Learning

딥러닝은 훨씬 더 많은 데이터와 훨씬 더 많은 연산으로 훨씬 더 좋은 성능을 낼 수 있으나, 현재의 딥러닝에서 단지 사이즈를 키우는 것으로 해결할 수 없는 문제가 있다. 인간의 학습과 비교해서 3가지 풀어야 할 문제가 있는데 첫번째, supervised learning은 너무 많은 labeled 데이터가 필요하고, 두번째, 분포의 변경에 robust하지 못하며, 세번째, system 1 task라고 불리는 부분에서만 성공했다. (system1 : 직관적, 무의식적, 자동적, system2 : 논리적, 의도적, 복잡하고 추상적)

예전 머신러닝의 이론을 만든 사람들은 데이터가 모두 같은 분포에서 왔다는 가정을 두었으나, 실제 데이터는 그렇지 않다. 그럼 어떻게 이러한 분포의 변화에 robust하도록 머신러닝을 설계할 수 있을까?

뇌과학으로부터 알 수 있는 사실은 가까운 뉴런은 더 강하게 연결되어있고, 단지 scalar의 양 뿐만 아니라 여러 개의 풍부한 벡터값들 또한 보낼 수 있다는 것이다. 이러한 아이디어는 capsule 아키텍쳐와 soft attention 메커니즘의 사용에도 들어가있다.

대부분의 neural nets은 2가지 timescale을 가지는데, 천천히 모든 데이터에 적용되는 weight과 새로운 input에 빠르게 적용되는 activities가 그것이다. 후자인 fast learning은 neuron 내에서 재귀적으로 수행되는데, 다음 레이어로 정보를 보내기 전에 weight을 수정하기 위함이다.

사람은 이미 획득한 기술이나 지식의 일부를 이용하고, 재조합하면서 새로운 상황을 해결하는데, 딥러닝도 이렇게 알고있는 지식의 일부를 재사용하려고 하며 이러한 연구는 Transformer와 Recurrent Independent Mecharnisms으로 시작된다. 인간은 system2 레벨의 추론과 계획을 하면서 system1이 잠재적인 기회와 위협을 가이드하고, 기계에서는 어쩌면 MonteCarlo tree가 알파고를 guide해주는 것과 같다.

어린 아이들이 인과적 결과를 알아내는 것은, 인간 뇌의 기본 기능이며, 딥러닝에서는 분포 외의 데이터도 일반화하도록 최적화 하는 것이, 이러한 인과적 결과를 알아내도록 학습하는데 사용될 수 있다. 어떻게 neural net이 이러한 기저에 깔린 세계의 인과법칙을 학습할 수 있도록 할까?

20세기의 symbolic AI 연구 프로그램에서는 2가지 기능에 집중했는데, 하나는 지식을 추후 재조합할 수 있도록 조각으로 분해하는 기능이고, 하나는 추상적인 변수, 타입, 객체를 다룰 수 있는 기능이다. 우리는 이러한 기능들을 모두 수행할 수 있도록 neural network를 디자인해야한다.