인공지능에서 가장 빛나는 컴퓨터 비전의 모든 것
컴퓨터 비전은 최근 인공지능과 딥러닝의 눈부신 발전과 함께 얼굴 인식, 의학 영상, 자율주행 등 다양한 산업에서 괄목할 만한 성과를 보여주고 있다. 그중 가장 흥미로운 기술은 주행 시 전방의 차량이나 장애물을 감지해 차의 속도를 스스로 조절하는 자율주행이다. 이 책에서는 컴퓨터가 이런 시각 정보를 어떻게 얻는지, 컴퓨터 비전에서 딥러닝을 어떻게 응용하는지 매우 실용적인 관점으로 안내한다.
고등학교 수학 교과 과정을 배운 독자라면 누구나 딥러닝을 가능케 하는 원리와 개념을 이해할 수 있으며, 이미지 생성부터 얼굴 인식까지 다양하게 응용되는 딥러닝 구조를 배울 수 있다. 이 책에 담긴 고급 딥러닝 알고리즘을 활용해 이미지, 비디오 및 실생활에서 물체를 식별하고 반응할 수 있는 컴퓨터 비전 시스템을 구축하는 방법을 익히고, 모든 산업에서 인정받는 엔지니어로 거듭나길 바란다.
[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 환경 설정하기
[PART I 딥러닝 기초]
CHAPTER 1-3 (컴퓨터 비전 입문, 딥러닝 신경망, 합성곱 신경망)
1장에서는 전반적인 컴퓨터 비전 시스템과 현재 활용하는 예시를 소개한다. 고전적인 머신러닝 알고리즘과 다르게 딥러닝에서는 신경망에서 특징 추출기와 분류기의 역할을 모두 수행하기 때문에 사람이 특징을 선택을 하지 않다는 것을 알 수 있다.
CNN 즉 합성곱 신경망을 설명하며 레이어 설계를 위한 많은 조언이 곳곳에 담겨 있다. 층마다 구성되는 레이어에 역할과 각 층에 위치가 왜 그 위치에 있는지? 예를 들면 "DROPOUT을 어느 레이어에 해야 하는지 그 이유는 무엇인지?" 레이어를 설계를 하면서 기존의 신경망을 많이 보는 것을 추천한다. 기존 설계는 이미 많은 사람의 시행착오를 거쳐 그중에서 좋은 결과가만 모아둔 것이기 때문이다.
해당 내용은 딥러닝 관련 서적을 많이 보다 보면 공통적으로 이야기하는 부분이다. 비슷한 문제를 풀었던 다른 사람들의 신경망 설계를 답습하고 우리가 가진 데이터에 맞춰 신경망을 튜닝하는 것은 그다음 문제임으로 유명한 네트워크 모델의 구조를 설명하고 직접 모델을 만들어 보면 실습을 진행한다. 딥러닝 입문서 이기보다는 어느 정도 CNN을 이해한 이후에 보면은 도움이 된다고 생각한다.
[PART I 딥러닝 기초]
CHAPTER 4 딥러닝 프로젝트 시동 걸기와 하이퍼파라미터 튜닝
딥러닝 개발은 경험에 의존하는 바가 크다. 정해진 공식대로 한 번에 완성한 모델을 만들기보다는 다양한 조건에서 실험과 모델 성능을 관찰하며 시행착오를 거치고 해결책을 위한 초기 아이디어를 떠올리고 구현하여 실험 끝에 그 결과를 반영해 아이디어를 다듬어 나간다.
이런 과정에서 성능 지표를 통해 모델을 평가해야 하는데 정확도, 혼동 행렬, 정밀도와 재현율, F-점수 등이 필요하다. 또한 데이터 전처리도 중요하며 학습을 시작하기 전 데이터를 정규화하는 과정이 필요하다. 모델 개발의 일련의 과정을 데이터 전처리, 데이터 증강, 학습 및 추론, 모델 평가 등으로 나눌 때 이중에 중요하지 않은 과정은 없다. 모델을 개발하기 위한 단계에 대해서 자세히 설명한다.
[PART II 이미지 분류와 탐지]
CHAPTER 5 고급 합성곱 신경망 구조
아래 CNN 디자인 패턴에 대해서 설명이 되어 있으며 기본적인 합성곱 신경망 구조는 서로 다른 설정을 가진 합성곱층과 풀링층을 번갈아가며 배치하는 방식으로 구성된다. 유명한 네트워크 구조인 ALEXNET, VGG16, VGG19, GoogleNet, 인셉션, RESNET 등 각각의 신경망 구조를 도식화하여 네트워크 레이어마다 역할과 해당 레이어로 하여 개선된 점을 설명하고 공통적인 특징과 파라미터를 줄이기 위한 방법 등 여러 노하우가 정리되어 있다.
CHAPTER 6 전이학습
필자도 현재 딥러닝 모델을 개발하고 있는데 주로 전이 학습을 이용하여서 진행하고 있다. 해당 챕터에서는 전이학습에 대해서 설명한다. 기본적으로 전이학습은 학습 데이터를 충분히 확보하지 못했을 때 유용한 방식이다.
전이 학습을 진행할 때 수준을 결정하는 시나리오에 대해서 설명하며 기존의 오픈 소스 데이터셋 중 이미지 넷, MS COCO, 오픈 이미지, MNIST, CIFAR 등의 데이터셋을 소개한다. 또한 미세 조정을 위한 파인 튜닝 기법을 각 층마다 그리고 출력층마다 도식화하며 설명한다.
CHAPTER 7 R-CNN, SSD, YOLO를 이용한 사물 탐지
7장은 단순한 이미지 분류가 아닌 사물 탐지 알고리즘 기반의 신경망을 소개한다. 이미지 분류는 이미지에 있는 하나의 물체 종류 또는 클래스를 예측이 목표이며 사물 탐지는 이미지 속 물체의 위치를 경계 박스를 통해 예측하고 그와 더불어 해당 물체의 클래스를 목표이다. 사물 탐지 모델은 R-CNN부터 시작되었으며 정확도와 추론 속도에 따라 사용처가 달라지게 된다. R-CNN -> FAST-R-CNN -> Faster-R-CNN 등 R-CNN의 모델의 발전된 방향을 예시를 들면 설명한다.
필자는 현재 Mask-R-CNN 모델을 이용하여 영상에서 영역 분할을 하고 분할된 모델만 누끼 따기를 진행하고 있다. 이 챕터는 현재 진행하고 있는 업무와 유사성이 있어서 조금 더 꼼꼼히 본 챕터이다.
[PART III 생성 모델과 시각 임베딩]
CHAPTER 8 생성적 적대 신경망
GAN은 데이터의 패턴을 학습해서 훈련 데이터와 비슷한 분포를 지닌 새로운 이미지를 만든다. GAN은 서로 경쟁하는 2개의 신경망으로 구성되며 생성자 모델과 판별자 모델로 하여금 새로운 이미지를 생성한다.
CHAPTER 9 딥드림과 신경 스타일 전이
딥드림과 신경 스타일 전이를 통하여 새로운 이미지를 만드는 법을 소개한다. 해당 CHAPTER의 내용은 "미술관에 GAN 딥러닝 실전 프로젝트" 서적이 조금 더 나아 보인다.
CHAPTER 10 시각 임베딩
해당 챕터에서는 안면 인식(CCTV), 이미지 검색(쇼핑몰 추천 제품: 옷, 가전제품 등), 이미지 추천 등 실생활과 밀접한 관련이 있는 내용에서 다룬다. 이미지 검색 시스템을 구축할 때 임베딩(벡터 공간)이 필요한데 임의의 이미지를 사상하고 두 벡터의 거리를 계산하는 방법 등을 이미지 추천, 차량 재인식 등 예시를 들며 성능을 올리는 기법을 제안한다.
챕터 마무리 부분에서 요약이 잘되어 있어 한 챕터가 끝날때 마다 정리가 되어 매우 도움이 되었다. 딥러닝 업무를 처음 진행할 때 모델을 처음부터 설계하고 논문 스터디가 필요한 것이 아닐까 하는 생각 하였는데 책 구문중 "딥러닝 개발은 경험에 의존하는 바가 크다. 정해진 공식대로 한 번에 완성한 모델을 만들기보다는 다양한 조건에서 실험과 모델 성능을 관찰하며 시행착오 다듬어 간다"라는 부분에서 많은 공감을 할 수 있었다.
필자는 딥, 머신러닝 학습을 위하여 핸즈온 머신러닝 2판, 케라스 창시자에게 배우는 딥러닝, 머신러닝 엔지니어링 등 여러 책을 머신러닝을 학습해왔다. 해당 책은 이미지 처리(컴퓨터 비전)에 특화되어 있으며 현존하는 CNN 기반 이미지 처리를 위한 모델 네트워크를 자세한 설명 및 직관적인 그림과 도식으로 이해하기 쉽게 설명되어 있다. 컴퓨터 비전 분야를 딥러닝으로 해결하는 방법에 대해서 가장 잘 기술되어 있다고 생각한다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
처음 배우는 딥러닝 챗봇:챗봇 엔진부터 NLP 딥러닝 파이썬 REST API 카카오톡 연동까지 (0) | 2022.03.27 |
---|---|
단단한 심층강화학습 - 제이펍 (0) | 2022.03.12 |
텐서플로 라이트를 활용한 안드로이드 딥러닝 (0) | 2022.01.17 |
머신러닝 엔지니어링 - 제이펍 (0) | 2022.01.07 |
객체지향 프로그래머들이 반드시 알고 있어야 할 코딩의 정석 C++ (0) | 2021.12.27 |
댓글 영역