1. CNN이 Fully connected NN에 비해 이미지를 처리하는데 더 좋은 이유를 3가지 이상 설명하시오.
- CNN에서 kernel을 사용하여 Locality를 더 잘 감안할 수 있다.
- Parameter를 Sharing하는데, 이미지의 한 부분에서 학습이 이뤄지면 다른 부분에도 적용이 가능하다.
- CNN이 Fully connected NN에 비해 더 적은 파라미터를 사용하므로, 빠른 Training이 가능하다.
2. K-means clustering을 할 때 적절한 k를 선택하는 방법에 대해 설명하시오.
Rule of thumb(sqrt(n/2))를 사용하거나 Elbow method를 사용한다. Elbow method는 각 k별로 Diameter를 그래프로 나타낸 후 감소폭이 줄어드는 k를 선택하면 된다. Diameter는 클러스터 내부의 가장 먼 두 점 사이의 거리를 의미한다. 꼭 Diamter를 기준으로 할 필요는 없으며, Radius(Centroid에서 가장 먼 점까지의 거리), Cost(Centroid에서 각 점까지 거리의 제곱의 합) 등을 사용해도 된다.
3. Asynchronous Parameter Server architecture를 이용하여 Gradient descent가 어떻게 병렬로 계산될 수 있는지 설명하고, Synchronous 대비(예: MapReduce) Asynchronous의 장단점을 각각 2가지 서술하여라.
아래 1~5의 과정이 계속 반복되면서 이루어진다.
1. 각 Worker는 Parameter server로부터 최신의 모델을 다운로드 받는다.
2. Worker의 data와 서버로부터 받은 모델을 이용하여 Gradient descent를 수행한다.
3. Gradient값을 Parameter 서버로 전송한다.
4. 서버에서는 각 Worker로부터 Gradient를 전송받은 후 Model을 업데이트한다.
5. Worker로부터 모델 요청이 올때마다 가장 최신의 Model을 전송해준다.
장점
- Heterogeneous hardware들을 활용할 수 있다.
- 수행속도가 빠르다.
단점
- 한 Worker의 계산속도가 느리다면 모델에 악영향을 미친다.(오래된 Model을 기반으로 계산된 Gradient를 이용하여 모델이 업데이트되게 된다.)
- 일반적으로 Convergence rate가 느리다.