나는 DeepMind가 개발한 신경 네트워크의 결함을 피하는'파멸적 망각'알고리즘의 논문을 읽었다

6955 단어 DeepLearningDeepMind

입문


DeepMind는 신경 네트워크의 결함인'파괴적 망각'을 피하는 알고리즘을 개발했다 그래서 원논문을 읽어 봤어요.
Overcoming catastrophic forgetting in neural networks
https://arxiv.org/abs/1612.00796
  • 인트로의 시작부터 갑자기 유니버설 인공지능이 생겨서 무섭지만 하는 일은 간단하다
  • 간단하게 말하면 학습된 신경 네트워크 파라미터가 이 임무에 대한 중요도는 페사르 정보 행렬로 측정할 수 있다
  • 뇌신경과학계의 단어가 자주 나오는데 전문가가 있습니까?말은 그렇지만 이 배경은 후불, 알고리즘이 먼저지...
  • 원래 논문에서 공식을 부러뜨리는 부분이 있기 때문에 적당히 보충하는 동시에 직관적인 해석 등을 마음대로 넣는다.논문의 절차가 그 정도에 이르지 못했다
  • 부정확하고 잘못된 점은 지적해 주세요!
  • 배경


    유니버설 인공지능은 많은 다른 임무를 완성해야 한다.이러한 임무가 명확하게 표시되지 않거나 갑작스럽게 바뀌거나 오랫동안 재발하지 않았기 때문에 이전에 배운 임무를 잊지 않고 순서대로 주어진 임무를 배우는 continual learning(지속 학습)이 중요하다.
    그러나 인공신경 네트워크에서 현재 임무(e.g.taskB)와 관련된 정보를 처리할 때 이전 임무(e.g.taskA)와 관련된 정보를 갑자기 잃는catastrophic forgetting(파멸적 망각)이 과제가 된다.현재의 파멸적 망각에 대한 대응 전략은 모든 임무의 데이터를 미리 맞추고 모든 임무(각 임무의 데이터를 세밀하게 배열하여 학습)를 학습하는multitasklearning이다.
    작업만 순서대로 제공하면 데이터를 잠시 저장하고 학습할 때 재생(시스템-levelconsolidation, 시스템급 저장 고정)할 수 있지만 작업수와 비례하는 메모리와 재생 시간이 필요하기 때문에 비현실적이다.
    한편 포유동물의 뇌는 대뇌의 신피질 신경회로를 보호함으로써 얻은 지식을 통해 파멸적인 망각을 방지한다는 증거가 있다.새로운 지식을 얻으면 일부 돌연 접촉을 강화하고 수개월 동안 지식을 유지할 수 있다.즉, 이 돌연 접촉을 지원하는 보호 신경 기구는 임무의 성능 유지에 중요하다.
    따라서 연속 학습은task-specificsynapticconsolidation에 의해 이루어진 것으로 해석할 수 있다.그곳에서는 임무에 대한 지식과 공부할 때 빚어낼 수 없는 돌연 접촉의 비례가 비례적으로 유지된다.
    본고에서 우리는 일종의elasticweightconsolidation(EWC)을 제시했는데 이elasticweightconsolidation은 이synapticconsolidation에 구상을 제공했다.이 알고리즘에서 이전의 임무에서 중요한 특정한 중요성을 줄이는 학습을 통해 이전의 임무를 잊지 않는 순차적인 학습을 실현한다.
    (TODO)synaptic consolidation 및 system consolidation 읽기
    https://en.wikipedia.org/wiki/Memory_consolidation

    Elastic Weight Consolidation (EWC)


    다음 그림을 통해 EWC의 생각을 설명합니다.

    위의 그림에서 회색은 작업 A의 오류가 작아지는 구역을 나타내고, 크림색은 작업 B의 오류가 작아지는 구역을 나타낸다.현재, 학습 퀘스트 A, 파라미터 $\theta_A^{*}$를 얻었다고 가정합니다.그 다음에 또 다른 임무 B를 배우는 것을 고려한다.
    임무 A를 고려하지 않고 임무 B를 학습하면 매개변수가 임무 B의 가장 좋은 매개변수로 이동하여 임무 A에 대해 파멸적인 망각(파란 화살표)이 발생합니다.
    다른 한편, 매개 변수는 가능한 한 $\theta_A^{*}$에서 변경되지 않도록 퀘스트 B를 배울 수도 있습니다.예를 들어, $\lambda‖\theta-\theta_A^{*}||^2_2달러를 손실로 편입하는 것을 고려할 수 있다.그러나 이 경우 매개변수가 작업 A와 작업 B로 이동해도 오류가 발생하지 않는 영역(녹색 화살표)
    이에 비해 EWC는 중요한 권한만 변경하고 작업 A의 오류가 작아진 영역을 통해 학습하기 때문에 작업 A와 관련된 지식을 잃지 않고 새로운 작업 B에 대한 지식을 배울 수 있습니다(빨간색 화살표)
    상술한 중요한 권중을 정의하기 위해 확률적인 측면에서 신경 네트워크의 학습을 고려한다.매개 변수의 최적화는 주어진 데이터 $\mathcal {D}$에서 가장 가능한 매개 변수를 찾는 것과 같습니다.이때 최대화되어야 하는 백업 확률 $p(\theta|\mathcal{D})$는 베일스의 정리에 따라 다음과 같다.
    p(\theta|\mathcal{D}) = \frac{p(\mathcal{D}|\theta) p(\theta)}{p(\mathcal{D})}
    
    맞바꾸어 말하면
    \log p(\theta|\mathcal{D}) = \log p(\mathcal{D}|\theta) + \log p(\theta) - \log p(\mathcal{D})
    
    여기서 데이터 $\mathcal {D}$는 작업 A의 데이터 $\mathcal {D}_A$및 작업 B의 데이터 $\mathcal{D}_B$로 구성되어 개별적으로 생성된 경우
    \log p(\theta|\mathcal{D}) = \log \left( p(\mathcal{D}_A|\theta) p(\mathcal{D}_B|\theta) \right) + \log p(\theta) - \log \left( p(\mathcal{D}_A) p(\mathcal{D}_B) \right)
    
    \log p(\theta|\mathcal{D}) = \log p(\mathcal{D}_A|\theta) + \log p(\mathcal{D}_B|\theta) + \log p(\theta) - \log p(\mathcal{D}_A) - \log p(\mathcal{D}_B)
    
    \log p(\theta|\mathcal{D}) = \log p(\mathcal{D}_B|\theta) + \log p(\theta|\mathcal{D}_A) - \log p(\mathcal{D}_B)
    
    되다여기, 왼쪽은 전체 데이터를 제시할 때의 백업 확률입니다. 오른쪽은 작업 B의 손실 함수 $\logp (\mathcal {D}_B\theta) $에 의존합니다. 손실 함수가 $\mathcal {L} (\theta) $이면 $\mathcal {L} (\theta) =-\logp (\mathcal {D}_B\theta) $입니다.따라서 작업 A에 대한 모든 정보는 사후 확률 $\logp (\theta_\mathcal {D}_A) $로 흡수되며, 작업 A에 중요한 매개 변수를 포함해야 합니다.
    여기에서 진정한 백업 분포를 구할 수 없기 때문에 Mackay의 Laplace approximation에 따라 이 백업 확률을 평균 $\theta_A^{*}$, 대각 정밀도 매트릭스는 페사르 정보 매트릭스 $F$의 대각 분량으로 제시된 다변수 고스 분포와 비슷하다(정밀도 매트릭스는 $F$와 방차 협방차 매트릭스 $\Sigma=F^{-1}$).
    p(\theta | \mathcal{D}_A) = \frac{1}{(2\pi)^{n/2} |\Sigma|^{1/2}}\exp \left( - \frac{1}{2} (\theta - \theta_A^* )^{\top} \Sigma^{-1} (\theta - \theta_A^* ) \right)
    
    \log p(\theta | \mathcal{D}_A) = - \frac{1}{2} (\theta - \theta_A^* )^{\top} \Sigma^{-1} (\theta - \theta_A^* ) + \mathrm{const}
    
    $\Sigma=F^{-1}$및 $F$를 대각선으로 가정하여 아래에 설명합니다.
    \log p(\theta | \mathcal{D}_A) = - \frac{1}{2} \sum_i F_{ii} (\theta_i - \theta_{Ai}^* )^2 + \mathrm{const}
    
    따라서 작업 B를 학습할 때 EWC의 목적 함수는 다음과 같습니다.
    \mathcal{L}(\theta) = \mathcal{L}_B(\theta) + \frac{\lambda}{2} \sum_i F_{ii} (\theta_i - \theta_{Ai}^* )^2
    
    여기서 $\mathcal{L}_B(\theta)$는 작업 B에 대한 손실 함수이며, $\lambda$는 지금까지의 작업이 새 작업에 얼마나 중요한 매개 변수인지를 나타냅니다.이로써 페사르 정보 매트릭스 $F$에서 포착된 매개 변수의 중요도를 고려하여 차례로 학습할 수 있다.
    실험에서 MNIST의 픽셀을 특정한 배열로 다시 배열한 3가지 데이터를 만들어 순서대로 학습시켜 EWC가 모든 임무를 잘 배웠다는 것을 보여 주었다.또 강화 학습에 대해서도 실험을 진행했으며 여기서 생략했다.

    개인의 직관적 이해

  • 최종적으로 하고 싶은 것은 퀘스트 A에서 배운 파라미터 $\theta_최대한 A^*$를 유지하면서 퀘스트 B
  • 를 배우고 싶어요.
  • 최대한 유지 = $\ell_2달러의 거리는 너무 작으면 안 된다.파라미터의 다양성 때문에 적당한 계량을 고려한 측지선으로 거리를 측정해야 한다
  • 확률 분포 중의 계량 = 페사르 정보 행렬
  • KL을 2차항으로 나누는 것은 피사르 정보 행렬
  • 구체적인 알고리즘


    자세한 설명은 없지만 퀘스트 A를 학습하고 수렴한 후 피사르 정보 행렬 $F$를 구합니다. $F$를 계산하기 위해 학습할 때와 동일하게 학습샘플 $d_1,\cdots, d_N$를 사용하여 매개변수의 기울기를 구합니다.샘플 수량이 얼마나 필요한지 아직 잘 모르겠어요. $\nabla\theta_n$는 $d_와 같습니다.n$가 backprop을 통해 얻은 사다리라면 $F_{ii} =\frac{1}{N}\sum_{n=1}^N\nabla\theta_{ni}^2$.
    $F$를 구하면 $\frac{\lambda}{2}\sum_i F_손실에 ^2$만 추가하면 됩니다.
    페사르 정보 행렬로 파라미터의 중요도를 측정하는 의미에서 예를 들어 아래의 논문도 같은 일을 했다.
    Towards the Limit of Network Quantization, ICLR’17.
    https://arxiv.org/abs/1612.01543
    상술한 논문에서 데이터량을 삭감하기 위해 파라미터를 양적으로 해야 하기 때문에 파라미터의 중요도를 고려한 양적을 제시했다.구체적으로 손실 함수 테일러를 2회까지 전개해 근사하게 하면 해청은 파라미터가 약간 벗어났을 때의 손실 증가를 나타내는 중요도가 되기 때문에 같은 인상을 준다.

    참고 자료


    해설문
    https://rylanschaeffer.github.io/content/research/overcoming_catastrophic_forgetting/main.html
    http://www.inference.vc/comment-on-overcoming-catastrophic-forgetting-in-nns-are-multiple-penalties-needed-2/
    TensorFlow 구현
    https://github.com/ariseff/overcoming-catastrophic

    좋은 웹페이지 즐겨찾기