- 회원들이 추천해주신 좋은 글들을 따로 모아놓는 공간입니다.
- 추천글은 매주 자문단의 투표로 선정됩니다.
Date 16/11/06 11:15:53
Name   Azurespace
Subject   신경망 학습의 틀을 깨다, DFA
오랜만입니다.
요즘도 딥 러닝에서는 굉장히 신기한 응용들과, 수학적 지식을 기반으로 하는 기기묘묘한 새 알고리즘들이 쏟아지고 있어서, 최신 연구들을 Follow-up 하는 것만도 대단히 벅찬 일이라는 생각이 듭니다.

그래서 한동안 연재를 하지 않고 있었는데, 간만에 엄청 재미있는 논문들이 나와서 이건 꼭 소개해야겠구나라는 생각이 들었습니다.

기존의 인공 신경망을 학습시키는 지도학습 방법은 Back-propagation이라는 방법에 기반하고 있습니다.

우리가 넣은 입력 x에 대해서, 신경망이 생성해낸 결과값 Y_pred와 우리가 알고 있는 정답 Y_real이 있다면
Y_pred와 Y_real의 차이(=error)를 나타내는 loss function이란 걸 정의를 합니다.
차이가 크면 loss도 커지고, 차이가 작으면 loss도 작아집니다.

그 다음 편미분을 통해 각 가중치가 error에 기여하는 정도(=그래디언트)를 계산해내어 학습에 이용하는 것이 기존의 Back-propagation 방법입니다.

잘 이해가 안 되시죠. 어쨌든 미분을 해야만 학습이 가능하다는 것만 착안하시면 됩니다.


Back Propagation 알고리즘에는 여러 문제가 있습니다.

1. 거대한 신경망을 빠르게 학습시키는 것이 어렵다.
신경망은 여러 레이어 구조로 이루어져 있는데요. 결과값을 얻기 위해서는 신호를 앞쪽에서 뒤쪽으로 보내야 하고, 그래디언트를 구하기 위해서는 반대로 뒤쪽으로부터 앞쪽으로 신호를 보내야 합니다. 즉 신경망의 각 레이어 사이에는 계속 신호 전달이 있어야 하기 때문에 매우 큰 규모의 네트워크를 학습시키는 데 어려움이 있습니다. 컴퓨터를 많이 쓰면 되지 않느냐 싶지만, 네트워크(신경망 말고 컴퓨터 사이를 연결한 LAN) 사이에 주고 받아야 하는 데이터도 많아지고, 깊으면 깊을수록 계산 시간보다 서로 신호 주고받는 전송 속도에 오히려 한계가 오고.. 이러는 거죠.

Gradient Vanishing이라는 문제도 있습니다. 깊어질수록 그래디언트의 값이 작아져서 학습에 지장이 생기는 거죠. ReLU를 활성화함수로 쓰기 시작하면서 조금 나아지기는 했고, Residual Network 등 이를 해결하기 위한 여러 테크닉이 생겨났지만 완벽하진 않아요.

2. Biologically Plausible하지 않습니다.
무슨 말이냐면 사람이나 다른 생물체들의 신경 세포들이 학습하는 과정을 설명하지 못한다는 겁니다.  신경세포는 신호를 보내는 방향이 단방향이라 에러 정보를 역전파를 통해 받기도 어려울뿐더러, 그 세포 하나하나들이 미분을 통해서 그래디언트(=가중치의 변화해야 하는 량)을 계산하는 것일까요? 아무래도 걔들이 미분을 할 수 있을 것 같진 않죠. 그냥 인공신경망을 활용하는 데에는 아무 문제가 없지만, 뭐라고 할까요. 생물체의 신경 세포를 수학적으로 모델링해 만든 것이 인공신경망인데, 그 인공신경망을 학습시키는 방법은 생물체가 배우는 방법과는 아무런 관련이 없다? 뭔가 좀 껄끄럽잖아요. 그런데 우리가 생물의 학습 방법과 경로를 아직도 잘 모르니까, 어쩔 수 없는 면도 있고...


그래서 BP는 어쨌든 지금까지 잘 써먹어 왔고, 학습을 잘 시킬 수 있다는 것은 알고 있었지만 이것만으로는 뭔가 부족하지 않나... 라는 생각이 있긴 했습니다.


그런데 얼마 전.. 몇개월 전에 Feedback Alignment라는 논문이 나오게 되는데요.

