서브메뉴

본문

클라우드 모바일 및 에지 기반의 딥러닝 실용가이드 (실세계 AI 및 컴퓨터비젼, 프로젝트 파이선, 케라스 및 텐서플로우 활용)
클라우드 모바일 및 에지 기반의 딥러닝 실용가이드 (실세계 AI 및 컴퓨터비젼, 프로젝트 파이선, 케라스 및 텐서플로우 활용)
저자 : Anirudh Koul
출판사 : DK로드북스
출판년 : 2020
ISBN : 9791196965624

책소개


『클라우드, 모바일 및 에지 기반의 딥러닝 실용가이드』는 먼저 AI와 딥러닝에 대한 지식이 없어도 쉽게 따라할 수 있도록 간단한 이미지 및 객체 분류기의 구현으로 시작한다. 순차적으로 내용이 강화되어 초보자뿐만 아니라 AI를 연구하고 있는 개발자들에게도 실질적인 도움을 제공하고 있다. 값비싼 하드웨어없이 텐서플로우나 케라스로 구현된 소스 코드들을 클라우드와 모바일 및 에지 처리장치를 기반으로 실험을 할 수 있고 앱을 구현하여 배포할 수 있는 방법까지 설명하고 있다. 또한 에지 처리장치(라즈베리파이, 구글의 Coral, 인텔의 Movidius) 를 이용하여 창의적인 로봇 제작에 대한 방법을 제시하고 있다.

목차


제1장 인공지능에 대한 전반적인 이해 01
사과문 04
실제 서론 04
AI란 무엇인가? 05
동기부여 사례 06
간략한 AI 역사 08
흥미진진한 시작 08
어둡고 추운 날들 09
희미한 희망의 빛 010
딥러닝은 어떻게 되었나 014
완벽한 딥러닝 솔루션을 위한 레시피 017
데이터 세트 018
모델 아키텍처 021
프레임워크 024
하드웨어 027
책임감있는 AI 029
편향성 031
책임성과 명확성 033
재현성 034
강인성 035
프라이버시 035
요약 036
자주 묻는 질문 036

제2장 사진에는 무엇이 있나: 케라스(Keras)를 사용한 이미지 분류
라스 소개 042
이미지 카테고리 예측 043
모델 조사 048
ImageNet 데이터 세트 048
모델 집합소 050
목차
vi 목차
클래스 활성화 맵 052
요약 055

제3장 고양이와 개: 30줄의 케라스로 구현한 전이 학습
사전 훈련된 모델을 새로운 작업에 적용하기 059
콘볼루션 신경망에 대한 간단한 고찰 061
전이 학습 063
미세 조정 063
미세 조정하는 정도 064
전이 학습과 케라스를 이용한 사용자 정의 분류기 만들기 066
데이터 구성 067
데이터 파이프 라인 구축 069
클래스의 수 069
배치 크기 070
데이터 증강 071
모델 정의 074
모델 훈련 075
훈련 매개 변수 설정 075
훈련 시작 076
모델 테스트 078
결과 분석 078
추가로 읽을 자료 085
요약 087

제4장 역(reverse) 이미지 검색엔진 구축: 임베딩 이해
이미지 유사도 092
특징 추출 095
유사도 검색 098
t-SNE로 이미지 클러스터 시각화 102
유사도 검색 속도 향상 106
특징 벡터의 길이 106
PCA로 특징 길이 줄이기 108
근사 근접 이웃 탐색을 사용한 유사도 검색 확장 113
근사 근접 이웃 탐색 알고리즘의 벤치마크 113
어떤 라이브러리를 사용할 것인가? 115
vii 목차
합성 데이터 세트 생성 115
무차별(Brute Force) 탐색 116
Annoy 116
NGT 117
Faiss 118
미세 조정으로 정확도 향상 118
완전 연결 계층 없이 미세 조정하기 122
원-샷 얼굴 검증을 위한 Siamese Networks 123
사례 연구 125
Flickr 125
Pinterest 126
유명인사 대역(Celebrity Doppelgangers) 127
Spotify 127
이미지 캡션 128
요약 130

