들어가기 전에
이 포스트는 Feedback Alignment와 관련된 시리즈 중 Part 01에 해당하는 포스트입니다.
- Part 01: Feedback Alignment에 대해
논문: Random feedback weights support learning in deep neural networks
역전파 알고리즘과 우리의 뇌
역전파 알고리즘은 인공지능 학습에 가장 중요한 역할을 수행합니다. 영어로는 Backpropagation(BP)라고도 부르는 이 알고리즘은 loss 함수를 모든 w에 대해 미분하고, w를 업데이트하는 과정으로 이뤄집니다. 이 과정에서 인공지능 알고리즘은chain rule에 의해 정교하게 모든 w에 대해 기울기 값을 계산하고, activation 값을 곱하게됩니다. 또는 loss에 해당 w가 얼마나 연관돼 있는지를 정확하게 계산합니다. 하지만 우리의 뇌는 어떨까요? 우리의 뇌도 역전파 알고리즘처럼 정확하게 w와 loss의 연관성을 계산하여 성능을 향상시킬까요? 현대 과학의 답은 "아니오"입니다. 우리 뇌의 신호는 시넵스와 뉴런을 따라 보통 한 쪽 방향으로 이동하기 때문입니다. 역전파 알고리즘에서의 역으로 향하는 길은 없다는 것이죠.
역전파 알고리즘은 생명체의 학습 방법과는 차이가 분명히 있습니다. 사실 다른 알고리즘이죠. Feedback Alignment를 기존 역전파 알고리즘이 생명체의 학습 방법과 다름을 지적하며, 보다 생명체 학습 방법과 친숙한 학습 방식이라고 할 수 있습니다. 이런 특징을 Bio-plausible라고 부릅니다.
Feedback Alignemt 자체는 Bio-plausible하다고 하기는 좀 그렇지만, IFA, DFA 등의 조금 더 발전한 Bio-plausible 후속 기술의 기반이 되기 때문에 어느정도는 맞다고도 할 수 있을 것 같습니다.
Feedback Alignment
논문에서 Feedback Alignment의 예시를 보여주기 위해 가장 간단한 Hidden Layer 1개짜리 인공지능 모델을 가정합니다. 수식으로 쓰면 다음과 같습니다. (심지어 비선형 함수도, bias도 없는 것으로 가정했네요.)
위의 수식에서 W0와 W1에 대한 gradient를 chain rule에 따라 계산하면 다음과 같습니다.
L의 W0에 대한 기울기를 구할 때, chain rule에 따라 L의 y0에 대한 기울기도 필요하다는 것을 알 수 있습니다. 다음과 같이요.
일반적으로 역전파 알고리즘에서는 기울기에 음수를 곱하여 기울기 방향과 반대 방향으로 모델이 업데이트되도록 합니다. (w = w -g에서 -g가 기울기의 반대 방향이라는 것을 아시죠?) 따라서 위의 식의 좌변에 음수를 취하고, 그 값을 다음과 같이 표현하겠습니다.
Feedback Alignment에서는 W0의 기울기를 구하는데 chain rule을 적용시키지만, "그림 03"의 수식에서는 W1 대신 임의 다른 행렬 B를 사용합니다. "그림 04"도 "그림 03"과 부호만 반대인 수식이니 "그림 04"의 W1을 B로 대체한다는 의미입니다.
여기서 B1은 임의의 고정된 랜덤 행렬입니다. Feedback Alignment 논문에서는 위의 상황처럼 W 대신에 임의 B를 사용해도 학습이 된다고 합니다. 신기하죠? 심지어 역전파 알고리즘처럼 loss를 빠르게 감소시킨다고 합니다. 저자들은 이에 다음과 같이 설명합니다.
모델 스스로 점진적으로 B1을 어떻게 사용할지 학습한다.
그로 인해 W1을 사용했을 때와는 다른 양상을 보이기도 한다.
사실 "그림 05"의 y0 자체는 W에 대해 미분한 것이 아니기 때문에, 인공지능 학습에 직접적인 영향을 주지는 않습니다. 다만 chain rule에 따라 영향을 주는 것이지요. 그렇기에 저자들은 "그림 05"의 y0 미분을 "signal"이라는 표현으로 대체하여 설명했습니다.
아니 그래서 어쩌라고?
자 이제 Feedback Alignment의 가설을 알려드리겠습니다. Feedback Alignment의 가설은 "방향만 얼추 비슷하면 학습이 된다."입니다. 이는 수식적으로 다음과 같습니다.
eTW1은 e에 대한 W1의 방향입니다. row vector죠. Be는 e에 대한 B의 방향입니다. column vector죠. 따라서 위의 수식은 row vector * column vector이며, 이는 벡터의 내적을 의미합니다. 내적이 0보다 크니 적어도 W1과 B의 방향이 반대는 아니라는 것이겠죠? 저자들은 위의 수식이 실제로 만족하는지 실험을 진행해 봤으며, eTW1과 Be의 각도 차이를 아래와 같이 보였습니다.
그림 07을 보시면 두 벡터 사이의 각도가 처음에는 90도였다가 점점 45도 보다 작아진다는 것을 볼 수 있습니다. 즉, 두 벡터 내적의 값이 0보다 크다는 의미겠죠. 위의 그림에서 알 수 있는 것은 e^TW 벡터와 (Be)^T 벡터가 학습이 진행될 수록 유사한 방향을 가리키게 된다는 것을 의미합니다. 수식으로 보면 다음과 같겠죠?
이는 곧 B를 사용해서 유의미한 정보가 chain rule에 의해 전달된다는 것입니다.
위의 예시는 가장 간단한 DNN인 2-layer 모델을 보였지만, 저자들은 여 많은 레이어를 쌓아도 "그림 07"과 같은 양상을 보인다고 합니다.
'인공지능 이야기' 카테고리의 다른 글
구글의 학습용 AI, NotebookLM (2) | 2025.01.04 |
---|---|
입문자를 위한 인공지능의 종류와 특징 (3) | 2025.01.01 |
구글의 동영상 생성 인공지능, OpenAI의 Sora보다 뛰어난가? (5) | 2024.12.28 |
브로드컴 주가, 과연 제 2의 엔비디아가 될 수 있을까? (0) | 2024.12.28 |
구글의 Bard[바드] 사용법 및 후기 (1) | 2023.11.03 |