혼공단10기 - 혼자 공부하는 머신러닝 + 딥러닝(혼공머신)
7장. 딥러닝
텐서플로(TensorFlow)
구글 브레인팀이 2015년 11월 9일 공개한, 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리로
인공 신경망 및 딥러닝(deep Learning)에 사용 중인 라이브러리.
# 텐서플로우 초보자 학습 코드
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
예제 코드 출처 : tensrflow 공식 홈페이지 (https://www.tensorflow.org/overview?hl=ko)
Sequential() : keras에서 신경망 모델을 만드는 클래스로, 신경망 모델에 추가할 층을 지정.
- input_shape에 입력의 크기 지정
Dense() : 밀집층을 만드는 클래스로, 첫 번째 매개변수에 뉴런의 개수를 지정.
- activation에 사용할 활성화 함수를 지정
Compile() : 모델 객체 생성 후, 훈련하기 전에 사용할 손실 함수와 측정 지표를 지정
fit() : 모델을 훈련.
- epochs : 반복할 에포크 횟수 지정
evaluate() : 모델 성능을 평가.
- loss : 손실 함수 지정,
- metrics : 측정 지표 지정
<예제 코드 해석>
Flatten() : 입력을 1차원 배열로 변경. 입력의 차원은 (28, 28)로 지정.
Dense() : 128개로 출력, 활성화 함수로 'relu' 사용.
Dense() : 10개로 출력, 활성화 함수로 'softmax' 사용.
complile() : 최적화 optimizer로 'adam'. 손실 함수로 'sparese_categorical_crossentropy' 지정
→ (28, 28)형태의 이미지를 784크기의 형태로 변환하여 10개의 출력으로 확률을 나타냄.
(10개의 출력은 0일 확률 , 1일 확률, 2일 확률 ... 9일 확률의 10개의 값)
기본 미션: 7-1 확인 문제 풀이
07-1 인공신경망
확인문제.
Q1, 어떤 인공 신경망의 입력 특성이 100개이고, 밀집층에 있는 뉴런 개수가 10개일 때, 필요한 모델 파라미터의 개수는?
▶ 1010개
sol) 가중치 : 100 x 10 = 1000
절편 : 10 x 1 = 10
→ 파라미터 : 1000 + 10 = 1010
Q2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들 때(신경망은 이진 분류 모델) activation 매개변수에 사용할 활성화 함수는?
▶ sigmoid 함수
Q3. 케라스 모델에서 손실 함수와 측정 지표를 지정하는 메서드는?
▶ compile
Q4. 정수 레이블을 타킷으로 가지는 다중 분류 문제일 때, 케라스 모델의 compile() 메서드에 지정할 손실 함수는?
▶ sparse_categorical_crossentrropy
선택 미션: 7-2 확인 문제 풀이
07-2 심층 신경망
확인문제
Q1, 모델의 add() 메서드 사용법
▶ model.add(keras.layers.Dense(10, activation='relu'))
Q2. 크기가 300x300인 입력을 케라스 층으로 펼칠 시 사용할 층은?
▶ Flatten
Q3. 이미지 분류를 위한 심층 신경망에서 널리 사용되는 케라스의 활성화 함수는?
▶ relu
Q4. 적응적 학습률을 사용하지 않는 옵티마이저는?
▶ SGD
'혼공학습단(한빛미디어)' 카테고리의 다른 글
[혼공단11기] 혼자 공부하는 SQL 2주차(Chapter 03) (0) | 2024.01.14 |
---|---|
[혼공단11기] 혼자 공부하는 SQL 1주차(Chapter 01 - 02) (0) | 2024.01.07 |
[혼공단 10기] 혼자 공부하는 머신러닝 + 딥러닝(혼공머신) - 5주차 (0) | 2023.08.12 |
[혼공단 10기] 혼자 공부하는 머신러닝 + 딥러닝(혼공머신) - 4주차 (0) | 2023.07.30 |
[혼공단 10기] 혼자 공부하는 머신러닝 + 딥러닝(혼공머신) - 3주차 (0) | 2023.07.23 |