본문 바로가기
  • 공부한 것들과 여러가지를 기록해요
Python/DL

퍼셉트론 , ANN vs DNN

by 티권 2023. 3. 19.

퍼셉트론(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