1. 크롤링을 통한 이미지 분석 및 CAM (40점)

(a) 두가지 키워드로 크롤링하여 이미지 자료를 모으고 CNN 모형을 활용하여 분석하라.

  • 2주차-hw1의 분석코드를 그대로 활용하여도 무방함

(b) CAM을 이용하여 CNN의 판단근거를 시각화하라.

2. 아래와 같은 5개의 자료를 관측하였다고 가정하자. (15점)

x y
0 11 17.7
1 12 18.5
2 13 21.2
3 14 23.6
4 15 24.2

(a) 모형 $y_i=\beta_0+\beta_1 x_i$에 해당하는 네트워크를 파이토치를 이용하여 설계하고 손실함수를 정의하라. $(\beta_0,\beta_1)=(3,3)$일 경우의 loss를 계산하라.

  • 손실함수는 MSELoss를 활용한다.

(b) $(\beta_0,\beta_1)=(3,3)$에서 손실함수의 미분계수를 계산하라.

(c) 경사하강법을 통하여 $(\beta_0,\beta_1)=(3,3)$의 값을 1회 update하라. 여기에서 학습률은 0.01로 설정한다.

3. 파이토치를 이용한 모형구축 및 학습 (20점)

아래와 같은 모형에서 시뮬레이션 된 자료가 있다고 하자.

$$y_i= \beta_0 + \beta_1 \exp(-x_i)+ \epsilon_i$$

여기에서 $\epsilon_i \overset{iid}\sim N(0,0.1^2)$ 이다. 시뮬레이션된 자료는 아래의 코드를 통하여 얻을 수 있다.

import pandas as pd 
df=pd.read_csv('https://raw.githubusercontent.com/guebin/2021BDA/master/_notebooks/2021-11-06-prob3.csv')
df.head()
x y
0 0.0 4.962202
1 0.1 4.889815
2 0.2 4.605782
3 0.3 4.491711
4 0.4 4.344537

자료를 시각화 하면 아래와 같다.

plt.plot(df.x,df.y,'.')
[<matplotlib.lines.Line2D at 0x7fc16f7dcd60>]

파이토치를 이용하여 적절한 $\beta_0, \beta_1$의 값을 구하여라. (손실함수는 MSEloss를 사용한다.)

4. 다음을 잘 읽고 물음에 O/X로 답하라. (25점)

(1) 경사하강법은 손실함수와 상관없이 언제나 전역최소해를 찾을 수 있다.

(2) 확률적경사하강법은 손실함수와 상관없이 언제 전역최소해를 찾을 수 있다.

(3) 일반근사정리(universal approximation theorem)는 충분히 깊은 신경망이 어떠한 함수든 표현할 수 있다는 내용의 이론이다.

(4) $y_i=\beta_0+\beta_1 x_i+\epsilon_i$ 와 같은 형태의 단순회귀모형은 학습해야할 파라메터가 2개이다.

(5) 참모형(true model)이 단순회귀모형일 경우, 비선형 활성화 함수를 사용한 깊은신경망으로 모형을 적합시키면 오히려 적합력이 떨어진다.

(6) 확률적 경사하강법은 관측자료에 임의의 오차항을 더하여 학습시키는 방법이다.

(7) 경사하강법은 손실함수가 convex일 경우 언제나 전역최소해를 찾을 수 있다.

(8) 로지스틱 모형에서 MSEloss를 사용하더라도 전역최소해를 찾는 경우가 있다. 즉 시그모이드 활성화 함수와 MSEloss를 사용한다고 하여도 항상 전역최소해를 찾지 못하는 것은 아니다.

(9) 로지스틱 모형에서 MLELoss를 사용하면 옵티마이저를 Adam으로 선택하고 BCELoss를 사용하면 확률적 경사하강법을 사용한다.

(10) 확률적 경사하강법은 컴퓨터의 자원을 효율적으로 활용할 수 있도록 도와준다.

(11) 학습할 파라메터가 많을수록 GPU의 학습속도가 CPU의 학습속도 보다 빠르다.

(12) GPU는 언제나 CPU보다 빠르게 모형을 학습한다.

(13) CNN 모형에서 에서 2D콘볼루션은 비선형 변환이다.

(14) 드랍아웃은 결측치를 제거하는 기법이다.

(15) 모든 관측치를 활용하지 않고 일부의 관측치만 활용하여 학습하는 기법을 드랍아웃이라 한다.

(16) 확률적 경사하강법은 드랍아웃과 같이 사용할 수 없다.

(17) MLP의 모든 활성화 함수가 선형이라면 은닉층(Hidden Layer)을 아무리 추가하여도 모형의 표현력이 향상되지 않는다.

(18) 학습할 파라메터수가 증가하면 언더피팅의 위험이 있다.

(19) CAM은 CNN의 모든층에서 사용가능하다.

(20) CAM은 CNN모형의 일부를 수정해야 한다는 점에서 단점이 있다.

(21) CNN은 이미지 자료만 분석할 수 있다.

(22) 드랍아웃은 과적합을 방지하는 효과가 있다.

(23) 예측 및 적합을 할때는 네트워크에서 드랍아웃층을 제거해야 한다.

(24) BCELoss는 Softmax 활성화 함수와 잘 어울린다.

(25) 파이토치에서 미분을 수행하는 메소드는 backward() 이다.