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점)

- 확률적 경사하강법은 손실함수의 모양과 상관없이 언제나 전역최소해를 찾을 수 있다.