제5장 초보에서 전문 예측기로: 콘볼루션 신경망의 정확도 극대화
사용할 여러 가지 도구 134
텐서플로우 데이터 세트(TensorFlow Datasets) 135
텐서보드(TensorBoard) 136
What-If Tool 139
tf-explain 143
머신러닝 실습을 위한 일반적인 기법 145
데이터 검사 145
데이터 분할 : 훈련, 검증, 테스트 146
조기 멈춤 147
재현 가능한 실험 147
엔드-투-엔드 딥러닝 예제 파이프라인 148
기본적인 전이 학습 파이프라인 148
사용자 맞춤형 신경망 파이프라인 151
하이퍼파라미터가 정확도에 미치는 영향 152
전이 학습과 처음부터 새로 훈련하기의 비교 152
전이 학습에서 미세 조정할 계층 수의 효과 153
전이 학습에 대한 데이터 크기의 영향 155
viii 목차
학습률의 영향 156
최적화 효과 157
배치 크기의 영향 158
크기 조정의 효과 159
전이 학습에서 종횡비 변경의 영향 160
최대 정확도를 위한 튜닝 자동화 도구 160
케라스 튜너(Keras Tuner) 161
자동증강(AutoAugment) 163
자동케라스(AutoKeras) 164
요약 165

제6장 속도와 성능 극대화 텐서 플로우: 편리한 점검표
GPU 부족 169
nvidia-smi 170
텐서플로 프로파일러 + 텐서보드 172
체크리스트 사용법 174
성능 체크리스트 174
데이터 준비 176
TFRecords 저장 176
입력 데이터의 크기 축소 177
텐서플로우 데이터 세트 사용 178
데이터 읽기 179
tf.data 사용 179
데이터 미리 추출 180
병렬 CPU처리 180
병렬 I/O 처리 181
비결정적 순서 활성화 181
캐시 데이터 182
실험 최적화 설정 182
Map 융합 184
자동튜닝 파라미터 변수값 184
데이터 증강(Augmentation) 185
증강을 위한 GPU 사용 185
훈련 187
자동 혼합 정밀도 사용 187
보다 큰 배치(Batch) 크기 사용 188
ix 목차
8 의 배수 사용 189
최적의 학습률 찾기 190
tf.function 사용 192
오버트레인 그리고 일반화 193
하드웨어에 최적화된 스택 설치 195
병렬 CPU 쓰레드의 개수 최적화 197
보다 좋은 하드웨어 사용 198
훈련의 분산 199
산업계 벤치마크 실험 201
추론 203
효과적인 모델 사용 203
모델 양자화 206
모델 정리 208
융합 작업 사용 209
GPU 지속성 활성화 210
요약 210

제7장 실질적인 툴, 팁 그리고 기술 211
설치 213
훈련 215
모델 217
데이터 218
Privacy 221
교육과 개발 222
마지막 질문 224

제8장 컴퓨터 비전을 위한 클라우드 API: 15분 안에 설치 및 실행
시각적 인식 API의 풍경 229
Clarifai 229
마이크로소프트 인지 서비스 230
구글 클라우드 비전 230
아마존 Rekognition 231
IBM 왓슨의 Visual Recognition 232
알고리즘 233
x 목차
Visual Recognition API 비교 234
제공 서비스 235
비용 236
정확도 236
편향성 238
Cloud API 시작 및 실행 242
사용자 분류기 훈련 245
분류기가 만족스럽게 작동하지 않는 주요 이유 250
사용자 분류 API 비교 252
클라우드 API를 위한 성능 튜닝 255
영상 라벨링에서 크기 조절 효과 255
영상 라벨링에서 압축의 효과 256
OCR APIs에서 압축 효과 257
OCR APIs에서 크기 변화 효과 257
실제 적용 사례 258
요약 264

제9장 텐서플로우 서빙 및 KubeFlow를 사용하여 클라우드 에서 확장 가능한 추론 서비스
인공 지능 예측의 모습 268
Flask: 여러분 자신의 서버 구축 270
Flask로 REST API 만들기 270
Flask에 케라스 모델 배포 271
Flask 사용의 장점 272
Flask 사용의 단점 272
생산 수준의 서빙 시스템에서 바람직한 품질 272
높은 가용성 273
확장성 273
낮은 대기 시간 274
지리적 가용성 274
실패 다루기 275
감시 276
모델 버전 276
A/B 테스트 276
다양한 머신러닝 라이브러리 지원 276
xi 목차
구글 클라우드 ML엔진: 관리 클라우드 인공 지능 서빙 스택 277
Cloud ML Engine 사용의 장점 277
클라우드 ML 엔진 사용 단점 277
분류 API 구축 277
텐서플로우 서빙(Serving) 284
설치 285
KubeFlow 286
파이프라인 289
페어링 289
설치 290
가격에 대한 성능 고려 사항 292
Inference-as-a-Service의 비용 분석 292
자신의 스택을 구축하는 비용 분석 294
요약 295

