Data Science/논문 리뷰

논문 리뷰 #1 - The Forward-Forward Algorithm: Some Preliminary Investigations

PM스터 2023. 2. 24. 12:06
반응형

논문 원문: https://arxiv.org/abs/2212.13345

 

The Forward-Forward Algorithm: Some Preliminary Investigations

The aim of this paper is to introduce a new learning procedure for neural networks and to demonstrate that it works well enough on a few small problems to be worth further investigation. The Forward-Forward algorithm replaces the forward and backward passe

arxiv.org

이 글은 경희대학교 AIRLab의 이정운님의 논문 리뷰 영상을 리뷰한 것임을 밝힙니다. 
출처:  https://www.youtube.com/watch?v=ePmLtfj01Jc 

1. Overview

  • FF는 gradient를 최종 아웃풋이 아닌 자기 자신의 아웃풋을 가지고 locally 학습한다. 때문에 별도의 Backprop이 없어도 학습 가능하다.
  • 때문에 학습이 자기 자신에서 local 하고, 즉시 학습된다.


2. Backpropagation

  • Backprop이 필요한 이유 = 인풋을 넣어서 나온 아웃풋이 Ground Truth와 최대한 가깝게 하기 위해서 에러를 역전파시키는 과정이 필요함(최적화)
  • 이때 미분 값이 필요하기 때문에 Chain rule을 사용하게 된다.


3. Backpropagation의 한계

  • 때문에 Backpropagation은 구조적으로 perfect knowledge of the computation을 갖게 되는데, 이는 곧. chain rule이 모든 과정에서 가능해야 함을 말한다.
  • 이는 구조적으로 모든 네트워크 구조가 미분 가능하게 연결되어 있어야 함을 말한다. (중간에 잘리면 안 됨)
  • 만약 미분 가능하지 않게 되면 트릭을 사용해야 함
    • Ex. VAE(Variational Auto Encoder), 강화학습 트릭
 
  • 또한, 인간은 추론을 통해 학습하는데, 딥러닝 같은 경우는 한번 Inference를 하면 다시 학습을 진행하기 때문에 끊어진 학습이 발생해서 인간의 학습과정과는 다른 점이 Backpropagation의 한계라고 저자는 말한다.
    • 이것이 문제인 이유는 인간과 다른 학습 방식은 곧 일반 인공지능으로 가는 것에 문제가 될 수 있기 때문이라고 언급함
    • 뿐만 아니라, 저자는 개인적으로 인간이 Backpropagation을 통해 학습하는 것처럼 보이지 않는다고 말한다.

4. The Forward-Forward Algorithm

  • FF Algorithm은 2개의 forward pass를 통해 학습하게 된다.
    • positive pass
      = 실제 원본 데이터를 통한 학습
    • negative pass
      = 거짓 데이터 혹은 실제 데이터 기반 disruptive data를 통한 학습
  • 목적: positive data는 positive로, negative는 negative로 분류하기 위함
    • 이를 통해 backward pass 없이 forwrad pass만으로 학습을 진행할 수 있도록 한다.
 
  • Goodness함수 도입
    • G(x) = ∑relu(h_i)^2
    • positive data인 경우 Goodness가 높아지는 방향으로 학습
      • G(x_pos) >> threshold
    • negative data인 경우 Threshold보다 낮아지는 방향으로 학습
      • G(x_neg) << threshold
 
  • 이게 무슨 말일까..?
    • 모든 노드 과정에서 classifier 결과를 받는 형태
      • 기존: input - node - node - output (Positive Data!)
      • FF: input - node(Positive Data!) - node(Positive Data!) - output (Positive Data!)
  • 즉, 최종 결과물을 산출할 때만 뉴런(노드)을 사용하는 것이 아니라 모든 과정에서 사용한다.
    • why? 인간의 뇌는 최종 output만을 산출하는 acyclic 한 구조가 아니다.
    • 오히려 모든 뉴런이 연결되어 있는 cyclic한 구조이다.
    • 예시로, 책을 읽을 때보다, 인터넷 서핑을 할 때 뇌를 훨씬 많이 사용하는 것을 볼 수 있다.
      • 이는 어떠한 일을 할 때 관련된 모든 뉴런이 동시에 일을 한다는 것을 말하며,
      • 곧, input값이 7이라면 모든 관련 뉴런은 해당 input을 7이라고 인지(결론)한다는 것을 말한다.
      • 다시 말해, 최종 노드만 분류 역할을 하는 것이 아님을 말한다.
      • 때문에 각 노드에서 결과 값을 산출 하는 방식으로 구조를 짜게 되고, 이를 Goodness(반응하는 전이값)로 표현한다.
        • 각각 노드에서 빠져나온 scala의 제곱: G(x) = ∑relu(h_i)^2
  • 장점:
    • 각각의 노드에서 학습하기 때문에 굳이 미분 가능하게 만들지 않아도 된다.
    • 각각의 노드에서 학습하고, 해당 결과물을 다음 레이어에 넘겨주는 방식이기 때문에 모든 레이어들이 학습 과정에서 멈추지 않아도 된다.
    • 즉, 결과물을 다음 레이어에 넘겨준 후 각각의 노드는 다시 학습을 바로 진행할 수 있다.
      • It can learn while pipelining sequential data through a neural network without ever storin the neural activities or stopping propagate error derivatives
      • 이 부분이 혁신적이다! But, 저자는 FF-Algorithm의 목표가 backprop의 대체가 아닌 새롭게 학습할  수 있는 방법론의 제공이라고 말한다.
        • 또한, 대형 모델의 학습에 대해서도 backpropagation을 대체할 가능성은 거의 없어 보인다고 언급하고 있다.
    • Backpropagation보다 우수하다고 판단되는 다른 지점은 1) learning in cortex와 2) low power이다.
      • learning cortex: (의학 개념인 듯)
        • 뇌세포는 층층이 쌓여 있지 않고, 모든 뉴런이 루프로 연결되어 있다.
        • 결국, 루프로 연결되어 있기 때문에 실제 뇌 구조에서는 backpropagation을 할 수 없다.
        • 이때, 자기 자신이 뱉은 Output을 스스로 학습하는 방식인 FF Algorithm을 활용하면, 뇌가 학습하는 방식인 learning cortex로 루프를 형성할 수 있다.
      • low power: back propagation을 할 수 없는 low power 환경에서 우수하다.

5. FF 알고리즘 실험

  • 어떻게 Negative data를 만들까?
  •  Positive Real Data Vector들을 활용해서 hybrid 한 후 negative data를 생성한다.

  • Constrative Representation Learning을 통해 학습 (긍정과 부정 데이터의 차이를 갈라내는 방식의 학습인 듯)

  • FF-model Top-down effect: Recurrent하게 Loop해서 자신의 output과 이전 노드의 값, 다음 노드의 값으로부터 모두 영향을 받음

6. Future work

  • Backpropagation을 대체할 수 있을지는 알 수 없지만 Backpropagation처럼 완전히 새로운 알고리즘이 것은 자명하다.
  • 해야 할 연구가 너무 많기 때문에 함께 연구해 보즈아! 가즈아! AI가보즈아아!

7. 코드 예시

 

Reference: 

https://arxiv.org/abs/2212.13345

https://www.youtube.com/watch?v=ePmLtfj01Jc 

https://bdtechtalks.com/2022/12/19/forward-forward-algorithm-geoffrey-hinton/

https://medium.com/@jorgesleonel/backpropagation-cc81e9c772fd

반응형