Jaein Land

NLP and others

View My GitHub Profile

23 February 2022

[Book Review] <비전 시스템을 위한 딥러닝> 모하메드 엘겐디 (한빛 출판사)

비전 시스템을 위한 딥러닝 (한빛 출판사)


최근, NLP 태스크에서 시작된 Transformer이 비전 분야에도 적용되기 시작하여 활발한 연구가 이루어지고 있다[1]. 반대로 과거 비전에서 시작된 CNN 또한 NLP 모델에 활발하게 적용됐던 시기가 있기도 하다[2]. 이처럼 서로 다른 분야가 접목 되었을 때 생각지 못한 좋은 결과에 사람들이 놀라게 되는 사례가 많다. 나는 NLP를 연구하는 학생임에도 비전이나 추천시스템과 같은 다른 분야에 공부할 기회를 만들지 못한 것이 항상 아쉬웠는데, 이번에 좋은 기회로 <비전 시스템을 위한 딥러닝> 책을 받아 비전을 공부하는 시간을 가질 수 있었다.


이 책의 구성


이 책은 크게 3부로 구성되어 있는데, 1부에서는 2,3부를 이해하기 위해 필요한 기초 지식을 다루기에 필수로 짚고 넘어가야 하지만, 2부와 3부는 각각 사물 분류 및 사물 탐지 그리고 이미지 생성과 시각 임베딩을 다루는데, 필요한 부분을 선택적으로 공부해도 무방하다. 예제 코드는 파이썬, 텐서플로, 케라스, OpenCV를 사용하였고, 저자의 깃허브나 홈페이지에서 제공하고 있다.

구체적인 목차는 다음과 같다.

[PART I 딥러닝 기초]

CHAPTER 1 컴퓨터 비전 입문
1.1 컴퓨터 비전
1.2 컴퓨터 비전 응용 분야
1.3 컴퓨터 비전 파이프라인 전체 처리 과정
1.4 이미지 입력
1.5 이미지 전처리
1.6 특징 추출
1.7 분류 학습 알고리즘
1.8 마치며

CHAPTER 2 딥러닝과 신경망
2.1 퍼셉트론
2.2 다층 퍼셉트론
2.3 활성화 함수
2.4 순방향 계산
2.5 오차 함수
2.6 최적화 알고리즘
2.7 역전파 알고리즘
2.8 마치며

CHAPTER 3 합성곱 신경망
3.1 다층 퍼셉트론을 이용한 이미지 분류
3.2 합성곱 신경망 구조
3.3 합성곱 신경망의 기본 요소
3.4 CNN을 이용한 이미지 분류
3.5 과적합을 방지하기 위해 드롭아웃층 추가하기
3.6 컬러 이미지의 합성곱 연산(3D 이미지)
3.7 프로젝트: 컬러 이미지 분류 문제
3.8 마치며

CHAPTER 4 딥러닝 프로젝트 시동 걸기와 하이퍼파라미터 튜닝
4.1 성능 지표란
4.2 베이스라인 모델 설정하기
4.3 학습 데이터 준비하기
4.4 모델을 평가하고 성능 지표 해석하기
4.5 신경망을 개선하고 하이퍼파라미터 튜닝하기
4.6 학습 및 최적화
4.7 최적화 알고리즘
4.8 과적합을 방지하기 위한 규제화 기법
4.9 배치 정규화
4.10 프로젝트: 이미지 분류 정확도 개선하기
4.11 마치며

[PART II 이미지 분류와 탐지]

CHAPTER 5 고급 합성곱 신경망 구조
5.1 CNN의 디자인 패턴
5.2 LeNet-5
5.3 AlexNet
5.4 VGGNet
5.5 인셉션과 GoogLeNet
5.6 ResNet
5.7 마치며

CHAPTER 6 전이학습
6.1 전이학습으로 해결할 수 있는 문제
6.2 전이학습이란
6.3 전이학습의 원리
6.4 전이학습의 세 가지 방식
6.5 적합한 전이학습 수준 선택하기
6.6 오픈 소스 데이터셋
6.7 프로젝트 1: 사전 학습된 신경망을 특징 추출기로 사용하기
6.8 프로젝트 2: 미세 조정
6.9 마치며

CHAPTER 7 R-CNN, SSD, YOLO를 이용한 사물 탐지
7.1 사물 탐지 알고리즘의 일반적인 프레임워크
7.2 영역 기반 합성곱 신경망
7.3 싱글샷 탐지기
7.4 YOLO
7.5 프로젝트: 자율주행차를 위한 싱글샷 탐지기 학습하기
7.6 마치며

[PART III 생성 모델과 시각 임베딩]

CHAPTER 8 생성적 적대 신경망
8.1 GAN 구조
8.2 GAN 모델의 평가 방법
8.3 GAN 응용 분야
8.4 프로젝트: GAN 모델 직접 구현해보기
8.5 마치며

CHAPTER 9 딥드림과 신경 스타일 전이
9.1 합성곱 신경망이 본 세계는 어떤 것일까
9.2 딥드림
9.3 신경 스타일 전이
9.4 마치며

