[혼공머신]_6주차 딥러닝
[ 회고 🫶🍀 ]
6주차를 달려오면서, 아직 나는 많이 부족한 사람이라는
걸 깨달았습니다 …! 그렇지만 쉽게 포기는 하지 않을 것이라는 생각도 동시에 들었습니다 !
그리고 이렇게 좋은 활동을 할 수 있게 만들어주신 한빛미디어 분들과 6주차까지 달려올 수 있도록 많은 도움과 관심을 주신 혼공족장님에게도 감사인사를 전합니다 !
그동안 정말 감사했습니다 🙇♀️
저는 이번 혼공머신에서 쌓은 지식을 발판으로 더 나은 사람이 될 수 있도록 노력하겠습니다 🍀
[ 기본 미션 🍀 ]
Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기
1. 어떤 인공 신경망의 입력 특성이 100개 이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개 인가요?
- 정답 ③ 1,010개
-> 100 (입력 특성) x 10 (뉴런 개수)+ 10 (뉴런 개수) = 1010 각 뉴런은 입력 특성 개수만큼의 가중치와 하나의 절편을 가지므로, 100* 10= 1000개의 파라미터가 필요하다.
또한 각 뉴런은 하나의 절편을 가지므로, 10개의 뉴런에 대해 10개의 추가 파라미터가 추가되어야한다
2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요 ?
- 정답 ② sigmoid
-> 이진 분류 모델은 두 개의 클래스를 구분하여, 출력층 뉴런은 0 또는 1의 값을 출력해야 하기 때문에 시그모이드 함수를 쓴다
3. 케라스 모델에서 손실함수와 측정지표등을 지정하는 메서드는 무엇인가요?
- 정답 ④ compile()
-> 케라스 모델에서 손실 함수와 측정 지표는 compile() 메서드를 사용하여 지정한다
model. compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
여기서 loss는 손실 함수를 지정하고, optimizer는 옵티마이저를 지정하며 metrics는 측정 지표를 지정한다
4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?
- 정답 ① 'sparse_categorical_crossentropy'
-> 타깃을 1 혹은 0으로 분류하는 원-핫 인코딩과 관련된 손실함수를 categorical_crossentropy라고 한다 만일 타깃의 분류를 0, 1로 지정한 게 아니라 0-9까지의 정수값으로 분류한다면 sparse_categorical_crossentropy로 손실함수를 지정하는게 적절하다
[선택 미션 🍀]
Ch.07(07-2) 확인 문제 풀고, 풀이 과정 정리하기
1. 다음 중 모델의 add() 메서드의 사용법이 올바른 것은 어떤 것인가요?
- 정답 ② model.add(keras.layers.Dense(10, activation='relu'))
-> add() 메서드에는 층의 객체를 전달해야 한다
2. 크기가 300 x 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?
- 정답 ② Flatten
-> Flatten 층은 2차원 배열을 1차원 배열로 변환한다
이미지의 각 픽셀에 대해 딥러닝 기법을 사용하기 위해서는 배열 계산을 위해 1차원으로 펼쳐야 한다. 넘파이의 reshape() 메서드처럼 케라스에서는 하나의 층으로 Flatten 클래스를 추가하게 되면 수행된다.
3. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?
- 정답 ③ relu
-> max(0, z)에 해당하는 relu 함수는 특히 이미지 처리에서 좋 은 성능을 낸다
4. 다음중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?
- 정답 ① SGD
-> SGD(확률적 경사 하강법)는 적응적 학습률을 미사용하기 때문에 고정된 학습률을 사용하여 모델 가중치를 업데이트한다
또한, (2) Adagrad, (3) RMSprop, (4) Adam은 적응적 학습률 옵티마이저이다.