컴퓨터공학/인공지능

[인공지능] 4장. 신경망 기초3

NIMHO 2023. 4. 6. 23:55
728x90

복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.

4.7 다층 퍼셉트론

퍼셉트론은 선형이라는 한계

- 선형 분리 불가능한 데이터에서는 높은 오류율을 가진다.

 

4.7.1 특징 공간 변환

퍼셉트론 두 개로 특징 공간을 세 개의 부분 공간으로 나눌 수 있다.

 

두 퍼셉트론을 병렬로 결합하면 (x1, x2) 공간을 (z1, z2) 공간으로 변환할 수 있다.

 

새로운 공간 (z1, z2)의 흥미로운 특성

- 선형 분리 불가능하던 네 점이 선형 분리가 가능해진다.

- 퍼셉트론을 하나 더 쓰면 XOR 문제를 푸는 신경망이 완성된다.

 

신경망을 공간 변환기로 볼 수 있다.

- 원래 특징 공간을 임시 공간으로 변환하고, 임시 공간을 레이블 공간으로 변환하는 두 단계 처리

- 임시 공간에서 해당하는 층을 은닉층(hidden layer)이라 부른다.

- 새로운 공간은 이전 공간보다 분류에 더 유리하도록 학습된다.

- 자연 영상이나 자연어처럼 복잡한 데이터는 대여섯 은닉층 또는 수십~수백 개의 은닉층

    → 이런 깊은 신경망의 학습을 딥러닝이라 부른다.

 

4.7.2 다층 퍼셉트론의 구조

입력층, 은닉층, 출력층으로 구성된 다층 퍼셉트론

- 층을 연결하는 가중치 뭉치가 두 개 있어 3층이 아니라 2층 신경망으로 간주한다.

- 데이터에 따라 입력층과 출력층의 노드 개수 확정

     - ex) iris에서는 5개의 입력 노드와 3개의 출력 노드

- 은닉층의 노드 개수는 하이퍼 매개변수

     - 은닉 노드가 많으면 신경망 용량이 커지지만 과잉 적합 가능성 높아진다.

 

4.7.3 다층 퍼셉트론의 동작

4.7.3 다층 퍼셉트론의 동작은 글로 적기에 너무 복잡한 부분이 많다.

나중에 공부할 때 따로 보거나 새로 작성해야겠다.

04장_신경망 기초_part3 - page 11~17

 

Extra. ReLU & Softmax Function

Rectified Linear Unit (ReLU)

- Rectifying or straightening out the negative part of the input

- For input values x >= 0, the ReLU function behaves like a linear function (ReLU(x) = x)

- 음수 부분은 모두 0이고, 양수 부분은 f(x) = x를 따른다.

 

Softmax

- soft or smooth version of the maximun function

- softmax transforms a vector of numbers into a vector of relative "Probabilites"

 

4.7.4 활성 함수

다양한 활성 함수

- 퍼셉트론은 계단 함수를 사용하는데, 예측 결과를 0~1 사이의 확률로 표현해야 하는 경우에 계단 함수는 부적절하다.

- 따라서 다층 퍼셉트론은 시그모이드, 딥러닝은 ReLU와 softmax를 주로 사용한다.

     - Sigmoid is derived from Greek word meaning the sigma-shaped or S-shaped.

728x90

4.8 오류 역전파 알고리즘

다층 퍼셉트론은 오류 역전파(back propagation) 알고리즘으로 학습한다.

- 은닉층이 있고 활성 함수가 시그모이드이므로 퍼셉트론 학습 알고리즘보다 복잡하지만 기본 원리는 같다.

4.8.1 손실 함수 설계

다층 퍼셉트론의 블록 다이어그램

- 신경망의 출력 벡터(예측값) o가 부류 벡터(참값) y와 같을수록 매개변수 U1, U2는 데이터를 잘 인식한다.

- 다르면 o와 y가 가까워지도록 U1과 U2를 갱신해야 한다.

- 오차가 클수록 갱신하는 양이 크다.

 

샘플 하나의 오차를 측정하는 손실 함수

- 보통 y는 원핫 코드로 표현한다.

 

4.8.2 학습 알고리즘

오류 역전파(error-backpropagation) 학습 알고리즘

- 출력층에서 시작해 역방향으로 오류를 전파한다는 뜻에서 오류 역전파라고 부른다.

4.9 다층 퍼셉트론 프로그래밍

4.9.1 sklearn의 필기 숫자 데이터셋

실행 결과

- 정확률 97.2%로 SVM(98.7%)보다 열등하고 퍼셉트론(93.8%)보다 우수하다.

 

4.9.2 MNIST 필기 숫자 데이터셋

- 훈련 집합 60000자 + 테스트 집합 10000자

- 샘플은 28*28 맵으로 표현

실행 결과

- 97.78% 정확률을 얻는다.

 

4.10 하이퍼 매개변수 최적화

하이퍼 매개변수

- 모델의 구조와 모델의 학습 과정을 제어하는 역할을 한다.

     - ex) 은닉 노드 개수, 학습률, 미니 배치 크기 등

 

4.10.1 하이퍼 매개변수 살피기

앞에서 사용한 코드의 MLPClassifier함수는 6개의 매개변수를 가진다.

- 앞의 5개는 하이퍼 매개변수

     - hidden_layer_sizes=(100) : 100개 노드를 가진 은닉층 한 개를 둔다.

          - (100개와 80개 노드를 가진 은닉층 두 개를 설정하려면 hidden_layer_sizes=(100,80)으로 한다.)

     - learning_rate_init=0.00 1: 학습률 ρ를 0.001로 설정한다.

     - batch_size=32 : 미니 배치 크기를 32로 설정한다.

     - max_iter=300 : 최대 세대수를 300으로 설정한다.

     - solver=‘sgd’ : 최적화 알고리즘으로 스토캐스틱 경사 알고리즘을 사용한다.

- MLPClassifier 함수의 매개변수는 6개가 전부인가?

 

함수의 API

- ex) MLPClassifier는 23개의 매개변수를 가진다.

     - 파란색은 11행이 사용한 것들. 나머지는 기본값을 사용

          - ex) activation=‘relu’가 기본값이므로 활성 함수로 ReLU 사용

          - ex) shuffle=True가 기본값이므로 세대를 시작할 때마다 훈련 집합의 샘플 순서를 섞음

     - 11행에서 max_iter=300으로 설정했는데, 109 세대에서 학습을 멈춘다.

          - tol=0.0001과 n_iter_no_change=10 때문

               - (10세대 동안 손실 함수 감소량이 0.0001 이하이면 멈추라는 뜻)

 

4.10.2 단일 하이퍼 매개변수 최적화 : validation_curve 함수 이용

728x90