CHAPTER 10 시각 임베딩
10.1 시각 임베딩 응용 분야
10.2 임베딩 학습하기
10.3 손실 함수
10.4 정보량이 높은 데이터를 골라내는 마이닝
10.5 프로젝트: 임베딩 신경망 학습하기
10.6 현재 성능 더욱 끌어올리기
10.7 마치며
10.8 참고 문헌

APPENDIX A 실습 환경 설정하기
A.1 코드 저장소 내려받기
A.2 아나콘다 설치하기
A.3 딥러닝 실습 환경 설정하기
A.4 AWS EC2 환경 설정하기 \


읽어보며


일반적으로 NLP보다 CV의 생성 태스크가 세상의 관심을 더욱 많이 받는데, 생성 결과를 바로 직관적으로 볼 수 있어서 연구자들 뿐만 아니라 일반인들도 흥미로워해서 더욱 그런 듯 하다. 나 또한, Part 3에서 소개하는 이미지-이미지 번역, 스타일 전이 등을 결과물들을 보며 흥미를 많이 느꼈다. ‘조금 변형해서 NLP에 이렇게 적용할 수도 있겠는데?’ ‘이미 진행중인 비슷한 연구가 있을까?’ 하는 생각에 갑자기 눈이 번쩍 떠지며 초 집중모드로 들어가서 Part 3 전 챕터를 순식간에 읽어버렸다. 그래서 정작 흥미를 가장 많이 느꼈던 부분은 GAN, 신경 스타일 전이, 그리고 시각 임베딩을 다룬 Part 3였다 :)

평소 거의 NLP 관련 서적만 찾아보다 보면, 원래 많이 접하는 익숙한 내용들만 보게되니 머리를 아무리 쥐어짜도 ‘이걸로 될까’ 싶은 아이디어나 간신히 나올 때가 많다. 오픈된 태도로 다른 분야의 지식 또한 많이 접하고 아이디어 풀을 넓히는 것이 좋은 연구자의 자질임을 알면서도, 당장 눈앞에 주어진 일이 많을 때 다른 분야의 책에 손을 뻗기가 여간 부담되는 것이 아니다. 하지만 이번 기회에 이 책을 읽으며 스스로에게 강제성을 부여해서라도 주기적으로 다양한 분야의 지식을 접해야겠다는 생각을 더 강하게 하게 되었다. 큰 감흥없이 기초 딥러닝 지식을 다루는 Part 1를 훑고, ‘이 정도는 알아놓으면 좋지’ 하는 의무감(?)으로 비전 분야의 중요한 모델들을 다루는 Part 2를 읽고, Part 3에서 생각지도 못하게 샘솟는 영감을 받게 되면서 말이다.

그래서 비전 엔지니어를 꿈꾸는 이들에게 뿐만 아니라, NLP 등 다른 분야의 딥러닝 연구자/엔지니어들 또한 기분전환 삼아 읽어보면 의외의 것들을 얻어갈 수 있는 책이란 생각이 들었다. 개인적으로 이 전에 읽어본 딥러닝 서적들에 비해 설명이 친절해서(책이 많이 두껍기도..) 크게 고생하지 않고 읽을 수 있던 것도 한몫 했다.


추천 대상


저자는 “머신러닝 프레임워크의 기본을 이해하고 있으며 파이썬 코드를 작성할 수 있고 고급 머신러닝 모델 학습 기법과 함께 실무 수준의 신경망 구조를 이용해 복잡한 컴퓨터 비전 문제를 해결하길 원하는” 사람들이 대상 독자라고 말한다.

이에 조금 더 보태면, 비전 엔지니어를 지망한다면, 컴퓨터 비전을 위한 딥러닝을 직관적으로 공부해보고 싶다면, 최신 논문을 이해하기 위한 기초를 다지고 싶다면, 비전 모델 개발에 필요한 기본적인 수학적 원리를 이해하고 싶다면, 대상 독자가 될 수 있다.

NLP 연구자의 관점에서 더 보태자면, 위에서 서술한 것처럼 다른 분야의 딥러닝 연구자/엔지니어들이 읽기에도 충분히 친절하며, 좋은 아이디어 발상의 기회가 될 수도 있어 보인다. 단, 기초적인 지식을 다루는 Part 1에 더불어 상세한 코드 주석이나 친절한 수식 설명 등은 이미 딥러닝을 공부한지 어느정도 된 사람들에게는 거추장스럽게 느껴질 수도 있겠다.


이 책의 특징 요약


  1. 설명이 친절하다. (책이 두껍다)
  2. 요약이 잘 되어있다.
  3. 코드도 알아보기 쉽다. (주석도 많다.)
  4. 기본적인 딥러닝 지식을 익혔고, 더 나아가 비전에 관심있는 학습자에게는 더할것 없이 좋은 책이다.


Reference


[1] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, and Neil Houlsby. An image is worth 16x16 words: Transformers for image recognition at scale. In International Conference on Learning Representations, 2021. [paper]
[2] NLP with CNNs [blog]

Statement: 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.