퍼셉트론

매일 공부(ML)·2021년 11월 2일
0

딥러닝 교과서

목록 보기
1/8

퍼셉트론

특징

  1. 프랑크 로젠블라트가 제안(1957)

  2. TLU(threshold logic unit) 나 LTU(linear threshold unit)로 불린다.

  3. 퍼셉트론은 다수의 신호를 입력받아 하나의 신호를 출력하는 알고리즘


I) TLU

  • 입력의 가중치 합 계산

  • 계단함수 적용하여 출력

    • 주로 헤비사이드 계단함수나 부호 함수를 대신하여 사용

*계단함수

*부호함수

  • 선형 이진 분류 문제에 사용

    • 양성 클래스 출력(1): 결과값 > 임계값

    • 음성 클래스 출력(-1): 출력값 <= 임계값

      EX) 로지스틱 회귀, 선형 SVM 분류기

  • Training of TLU : 최적의 가중치를 찾는 것

  • 모든 입력에 연결됨.

  • 한 층의 뉴런 - 이전 층 뉴런 [Fully connected layer or dense layer]

  1. 층이 하나뿐인 TLU로 구성이 되고 모든 입력에 연결됨. 그러므로 하나의 TLU를 가진 작은 네트워크로도 불림

  2. 퍼셉트론의 입력은 입력 뉴런(어떤 입력값이던 출력으로 통과시킴).

  3. 입력층은 모두 입력 뉴런(기본) + 편향 뉴런(항상 1을 출력)

  4. 다중 레이블 분류기: 세 개의 다른 이진 클래스를 동시 분류

  5. 입출력이 숫자 형태

  1. 각 입력의 연결은 가중치와 연결이 되어 있다.

  1. XOR문제를 풀지 못함

*다층퍼셉트론이 가능함

  1. 퍼셉트론 여러 개 쌓을 시 강력한 인공신경망 구성(MLP)

완전연결 층(밀집 층)

  • 정의: 한 층에 속한 각각의 뉴런이 이전 층의 모든 뉴런과 연결이 되어있을 때

  • 완전 연결층으로 구성된 다층 퍼셉트론 모델의 일반적인 형태로 부분 계산이 가능하다.

:

- 입력값 : 데이터의 특징값이다.

- 가중치 : 문제 해결을 위한 선형 경계를 찾고, 입력 값을 변화시켜 선형 경계의 방향성 및 형태 나타남.

- 바이어스 : 선형 경계의 절편을 나타내는 값이다

- 활성화함수 : 값을 출력할 것인지 판단하는 함수이다.(1: 값>임계값, 0: 그렇지 않음)

- 출력값: 문제에 대한 정답의미.


퍼셉트론 학습 알고리즘

  • 가중치 조절을 통해서 오차를 감소시켜 뉴런 사이의 관계를 강화시킴

  • 하나의 샘플이 입력될 때마다 매번 예측한 -> 오차 계산 -> 오차가 줄어드는 방향으로 가중치 조절.


퍼셉트론 수렴이론

  1. 배경
  • 출력 뉴런의 결정 경계가 선형이므로 복잡한 패턴은 학습하지 못한다.

--> 훈련 샘플이 선형적 구분 -> 알고리즘이 정답에 수렴된다.


다층 퍼셉트론(MLP)

  • 다층 퍼셉트론의 구조
    • 한 개의 입력층
    • 여러 개의 은닉층(TLU) ->DNN
    • 한 개의 출력층
    • 출력층을 제외한 모든 층엔 편향 뉴런이 포함
    • 하위 층: 입력층과 가까운 층
    • 상위 층: 출력층과 가까운 층

  • XOR해결 이유