제10장 TensorFlow.js와 ml5.js를 사용하는 브라우저의 AI
JavaScript 기반 기계 학습 라이브러리: 간략한 역사 300
ConvNetJS 301
Keras.js 302
ONNX.js 302
TensorFlow.js 303
TensorFlow.js Architecture 305
TensorFlow.js를 사용한 사전 훈련된 모델의 실행 306
브라우저의 모델 변환 308
브라우저에서 훈련 309
특징 추출 310
데이터 수집 311
훈련 312
GPU 활용 314
ml5.js 315
PoseNet 317
pix2pix 321
벤치마킹 및 실제 고려 사항 326
모델 크기 326
추론 시간 326
xii 목차
사례 연구 328
준 지휘자 329
TensorSpace 329
Metacar 330
에어비엔비(Airbnb)의 사진 분류 331
GAN Lab 331
요약 332

제11장 Core ML을 사용하는 iOS에서 실시간 객체 분류
모바일 인공 지능 개발을 위한 생명 주기 336
Core ML의 간략한 역사 338
Core ML에 대한 대안 340
텐서플로우 라이트 340
ML Kit 341
Fritz AI 341
애플의 머신러닝 아키텍처 341
도메인 기반 프레임워크 342
ML 프레임워크 343
ML 성능 프리미티브 343
실시간 객체 인식 앱 구축 344
Core ML로 변환 350
케라스로부터 변환 351
텐서플로우로부터 변환 351
Dynamic Model Deployment 352
온 디바이스 훈련 354
연합 학습(Federated Learning) 355
성능 분석(Performance Analysis) 356
아이폰에서 밴치마킹 모델 356
에너지 영향 측정 360
밴치마킹 부하(Load) 362
앱 크기 줄이기 365
모델 번들링 방지 365
양자화 사용 366
Create ML 사용 367
사례 연구 368
xiii 목차
매직 수도쿠(Magic Sudoku) 368
시각 AI(Seeing AI) 369
홈코트(HomeCourt) 370
인스타사버(InstaSaber) + 요퍼핏(YoPuppet) 371
요약 374

제12장 Core ML 및 Create ML을 사용하는 iOS의 Not Hotdog
자료수집 379
접근 1: 데이터 찾기 또는 수집 379
접근 2: Fatkun 크롬 브라우저 확장 380
접근 3: Bing Image Search API를 사용하는 웹 스크레이퍼 383
모델 훈련 384
접근 1: Web UI-기반 Tools 사용하기 384
접근 2: Create ML 사용 388
접근 3: 케라스를 사용한 파인 튜팅(Fine Tuning) 394
Core ML Tools을 사용한 모델 변환 394
iOS 앱 만들기 395
추후 연구 396
요약 396

제13장 음식을 위한 Shazam: 텐서플로우 라이트 및 ML 키트
를 사용하여 안드로이드 앱 개발
음식 분류 앱의 생명 주기 400
텐서플로우 라이트 개요 402
텐서플로우 라이트 아키텍처 405
텐서플로우 라이트로 모델 변환 406
실시간 객체 인식 앱 구축 407
ML Kit + Firebase 414
ML 키트에서 객체 분류 416
ML 키트에서 맞춤형 모델 416
호스트 모델(Hosted Models) 418
호스팅된 모델의 A/B 테스트 422
코드에서 실험 사용 427
iOS 상의 텐서플로우 라이트 427
xiv 목차
성능 최적화(Performance Optimizations) 427
텐서플로우 라이트 변환기로 양자화 428
텐서플로우 모델 최적화 도구 키트 428
Fritz 429
모바일 AI 앱 개발 사이클의 전체 고찰 431
초기 데이터를 수집하는 방법 431
나의 데이터에 레이블을 지정하는 방법 433
나의 모델을 훈련시키는 방법 433
모델을 모바일용 포맷으로 변환하는 방법 433
모델 성과를 달성하는 방법 434
사용자를 위한 멋진 UX를 구축하는 방법은? 434
모델을 사용자에게 제공하는 방법은? 434
모델의 성공을 측정하는 방법 435
모델을 개선하는 방법은? 435
사용자의 스마트폰에 있는 모델을 업데이트하는 방법은? 436
자기 진화 모델 436
사례 연구 438
Lose It! - 다이어트를 위한 앱 438
Pixel 3 폰의 초상화 모드 440
알리바바의 말하는 사람 인식 441
ML 키트의 얼굴 윤곽 441
유튜브 스토리의 실시간 비디오 분활 442
요약 443

