Deep Learning for Coders with fastai & PyTorch: 1장 질문지 풀이

Author

Heeyoung Kim

Published

December 11, 2022

1. Do you need these for deep learning?

  • Lots of math T / F
  • Lots of data T / F
  • Lots of expensive computers T / F
  • A PhD T / F

모두 필요하지 않습니다. 고등학교 수준의 수학이면 충분합니다. 데이터는 50개 정도의 레코드만 있어도 딥러닝 훈련을 할 수 있습니다. 비싼 컴퓨터 없이도 가능합니다. 컴퓨터 리소스가 필요한 경우 AWS나 GCP 같은 서비스나 Colab, Paperspace 같은 노트북 서비스를 이용할 수 있습니다.

2. Name five areas where deep learning is now the best in the world.

바둑·체스 등의 게임플레이, 로봇공학, 의학, 자연어 처리, 추천 시스템 분야에서 딥러닝이 두각을 보이고 있습니다.

3. What was the name of the first device that was based on the principle of the artificial neuron?

인공 뉴런 원칙에 따라 만든 최초의 장치는 ’Mark I Perceptron’입니다.

4. Based on the book of the same name, what are the requirements for parallel distributed processing (PDP)?

병렬 분산 처리의 요건은 아래와 같습니다.

  • 처리 유닛 집합
  • 활성 상태
  • 각 유닛의 출력함수
  • 유닛 간의 연결 패턴
  • 연결망으로 활동 패턴을 전파하는 전파 규칙
  • 유닛의 현재 상태에 영향을 주는 입력을 결합하여 유닛의 출력을 생성하는 활성화 규칙
  • 경험에 따라 연결 패턴을 바꾸는 학습 규칙
  • 시스템이 작동하는 환경

5. What were the two theoretical misunderstandings that held back the field of neural networks?

신경망 단일 구성은 ’XOR’과 같은 기본적인 수학문제를 풀 수 없다는 사실과 다중 구성은 이러한 문제를 해결할 수 있다는 것을 알게 되었습니다. 하지만 단일 구성이 기본적인 수학 문제를 풀 수 없다는 것만 강조되어 신경망 분야의 발전이 늦어졌습니다.

6. What is a GPU?

GPU는 그래픽 처리를 위한 장치입니다. GPU는 여러 단일 작업을 한 번에 수행할 수 있는 능력을 갖추고 있습니다. CPU와 달리 행렬 곱 연산 속도가 빨라 딥러닝용으로 적합합니다.

7. Open a notebook and execute a cell containing: 1+1. What happens?

1+1
2

2가 출력됩니다.

8. Follow through each cell of the stripped version of the notebook for this chapter. Before executing each cell, guess what will happen.

직접 수행합니다.

9. Complete the Jupyter Notebook online appendix.

직접 수행합니다.

10. Why is it hard to use a traditional computer program to recognize images in a photo?

전통적인 프로그램은 여러 케이스를 직접 코딩해주어야 합니다. 그와 달리 딥러닝은 컴퓨터가 직접 학습을 통해 특징을 뽑아낼 수 있습니다.

11. What did Samuel mean by “weight assignment”?

’가중치 할당’은 초기 손실 계산을 위해 필요합니다. 초기 가중치는 학습에 의해서 손실 값을 최소화시키는 방향으로 최적화됩니다.

12. What term do we normally use in deep learning for what Samuel called “weights”?

’weights’는 ’parameters’라는 단어와 동일합니다.

13. Draw a picture that summarizes Samuel’s view of a machine learning model.

flowchart LR
    A[입력] --> B[모델]
    B --> C[결과]
    C --> D[성능]
    D --> E[갱신]
    E --> B

14. Why is it hard to understand why a deep learning model makes a particular prediction?

딥러닝은 내부 계산 구조를 알기 어려운 블랙박스 형태의 모델입니다.

15. What is the name of the theorem that shows that a neural network can solve any mathematical problem to any level of accuracy?

일반 근사 정리(Universial approximation theorem)는 신경망이 모든 문제에 적합 가능한 함수임을 증명하는 이론입니다.

16. What do you need in order to train a model?

모델 구조와 데이터가 필요합니다. 아울러 대부분의 문제에서 데이터에는 레이블이 필요합니다.

17. How could a feedback loop impact the rollout of a predictive policing model?

예측 치안 모델에 따라 우범 지역에 순찰 횟수를 늘리게 됩니다. 이에 따라 더 많은 범죄를 발견하게 되고, 이는 다시 모델에 적용되어 위의 피드백 루프가 만들어지게 됩니다.

