본문 바로가기

혼공학습단 7기 - ML&DL

[혼공단7기] 혼공머신 6주차 미션

기본미션

Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기

1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일때 필요한 모델 파라미터의 개수는 몇개인가요?

>>1,010개

(입력 특성 x 뉴런 개수 ) + 뉴런 개수(뉴런마다 1개의 절편이 있기 때문에) 

 

2. 케라스의 Dense클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진분류 모델이라면 activation매개 변수에 어떤 활성화 함수를 지정해야 하나요?

>> sigmoid 함수 : binary classifier 함수로 자주 쓰인다, 0~1사이의 값을 가지며, 0을 기준으로 양수를 가지면, 0.5보다 커지고 음수를 가지면 0.5보다 작아진다.

- Softmax : Sigmoid 함수와 유사하지만 다중 클래스 분류 문제에 더 유용.그래프가 존재 하지 않으며, Softmax 함수는 모든 입력 집합을 취하여 최대 1까지 합한 확률로 변환할 수 있다.
- ReLU : 기울기가 1로  데이터를 0과 1사이로 꾸겨넣지 않기 때문에 (Sigmoid와 tanh에서 발생하는)Gradient Vanishing 문제를 해결

3. 케라스 모델에서 손실함수와 측정 지표등을 지정하는 메서드는 무엇인가요?

>> compile() : 모델객체를 만든후 훈련하기 전에 사용할 손실 함수(loss매개변수에)와 측정 지표(metrics)등을 지정하는 메서드. *metrics매개변수에 훈련과정에서 측정하고 싶은 지표를 지정할때 측정지표가 1개 이상일 경우 리스트로 전달.

 

4.정수 레이블을 타깃으로 가지는 다중분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?

>> 'sparse_categorical_crossentropy' : 타깃값이 정수인 자중 분류일 경우

'categorical_crossentropy' : 타깃값이 원-핫 인코딩된 경우
'binary_crossentropy' : 이진분류에 사용하는 손실 함수
'mean_square_error' : MSE, 회귀 문제에 사용하는 손실 함수. 모델의 예측값과 실제값 차이의 면적의 합입니다. 이런 차이로, 특이값이 존재하면 수치가 많이 늘어난다. 

 

선택미션

Ch.07(07-2) 확인 문제 풀고, 풀이 과정 정리하기

1. 다음 중 모델의 add()메서드 사용법이 올바른 것은 어떤 것인가요?

>>> model.add(keras.layers.Dense(10, activatation='relu'))

 

2. 크기가 300x300인 입력을 케라스 층으로 펼치려고 합니다. 다음중 어떤 층을 사용해야 하나요?

>> Flatten : 배치 차원을 제외하고 나머지 입력 차원을 모두 일렬로 펼치는 역할만 한다. 입력에 곱해지는 가중치나 절편이 없다. 따라서 인공 신경망의 성능을 위해 기여하는 바는 없다. 하지만 flatten 클래스를 층처럼 입력층과 은닉층 사이에 추가하기 때문에 이를 층이라 부른다. 

- Dense: 신경망에서 가장 기본적인 밀집층. 입력의 차원을 변형하여 계산하지 않는다. 이 층에 첫번째 매개변수에는 뉴런의 개수를 지정한다. 

3.다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?

>>렐루 함수: 이미지 분류모델의 은닉층에 많이 사용하는 활성화 함수. 시그모이드 함수는 층이 많을 수록 활성화 함수의 양쪽 끝에서 변화가 작기 때문에 학습이 어렵다. 렐루는 이런 문제가 없으며 계산도 간단.

'linear' : 선형 활성화 함수 이며. 실제로는 활성화 함수를 적용하지 않는다는 뜻. 뉴런의 선형 계산을 그대로 다음 층에 전달. 일반적으로 'linear'는 회귀 작업을 위한 신경망의 출력층에 사용.
'tanh' : 하이퍼볼릭 탄젠트 함수. 순환신경망에서 자주 사용된다. 

4.다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?

>> SGD (Stochastic Gradient Descent) :  기본 경사하강법과 모멘텀, 네스테로프 모멘텀 알고리즘을 구현할 클래스. 이런 알고리즘들은 모두 일정한 학습률을 사용. 

Adagrad, RMSprop, Adam은 모두 적응적 학습률 옵티마이저.