파트 1: 놀라운 상품에 도전하세요
이번 연습 문제에서는 Dense 레이어를 배워 봅니다. 재미있는 상황을 통해 알아볼까요? 어떤 게임 쇼에서 상품이 신경망으로 결정된다고 상상해 보세요. 참가자는
- 형제자매 수,
- 오늘 마신 커피 수,
- 토마토를 좋아하는지 여부
를 입력하고, 모델이 참가자가 어떤 상품을 받을지 예측합니다.
이를 구현하기 위해 Keras를 사용합니다. 다음과 같은 모델을 만들어야 해요. 입력 레이어는 세 가지 특성(형제자매 수는 정수, 커피 수는 정수, 토마토 선호는 0 또는 1)을 받습니다. 그런 다음 입력이 Dense 레이어를 거쳐 3개의 확률(자동차, 기프트 바우처, 혹은 꽝에 당첨될 확률)을 출력합니다.
Keras의 Input과 Dense 레이어, 그리고 Model 객체는 이미 임포트되어 있습니다. 또한 Dense 레이어를 초기화할 때 사용할 가중치 이니셜라이저 init도 제공됩니다.
이 연습은 강의의 일부입니다
Keras로 배우는 Machine Translation
연습 안내
- 세 명의 참가자(배치 크기)만 입력받고, 각 참가자는 형제자매 수, 커피 수, 토마토 선호의 세 가지 입력(입력 크기)을 갖는 입력 레이어를 정의하세요.
- 출력이 3개이고,
softmax활성화 함수와 이니셜라이저로init을 사용하는Dense레이어를 정의하세요. - 정의한 모델로
x에 대한 예측 값을 계산하세요. - 각 참가자별로 가장 확률이 높은 상품의 인덱스(정수)를 가져오세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define an input layer with batch size 3 and input size 3
inp = Input(____=(____,____))
# Get the output of the 3 node Dense layer
pred = ____(____, ____=____, kernel_initializer=init, bias_initializer=init)(inp)
model = Model(inputs=inp, outputs=pred)
names = ["Mark", "John", "Kelly"]
prizes = ["Gift voucher", "Car", "Nothing"]
x = np.array([[5, 0, 1], [0, 3, 1], [2, 2, 1]])
# Compute the model prediction for x
y = ____.____(____)
# Get the most probable class for each sample
classes = np.____(____, ____)
print("\n".join(["{} has probabilities {} and wins {}".format(n,p,prizes[c]) \
for n,p,c in zip(names, y, classes)]))