우당탕탕 개발일지
[혼공머신] 7-1. 인공 신경망 본문
💡 서론
딥러닝의 핵심 알고리즘인 인공 신경망을 배우는 챕터였다. 특히 대표적인 라이브러리인 텐서플로와 케라스에 대해 익힐 수 있는 시간이었다.
💡 인공 신경망
인공 신경망은 입력충, 출력층, 은닉층으로 구분되어 있었다. 텐서플로와 케라스 - 이 두 가지의 딥러닝 라이브러리를 이용해서 인공 신경망을 구현할 수 있다.
import tensorflow as tf
from tensorflow import keras
이렇게 케라스와 텐서플로 라이브러리를 불러올 수 있다.
💡 인공 신경망으로 모델 만들기
인공 신경망에서는 교차 검증을 잘 사용하지 않기 때문에 검증 세트를 미리 덜어내는 게 중요하다.
그리고 케라스의 Dense 클래스를 사용해 밀집층을 만들 수 있다.
매개변수를 통해 뉴런의 개수, 뉴런의 출력에 적용할 함수, 입력의 크기를 정할 수 있다. 여기에서는 뉴런을 10개 사용하고, 출력함수로 소프트맥스 함수를 사용하며, 784개의 픽셀값을 받는다.
💡 인공 신경망으로 패션 아이템 분류하기
이렇게 모델을 만들어줄 수 있다.
model.compile(loss = 'sparse_categorical_crossentropy', metrics = ['accuracy'])
설정을 model 객체의 compile 메서드를 통해 수행한다. 이 때 손실 함수의 종류를 반드시 지정하는 게 포인트!
이 코드에서는 정수로된 타깃값을 사용해 크로스 엔트로피 손실을 계산하는 sparse_categorical_crossentropy 손실함수를 사용하고 있다.
교재와 다른 점이 있었는데, metrics 매개변수는 무조건 리스트 형태여야한다고 해서 교재에서 나온 코드와 다르게 'accuracy'를 []로 감쌌다.
이제 이전에 사이킷런에서 했던 것처럼 fit 메서드를 사용해서 모델을 학습하고, evaluate 메서드를 통해 검증할 수 있다.
💡 확인 문제
문제 1. 어떤 인공 신경망의 입력 특성이 100개이고, 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?
정답 1. (3) 1010개
풀이 1. 입력값이 100개이므로 밀집층에 있는 뉴런 하나 당 총 100개의 입력값을 담당한다. 그리고 밀집층에는 항상 뉴런 1개 당 절편이 1개 추가된다. 밀집층에 뉴런이 10개 있으므로 필요한 모델 파라미터의 개수는
(뉴런의 개수) * (입력층의 개수 + 절편의 개수) = 10 * (100 + 10) = 1100이다.
문제 2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?
정답 2. (2) sigmoid
풀이 2. 이진 분류라면 sigmoid 활성화 함수를, 다중분류라면 softmax 함수를 이용한다. 이진 분류에서는 sigmoid 함수를 이용해 z를 0과 1사이의 값으로 변환하는 반면, 다중 분류는 softmax 함수를 이용하여 각 항목으로 분류될 확률 z값(0과 1사이의 값)을 반환한다.
문제 3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?
정답 3. compile()
풀이 3. 위에서 언급했듯이, 인공 신경망 모델을 학습하기 전에 설정이 우선되어야 한다. 이 때 설정을 model 객체의 compile 메서드를 통해 수행한다.
문제 4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile () 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?
정답 4. (1) 'sparse_categorical_crossentropy'
풀이 4. 위에서 언급했듯이, 설정할 때 반드시 손실 함수의 종류를 명시해줘야 한다. 다중 분류 문제일 때 정수로된 타깃값을 사용해 크로스 엔트로피 손실을 계산하는 sparse_categorical_crossentropy 손실함수를 사용하고 있다.
'인공지능' 카테고리의 다른 글
[혼공머신] 7-3. 신경망 모델 훈련 (0) | 2025.02.23 |
---|---|
[혼공머신] 7-2. 심층 신경망 (0) | 2025.02.23 |
[혼공머신] 6-3. 주성분 분석 (0) | 2025.02.04 |
[혼공머신] 6-2. K-평균 (0) | 2025.02.04 |
[혼공머신] 6-1. 군집 알고리즘 (0) | 2025.02.04 |