다층 퍼셉트론
1. 개요
다층 퍼셉트론(MLP)은 여러 층의 인공 뉴런(퍼셉트론)으로 구성된 지도 학습 알고리즘으로, 입력 데이터를 분류하거나 입력과 출력 간의 관계를 학습하는 데 사용된다. 1940년대부터 연구가 시작되어 1980년대에 음성 인식, 이미지 인식 등 다양한 분야에서 활용되었으며, 1990년대에는 침체기를 겪었으나, 2000년대 이후 딥 러닝 기술의 발전과 함께 다시 활발히 연구되고 있다. MLP는 입력층, 은닉층, 출력층으로 구성되며, 역전파 알고리즘을 사용하여 학습한다. 다양한 문제를 해결하는 데 사용되며, 이미지 인식, 자연어 처리, 음성 인식 등에서 널리 활용된다.
이미지 준비중입니다.
| 유형 | 순전파 신경망 |
|---|
| 사용법 | 통계적 분류, 회귀 분석 |
|---|
| 최초 고안자 | 프랭크 로젠블랫 |
|---|---|
| 역전파 | 헨리 J. 켈리(1960) 파울 베르보스(1974) 데이비드 E. 루멜하트, 제프리 힌턴, 로널드 J. 윌리엄스(1986) |
| 입력층 | 입력 변수를 받아들이는 층 |
|---|---|
| 은닉층 | 비선형 변환을 수행하는 층 (여러 층 존재 가능) |
| 출력층 | 최종 결과를 출력하는 층 |
| 종류 | 시그모이드 함수 ReLU 쌍곡탄젠트 함수 |
|---|---|
| 설명 | 각 뉴런의 출력을 결정하는 함수 |
| 역전파 알고리즘 | 출력층에서 입력층으로 오차를 전파하며 가중치를 조정 |
|---|---|
| 경사 하강법 | 오차를 최소화하는 방향으로 가중치를 업데이트 |
| 범용 근사 능력 | 복잡한 비선형 함수를 근사할 수 있음 |
|---|---|
| 유연성 | 다양한 문제에 적용 가능 |
| 과적합 | 학습 데이터에만 지나치게 맞춰져 새로운 데이터에 대한 예측 성능이 저하될 수 있음 |
|---|---|
| 지역 최적점 | 경사 하강법이 지역 최적점에 갇힐 수 있음 |
| 학습 시간 | 복잡한 모델의 경우 학습에 오랜 시간이 소요될 수 있음 |
| 예시 | 컴퓨터 비전 자연어 처리 음성 인식 제어 시스템 |
|---|
| 관련 항목 | 퍼셉트론 역전파 알고리즘 인공신경망 심층 신경망 |
|---|
2. 역사
워런 스터지스 맥컬록과 월터 피츠가 이진 인공 뉴런을 제안하고(1943년), 프랭크 로젠블라트가 다층 퍼셉트론 모델을 제안하는 등(1958년) 초기 연구가 진행되었다. 이후 알렉세이 그리고레비치 이바흐넨코와 발렌틴 라파가 데이터 처리 집단 방법(GMDH)을 발표하고(1965년), 아마리 슌이치가 다층 신경망을 연구하는 등(1967년) 연구가 이어졌다.
1970년대 초 세포 린나이마, 폴 워보스 등이 역전파 알고리즘을 개발했고, 1986년 데이비드 E. 루멜하트 등이 역전파를 대중화했다.
이후 요슈아 벤지오 등의 연구로 역전파 네트워크에 대한 관심이 다시 높아졌고, 2021년에는 MLP-Mixer 아키텍처가 개발되어 이미지 분류 작업에서 좋은 성능을 보였다.
2.1. 초기 모델 (1940년대 ~ 1960년대)
* 1943년, 워런 스터지스 맥컬록과 월터 피츠는 생물학적 신경망의 논리적 모델로서 이진 인공 뉴런을 제안했다.
* 1958년, 프랭크 로젠블라트는 입력층, 학습되지 않는 무작위 가중치를 가진 은닉층, 학습 가능한 연결을 가진 출력층으로 구성된 다층 퍼셉트론 모델을 제안했다.
* 1962년, 로젠블라트는 저서 신경역학의 원리에서 "오차 역전파"를 통해 최대 2개의 학습 가능한 층을 포함하는 퍼셉트론에 대한 많은 변형과 실험을 발표했다. 그러나 이는 역전파 알고리즘이 아니었고, 그는 여러 층을 학습시키기 위한 일반적인 방법을 가지고 있지 않았다.
* 1965년, 알렉세이 그리고레비치 이바흐넨코와 발렌틴 라파는 데이터 처리 집단 방법을 발표했다. 이는 최초의 딥 러닝 방법 중 하나로, 1971년에 8층 신경망을 학습시키는 데 사용되었다.
* 1967년, 아마리 슌이치는 확률적 경사 하강법에 의해 학습된 최초의 다층 신경망이 비선형적으로 분리 가능한 패턴 클래스를 분류할 수 있음을 보고했다. 아마리의 제자 사이토는 2개의 학습 층을 가진 5층 피드포워드 네트워크를 사용하여 컴퓨터 실험을 수행했다.
2.2. 역전파 알고리즘 개발 (1970년대 ~ 1980년대)
역전파는 1970년대 초 여러 연구자에 의해 독립적으로 개발되었다. 가장 초기에 발표된 사례는 1970년 세포 린나이마(Seppo Linnainmaa)의 석사 학위 논문이었다. 폴 워보스(Paul Werbos)는 1971년에 독자적으로 개발했지만, 1982년까지 발표하지 못했다. 1986년 데이비드 E. 루멜하트(David E. Rumelhart) 등이 역전파를 대중화했다.
2.3. 침체와 부활 (1990년대 ~ 현재)
1990년대에는 서포트 벡터 머신(SVM)과 같은 더 간단한 해결책과의 경쟁으로 인해 다층 퍼셉트론(MLP) 연구가 침체기를 겪었다. 그러나 2003년, 요슈아 벤지오 등이 언어 모델에 딥 러닝을 적용하여 성공을 거두면서 역전파 네트워크에 대한 관심이 다시 높아졌다.
2010년대 이후 딥 러닝 기술의 발전과 함께 MLP 연구는 다시 활성화되었다. 2021년에는 두 개의 딥 MLP와 스킵 연결 및 레이어 정규화를 결합한 MLP-Mixer라는 매우 단순한 NN 아키텍처가 설계되었다. 1900만에서 4억 3100만 개의 매개변수를 가진 이 아키텍처는 ImageNet 및 유사한 이미지 분류 작업에서 비슷한 크기의 비전 변환기와 비교할 만한 성능을 보였다.
3. 이론
다층 퍼셉트론(MLP)은 지도 학습 알고리즘으로, 입력 데이터를 특정 범주로 분류하거나 입력과 출력 간의 관계를 학습하는 데 사용된다. MLP는 여러 층의 인공 뉴런(퍼셉트론)으로 구성되어 있으며, 각 층은 이전 층의 출력을 입력으로 받는다.
MLP의 작동 방식은 다음과 같다.
1. 입력 층: 입력 데이터는 첫 번째 층인 입력 층에 제공된다.
2. 은닉 층: 입력 층의 출력은 하나 이상의 은닉 층으로 전달된다. 각 은닉 층의 뉴런은 입력 값을 가중치와 결합하고, 활성화 함수를 적용하여 출력을 생성한다. 활성화 함수는 뉴런의 출력을 결정하는 비선형 함수로, 시그모이드 함수, ReLU 등이 있다.
3. 출력 층: 마지막 은닉 층의 출력은 출력 층으로 전달된다. 출력 층의 뉴런은 문제에 따라 적절한 방식으로 출력을 생성하는데, 예를 들어 분류 문제에서는 각 범주에 대한 확률을 출력할 수 있다.
MLP는 역전파 알고리즘을 사용하여 학습된다. 역전파는 출력 층의 오류를 계산하고, 이를 사용하여 가중치를 조정하여 오류를 줄이는 과정이다. 학습은 여러 번의 반복(에포크)을 거쳐 수행되며, 각 반복마다 모든 훈련 데이터를 사용하여 가중치를 업데이트한다.
MLP는 이미지 인식, 자연어 처리, 음성 인식 등에서 널리 사용된다.
3.1. 구조
다층 퍼셉트론(MLP)은 입력층, 은닉층, 출력층의 3개 이상 층으로 구성된다. 각 층은 비선형 활성 노드로 구성되며, 완전 연결 구조를 가진다. 즉, 한 층의 각 노드는 다음 층의 모든 노드와 특정 가중치 로 연결된다.
MLP의 작동 방식은 다음과 같다.
1. 입력 층: 입력 데이터는 첫 번째 층인 입력 층에 제공된다.
2. 은닉 층: 입력 층의 출력은 하나 이상의 은닉 층으로 전달된다. 각 은닉 층의 뉴런은 입력 값을 가중치와 결합하고, 활성화 함수를 적용하여 출력을 생성한다. 활성화 함수는 뉴런의 출력을 결정하는 비선형 함수로, 시그모이드 함수, ReLU 등이 있다.
3. 출력 층: 마지막 은닉 층의 출력은 출력 층으로 전달된다. 출력 층의 뉴런은 문제에 따라 적절한 방식으로 출력을 생성하는데, 예를 들어 분류 문제에서는 각 범주에 대한 확률을 출력할 수 있다.
3.2. 활성화 함수
다층 퍼셉트론(MLP)에서 일부 뉴런은 생물학적 뉴런의 활동 전위 빈도 및 발화를 모델링하기 위해 개발된 비선형 활성화 함수를 사용한다.
과거에 일반적으로 사용된 두 가지 활성화 함수는 모두 시그모이드 함수이며, 다음과 같다.
:.
* 첫 번째는 −1에서 1까지의 범위를 갖는 쌍곡 탄젠트이다.
* 다른 하나는 모양은 비슷하지만 0에서 1까지의 범위를 갖는 로지스틱 함수이다.
여기서 는 번째 노드(뉴런)의 출력이고, 는 입력 연결의 가중 합이다. ReLU (정류 선형 유닛) 및 softplus 함수를 포함한 대체 활성화 함수가 제안되었다. 더 특수한 활성 함수로는 방사 기저 함수 (방사 기저 함수 네트워크에서 사용)가 있다.
최근 딥 러닝 개발에서 ReLU (정류 선형 유닛)는 시그모이드 함수와 관련된 수치적 문제점을 극복하는 가능한 방법 중 하나로 더 자주 사용된다.
3.3. 학습
다층 퍼셉트론(MLP)의 학습은 각 데이터가 처리된 후 예상 결과와 비교하여 출력의 오류 크기에 따라 연결 가중치를 변경하는 방식으로 이루어진다. 이는 지도 학습의 한 예이며, 선형 퍼셉트론의 최소 평균 제곱 알고리즘을 일반화한 역전파를 통해 수행된다.
출력 노드 의 번째 데이터(훈련 예제)에서 오류는 로 나타낼 수 있다. 여기서 는 노드 에서 번째 데이터의 목표 값이고, 는 번째 데이터가 입력으로 주어졌을 때 퍼셉트론이 노드 에서 생성한 값이다.
이후 노드 가중치는 번째 데이터에 대한 전체 출력의 오류를 최소화하는 보정을 기반으로 조정된다. 전체 출력의 오류는 다음과 같다.
:.
경사 하강법을 사용하면 각 가중치 의 변화는 다음과 같다.
:
여기서 은 이전 뉴런 의 출력이고, 는 학습률이며, 가중치가 진동 없이 빠르게 수렴하도록 선택된다. 는 뉴런 의 입력 연결 가중치 합 에 따른 오류 의 편도함수를 나타낸다.
계산할 도함수는 유도된 국소장 에 따라 다르며, 이는 자체적으로 변동한다. 출력 노드의 경우 이 도함수는 다음과 같이 단순화될 수 있다.
:
여기서 는 활성화 함수의 도함수이며, 이는 자체적으로 변동하지 않는다. 가중치가 숨겨진 노드로 변경되는 것은 분석이 더 어렵지만, 관련 도함수는 다음과 같다.
:.
이는 출력 레이어를 나타내는 번째 노드의 가중치 변화에 따라 달라진다. 따라서 숨겨진 레이어 가중치를 변경하려면 활성화 함수의 도함수에 따라 출력 레이어 가중치가 변경되므로 이 알고리즘은 활성화 함수의 역전파를 나타낸다.
4. 용어
다층 퍼셉트론(MLP)은 여러 층으로 구성된 퍼셉트론 네트워크를 의미하며, 단일 퍼셉트론을 의미하지 않는다. "다층 퍼셉트론 네트워크"라고도 한다. MLP에서 "퍼셉트론"은 엄밀한 의미의 퍼셉트론, 즉 헤비사이드 계단 함수를 사용하는 인공 뉴런이 아니라, 임의의 활성화 함수를 사용하는 인공 뉴런을 의미한다.
진정한 퍼셉트론은 이항 분류를 수행하지만, MLP 뉴런은 활성화 함수에 따라 분류나 회귀를 자유롭게 수행할 수 있다.
이후 "다층 퍼셉트론"이라는 용어는 노드나 층의 특성에 관계없이, 즉 퍼셉트론뿐만 아니라 임의로 정의된 뉴런으로 구성된 네트워크에도 적용되게 되었다. 이는 인공 뉴런을 일반적으로 의미하는 "퍼셉트론"의 정의 완화를 피하기 위한 것이다.
5. 응용
다층 퍼셉트론(MLP)은 복잡한 문제를 확률적으로 해결하는 능력을 가지고 있어 여러 연구 분야에서 유용하게 사용된다. 시벤코 정리에서 볼 수 있듯이, MLP는 범용 근사자이므로 회귀분석을 통해 수학적 모델을 만드는 데 활용될 수 있다. 특히 반응변수가 이분변인인 경우, 분류는 회귀분석의 특수한 형태이므로 MLP는 효과적인 분류 알고리즘으로 사용된다.
1980년대에 MLP는 머신러닝 분야에서 주목받는 해결책으로 떠올라 음성 인식, 이미지 인식(컴퓨터 비전), 기계 번역 등 다양한 분야에 응용되었다. 그러나 이후에는 더 간단한 방식인 서포트 벡터 머신과의 경쟁에 직면했다. 딥 러닝 기술이 발전하면서 역전파 네트워크에 대한 관심이 다시 높아지고 있다.
대한민국에서는 1980년대부터 다층 퍼셉트론 관련 기술이 연구되기 시작했으며, 현재는 4차 산업혁명 시대의 핵심 기술 중 하나로 인식되고 있다. 특히, 딥 러닝 기반 기술 발전과 함께 다양한 산업 분야에서 그 활용이 점차 증가하는 추세이다.