클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

딥러닝 4 - 퍼셉트론 이해하기 1 : 다층 퍼셉트론이 나오게 되기까지 본문

인공지능/딥러닝

딥러닝 4 - 퍼셉트론 이해하기 1 : 다층 퍼셉트론이 나오게 되기까지

huenuri 2024. 9. 22. 10:34

둘째날 수업부터는 딥러닝을 좀더 깊이있게 들어갔다. 먼저 지난 시간에 배웠던 내용을 잠시 복습하고 새로운 개념인 퍼셉트론을 학습해보기로 하자.


 

 

 

퍼셉트론에 대하여

 

 

 

 

 

 

사람의 뉴런은 어느 기준값 이상일 때 반응을 하도록 만들어져있다.

 

 

 

 

 

 

사람의 뇌 구조를 모방한 인공신경망을 수학적 구조로 구현한 알고리즘이다.

 

 

 

 

 

이 식은 선형 모델을 말하는데 0보다 같거나 작으면 0이, 크면 1이 나온다. 여기서 0보다 크거나 작은지가 역치를 구현한 것이다.

뉴런에서 외부의 자극이 기준값 이상일 때만 다음 뉴런에게 전달되어 반응된다. 만약 외부에서 들어온 자극이 기준값을 넘지 못하면 비활성화를 시켜야 한다. 이러한 활성과 비활성 단계를 수학적 표현인 1과 0으로 구현한 것이다. 0은 더하거나 곱해도 변화가 없으면 곱했을 때는 소멸시키는 값이다.

 

 

 

 

 

현대에 들어서는 퍼셉트론을 이렇게 정의한다. 하나의 선형모델과 역치가 묶인 퍼셉트론을 하나의 유닛이라고 부른다. 퍼셉트론은 선형모델이 들어있어 입력치와 가중치를 곱한 것을 모두 더한다. 이 선형모델이 더한 값을 역치를 기준으로 활성화를 하느냐, 비활성화되게 하는지 만들어주는 것이다.

현대에 들어서 이 뉴런을 활성화 함수라고 부르며, 유닛과 활성화 함수라는 두 개의 결합이 퍼셉트론이다.

 

초기에는 퍼셉트론 하나를 가지고 여러 가지를 해결하려고 했었다. 하지만 하나로는 해결을 할 수 없다는 결론을 내리고 다음 해결책이 나오게 된다.


 

 

 

 

딥러닝의 XOR 문제 발생

 

 

XOR 문제를 해결하지 못해 지적을 받게 된다.

 

 

 

 

컴퓨터에서는 비트 연산으로 0과 1로 표시한다. 비트 연산에서는 둘다 참인 경우 1이 된다.

 

 

 

 

 

OR 연산에서도 둘 중에 하나가 TRUE가 되어야 1이 되는 특징이 있다. 그래프를 보면 0일 때는 비어있는 동그라미를, 1일 때는 채워진 동그라미를 그렸다.

퍼셉트론에서 보면 이 둘을 구분할 수 있는 결정 경계선을 만든 것이다. AND와 OR 마찬가지로 선을 그어서 두 가지를 분류한 학습할 수 있다.

 

 

 

 

 

 

두 개가 같으면 0, 두 개가 다르면 1이 되는 연산이다. XOR에서는 선으로 구별할 수 없어 이것 때문에 딥러닝 하락기를 겪는다. 그러다 멀리 레이어 퍼셉트론인 MLP가 등장한다. 퍼셉트론을 하나만 쓰지 않고 여러 개 층으로 만들어 사용하는 개념이다.


 

 

 

 

다층 퍼셉트론 등장으로 XOR 문제 해결

 

 

오른쪽 앞의 그림이 기존의 XOR 문제를 좌표 공간에 뿌린 것이다. 기존의 문제로는 XOR 퍼셉트론을 해결할 수 없었으나, 퍼셉트론을 층층이 연결하면 비선형의 분리 선형을 만들 수 있다. 입력과 출력 사이를 연결하여 자신만의 연결선을 갖게 된다.

각각의 퍼셉트론은 연결한 선 하나씩을 학습하게 된다. 이런 식으로 말이다.

 

 

 

 

훨씬 더 복잡한 구조를 학습할 수 있게 된다. 뉴런을 층층이 쌓게 되면 이러한 효과를 얻을 수 있다.

 

 

 

 

 

이를 다층 퍼셉트론이라 부르고 줄여서 MLP라 한다.

 

 

 

 

 

실제로 XOR 문제를 해결할 수 있었다. NAND는 AND를 반대로 돌린 것이다. AND와 반대로 둘다 TRUE일 때는 FALSE가 된다. NAND, OR, AND 3개를 합치게 되면 XOR을 해결할 수 있게 된다.

이후에 다층 퍼셉트론 등장으로 딥러닝 문제를 해결함으로 다시 딥러닝이 발전을 이룬다.

 

 

 

 

 

딥러닝은 MLP로부터 힌트를 얻어 병렬적 다층 구조를 통해 학습을 하는 기술이다.

 

 


 

 

 

학습을 마치고

퍼셉트론을 들어보기는 했어도 무슨 내용인지 몰랐는데 이번 시간을 통해 학습해볼 수 있어서 좋았다. 어렵게만 생각되었던 머신러닝, 딥러닝이 점차 관심이 생기고 흥미로워진다. 어떤 개념이든 난 역사를 알게 되면 재미있어지는 것 같다.

다음 포스트에 이어서 퍼셉트론에 대한 실습을 진행해볼 것이다.