- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date | 16/11/06 11:15:53수정됨 |
Name | Azurespace |
Subject | 신경망 학습의 틀을 깨다, DFA |
작성자가 본문을 삭제한 글입니다. 8
이 게시판에 등록된 Azurespace님의 최근 게시물
|
좋은 정보글 감사합니다.
제가 관심은 있지만 인공지능, 신경망 등등에 대해 잘 모르기 때문에(너가 아는 것은 도대체 뭐냐? ..)
꽤 시간을 들여서 이해하려고 노트필기를 했습니다. 위와 같이 이해하는 것이 맞나요?
노트필기한 그림파일을 설명하자면,
1) Back-propagation방식은,
x가 입력되었을시에 Y_real과 Y_pred의 차이를 error(즉, loss function)로 정의하고, 그 loss function을 편미분하여 그것의 gradient를 구한다. 그 gradient는 W_i들(다중 레이어의... 더 보기
제가 관심은 있지만 인공지능, 신경망 등등에 대해 잘 모르기 때문에(너가 아는 것은 도대체 뭐냐? ..)
꽤 시간을 들여서 이해하려고 노트필기를 했습니다. 위와 같이 이해하는 것이 맞나요?
노트필기한 그림파일을 설명하자면,
1) Back-propagation방식은,
x가 입력되었을시에 Y_real과 Y_pred의 차이를 error(즉, loss function)로 정의하고, 그 loss function을 편미분하여 그것의 gradient를 구한다. 그 gradient는 W_i들(다중 레이어의... 더 보기
좋은 정보글 감사합니다.
제가 관심은 있지만 인공지능, 신경망 등등에 대해 잘 모르기 때문에(너가 아는 것은 도대체 뭐냐? ..)
꽤 시간을 들여서 이해하려고 노트필기를 했습니다. 위와 같이 이해하는 것이 맞나요?
노트필기한 그림파일을 설명하자면,
1) Back-propagation방식은,
x가 입력되었을시에 Y_real과 Y_pred의 차이를 error(즉, loss function)로 정의하고, 그 loss function을 편미분하여 그것의 gradient를 구한다. 그 gradient는 W_i들(다중 레이어의 신경망이 가지는 각각의 가중치 벡터들)이 error에 기여하는 정도를 의미하게 된다.
학습될 인공 신경망에 대해,
결과값을 알기 위해서는 앞쪽(input, 즉 x쪽에 가까운) 신경망 레이어에서 뒤쪽(output, 즉 Y쪽에 가까운) 신경망 레이어로 신호를 보내야 하고,
gradient를 알기 위해서는 그 반대쪽 방향으로 W_i의 transpose들을 사용하여 앞뒤 신경망 레이어들 사이에서 피드백이 이루어져야 한다.
2) Feedback Alignment 방식은,
학습될 인공 신경망에 대해,
결과값을 알기 위해서는 ..(이하동문)...야 하고,
gradient 대신에 그 어떠한 아무렇게나 초기화된 matrix를 써도 그 반대쪽 방향으로 앞뒤 신경망 레이어들 사이에서 피드백이 이루어질 수 있다.
이것은 신기하긴 하지만 1)의 방식에 대해서 그 computation하는 횟수가 줄어들지 않기 때문에 학자들 사이에서 별 반향을 얻지 못했다.
3) Direct Feedback Alignment 방식은,
학습될 인공 신경망에 대해,
결과값을 알기 위해서는 ..(이하동문)..야 하고,
gradient 대신에 error에다가 아무런 random matrix 여럿 곱해서 얻은 것을 바로 직접 써도, "앞뒤 신경망들 사이에서 피드백을 할 필요 없이(!)", 각각의 computing node들을 개별적으로 학습시킬 수 있다. 이로써 훨씬 크고 깊은 네트워크도 빠르고 정확하게 학습할 수 있게 된 길이 열린 것이다.
다만, 앞선 가중치(학습)을 keep해서 뒤의 가중치(학습)에 가져가서 활용할 가치가 충분히 있을시에는 3)의 방식이 1)이 방식보다 비효율적이 된다.
* error는 각 신경망의 가중치들 W_i들과 그것의 transpose들을 고려한 weighted sum이다.
...이렇게 생각해도 될까요? 아주 오랜 시간을 들여서 제 뇌내망상을 결합해서 이렇게 이해해봤습니다.
제가 관심은 있지만 인공지능, 신경망 등등에 대해 잘 모르기 때문에(너가 아는 것은 도대체 뭐냐? ..)
꽤 시간을 들여서 이해하려고 노트필기를 했습니다. 위와 같이 이해하는 것이 맞나요?
노트필기한 그림파일을 설명하자면,
1) Back-propagation방식은,
x가 입력되었을시에 Y_real과 Y_pred의 차이를 error(즉, loss function)로 정의하고, 그 loss function을 편미분하여 그것의 gradient를 구한다. 그 gradient는 W_i들(다중 레이어의 신경망이 가지는 각각의 가중치 벡터들)이 error에 기여하는 정도를 의미하게 된다.
학습될 인공 신경망에 대해,
결과값을 알기 위해서는 앞쪽(input, 즉 x쪽에 가까운) 신경망 레이어에서 뒤쪽(output, 즉 Y쪽에 가까운) 신경망 레이어로 신호를 보내야 하고,
gradient를 알기 위해서는 그 반대쪽 방향으로 W_i의 transpose들을 사용하여 앞뒤 신경망 레이어들 사이에서 피드백이 이루어져야 한다.
2) Feedback Alignment 방식은,
학습될 인공 신경망에 대해,
결과값을 알기 위해서는 ..(이하동문)...야 하고,
gradient 대신에 그 어떠한 아무렇게나 초기화된 matrix를 써도 그 반대쪽 방향으로 앞뒤 신경망 레이어들 사이에서 피드백이 이루어질 수 있다.
이것은 신기하긴 하지만 1)의 방식에 대해서 그 computation하는 횟수가 줄어들지 않기 때문에 학자들 사이에서 별 반향을 얻지 못했다.
3) Direct Feedback Alignment 방식은,
학습될 인공 신경망에 대해,
결과값을 알기 위해서는 ..(이하동문)..야 하고,
gradient 대신에 error에다가 아무런 random matrix 여럿 곱해서 얻은 것을 바로 직접 써도, "앞뒤 신경망들 사이에서 피드백을 할 필요 없이(!)", 각각의 computing node들을 개별적으로 학습시킬 수 있다. 이로써 훨씬 크고 깊은 네트워크도 빠르고 정확하게 학습할 수 있게 된 길이 열린 것이다.
다만, 앞선 가중치(학습)을 keep해서 뒤의 가중치(학습)에 가져가서 활용할 가치가 충분히 있을시에는 3)의 방식이 1)이 방식보다 비효율적이 된다.
* error는 각 신경망의 가중치들 W_i들과 그것의 transpose들을 고려한 weighted sum이다.
...이렇게 생각해도 될까요? 아주 오랜 시간을 들여서 제 뇌내망상을 결합해서 이렇게 이해해봤습니다.
일단 BP FA DFA에 대한 얘기는 큰 틀에서 맞게 이해하신 것 같은데, error 부분이 조금 갸우뚱하게 되네요. 으음..
다음 페이지에 좋은 material이 있으니 조금 보시는 것도 괜찮을 것 같아요
http://hunkim.github.io/ml/
다음 페이지에 좋은 material이 있으니 조금 보시는 것도 괜찮을 것 같아요
http://hunkim.github.io/ml/
목록 |
|