3. DNN(심층신경망)
2강. 필기체를 구분하는 분류 DNN 구현
학습목표
- MNIST 필기체를 구분하는 분류 DNN을 구현할 수 있다.
- Fashion-MNIST 이미지를 구분하는 분류 DNN을 구현할 수 있다.
학습내용
- MNIST 필기체를 구분하는 분류 DNN
- Fashion-MNIST 이미지를 구분하는 분류 DNN
1. MNIST 필기체를 구분하는 분류 DNN (1) 필기체를 분류하는 DNN 구현
∙ 5만 개의 학습 데이터와 1만 개의 성능 평가 데이터로 구성된 0부터 9까지로 구분된 필기체 숫자들의 모음을 분류하는 DNN 구현
① DNN 구현에 필요한 파라미터를 정의
∙ 입력 노드 수는 입력 이미지의 크기에 해당하는 784개, 출력 노드 수는 분류 할 클래스 수와 같은 10개로 설정
∙ 은닉 계층은 두 개이므로 각각에 대한 은닉 노드 수를 100과 50으로 지정
- 2 -
② DNN 모델 구현
∙ 연쇄 방식으로 계층들을 기술할 것이므로 객체를 models.Sequential로부터 상속
③ 데이터 준비
④ 학습 및 성능 평가
∙ 학습과 성능 평가를 수행하는 것은 은닉 계층이 늘어도 분류 ANN과 동일
∙ 학습데이터가 작거나 복잡한 이미지에서는 일반적으로 DNN이 더 우수한 성능 을 보인다고 알려져 있음
∙ 학습 시 출력된 학습 진행사항을 나타내는 결과
2. Fashion-MNIST 이미지를 구분하는 분류 DNN
(1) 셔츠나 바지같은 의류 이미지를 분류하는 DNN 구현
① 케라스 패키지에 들어 있는 서브패키지 layer와 models 임포트
② 분류 DNN 모델 구현
- 4 -
③ 분류할 Fashion_MNIST 데이터 불러오기
④ 학습 및 성능 평가
⑤ 코드 실행
∙ 학습 시 출력된 학습 진행 사항을 나타내는 결과
∙ Fashion_mnist DNN 학습 과정에서 손실 학습 곡선
∙ Fashion_mnist DNN 학습 과정에서 정확도 학습 곡선
- 6 - 학습정리
1. MNIST 필기체를 구분하는 분류 DNN
∙ 필기체 숫자 이미지를 분류하는 분류 DNN 구현
2. Fashion-MNIST 이미지를 구분하는 분류 DNN
∙ 운동화나 셔츠 등 의류 이미지 데이터를 분류하는 분류 DNN 구현 평가하기
1. 데이터 행렬의 차원을 알고 싶을 때 사용하는 함수를 고르시오.
① Array
② Reshape
③ Astype
④ 데이터 일부를 추출하여 학습한다.
- 정답 : ④번
해설 : Shape 함수로 행렬의 구성 및 차원에 대해 쉽게 알아볼 수 있다.
2. 소프트맥스 함수의 특징으로 올바르지 않은 것을 고르시오.
① 출력으로 0~1 사이의 값으로 모두 정규화
② 출력값들의 총합은 항상 1이다.
③ 출력층의 뉴런이 모든 입력 신호에서 영향을 받지 않는다.
④ 비선형 함수이다.
- 정답 : ③번
해설 : 소프트맥스 함수는 출력층의 뉴런이 모든 입력 신호에서 영향을 받는다.