위에 나온 BP 모식도를 보시면, Prediction 시에는 W1,W2,W3이라는 가중치 벡터를 통해 입력을 출력층으로 보내고, 피드백은 이 벡터의 Transpose를 이용하죠? 이를 통해 Error의 Weighted Sum을 구해나가는 것입니다.

그런데 FA는 뭐냐면..


네트워크 가중치랑 상관없이, 그냥 Random하게 초기화된 아무 Matrix나 대신 써도 그래디언트는 전달되고 신경망은 학습된다는 것입니다. What?
BP는 조금 복잡할지언정 수학적으로는 비교적 간단하고 쉽게 설명할 수 있는 방법이고, 성능 또한 다른 알고리즘들보다 뛰어나기 때문에 사용했던 것입니다. 그런데 네트워크의 Weight랑 전혀 상관없는 아무 Matrix로 에러를 전파시켜도 학습이 된다니... 놀랠 노자였죠.
그런데 심지어 이 논문의 저자는 왜 이렇게 하는 것이 가능한지 수학적으로 증명도 해 놓았습니다. 대단한 사람 많아요.
그러나 일부 학자들은 흥분하기도 했지만 대부분은 오 흥미로운데? 라는 정도로 넘어갔죠.

왜냐면 아무 Matrix를 써도 된다는 것 자체는 재미있지만 BackPropagation에 비해서 Computation 회수가 줄어들지는 않기 때문에 그냥 기존에 사용하던 방법들을 쓰기만 해도 됐거든요.


그러고 나서, 지난 9월에 Direct Feedback Alignment라는 게 나옵니다.

"그냥 출력층 Error에다가 Random Matrix 하나씩 곱해서 Gradient 대신 써도 BP랑 똑같은 성능 나오는데?" "????"
그림 보시면 위 두개랑 차이가 있죠. 기존에는 바로 뒤 레이어에서 학습에 썼던 Error Gradient의 계산이 끝나길 기다렸다가, 거기에다가 가중치를 곱했습니다.

그런데 그게 아니라 그냥 Error에 직접 Matrix를 곱해서 써도 네트워크 학습이 된다라는 거에요.
바로 앞뒤 레이어와 통신을 할 필요 없이, 출력값만 알면 된다는 겁니다.

이러면 그냥 Output layer에서 Error를 랜을 통해 Broadcasting만 해주면 각각의 Computing node에서 개별적으로 학습을 할 수 있다는 것을 의미합니다.

지금보다 훨씬 크고 깊은 네트워크도 오히려 지금보다 빠르게 학습할 수 있을지도 모른다는 가능성을 보여준 것이죠.
심지어 DFA는 BP로는 수렴에 실패한, Tanh를 활성화 함수로 사용하는 매우 깊은 네트워크도 학습에 성공했습니다.
그리고 실험에 사용한 대부분의 신경망 구조에서 BP와 그다지 차이 없는 정확도를 보였습니다.

그럼 뭐냐, DFA가 무조건 BP보다 좋은 것 아니냐? 생각하실 수 있는데, 그렇지는 않은 것 같습니다.
딥 러닝에서는 기존에 비슷한 문제를 풀 때 사용했었던 Pretrained Model이 있는 경우, 이 가중치는 고정해두고 여기에 새로운 레이어를 덧붙여서 나머지 가중치만 학습하는 경우가 있습니다. 예를 들면 Langauge Model 같은 건 새 단어가 추가되었다고 기존의 학습 결과를 버리고 처음부터 학습하기는 좀 그렇잖아요. DFA는 이런 경우에는 BP보다 성능이 떨어졌습니다. 뭔가 구분을 동등한 수준으로 잘 해내기는 하는데, 내부적으로 배워나가는 방식은 전혀 다르다라는 의미겠지요.


DFA는 지금까지 우리가 인공신경망 학습에 대해 생각하고 있었던 그 모든 상식들이 사실 잘못되었었는지도 모른다는 것을 시사합니다.
얼핏 봐서는 이게 말이 되냐? 라고 생각할법한 일들이 사실로 일어나고 어떻게든 동작한다는 것이 Stochastic Computation의 묘미인지도 모르겠어요. 기존의 Deterministic 컴퓨터의 방식과는 너무나 다르죠.

