기존에 개발된 학습방법 중에 현재까지 가장 많이 사용되고
기본적인 학습방법 중 하나인 오류 역전파 알고리즘에 대해 알아보겠습니다.
오류 역전파 알고리즘란?
전체 학습 데이터에 대한 전체 오차를 최소화하는 방향으로 연결 강도를 갱신하여 학습하는 알고리즘입니다.
역전파 알고리즘은 지도학습(Input에 대한 Output이 정해져 있는 상태)에서 신경망을 학습시킵니다.
지도학습에 대해서는 이전 게시물을 참고해 주세요!
https://ssollacc.tistory.com/29?category=973418
이렇게 입력(x1, x2, x3)가 주어졌을 때 출력 y를 안다면 가중치(weight) = w를 찾을 수 있습니다.
그리고 이를 통해 w가 학습된다면 퍼셉트론은 input에서 output을 산출할 수 있게 됩니다.
E = 자승오차, Err =오차 값, x = 입력, y = 원하는 출력
경사 강하법(gradient descent)
최소 오차점을 찾기 위해서는 W에 관하여 오차 함수식을 편미분한 결과가 기울기의 크기를 의미 합니다.
그 값이 음의 값을 가지면 그 기울기만큼 ΔW를 이전 연결 강도에 더하고,
양의 값을 가지면 그 기울기만큼 ΔW를 빼주는 과정을 반복하면 최소점에 도달할 수있을 것 입니다.
바로 이러한 방식으로 최적값을 찾아가는 방법을 경사 강하법(gradient descent)이라고 합니다.
기울기(E/W)를 구해 음수인 경우W 값을 크게하고,
양수인 경우 W값을 작게하여 최소의 E(오차가 가장 적은 지점)를 찾을 수 있습니다.
α는 learning rate로, 한번에 얼마만큼 변화 시킬 것인지 결정합니다.
α값이 너무 작으면 학습이 오래걸리고 또 α값이 너무 크면 최적의 값을 찾기 어려워지겠죠?
연결강도 갱신 규칙
위 수식을 원래 수식에 적용해보면 아래와 같은 수식이 된다.
위 수식과 표기법을 맞추면 tpk - Opk == y - hw(x)이고 f'k(netpk)는 활성함수(activation function)를 미분한 것.
그리고 현재 층의 입력x는 이전 층의 출력Opj이기 때문입니다.
p는 출력이 여러개라면 그 중 하나를 가리키는 것이고 k와 j는 층을 의미 합니다.
입력층과 은닉층 간의 연결 강도의 변화
위 수식에서 활성화 함수가 시그모이드 함수면 이므로 최종 결과는 아래와 같이 된다.
즉, 정리하면 출력층과 은닉층의 유닛에 대한 오차를 구하기 우해서 출력층 k번째 유닛의 오차는 아래와 같고,
은닉층의 오차는 재귀적 연산(recursive opera-tion)이 이루어진다.
오류 역전파 알고리즘의 한계
역전파 알고리즘의 한계는 경사 강하법으로 항상 전역 최소값을 찾는다고 보장할 수 없는 것이다.
단순히 기울기가 작아지는 쪽으로 이동하기 때문에 극소값이 여러개일 경우 시작점에 따라 결과가 달라질 수 있다.
'인공지능' 카테고리의 다른 글
[인공지능] 게임 트리 - 미니맥스(minimax) 알고리즘, 알파베타 가지치기, 휴리스틱 평가 함수(evaluation function) (0) | 2021.11.14 |
---|---|
[인공지능] 탐색 알고리즘 - 상태공간, 8-PUZZLE, 깊이 우선 탐색(DFS), 너비우선 탐색(BFS), 언덕 등반 기법, A* 알고리즘 (6) | 2021.09.14 |
[인공지능] 파이토치(PyTorch)란? 설치방법 간략하게 소개 (0) | 2021.09.09 |
[인공지능] 딥러닝이란? - 헷갈리는 의미와 학습 방법 3가지 쉽게 설명! (0) | 2021.09.09 |
[인공지능] 인공지능의 겨울과 붐, 발전과 도약 (0) | 2021.09.06 |
댓글