제14장 텐서플로우 물체 검색 API로 정확한 고양이 위치
(Purrect Cat Locator) App 구축
컴퓨터 비전 작업의 종류 448
분류(Classification) 448
위치 지정(Localization) 449
검출(Detection) 449
이미지 분할(Segmentation) 450
물체 감지 접근방식 452
미리 제작된 클라우드 기반 물체 감지 APIs 호출 453
이전에 훈련된 모델의 재사용 454
모델 획득 454
xv 목차
모델 구동 테스트 456
기기에 배포하기(Deploying to a Device) 456
코드 없이 맞춤형 감지기 구현 459
물체 감지의 진화 464
성능 고려하기 466
물체 감지의 핵심 용어 467
합집합에 대한 교집합의 비(Intersection over Union) 467
평균의 평균 정밀도(Mean Average Precision) 469
비 최대 억제(Non-Maximum Suppression) 469
텐서플로우 물체 검색 API를 사용하여 사용자 정의 모델 작성 470
데이터 수집 470
데이터 레이블링 473
데이터 전처리 477
모델 검사하기 478
훈련(Training) 480
모델 변환 483
이미지 분할 484
사례 연구 485
스마트 냉장고 485
사람 수 세기 486
Seeing AI 앱에서 얼굴 인식 488
자율주행 자동차 489
요약 490

제15장 제작자 되기: 최첨단에서 임베디드 AI 체험
임베디드 AI 장치의 전망 살펴보기 493
라즈베리파이 495
인텔 모비디우스 뉴럴 컴퓨트 스틱 497
구글 Coral USB 가속기 498
NVIDIA Jetson Nano 500
FPGA + PYNQ 502
FPGAs 503
아두이노 506
임베디드 AI장치의 정성적 비교 508
Raspberry Pi와 함께 작업 511
xvi 목차
구글 Coral USB 가속기를 이용한 속도 향상 513
NVIDIA Jetson Nano을 위한 포트 516
디바이스의 성능 비교 520
사례 연구 521
JetBot 521
지하철 티켓을 받기 위하여 스쿼트 운동하기 522
오이 분류기 524
추가 탐구 525
요약 526

제16장 케라스로 엔드-투-엔드 딥러닝을 이용한 자율주행차
시뮬레이션
자율주행의 간략한 역사 532
딥러닝, 자율주행 및 데이터 문제 533
자율주행의 “Hello, World!” : 시뮬레이션 환경을 통한 운전 536
설정 및 요구 사항 537
데이터 탐색 및 준비 539
관심 영역 식별 542
데이터 늘리기 544
데이터 세트 불균형 및 주행 전략 545
자율주행 모델 학습 550
운전 데이터 생성기 551
모델 정의 554
자율주행 모델 구축 560
추후 연구 565
데이터 세트 확장 565
순차 데이터 훈련 565
강화 학습 566
요약 566

제17장 1시간 이내에 자율자동차 구축: AWS DeepRacer를 이용한 강화학습
강화학습의 간략한 소개 569
DeepRacer를 이용한 실용적인 심층 강화학습 572
첫 번째 강화학습 구축 576
xvii 목차
1 단계: 모델 생성 577
2 단계: 훈련 구성 578
3 단계: 모델 훈련 585
4 단계: 모델의 성능 평가 587
행동 강화 학습 588
강화 학습 시스템이 학습하는 방법 588
강화 학습 이론 592
AWS DeepRacer의 강화 학습 알고리즘 595
DeepRacer를 예로 심층 강화 학습 요약 597
5 단계: 강화 학습 모델 개선 598
AWS DeepRacer 자동차 경주 602
트랙 구축 602
AWS DeepRacer 단일 회전 트랙 템플릿 603
AWS DeepRacer 모델 실행 604
AWS DeepRacer 차량 자율주행 604
추가 탐색 607
DeepRacer 리그 607
향상된 AWS DeepRacer 608
AI 드라이빙 올림픽 608
DIY 로보카 609
로보레이스(Roborace) 609
머신러닝 613
요약 611

부록 컨볼루셔널 뉴럴 네트워크의 단기과정
퍼셉트론 614
활성화 함수 615
뉴럴 네트워크 616
역전파(Backpropagation) 617
뉴럴 네트워크의 단점 618
이미지 분류기의 원하는 속성 618
컨벌루션(Convolution) 619
풀링(Pooling) 619
CNN의 구조 620
추가 실험 621

QuickMenu