본문 바로가기

AI 기반 기술

다층 퍼셉트론과 Back Propagation 학습 알고리즘

지난 글에서 뉴런으로 구성된 간단한 네트워크 모델인 단층 퍼셉트론에 대하여 알아보았습니다.
이번 글에서는 다층 퍼셉트론에 대하여 알아보도록 하겠습니다.

 

 

 

 



다층 퍼셉트론의 형태는 단층 퍼셉트론과 달리 여러 개의 퍼셉트론 층을 가지고 있습니다.

 

다층 퍼셉트론의 구조


여러 층의 퍼셉트론을 가짐으로써 여러 개의 직선으로 데이터를 분류할 수 있게 되었고 단층 퍼셉트론의 가장 큰 결점이 해결되었습니다.
그러나 단층 퍼셉트론이 가진 문제점은 두 가지였었죠.
선형분리 되는 패턴만 가능하다는 문제점 외에도 학습이란 개념이 전혀 적용되지 않았다는 문제가 있었습니다.
다층 퍼셉트론은 어떨까요?

다층 퍼셉트론도 단층 퍼셉트론과 마찬가지로 가중치를 변경할 수 있는 구조는 보이지 않습니다.
학습이란 개념의 적용 문제는 여전히 해결되지 않은 것입니다.

이 문제를 해결하기 위해서 신경망 연구자들은 다층 퍼셉트론 모델에 Back Propagation 이라는 알고리즘을 도입하였습니다.
Back Propagation이란 역전파, 즉 역방향으로 신호를 전달, 전파한다는 의미입니다.
실제로 전달되는 신호, 즉 데이터는 다층 퍼셉트론 모델을 사용하면서 기대하는 결과와의 오차 값이 전달되며 이 때문에 '오차역전파' 학습 알고리즘이라고도 합니다.

Back Propagation (오차역전파) 학습알고리즘의 개념


위에 그려진 그림처럼 초기 설정된 노드별 가중치를 이용하여 출력을 계산합니다.
계산된 출력 값이 우리가 원하는 기대 출력값과 같은지 비교하고 오차가 있다면 해당 오차를 역방향으로 각 층의 퍼셉트론으로 전파하여 원하는 값이 나올 수 있도록 가중치를 수정합니다.
각 층별로 수정을 진행하다가 가장 처음 층까지 수정이 완료되면 다시 정방향으로 수정된 가중치를 이용하여 출력을 계산해 나갑니다.
마지막 층에서의 계산 결과와 기대 출력값을 다시 비교하고...
최종적으로 우리가 원하는 기대 출력값이 나올 때까지 이 과정을 반복해서 적용합니다.
이 방법이 Back Propagation 알고리즘입니다.

기존의 다층 퍼셉트론과 달리 Back Propagation 학습 알고리즘을 적용한 다층 퍼셉트론은 처음 설정된 각 노드별 가중치가 우리가 원하는 결과를 만들 수 있는 가중치로 계속 수정이 되고 이 과정을 학습이라고 정의한 것이죠.

지금까지 뉴런 모델, 단층 퍼셉트론, 다층 퍼셉트론에 이어서 Back Propagation 학습 알고리즘까지 알아보았습니다.
요즘 이슈가 되고 있는 딥 러닝 모델은 다층 퍼셉트론에서 가운데에 적용된 층의 수를 아주 많이 증가, 중첩시켜놓은 모델이라고 생각하시면 됩니다.
세부적인 계산 방식은 조금씩 다르지만(더 효율적으로 개선되었죠) 기본적인 개념은 지금까지 설명드린 내용을 기반으로 하고 있습니다.
지금까지의 내용을 잘 이해하시면 딥러닝 모델을 이해해 나가는 데에도 큰 문제는 없을 것이라고 생각합니다.

그럼 다음 글에서는 지금까지 사용되었던 각 뉴런모델에서 임계 값을 넘었을 때 출력을 처리하는 함수에 대해서 살펴보도록 하겠습니다.

* 알림
공지사항에서 말씀드렸듯이 AI의 기초를 가능한 쉽게 이해할 수 있도록 글을 작성하고자 하기때문에 각 노드, 층에서 처리되는 계산 식 등은 따로 설명하지 않고 있습니다.
계산 식, 계산 과정이 들어가게 되면 아마도 상당히 읽기 어려운 글이 될 것입니다.
또한 요즘은 이런 계산 식을 직접 구현하지 않고 텐서플로, 케라스, 까페 등 이미 구현되어 제공되는 라이브러리/플랫폼

등을 이용하기 때문에 세부 계산식은 크게 필요하지 않습니다.
그러나 상세한 내용을 원하는 분들도 계실 것으로 생각되어 그런 분들을 위한 글은 차후 별도의 이슈로 설명을 드리고자

합니다.

 

 

 

 

 

728x90
반응형