복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.
▶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.
▶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 함수 이용
'컴퓨터공학 > 인공지능' 카테고리의 다른 글
[인공지능] 5장. 딥러닝과 텐서플로2 (0) | 2023.04.12 |
---|---|
[인공지능] 5장. 딥러닝과 텐서플로1 (1) | 2023.04.10 |
[인공지능] 4장. 신경망 기초2 (0) | 2023.04.06 |
[인공지능] 4장. 신경망 기초1 (1) | 2023.04.05 |
[인공지능] 3장. 기계 학습과 인식2 (0) | 2023.04.04 |