입력 x 를 받아서 출력 y 를 산출하는 순방향 신경망에서 정보는 신경망을 따라 앞으로 흘러간다.
입력 x 는 초기 정보에 해당하고 그 초기 정보는 각 층의 은닉 단위들로 전파되어서 출력층에 도달, 최종적으로 y 가 출력된다.
이러한 전파 과저응ㄹ 순방향 전파라고 부른다.
훈련 과정에서는 이러한 순전파를 반복해서 하나의 스칼라 비용을 얻는다.
한편, 역방향 전파 역전파 알고리즈은 그러한 비용에서 나온 정보를 신경망을 따라 거꾸로 흐르게 해서 기울기를 계산한다.
역전파는 단지 기울기를 계산하는 방법, 그러한 기울기를 이용해서 학습을 수행하려면 SGD 같은 다른 알고리즘이 필요하다.
학습 알고리즘에 가장 요구되는 기울기는 비용함수의 매개변수들에 대한 기울기이다. 비용함수의 매개변수들에 대한 기울기뿐만 아니라 그런 과제들에 필요한 미분의 계산에도 역전파 알고리즘을 적용할 수 있다.
6.5.1 계산 그래프
역전파 알고리즘을 정확하게 설명하기 위해 계산 그래프 언어 사용,
그래프를 공식화하기 위해 연산 개념 도입, 연산이란 하나 이상의 변수들의 함수
하나의 연산이 하나의 출력 변수만 돌려준다고 해도 일반성이 줄지는 않는다. 그 하나의 출력 변수가 여러 개의 성분으로 이루어질 수도 있기 때ㅜㅁㄴ이다.
6.5.2 미분의 연쇄법칙
도함수가 알려진 여러 함수를 결합해서 만든 함수의 미분을 계산하는 데 쓰인다. 역전파는 그러한 연쇄법칙을 효율적인 특정한 연산 순서로 계산하는 알고리즘이다.
x 가 하나의 실수이고 f 와 g 가 실수를 실수로 사상하는 함수들이라고 하자.
y = g(x) 이고 z = f(g(x)) = f(y) 라고 하자. 연쇄법칙에 의해 다음이 성립
이를 스칼라가 아닌 복합적인 값들로 일반화할 수 있다.
y = g(x) 이고 z = f(y) 라고 할 때 다음이 성립
이를 벡터 표기법으로 변환
dy / dx 는 g의 n * m 야코비 행렬이다.
변수 x 의 기울기는 야코비 행렬 dy / dx 에 기울기 벡터를 곱해서 구할 수 있다.
역전파 알고리즘은 그래프의 각 연산에 대해 그러한 야코비-기울기 곱을 계산하는 단계들로 구성된다.
일반적으로 역전파 알고리즘을 임의의 차원의 텐서에 적용한다.텐서에 대한 역전파 알고리즘은 벡터에 대한 역전파 알고리즘과 개념적으로 정확히 동일하다.
6.5.3 연쇄법칙을 재귀적으로 적용해서 역전파 구하기
연쇄법칙 덕분에, 스칼라의 기울기를 구하는 대수식을 유도하는 것 자체는 어려울 일이 아니다. 그러나 그러한 수식을 실제로 컴퓨터에서 평가할 때에는 고려해야 할 사항들이 더 있다.
구체적으로 말하면, 기울기에 대한 전체 수식 안에 다수의 부분식이 여러 번 되풀이될 수 있다.
기울기를 계산하는 절차를 설계할 때는 그러한 부분식들의 결과를 저장할 것인지 매번 다시 계산할 것인지 결정해야 한다.
경우에 따라서는 같은 부분식을 두 번 계산하는 것이 큰 낭비일 수 있다. 복잡한 그래프에서는 그러한 반복 계산 사례가 지수적으로 증가해서 연쇄법칙을 적용하기가 사실상 불가능할 수도 있다. 그러나 때에 따라서는 같은 부분식을 두 번 계산하는 것이 메모리 소비량을 줄이는 유효한 방법일 수 있다. (실행 비용, 메모리 trade-off)
실질적인 기울기 계산을 명시하는 형태의 역전파 알고리즘부터 살펴본다.
이 알고리즘은 역전파가 연쇄법칙의 재귀적인 적용을 통해서 실제로 기울기를 계산한다는 점을 보여주기 위한 것이다.
기울기를 그냥 직접 계산하는 시스템을 구현할 수도 있다.
우선 살펴볼 것은 하나의 스칼라를 계산한는 방법을 서술하는 계산 그래프, 알고리즘의 목표는 이 스칼라의 u^(1) 에서 u^(n) 까지의 n 개의 입력 노드들에 대한 기울기를 구하는 것,
~
'심층 학습' 카테고리의 다른 글
7.1 매개변수 노름 벌점 (2) | 2023.06.08 |
---|---|
7. 심층 학습을 위한 정칙화 (1) | 2023.06.08 |
6.4 아키텍처 설계 (0) | 2023.06.07 |
6.3 은닉 단위 (0) | 2023.06.05 |
6.2 기울기 기반 학습 (0) | 2023.06.05 |