일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- bitmask
- 코드트리
- 정렬
- jsonwebtoken
- es_java_home
- 동전 퍼즐
- s3
- 자바
- objectstorage
- MESSAGEBROKER
- java
- 카카오엔터프라이즈
- db
- 완전탐색
- 소프티어
- sonarqube
- DP
- 인가인증
- 백엔드 개발
- 알고리즘
- BFS
- On-Premise
- softeer
- 구름
- DFS
- 함수 종속성
- CODETREE
- dockercompose
- bfs
- 카카오클라우드
- Today
- Total
wooing
퍼셉트론(Perceptron) 본문
퍼셉트론 이란?
퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다. 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사하다.
퍼셉트론의 정의에서 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이라고 했다. 왼족의 그림과 같이 다수의 입력 x들에 각각 가중치 W를 곱해 출력값 y를 만들어내는 알고리즘 이다.
이때 가중치W의 값이 클수록 해당 입력 값이 중요하다는것을 의미한다. 가중치가 곱해진 입력값들을 통해 출력값을 변경시키는 함수를 활성화 함수(Activation Finction)이라고 한다
퍼셉트론은 단층 퍼셉트론, 다층 퍼셉트론으로 나눌 수 있다. 단층 퍼셉트론은 위의 그림과 같이 입력층과 출력층으로만 이루어진 구조이고, 다층 퍼셉트론은 입력층과 출력층 사이에 은닉층이 존재하는 구조이다.
앞서 설명했던 소프트맥스 회귀, 로지스틱 회귀 들은 모두 단층 퍼셉트론이라고 할 수 있다.
단층 퍼셉트론(Single-Layer Perceptron)
단층 퍼셉트론을 그림으로 나타내면 왼쪽과 같이 나타낼 수 있다. 단층 퍼셉트론은 단순한 영역을 분류하는데 사용할 수 있다. 논리함수로 예를들면 AND, NAND, OR게이트를 구분할 수 있지만 XOR의 경우는 단층 퍼셉트론으로 구분해내기 힘들다. 그 이유로는 아래에 그림으로 첨부하도록 하겠다.
다층 퍼셉트론(Multi-Layer Perceptron, MLP)
다층 퍼셉트론은 단층 퍼셉트론에서 은닉층이 추가된 구조를 가진다. 위에서 단층 퍼셉트론을 설명하기위해 사용된 XOR게이트를 다층 퍼셉트론으로 구현하면 아래와같이 구현할 수 있다.
이와같이 복잡한 구조를 풀기 위해 은닉층이 추가된 형태이고 이 은닉층이 2개 이상인 경우를 심층 신경망(Deep Neural Network, DNN)이라고 한다.
퍼셉트론 구조에서 기계가 가중치를 스스로 찾도록 하는 단계를 머신러닝에서 말하는 학습(Training)단계이다. 만약 학습시키는 인공 신경망이 심층 신경망인 경우 딥 러닝(Deep Learning)이라고 한다.
순전파와 역전파
가중치를 스스로 찾는 단계를 학습이라고 한다. 순전파란 입력층에서 출력층 방향으로 가중치와 활성화 함수를 통해 예측값을 만들어내는 과정이라고 할 수 있다. 앞에서 배운 소프트맥스, 로지스틱 등 여러 회귀 모델중 경사하강법을 통해 가중치와 편향을 찾아내었는데 이 과정을 역전파 라고 할 수 있다.
비선형 활성화 함수
앞에서 배운 시그모이드나 소프트맥스 함수는 대표적인 활성화 함수 중 하나이다. 그러나 인공 신경망에서 활성화 함수로 주로 비선형 함수를 사용한다.
비선형 함수란 직선 한개로 그릴 수 없는 함수를 말한다. 인공 신경망의 능력을 높이기 위해서는 은닉층을 추가해야 하는데 선형 함수로는 여러번 쌓은 효율을 낼 수 없기 때문이다.
활성화 함수 f(x) = Wx라고 정의했을때 f(x)를 여러번 쌓을 경우 y(x) = f(f(f(x)))가 된다. 이를 식으로 표현하면 W * W * W * x가 된다. 이는 y(x) = W^3 * x의 은닉층을 한개 추가한 것과 다를바 없다.
그렇다고 선형 함수를 활성화 함수로 사용하는것이 의미가 없는것은 아니다. 1회 추가한 것과 여러번 추가한것의 차이가 없을 뿐 이다. 이와같이 선형 함수를 사용한 층을 활성화 함수로 사용하는 은닉층을 구분하기 위해 선형층(linear layer)이나 투사층(projection layer)등의 다른 표현을 사용하기도 한다.
References:
'인공지능 > 머신러닝' 카테고리의 다른 글
합성곱 신경망(Convolutional Neural Network) (0) | 2023.01.30 |
---|---|
과적합, 기울기 소실, 기울기 폭주 (1) | 2023.01.30 |
소프트맥스 회귀(Softmax Regression) (0) | 2023.01.20 |
정수 인코딩, 원-핫 인코딩(Integer Encoding, One-hot Encoding) (0) | 2023.01.19 |
로지스틱 회귀(Logistic Regression) (0) | 2022.10.26 |