[핸즈온 머신러닝] 10장. 케라스를 사용한 인공 신경망 소개

TaehunOh·2022년 10월 1일
1

딥러닝

목록 보기
1/1
post-thumbnail

위 내용은 "핸즈온 머신러닝" 책을 바탕으로 정리한 내용입니다.

10.1 생물학적 뉴런에서 인공뉴런까지

10.1.3 퍼셉트론


  • 퍼셉트론은 가장 간단한 인공 신경망 구조 중 하나이다.

  • 입력과 출력이 (이진 on/off 값이 아닌) 어떤 숫자이고, 각각의 입력 연결은 가중치와 연관되어 있음.

  • TLU(threshold logic unit) 또는 LTU(linear threshold unit)라고 불림.

  • TLU는 입력의 가중치 합을 계산(z=w1x1+w2x2+...+wnxn=Wtxz = w_1x_1+w_2x_2+...+w_nx_n=W^tx)한 뒤 계산된 합에 계단 함수를 적용하여 결과를 출력

    TLU : 입력의 가중치 합을 계산한 다음 계단함수를 적용하는 인공 뉴런

  • 하나의 TLU는 간단한 선형 이진 분류 문제에 사용 가능

  • 입력의 선형 조합을 계산해서 그 결과가 임곗값을 넘으면 양성 클래스 출력, 그렇지 않으면 음성 클래스 출력(로지스틱 회귀나 선형 SVM 분류기 처럼)

    이 경우 TLU를 훈련한다는 것은 최적의 w0,w1,w2w_0, w_1, w_2를 찾는다는 뜻

  • 퍼셉트론은 층이 하나 뿐인 TLU로 구성, 각 TLU는 모든 입력에 연결되어 있음.
    *한 층에 있는 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 있을 때 이를 완전 연결층(fully connected layer), 또는 밀집 층(dense layer)이라고 부름

  • 퍼셉트론의 입력은 입력뉴런이라고 불리는 특별한 통과 뉴런에 주입됨.

  • 편향 특성이 더해지는데 이 편향 특성은 항상 1을 출력

완전 연결층의 출력 계산

hW,b(X)=ϕ(XW+bhW,b(X)=ϕ(XW+b)

  • 이전과 마찬가지로 XX는 입력 특성의 행렬을 나타냄, 이 행렬의 행은 샘플, 열은 특성

  • 가중치 행렬 W는 편향 뉴런을 제외한 모든 연결 가중치를 포함

  • 편향 벡터 b는 편향 뉴런과 인공 뉴런 사이의 모든 연결 가중치를 포함

  • 헤브의 규칙에 따르면 한 번에 한 개의 샘플이 주입되면 각 샘플에 대해 예측을 만들고 잘못된 예측을 하는 모든 출력 뉴런에 대해 입력에 연결된 가중치를 강화

    두 뉴런이 동시에 활성화 될 때 마다 이들 사이의 연결 가중치가 증가하는 경향

  • 퍼셉트론은 네트워크가 예측할 때 만드는 오차를 반영하도록 조금 변형된 규칙을 사용하여 훈련됨.

    퍼셉트론에 한번에 한 개 샘플이 주입되면 각 샘플에 대해 예측이 만들어짐

퍼셉트론 학습 규칙(가중치 업데이트)

  • wiw_iii번째 입력 뉴런과 jj번째 출력 뉴런 사이를 연결하는 가중치
  • xixi는 현재 훈련 샘플의 ii번째 뉴런의 입력값
  • y1jy_{1j}는 현재 훈련 샘플의 jj번째 출력 뉴런의 출력값
  • yjyj는 현재 훈련 샘플의 jj번째 출력 뉴런의 타깃값 ηη는 학습률

사이킷런의 Perceptron 클래스는 매개변수가 loss="perceptron", learning_rate="constant", eta0=1(학습률), penalty=None(규제없음)인 SgdClassifier과 같다.

로지스틱 회귀 분류기와 달리 퍼셉트론은 클래스 확률을 제공하지 않으며 고정된 임곗값을 기준으로 예측을 만듦.

10.1.4 다층 퍼셉트론과 역전파


  • 다층 퍼셉트론은 (통과) 입력층(input layer) 하나와 은닉층(hidden layer)이라 불리는 하나 이상의 TLU층과 마지막 출력층(ouput layer)로 구성된다.
  • 은닉층을 여러 개 쌓아 올린 인공신경망을 심층 신경망(deep neural network-DNN)이라고 한다.
  • 역전파
    그레디언트를 자동으로 계산하는 경사하강법, 네트워크를 두 번(정방향 한 번, 역방향 한 번) 통과하는 것만으로 모든 모델 파라미터에 대한 네트워크 오차의 gredient를 계산 가능

요약
1. 각 훈련 샘플에 대해 역전파 알고리즘이 먼저 예측을 만들고 (정방향 계산) 오차를 측정
2. 역방향으로 각 층을 거치면서 각 연결이 오차에 기여한 정도를 측정 (역방향 계산)
3. 오차가 감소하도록 가중치를 조정 (경사하강법 단계)

역전파 알고리즘은 로지스틱 함수 뿐만 아니라 다른 활성화 함수와도 사용될 수 있음

profile
데이터분석 좀 할 줄 아는 프론트엔드 개발자 되기

1개의 댓글

comment-user-thumbnail
2022년 10월 10일

아하 그렇군요

답글 달기