게다가 사실 DFA는 아무 대학생이 Matlab 잡고 만들어도 10분이면 구현할 수 있는 엄청 간단한 알고리즘이에요. BP보다 훨씬 간단하고 쉬운 알고리즘이 있었는데 그보다 복잡한 알고리즘을 수십년동안 붙잡고 있었다는 거에요.
(물론 그동안 신경망이 넘어야 했던 수많은 산들을 생각해보면 이해가 안 되는 것도 아닙니다만)

아, IFA(Indirect Feedback Alignment) 라는 것도 있는데, 이건 Biologically Plausible한 모델을 만들기 위해 논문 저자가 생각해낸 개념이에요.
일부 뉴런들은 Error로부터 직접 Feedback을 받고, Direct Feedback Path가 없는 뉴런들은, 피드백을 직접 받은 뉴런들로부터 간접 피드백을 받는다는 것이죠. 실제로 이런 식으로 학습하는지 어떤지는 아직 알 수 없습니다. 단지 생체 신경망에서도 가능한 구조이다- 라는 것 뿐이죠. 이게 맞는지 아닌지 검증하는 것은 인공신경망 학자들이 생물학자들에게 던진 숙제라고 보면 될 것 같아요.




* 수박이두통에게보린님에 의해서 티타임 게시판으로부터 게시물 복사되었습니다 (2016-11-21 00:05)
* 관리사유 : 추천게시판으로 복사합니다.



10


    목록
    번호 제목 이름 날짜 조회 추천
    522 역사삼국통일전쟁 - 10. 황산벌 전투 8 눈시 17/10/02 6818 10
    509 기타콜라테러 썰 15 OshiN 17/09/15 6457 10
    503 의료/건강술, 얼마나 마셔야 적당한가? 63 빈둥빈둥 17/08/30 9587 10
    487 역사삼국통일전쟁 - 8. 황제의 꿈, 대왕의 꿈 8 눈시 17/08/05 6047 10
    485 과학알쓸신잡과 미토콘드리아 7 모모스 17/08/02 9027 10
    453 정치/사회대학원 교육과 학습에 관한 연구 리뷰 22 호라타래 17/06/15 6422 10
    1308 일상/생각비둘기야 미안하다 14 nothing 23/06/29 2746 10
    402 일상/생각쉽게 지킬 수 있는 몇 가지 맞춤법. 25 에밀 17/03/30 5692 10
    386 일상/생각치킨값에 대한 단상.. 76 Zel 17/03/14 7646 10
    358 정치/사회민주당 계승정당 연구 17 호라타래 17/02/04 7080 10
    331 일상/생각나를 괴롭히는 것은, 나. 12 SCV 16/12/27 6480 10
    314 기타ISBN 이야기(2) 20 나쁜피 16/12/03 5327 10
    305 정치/사회동교동계. 부끄러운줄 알라. 7 Bergy10 16/11/20 5334 10
    298 정치/사회시국 단상: 박대통령과 골룸 16 기아트윈스 16/11/08 5089 10
    297 IT/컴퓨터신경망 학습의 틀을 깨다, DFA 15 Azurespace 16/11/06 9673 10
    282 체육/스포츠첫 하프마라톤 후기 31 파란아게하 16/10/12 10746 10
    262 일상/생각하나님 한 번만 더 할아버지와 대화하게 해주세요. 7 Terminus Vagus 16/09/09 5291 10
    243 정치/사회정말 젊은 여성들은 정치/사회에 관심이 없을까? 26 DoubleYellowDot 16/08/03 8409 10
    182 기타[회고록] 그 밤은 추웠고, 난 홍조를 띠었네. 43 수박이두통에게보린 16/04/12 5661 10
    214 과학Re : Re : 국내의 에너지 산업 혹은 태양광산업 동향은 어떤가요? 29 고양이카페 16/06/06 7794 10
    213 일상/생각개인정보 보호는 개나 줘버렷. 43 Darwin4078 16/06/01 6286 10
    147 꿀팁/강좌로버트 새폴스키 - 스트레스와 인간 16 눈부심 16/01/31 8913 10
    123 일상/생각동국대 학생 48일 단식과 평화시위 4 nickyo 15/12/01 5295 10
    89 경제노벨경제학상 앵거스 디턴과 21세기자본 도마 피케티는 대립하는가? 16 난커피가더좋아 15/10/15 8224 10
    85 과학불멸의 세포 17 모모스 15/10/09 7868 10
    목록

    + : 최근 6시간내에 달린 댓글
    + : 최근 12시간내에 달린 댓글

    댓글