[

](https://velog.io/@citizenyves/Perceptron-%EB%8B%A4%EC%B8%B5-%ED%8D%BC%EC%85%89%ED%8A%B8%EB%A1%A0-XOR-%EA%B2%8C%EC%9D%B4%ED%8A%B8python-%EA%B5%AC%ED%98%84#:~:text=1.%20%ED%8D%BC%EC%85%89%ED%8A%B8%EB%A1%A0%EC%9D%98%20%ED%95%9C%EA%B3%84,-1.1.%20XOR%20GATE&text=XOR%EA%B2%8C%EC%9D%B4%ED%8A%B8%EB%8A%94%20%EB%B0%B0%ED%83%80%EC%A0%81%20%EB%85%BC%EB%A6%AC%ED%95%A9,%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%80%20%EB%B6%88%EA%B0%80%EB%8A%A5%ED%95%98%EB%8B%A4.)


회귀

  • 출력 뉴런에 활성화 함수 사용하지 않고 어떤 범위의 값도 출력.

  • 항상 양수여야 한다며 출력층 - ReLU함수

  • softplus활성화 함수 사용하여 z가 음수일 때 0에 가까워지고 큰 양수일 수록 z에 가까워짐.

  • 로지스틱 함수나 하이퍼볼릭 탄젠트함수 사용-> 어떤 범위의 한의 값을 예측 및 레이블의 스케일을 적절한 범위로 조정

  • MSE (훈련에 사용하는 손실함수)

  • 훈련 세트에 이상치 많다면, MAE사용(OR 둘을 조합한 Huber손실 사용)

*전형적인 구조

<하이퍼파라미터> <일반적인 값>

  • 입력 뉴런 수 : 특성마다 하나

  • 은닉층 수 : 문제에 따라 다름, 일반적으로 1에서 5 사이

  • 은닉층의 뉴런 수 : 문제에 따라 다름, 일반적으로 10에서 100사이

  • 출력 뉴런 수 : 예측 차원마다 하나

  • 은닉층의 활성화 함수 : ReLU(또는 SELU)

  • 출력층의 활성화 함수 : 없음, 또는 (출력이 양수일 때) ReLU/softplus 나 (출력을 특정 범위로 제한할 때) logistic/tanh 사용

  • 손실 함수 : MSE나 (이상치가 있다면) MAE/Huber

분류

  1. 이진 분류
  • 로지스틱 활성화 함수를 가진 출력 뉴런 하나 필요

  • 출력은 0~1사이의 실수로 이를 양성 클래스에 대한 예측 확률로 해석

  1. 다중 레이블 이진 분류

  • 로지스틱 활성화 함수를 가진 출력 뉴런 여러 개로 다중 레이블 분류가 가능

  • 각 샘플 3개 이상의 클래스 중 한 클래스만 속하여야 한다면 출력층-SVM

  • 모든 예측 확률은 0~1사이에 만들고 더했을 때 1이 되도록 한다.(다중 분류)

  • 손실함수로는 크로스 엔트로피 손실 또는 로그 손실 선택

  1. 구조

하이퍼파라미터 이진분류 다중레이블 분류 다중 분류

   입력층과 은닉층        회귀와 동일    회귀와 동일            회귀와 동일
   
   
   출력 뉴런 수           1개           레이블마다 1개        클래스마다 1개
   
   
  출력층의 활성화 함수   로지스틱 함수     로지스틱 함수         소프트맥스 함수
  
  손실함수             크로스 엔트로피     크로스 엔트로피      크로스 엔트로피
  
  

활성화 함수

  • 활성화 함수 대체 필요성

    1) 선형성을 벗어나기 위해.

    - 선형 변환 여러 개 연결해도 선형이됨
    • 복잡한 문제 해결 불가능

    2) 비선형 활성화 함수를 충분히 많은 층에서 사용하면 강력

  • 종류

  • 활성화 함수 지정: 출력값에 특별한 제한이 없다면 사용안함.
  • 출력이 양수인 경우: ReLU or softplus사용 가능
  • 출력이 특정 범위 안에 포함되어야할 경우: 로지스틱 함수 또는 하이퍼볼릭 탄젠트 함수와 적절한 스케일 조정 활용

손실함수

  • 일반적으로 평균제곱오차(MSE)활용

  • 이상치가 많을 경우: 평균절댓값오차(MAE) 사용 가능

  • 후버(Huber)손실 사용 가능 : MSE와 MAE의 조합

역전파

  • 정의: 오차를 감소 시키기 위해 각 연결 가중치와 편향값이 어떻게 바뀌어야하는지 안다.

  • 경사하강법.

*훈련 알고리즘

1) 정방향: 각 훈련 샘플에 대한 예측 만든 후 오차 조정

- 미니배치: 네트워크의 입력층 -> 은닉층

- 모든 뉴런의 출력 계산

- 결과 층의 출력 계산하고 다음 층으로 전달

2) 역방향: 출력값~ 입력값까지의 각 층을 거치면서 각 연결이 오차에 기여한 정도 측정

  • 네트워크의 출력 오차 측정
  • 연쇄법칙 적용
  • 출력 연결이 오차에 기여하는 정도 계산

3) 오차가 감소하도록 모든 가중치 조정.(경사하강법 단계)

4) Epoch:여러번 반복 횟수 지정

profile
성장을 도울 아카이빙 블로그

0개의 댓글