18. Do we always have to use 224×224-pixel images with the cat recognition model?

그렇지 않습니다. 보통 관습에 의해 224x224 이미지로 변환하는 편입니다.

19. What is the difference between classification and regression?

분류는 출력의 개수가 이산적으로 정해져 있습니다. 회귀는 연속적인 종속변수 값을 예측하는 문제입니다.

20. What is a validation set? What is a test set? Why do we need them?

검증 데이터셋은 모델을 훈련할 때는 알 수 없는 데이터셋입니다. 훈련 데이터셋으로 훈련을 마친 후 검증 데이터셋으로 측정 정확도를 알 수 있습니다. 테스트 데이터셋은 모든 훈련 및 검증이 끝난 후, 마지막 한 번만 사용하는 데이터셋입니다.

21. What will fastai do if you don’t provide a validation set?

fast.aivalid_pct의 기본값이 0.2로 설정되어 있습니다. 이를 통해 훈련 데이터셋을 검증 데이터셋과 나누는 것을 잊지 않게 합니다.

22. Can we always use a random sample for a validation set? Why or why not?

항상 무작위 샘플을 이용할 수는 없습니다. 예를 들어 시계열 데이터를 분석할 때는 랜덤하게 데이터를 뽑아 내는 것이 아니라 일정 날짜를 기준으로 훈련, 검증용 데이터셋을 나눕니다.

23. What is overfitting? Provide an example.

오버피팅은 모델이 훈련용 데이터셋에 과도하게 기억하고 있는 경우를 의미합니다.

24. What is a metric? How does it differ from “loss”?

평가지표(Metric) 사용자가 모델의 정확도를 확인하기 위한 지표입니다. 손실(Loss)은 이와 달리 컴퓨터가 모델을 최적화하기 위해 사용하는 것입니다.

(*error_rate는 손실함수가 되기 어렵습니다. 최적화에 따라서도 분류 정확도가 크게 변하지 않는 경우, 미분값은 0이 됩니다. 따라서 모델이 훈련되지 않습니다.)

25. How can pretrained models help?

사전학습된 모델은 여러 이미지에 대한 학습을 통해 가중치를 갱신한 모델입니다. 그라데이션, 다른 이미지와 구별되는 선, 색상 등을 감지할 수 있습니다.

26. What is the “head” of a model?

모델의 ’머리’는 출력계층을 의미합니다. 사전 학습된 모델을 사용하는 경우 머리 부분은 새로운 데이터에 맞게 학습이 필요합니다.

27. What kinds of features do the early layers of a CNN find? How about the later layers?

초기 레이어는 그라데이션, 대각선 등 큰 범위의 특징을 잡아냅니다. 마지막 레이어로 갈수록 이미지가 가진 뚜렷한 특징을 찾아냅니다.

28. Are image models only useful for photos?

그렇지 않습니다. 음성은 시간별 주파수 이미지로 변환하여 사용할 수 있습니다. 이외에도 시계열, 컴퓨터 마우스의 움직임, 컴퓨터 바이러스 등도 이미지로 형태로 변환 가능합니다.

29. What is an “architecture”?

적합하려는 모델의 템플릿입니다.

30. What is segmentation?

세그먼테이션은 모든 개별 픽셀을 인식하는 모델을 만드는 것을 의미합니다.

31. What is y_range used for? When do we need it?

y_range는 종속변수 출력값의 범위를 제한합니다. 분류 문제가 아닌 회귀 문제에 사용합니다.

(주로 출력 계층의 활성 함수로 사용되는 시그모이드 함수는 출력값의 범위를 0에서 1 사이로 제한합니다. 절대 0이나 1이 될 수는 없습니다. 따라서 협업 필터링의 경우 0에서 5점 사이의 평점이 있다면, y_range를 0에서 5.5 정도로 수정합니다.)

32. What are “hyperparameters”?

하이퍼파라미터는 파라미터에 대한 파라미터를 의미합니다. 하이퍼파라미터는 사람이 직접 설정해주어야 하는 파라미터입니다. 트리 모델에서는 노드의 깊이, 너비 등이 하이퍼파라미터에 속합니다.

33. What’s the best way to avoid failures when using AI in an organization?

훈련, 검증, 테스트용 데이터를 나누는 절차를 진행해야 합니다.

위 절차가 도움이 되는 예시로, AI를 외주 경쟁시킬 때, 테스트 데이터셋을 통해 업체 간 정확도를 비교할 수 있습니다.