퍼셉트론(Perceptron)
- 초기 형태의 인공 신경망
- 다수의 입력으로 하나의 결과를 내보내는 알고리즘
- 뉴런의 동작과 유사
- 가지돌기에서 신호 받아서 일정치 이상의 크기면 축삭돌기를 통해 신호 전달
- x : 입력값
- w: 가중치 - 축삭돌기의 역할
- y : 출력 - 인공 뉴런
- 각각의 입력값에는 각각의 가중치 존재. 가중치의 값이 클수록 해당 입력 값이 중요!
- 입력값과 가중치의 곱의 전체 합이 임계치(threshold)를 넘으면 인공 뉴런은 1출력, 그렇지 않으면 0 출력
: 계단함수
- 활성화 함수 : 뉴런에서 출력값을 변형시키는 함수
- 퍼셉트론의 활성화 함수 : 계단함수
단층 퍼셉트론(Single-Layer Perceptron)
- 위에서 배운 퍼셉트론
- 두 단계로만 이루어짐 : 값을 보내는 단계, 값을 받아서 출력하는 단계
- 층(layer) : 각 단계.
- 입력층(input layer), 출력층(output layer)
- 단층 퍼셉트론의 한계 : 구현할 수 없는 상황들이 생김. 직선 하나로 나눈 영역만 표현 가능
단층 퍼셉트론으로는 비선형 영역을 분리할 수 없음
퍼셉트론을 조합하여, 즉 층을 쌓아서 XOR게이트를 구현 가능
x1, x2, y의 값들이 표현되어 있는 표 : 진리표
진리표라는 학습데이터를 보면서 매개변수(w1,w2,..., 세타)의 값을 생각해야함
ex) x1,x2가 둘 다 0 일 때 y가 0이 되게끔 하는 매개변수들은 뭘까
학습이란 적절한 매개변수 값을 정하는 과정!
기계학습 문제는 이 매개변수의 값을 정하는 작업을 컴퓨터가 자동으로 하도록 함
XOR 게이트 구현하기
- x1,x2를 NAND 게이트와 OR 게이트의 입력으로
- x1,x2 값만으로는 구현이 안되었기 때문에 x1,x2의 값을 통해 s1,s2 값을 만드는 층을 하나 추가
- s1,s2 값으로 XOR 게이트 구현 가능
- 층이 늘어날 수록 좀 더 복잡한 연산이 가능하다는 게 다층 퍼셉트론의 핵심
- 두번째 은닉층의 각 노드가 첫번째 은닉층의 각 노드들과 연결되어 있고, 이로 인해 복잡한 연산이 가능함
다층 퍼셉트론(MultiLayer Perceptron, MLP)
- 입력층과 출력층사이에 은닉층(hidden layer) 존재
- 은닉층이 1개 이상인 퍼셉트론
- 전결합층(Fully-connected layer, FC, Dense layer)
- 어떤 층의 모든 뉴런이 이전 층의 모든 뉴런과 연결돼 있는 층
- MLP의 모든 은닉층과 출력층은 전결합층
:
퍼셉트론은 층을 거듭 쌓으면 비선형적인 표현도 가능해짐
다층퍼셉트론은 이론상 컴퓨터가 수행하는 처리도 모두 표현 가능
ANN vs DNN
인공 신경망(Artificial Neural Network, ANN)
- 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘
- 뉴런이 연결된 형태를 수학적으로 모방한 모델
- 입력층, 은닉층, 출력층
- 은닉층 1개
- 문제점
- 학습과정에서 파라미터(Weight, Bias)의 최적값을 찾기 어려움
- overfitting
- 최고 수준으로 학습해도 정확도 떨어짐(은닉층 1개라서)
심층 신경망(Deep Neural Network, DNN)
- 은닉층이 여러개(ANN 문제 해결을 위해)
- 은닉층이 2개 이상인 신경망
- 다층 퍼셉트론도 심층 신경망
- 학습 시키는 인공 신경망이 심층 신경망이면 -> 딥러닝
- ANN에 비해 더 적은 수의 유닛으로 복잡한 모델링 가능
- DNN 응용해서 CNN, RNN, LSTM, GRU 발전
'Python > DL' 카테고리의 다른 글
CNN 이해하기 (2) (0) | 2023.05.08 |
---|---|
CNN 이해하기 (1) (0) | 2023.05.02 |
딥러닝의 학습 방법 (0) | 2023.03.19 |
활성화 함수, 과적합, 기울기 소실 (0) | 2023.03.19 |
tensorflow 설치 과정에서 오류 해결 (0) | 2023.02.08 |