안녕하세요! 모두의 IT 부케, 케빈입니다. :)
오늘은 최초의 인공 신경망 모델로 평가받는 퍼셉트론에 대해 설명드리고자 합니다. 함께 공부해 보실까요?
■ 퍼셉트론의 정의: 인공 뉴런
퍼셉트론(Perceptron)은 perception과 neuron의 합성어로 인공 뉴런이라고 불립니다. 퍼셉트론은 현대에 널리 알려진 인공 신경망의 초기 버전으로, 1958년 프랭크 로젠 블랫(Frank Rosenblatt)이 제안한 모델입니다. 퍼셉트론이 인공 뉴런이라고 불리는 이유는 인간 뉴런의 작동 방식을 모방했기 때문입니다. 즉, 퍼셉트론을 한 마디로 정의하면 생물학적 신경계의 기본 단위인 뉴런의 동작 과정을 수리적으로 모델링한 알고리즘이라고 할 수 있습니다. 따라서, 퍼셉트론을 이해하기 위해서는 먼저 인간 뉴런(Neuron)에 대해 알아야 합니다.
■ 뉴런(Neuron)의 동작 원리: 인간은 어떻게 학습할까?
(참고로 위 그림은 설명을 위해 제가 직접 PPT로 그린 그림입니다.)
"뉴런(Neuron)"은 신경계와 신경 조직을 이루는 기본 단위이며, 인간의 신경계는 무수히 많은 뉴런으로 구성되어 있습니다. 통상적으로 약 천억 개의 뉴런을 갖고 태어나며, 나이가 들며 자연스럽게 소멸된다고 알려져 있습니다.
그렇다면 도대체 인간은 이 뉴런을 어떻게 활용하여 학습하고 기억하는 것일까요? 예시를 들어보겠습니다.
"지금 글을 읽고 있는 여러분은 등산 중에 벌집을 발견했습니다. 호기심에 이를 건드렸고, 벌들에게 호되게 공격당했습니다. 이런 쓰라린 경험이 있고 난 다음부터 당신은 벌집을 보게 되면 피해가게 되었습니다."
이 예시는 경험과 자극을 통해 여러분이 벌집의 위험성에 대해 학습을 한 예시입니다. 이 과정을 위의 뉴런 구조를 토대로 설명드리겠습니다.
벌집을 보고, 건드리는 과정까지의 모든 정보(인간의 오감)는 감각 기관으로부터 수용되어 뇌로 전달됩니다. 뇌에서는 뉴런의 수상 돌기로 이 정보가 수용됩니다. 그러니까, 수상 돌기는 일종의 안테나와 같은 역할을 하는 것입니다. 그리고 수용한 정보가 다른 뉴런으로 전달할 정도의 유의미한 정보인지를 핵이 판단합니다. 벌들에게 쏘이기 직전까지, 강한 자극이 없어서 핵은 정보를 다른 뉴런으로 전달하지 않습니다.
그러나 벌들에게 쏘이며 심한 아픔과 두려움을 느끼기 시작합니다. 이 강렬한 자극 정보가 다시금 뉴런의 수상 돌기로 전달됩니다. 핵은 자신이 갖고 있는 임계치를 넘어서는 강렬한 자극이 들어오자, 이 정보를 유의미하다고 판단하여 축삭 돌기를 통해 전기 신호를 전달합니다. 그리고 축삭 말단에서 인접 뉴런과의 연결 고리인 "시냅스"로 화학 물질을 분비하여 정보를 다른 뉴런으로 전달합니다. 이렇게 정보는 뉴런을 통해 전달되고, 두려움을 관장하는 뇌의 어느 영역까지 도달합니다. 이 전달 과정에 기여한 모든 뉴런들은 서로 간의 연결 고리가 강하게 활성화됩니다
이렇게 유의미한 정보를 통해, 뉴런 간 "연결"이 되는 과정을 학습이라고 표현합니다. 학습이 완료된 상태에서 벌집을 보게 되면, 강하게 활성화된 연결이 있기 때문에 우리의 뇌는 빠르게 반응하여 자연스럽게 벌집을 피해 갈 수 있습니다. 결론적으로 인간의 학습은 뉴런 내 신호의 전달과 연결(시냅스) 과정이라고 할 수 있습니다. 참고로 유아기에는 이러한 시냅스가 활발히 생성되고 성인이 될수록 유의미한 연결만 남기고 나머지 연결은 제거하는 방식(최적화)으로 사람은 학습한다고 알려져 있습니다. 이러한 연결 패턴은 우리가 뇌를 이해하는데 매우 중요합니다.
■ 퍼셉트론의 개념과 동작원리: 인공 뉴런에 빗대어
자, 위에서 우리는 벌집에 대한 공포를 학습했습니다. 그 과정에서 주목해야 할 개념은 정보의 전달입니다. 인간 뉴런은 정보를 수용하고, 유의미한 정보인지를 핵이 갖고 있는 임계치와 비교하여 기준 이상이면 다른 뉴런으로 정보를 전달한다고 말했습니다. 그렇다면, 이 개념을 가지고 인간 뉴런을 모방했다는 퍼셉트론은 어떻게 작동하는지 한 번 살펴볼까요?
우리가 벌집 예시에서 학습한 내용은 벌집은 "피해야 한다 or 피하지 않아도 된다."를 결정하는 과제입니다. 이러한 과제를 이진 분류(Classification)이라고 하며, 지도 학습(Supervised Learning)의 일종입니다. 그래프로 표현하면 <그림 2>의 좌표 평면 상의 빨간색 점과 파란색 점을 구분하는 과제(Task)와 동일하다고 할 수 있습니다.
퍼셉트론은 다수의 입력값을 입력받아서, 하나의 출력 값을 내보냅니다. 입력값들은 가중치를 통해 선형 결합(x1*w1 + x2*w2 ...) 방식으로 뉴런 또는 노드에 전달되며, 연결의 강도 또는 세기를 가중치(Weight)의 크기로 표현합니다. 이 선형 결합된 값들의 크기가 활성화 함수의 일정 임계치 이상이면 1(그렇다)을, 이하이면 -1(그렇지 않다)를 출력 값으로 내보내는 방식입니다.
우리의 예시를 들면 등산을 하며 마주한 모든 정보들(숲의 냄새, 단풍의 모양, 벌집의 모양 등)이 입력값이라고 할 수 있습니다. 벌집을 건드려도 아무 이상이 없었다면, 자극 수치가 낮아서 활성화 함수는 -1(벌집을 봐도 피하지 않는다.)를 출력합니다. 반면, 벌집을 건드려서 호되게 공격당한다면, 자극 수치가 높아서 활성화 함수는 1(벌집을 보면 피한다.)을 출력하게 되고 이때 벌집의 모양과 관련된 가중치의 값은 자연스럽게 커지게 됩니다.
■ 퍼셉트론의 한계점: XOR
퍼셉트론은 1958년 당시 엄청난 관심을 받았습니다. 뉴욕 타임스에서는 "전자두뇌가 스스로 가르친다."며 인공 지능의 화려한 미래를 그렸습니다. 하지만, 퍼셉트론은 XOR 문제를 풀지 못한다는 사실이 증명되면서 AI Winter를 초래하기도 했습니다. 그렇다면 퍼셉트론의 한계점인 XOR 문제는 무엇일까요? 간단한 논리 연산을 통해 이를 함께 알아보겠습니다.
위 그림은 XOR(배타적 논리합)의 진리표입니다. AND, OR, NAND 같은 개념들을 알고 계신가요? AND는 모든 값이 True(1) 일 때만 True를 출력하는 논리 연산입니다. OR는 둘 중 하나의 값이 1이면 1을 출력하고 NAND(Not AND)는 AND를 거꾸로 뒤집은 것과 같습니다. XOR은 두 입력값 (x1, x2)가 다를 때 1을 출력합니다.
이 4가지 연산은 논리 연산중에서도 가장 기초가 되는 내용입니다. (참고로, 논리 게이트와 논리 연산에 대한 용어가 햇갈리시거나 논리 연산에 대해 상세한 개념 및 Python 코드가 궁금하시다면 아래 링크를 확인해주세요.)
(※참고) 논리 연산의 상세 개념과 Python 코드 확인: 논리 연산의 그래프적인 해석과 Python 코드
<그림 4>의 진리표를 그래프로 표현하면 (x1,x2)을 각각 축으로 하는 2차원 그래프인 <그림 5>와 같이 나옵니다. 앞서 퍼셉트론은 이진 분류의 문제라고 설명드렸습니다. 정확하게는 선형 분류기인데요. 선형 분류기는 직선으로 그렇다, 아니다를 구분하는 역할을 합니다. 자 그럼, 퍼셉트론이 XOR 연산 문제를 풀 수 있는지 <그림 5>를 통해 확인해보겠습니다.
여러분은 단 하나의 직선을 그어서 <그림 5>의 빨간색 점과 파란색 점을 구분할 수 있나요? 구분할 수 있다면 당신은 천재입니다. 이는 다시 말해, 최초의 인공 신경망이라고 평가 받는 혁신적인 선형 분류기인 퍼셉트론은 논리 연산의 가장 기초가 되는 배타적 논리합(XOR) 문제를 풀 수 없다는 것을 증명하는 예시입니다. 이러한 사실이 수학적으로 증명되자, 당시 인공 지능 연구자들은 큰 충격을 받았다고 합니다.
여기까지 퍼셉트론의 정의부터 한계점까지 살펴보았습니다. 더 궁금하신 내용이 있다면 댓글로 남겨주세요. 제가 아는 내용이라면 아는 선에서, 모르는 내용이라면 공부하여 답글 드리겠습니다. 읽어 주셔서 감사합니다. :)
'AI - Deep Learning' 카테고리의 다른 글
활성화 함수: 정의와 종류, 비선형 함수를 사용해야 하는 이유 (0) | 2022.11.01 |
---|---|
딥 러닝을 위한 회귀 분석의 이해: Logit, Sigmoid, Softmax (5) | 2022.10.31 |
인공지능(AI) 배경지식: 용어의 유래부터 현재의 딥러닝(DNN)까지 (2) | 2022.10.14 |
인공 신경망 학습 원리와 기울기 소실 문제 정의 및 해결법 한 글로 정리 (1) | 2022.10.13 |
논리 연산의 그래프적인 해석과 Python 코드 (0) | 2022.10.10 |
댓글