[UROP #8] Deep Mutual Learning (1)

윤하은·2023년 11월 19일
2

UROP

목록 보기
8/14
post-thumbnail

Paper : https://arxiv.org/abs/1706.00384

💡 로 표시된 부분은 제가 이해한 내용을 적은 부분입니다. 오류가 있다면 댓글로 남겨주세요 🙏🏻



1. Introduction



간결하면서도 정확한 모델을 만들기 위해 몇 가지 방법이 사용되고 있다.

  • explicit frugal architecture design
  • model compression
  • pruning
  • binarisation
  • model distillation
    

모델 증류 기반의 모델 압축은 작은 네트워크가 종종 큰 네트워크와 같은 표현 능력을 가지지만 큰 네트워크보다 훈련이 어렵다. 즉, 한계는 네트워크 크기가 아니라 최적화가 어렵다는 것이다.

작은 네트워크를 더 잘 훈련시키기 위해 증류 접근은 강력한 선생님 네트워크로 시작해서 그런 다음 작은 학생 네트워크가 선생님을 모방하도록 훈련시킨다. 선생님의 클래스 확률이나 특징 표현을 모방하면 보통의 지도 학습 목표를 넘어 추가 정보를 얻게 된다. 선생님을 모방하는 최적화 문제가 원하는 함수를 직접 학습하는 것보다 더 쉽기 때문에, 훨씬 작은 학생이 더 큰 선생님을 따라잡거나 심지어 능가할 수 있다.



mutual learning


증류는 강력하고 사전에 훈련된 큰 선생님 네트워크에서 시작하여 지식을 작고 훈련되지 않은 학생에게 일방적으로 전달하는 것이다. 그러나 상호 학습에서는 함께 작업을 해결하도록 동시에 학습하는 훈련되지 않은 학생들의 집합으로 시작한다.


각 학생은 두 가지 손실로 훈련된다 :

  • 일반적인 지도 학습 손실
  • 각 학생의 클래스 사후 확률을 다른 학생들의 클래스 확률과 일치시키기 위한 모방 손실
    

이런 방식으로 훈련되는 peer-teaching 기반 시나리오는 각 학생이 일반적인 지도 학습 시나리오에서 혼자 학습하는 것보다 훨씬 더 효과적으로 학습한다. 뿐만 아니라, 일반적인 큰 pre-trained 선생님으로부터 훈련된 학생보다 더 나은 결과를 보인다.


일반적으로 distillation은 목표로 하는 학생보다 더 크고 강력한 선생님을 필요로 한다고 생각된다. 그러나 많은 경우에 상호 학습을 통한 여러 큰 네트워크의 학습도 독립 학습에 비해 성능을 향상시키는 것으로 나타났다.



직관적인 이해


"모든 작고 훈련되지 않은 학생 네트워크로 학습 프로세스가 시작되는 경우 추가 지식은 어디에서 오는가?"

"왜 맹인이 맹인을 이끈다는 집단 사고에 발목을 잡지 않고 좋은 해결책으로 수렴하는가?"

  • 각 학생은 주로 전통적인 지도 학습 손실에 의해 주도되며, 이는 일반적으로 그들의 성능이 향상되고 그룹으로서 임의로 그룹 사고로 벗어날 수 없다는 것을 의미한다.

  • 지도 학습에서 모든 네트워크는 곧 각 훈련 인스턴스에 대해 동일한 (진짜) 레이블을 예측하지만 각 네트워크는 다른 초기 조건에서 시작하므로 다음으로 가장 가능성 있는 클래스의 확률을 추정하는 방법이 다르다. 이러한 보조적인 양은 증류 및 상호 학습에서 추가 정보를 제공한다.

  • 상호 학습에서는 학생 집단이 효과적으로 다음으로 가장 가능성 있는 클래스에 대한 그들의 집단적인 추정치를 풀링한다. 동료를 따라 각 훈련 인스턴스에 대한 다른 가장 가능성 있는 클래스를 알아내고 맞추는 것각 학생의 사후 엔트로피를 증가시키며 더 강력한 최소값으로 수렴하고 테스트 데이터에 대한 더 나은 일반화를 가능하게 한다.
    

더 나아가서

  • 집단의 네트워크 수가 증가함에 따라 효과가 증가한다는 것을 관찰한다 (작은 네트워크만 훈련하면 하나의 GPU에 더 많은 네트워크가 효과적으로 들어갈 수 있기 때문에)

  • 여러 가지 네트워크 아키텍처 및 혼합된 큰 네트워크와 작은 네트워크로 이루어진 이질적인 집단에 적용 가능하며, 심지어 독립적인 훈련과 비교하여 집단에서 상호 훈련된 큰 네트워크도 성능이 향상된다는 것을 관찰한다.

  • 주요 관심은 단일 효과적인 네트워크를 얻는 데 있지만 전체 집단은 매우 효과적인 앙상블 모델로 사용될 수 있다.





초기 : 강력한 모델/앙상블 선생님이 근사하는 기능을 단일 신경망 학생으로 distillation하는 것이 일반적인 응용이었다.

발전 : 강력하면서도 쉽게 훈련되는 대형 네트워크를 작고 훈련이 어려운 네트워크로 distillation하는 데 적용되었다, 그들의 선생님을 능가하는 성능을 보여주었다.

최근 : distillation을 정보 학습 이론 및 SVM+에 더 체계적으로 연결하는 연구가 이루어졌다. 여기서는 선생님을 완전히 없애고 서로에게 상호 distillation을 가르치도록 다양한 학생들을 허용한다.

다른 관련된 아이디어에는 두 언어 간 번역 모델이 서로 상호 작용하여 가르치는 Dual Learning이 있다. 그러나 이것은 예측의 품질을 평가하기 위해 사용될 수 있는 조건부 언어 모델이 특수한 언어 간 번역 문제에만 해당되며 궁극적으로 학습 프로세스를 이끌어내는 지도를 제공한다.

이에 대조적으로 본 논문의 상호 학습 접근법일반적인 분류 문제에 적용된다. 앙상블은 다양성을 우선시하지만, 본 논문의 상호 학습 접근법은 모든 학생이 서로 모방하면서 어느 정도 더 유사해진다. 본 논문의 목표는 꼭 다양한 앙상블을 생성하는 것이 아니라, 네트워크가 테스트 데이터에 대해 잘 일반화되는 견고한 솔루션을 찾을 수 있도록 하는 것이다.




2. Deep Mutual Learning



2.1 Formulation


DML(Dep Mutual Learning) 접근법을 두 개의 네트워크 집단으로 구성한다.



신경망 Θ1에 의해 주어진 샘플 xi의 클래스 m에 대한 확률 :

N : sample 수
M : class 수
z^m : 모델의 출력 중에서 m번째 클래스에 해당하는 logit

logit : logistic + probit

💡 값이 0보다 큰지 아닌지로 결정의 기준을 세움

probit : 이항 분포의 누적 분포 함수

💡 확률을 재는 단위라고 생각

출처 : https://process-mining.tistory.com/173



다중 클래스 분류의 경우, 네트워크 Θ1을 훈련시키기 위한 목적 함수는 예측 값과 실제 값 간의 cross entropy 오차로 정의된다.

p1^m(xi) : 샘플 xi의 클래스 m에 대한 확률
I(yi, m) : 샘플 xi의 클래스 레이블에 해당할 경우(yi = m)에만 1, 아닌 경우(yi != m) 0

  • yi : 데이터 포인트 xi에 대한 실제 클래스 레이블
  • m : 클래스의 인덱스


전통적인 지도 학습 손실은 네트워크가 훈련 인스턴스에 대한 올바른 레이블을 예측하도록 한다. Θ1의 테스트 인스턴스에 대한 일반화 성능을 향상시키기 위해 다른 동료 네트워크 Θ2를 사용하여 그 사후 확률 p2를 훈련에 사용한다. 두 네트워크의 예측 p1 및 p2의 일치를 측정하기 위해 Kullback-Leibler (KL) Divergence를 채택했다.




p1에서 p2로의 KL distance는 다음과 같이 계산된다 :



네트워크 Θ1에 대한 전체 손실 함수는 다음과 같이 정의된다 :



마찬가지로, 네트워크 Θ2에 대한 목적 손실 함수는 다음과 같이 계산된다 :

이렇게 하면 각 네트워크가 훈련 인스턴스의 진짜 레이블을 올바르게 예측하는 것뿐만 아니라 동료의 확률 추정치와 일치하도록 학습하게 된다(KL mimicry loss).




2.2 Optimization


상호 학습 전략은 각 미니 배치 기반 모델 업데이트 단계 및 전체 훈련 과정 동안 수행된다. 각 반복에서 두 모델의 예측을 계산하고 다른 모델의 예측에 따라 양쪽 네트워크의 매개변수를 업데이트한다. Θ1 및 Θ2의 최적화는 수렴할 때까지 반복적으로 수행된다.

stochastic gradient descent
전체 데이터(batch)가 아닌 일부 데이터(mini-batch)에 대해서만 loss function을 계산하는 방법




2.3 Extension to Larger Student Cohorts


제안된 DML(Dep Mutual Learning) 접근법은 학생 집단 내에서 더 많은 네트워크로 자연스럽게 확장된다. K(K ≥ 2)개의 네트워크 Θ1, Θ2, ..., ΘK가 주어진 경우, 각 Θk,(1 ≤ k ≤ K)을 최적화하기 위한 목적 함수는 다음과 같이 정의된다.

K 개의 네트워크로 DML을 수행할 때 각 학생이 다른 K - 1 개의 네트워크를 K - 1명의 선생님으로 삼아 학습하는 것으로 볼 수 있다.

1/(K-1) : 실제 레이블의 지도 학습에 의해 훈련이 주로 진행되도록 하기 위해 추가한 계수



각 네트워크를 각 장치에서 학습하고 작은 확률 벡터를 장치 간에 전달함으로써 분산시켜 학습이 가능하다.

두 개 이상의 네트워크로 DML을 수행할 때 DML의 대안으로 사용될 수 있는 학습 전략은 다른 K - 1개의 모든 네트워크 앙상블을 하나의 선생님으로 삼아 평균 학습 경험을 제공하는 것이다. 이는 distillation 접근법과 매우 유사하지만 각 미니 배치 모델 업데이트에서 수행된다. 그런 다음 Θk의 목적 함수는 다음과 같이 작성될 수 있다.


실험에서는 이 DML 전략이 단일 앙상블 선생님 또는 DML_e와 비교해 더 나쁜 성능을 보이는 것으로 나타났다. 이는 선생님 앙상블을 구성하기 위한 모델 평균화 단계 (9)가 선생님의 사후 확률을 실제 클래스에서 더 뾰족하게 만들어 사후 엔트로피를 줄이기 때문이다. 이는 DML의 목표 중 하나인 높은 사후 엔트로피로 견고한 솔루션을 생성하는 것과 모순된다.



뒷부분 👉🏻 [논문 읽기 #9] Deep Mutual Learning (2)

0개의 댓글