한 권으로 끝내는 딥러닝 텐서플로 - 맛보기

Page 1



한 권으로 끝내는 딥러닝 텐서플로


| 표지 설명 | 표지 동물은 대서양홍어Raja clavata입니다. 유럽, 서아프리카, 지중해 근방 심해와 연해에 서식합 니다. 영문 이름은 thornback ray로 등과 꼬리에 뒷방향으로 난 가시에서 유래했습니다. 다른 홍어목, 홍어과 생물과 마찬가지로 평평한 몸에 커다란 날개같이 생긴 가슴지느러미가 달려 있습니다. 해저의 진흙이나 모래 속에서 종종 발견되며, 색깔은 의태를 위해 지역에 따라 달라집니다(밝은 갈색에서 회색까지). 성체는 약 1미터 길이까지 자랍니다. 낮에는 해저에서 휴식을 취하고 밤에 사냥합니다. 해저에 서식하는 게, 새우가 주식이지만, 작 은 물고기도 먹습니다. 암컷은 알주머니를 매년 150개까지 산란하고(평균은 50~75개), 각 알은 4~5개월 후 부화합니다. 알주머니는 단단한 콜라겐 덩어리로, 모서리마다 난 가시의 끈끈한 막으로 해저에 고정됩니다. 종종 빈 알주머니가 해변에 밀려오면 ‘인 어공주의 지갑’이라고 부릅니다. 오라일리 책 표지에 등장하는 동물 대다수는 멸종 위기종이며, 이들 모두 이 세상에 소중한 존재입니다. 이들을 도울 방법 을 알고 싶다면 䵪䵷䵲䵶䵪䵵䵼䴷䵸䵻䵮䵲䵵䵵䶂䴷䵬䵸䵶 을 방문해보세요. 표지 그림은 요제프 마이어Joseph Meyer의 『Meyers Lexikon』에 서 가져왔습니다.

한 권으로 끝내는 딥러닝 텐서플로 회귀분석에서 강화학습까지 최고의 딥러닝 입문서 초판 1쇄 발행 2018년 11월 5일 지은이 바라스 람순다르, 레자 자데 / 옮긴이 장정호, 정하나 / 펴낸이 김태헌 펴낸곳 한빛미디어 (주) / 주소 서울시 서대문구 연희로2길 62 한빛미디어(주) IT출판사업부 전화 02 – 325 – 5544 / 팩스 02 – 336 – 7124 등록 1999년 6월 24일 제25100 – 2017 – 000058호 / ISBN 979 – 11 – 6224 – 122 – 6 93000 총괄 전태호 / 책임편집 이상복 / 기획 이상복 / 편집 백지선 디자인 표지 박정화 내지 김연정 조판 백지선 영업 김형진, 김진불, 조유미 / 마케팅 송경석, 김나예, 이행은 / 제작 박성우, 김정우 이 책에 대한 의견이나 오탈자 및 잘못된 내용에 대한 수정 정보는 한빛미디어(주)의 홈페이지나 아래 이메일로 알려주십시오. 잘못된 책은 구입하신 서점에서 교환해드립니다. 책값은 뒤표지에 표시되어 있습니다. 한빛미디어 홈페이지 www.hanbit.co.kr / 이메일 ask@hanbit.co.kr

2018 Hanbit Media Inc. Authorized Korean translation of the English edition of TensorFlow for Deep Learning, ISBN 9781491980453 © 2018 Reza Zadeh, Bharath Ramsundar This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. 이 책의 저작권은 오라일리와 한빛미디어 (주)에 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 무단 복제를 금합니다.

지금 하지 않으면 할 수 없는 일이 있습니다. 책으로 펴내고 싶은 아이디어나 원고를 메일 ( writer@hanbit.co.kr ) 로 보내주세요. 한빛미디어(주)는 여러분의 소중한 경험과 지식을 기다리고 있습니다.


한 권으로 끝내는 딥러닝 텐서플로


지은이・옮긴이 소개

지은이

바라스 람순다르 Bharath Ramsundar

캘리포니아 대학교 버클리에서 전자공학 컴퓨터 과학 학위를 받았고 수학과 졸업생 대표였다. 현재 스탠퍼드 대학교에서 컴퓨터 과학 박사과정을 밟고 있다. 연구 분야는 딥러닝을 신약 개발에 적용하 는 방법이다. 딥켐DeepChem.io의 리드 개발자이자 창시자로서, 딥켐은 텐서플로 기반의 오픈소스 패 키지로서 신약 개발 분야에서 딥러닝 사용을 대중화하는 것을 목표로 한다. 선정이 까다롭기로 유명 한 허츠Hertz 장학금 지원을 받고 있다. 지은이

레자 자데 Reza Bosagh Zadeh

매트로이드Matroid 창립 CEO이자 스탠퍼드 대학교 부교수. 머신러닝, 분산 컴퓨팅, 이산응용수학을 연구하고 있다. KDD 최고논문상과 진 골룹 우수논문상을 수상한 바 있고, 마이크로소프트와 데이 터브릭스에서 기술자문위원을 역임하기도 했다. 연구 중 트위터의 ‘팔로우 추천’ 알고리즘을 머신러 닝으로 구축했고, 이는 트위터에 머신러닝을 적용한 첫 사례였다. 아파치 스파크의 선형대수 패키지 의 초기 제작자였고, 당시 작업물이 업계 및 학계의 클러스터 컴퓨팅 환경에서 사용되고 있다. 현재 스 탠퍼드 대학교에서 분산 알고리즘과 최적화, 이산수학 및 알고리즘 강의를 개설해 가르치고 있다. 옮긴이 장정호 egnarzhome@gmail.com

네이버 검색 소프트웨어 엔지니어. 2006년에 티맥스에서 애플리케이션/시스템 간 데이터 전송 시 스템 개발을 시작으로, 다음커뮤니케이션에서 데이터 마이닝 업무, SAP에서 칼럼 기반의 인메모리

RDBMS인 HANA 개발에 동참했으며, 그 후 빅데이터 저장/분석 시스템 영역에 관한 연구를 통해 네이버에서 데이터 분석 시스템을 개발을 담당하고 있다. 한빛미디어에서 『하둡 완벽 가이드(4판)』 (2017 ), 『하이브 완벽 가이드』(2013 ) 등을 번역했다. 옮긴이 정하나 jjunghana1@gmail.com

성균관대학교 글로벌경제학과를 졸업하고 삼성전자 무선사업부에서 데이터 분석 기반 마케팅 업무 를 담당하고 있다. 공학 기술과 경영, 인문을 융합한 비즈니스 분석에 관심이 크다. 현재 연세대학 교에서 빅데이터 분석 석사과정을 밟으며 학업과 실무를 병행하고 있다.

4


옮긴이의 말

IT의 발전과 함께 인공지능은 계속해서 매우 빠르게 진화하고 있습니다. 훌륭한 데이터를 가 진 회사에서 이미 일하고 있거나 일할 기회가 있는 개발자라면 하루라도 빨리 인공지능 기술을 익혀야 합니다. 특히 딥러닝 기술은 이미지 인식, 자동 번역, 음성 인식 등 다양하고 복잡한 문 제를 많이 해결해냈으며 계속해서 새로운 모델이 개발되고 있습니다. 역자 또한 이러한 딥러닝 기술을 사용하는 분야에서 근무하면서 문제를 해결해나가고 있으며 개발자들이라면 누구나 딥 러닝에 대한 뜨거운 관심을 가지고 있다는 것을 바로 곁에서 느끼고 있습니다. 이 책은 구글에서 개발 중이며 범용적으로 널리 사용되는 딥러닝 프레임워크인 텐서플로에 대 해 한눈에 파악할 수 있는 책입니다. 딥러닝의 다양한 분야를 다루다 보니 세부적으로 아주 깊 게 다루진 않지만 폭넓은 딥러닝 기술을 빠르게 파악할 수 있습니다. 실무에서 사용할 수 있는 머신러닝 기초 지식을 터득하기 알맞게 구성되었으므로 효과적으로 학습을 모델링하는 데 도 움을 얻을 수 있을 것입니다. 이 책의 저자도 언급한 대로 딥러닝 기술을 익혔다면 인류에게 도움이 되는 방향으로 사용하길 바랍니다. 딥러닝은 양날의 칼입니다. 얼마든지 나쁜 목적으로 활용될 수 있습니다. 딥러닝 기 술이 우리에게 주는 발견의 기쁨을 악용하지 말기 바랍니다. 딥러닝 기술을 사용하며 이 분야 에서 흥분과 열정을 많이 느끼길 바랍니다. 마지막으로 번역에 많은 도움을 준 아내 지은과 딸 세아에게 고마움을 전합니다. 장정호

5


요즘에는 전공을 불문하고 딥러닝, 머신러닝 강의 인기가 뜨겁습니다. 텐서플로 같은 오픈소스 머신러닝 프레임워크가 이러한 인기에 크게 한몫했다고 생각합니다. 텐서플로 덕분에 비전공 자도, 비전문가도 누구나 쉽게 딥러닝을 구현할 수 있게 되었으니까요. 혁신적인 딥러닝 알고리즘을 개발하는 경우라면 뛰어난 프로그래밍 능력과 전문 지식이 필요 하겠지만, 그런 경우가 아니라면 주어진 알고리즘을 이해하고 이를 텐서플로 코드로 구현할 수 만 있으면 됩니다. 더 중요한 것은 기술을 어떻게 활용하고 가치를 만들어내느냐는 것이겠죠. 발전된 하드웨어와 소프트웨어 기술을 토대로, 혁신적인 알고리즘을 어느 분야에 어떻게 활용 할지는 저를 포함한 독자 여러분의 몫이라 기대해봅니다. 많이 도와주신 공역자 장정호 님과 한빛미디어 이상복 님께 감사드립니다. 번역 기간 동안 예 민해진 저를 이해하고 기술 검수까지 적극 도와준 남편 김민호, 존재만으로도 힘이 되는 부모 님께도 감사와 사랑의 말을 전합니다. 정하나

6


이 책에 대하여

이 책은 텐서플로를 통해 머신러닝의 기본을 소개합니다. 텐서플로는 딥러닝을 위한 구글의 새 로운 소프트웨어 라이브러리로서, 복잡한 딥러닝 아키텍처를 엔지니어가 쉽게 설계하고 구현 할 수 있게 합니다. 여러분은 텐서플로를 사용하여 이미지의 객체를 감지하고 인간의 텍스트를 이해하고 임상 의약의 특성을 예측하는 시스템을 구축하는 방법을 배울 것입니다. 또한 텐서 미적분학을 수행하는 시스템으로서의 텐서플로의 잠재력을 이해하는 직관을 얻을 것입니다. 그리고 기존 머신러닝 범위 밖에 있는 작업에 텐서플로를 사용하는 법도 배울 것입니다. 강조하고 싶은 점이 있습니다. 이 책은 철저히 실무자를 위해 쓰인 딥러닝 책이라는 점입니다. 실용적인 예제를 통해 기본 개념을 설명하고, 머신러닝의 기본에 대한 이해를 기초부터 쌓게 합니다. 이 책의 대상 독자는 소프트웨어 시스템 설계에 익숙한 실무 개발자로서 반드시 학습 시스템을 만드는 개발자일 필요는 없습니다. 때때로 몇 가지 기본적인 선형대수학과 미적분학 지식을 사용하겠지만 필요한 모든 기초 지식은 책에서 살펴볼 것입니다. 또한 이 책은 스크립 트를 짜는 데 익숙하지만 반드시 학습 알고리즘을 설계할 필요는 없는 과학자나 기타 전문가에 게도 유용할 것입니다. 책에서 사용한 예제 코드는 깃허브 저장소에서 다운로드할 수 있습니다. 䵱䵽䵽䵹䵼䵃䴸䴸䵰䵲䵽䵱䵾䵫䴷䵬䵸䵶䴸䵶䵪䵽䵻䵸䵲䵭䴸䵭䵵䶀䵲䵽䵱䵽䵯

감사의 말 바라스는 밤에도 주말에도 이 책을 쓸 수 있게 해준 박사학위 지도교수에게 감사의 마음을 전 하고 싶습니다. 레자는 소프트웨어와 컴퓨터 과학의 기반을 이루는 오픈소스 커뮤니티에 감사를 표합니다. 오 픈소스 소프트웨어는 인간 지식이 지금껏 창조한 것 중 가장 큰 결정체이며, 그 바탕인 커뮤니 티가 없었다면 이 책을 쓰는 건 불가능했을 것입니다.

7


CONTENTS

지은이・옮긴이 소개 .......................................................................................................... 4 옮긴이의 말 ...................................................................................................................... 6 이 책에 대하여 .................................................................................................................. 8

CHAPTER

1 딥러닝 소개 1.1 머신러닝이 컴퓨터 과학을 집어삼키다 ............................................................................. 15 1.2 딥러닝 기본 요소 ........................................................................................................... 17 1.2.1 완전연결 계층......................................................................................................... 17 1.2.2 합성곱 계층............................................................................................................ 18 1.2.3 순환 신경망 계층 ..................................................................................................... 19 1.2.4 장단기 기억 셀........................................................................................................ 20

1.3 딥러닝 아키텍처 ............................................................................................................ 21 1.3.1 LeNet .................................................................................................................. 21 1.3.2 AlexNet ................................................................................................................ 22 1.3.3 ResNet ................................................................................................................ 22 1.3.4 신경 캡셔닝 모델 ..................................................................................................... 23 1.3.5 구글 신경망 기계번역 .............................................................................................. 24 1.3.6 원샷 모델............................................................................................................... 25 1.3.7 알파고................................................................................................................... 27 1.3.8 생성적 적대 신경망 .................................................................................................. 28 1.3.9 신경 튜링머신......................................................................................................... 29

1.4 딥러닝 프레임워크 ........................................................................................................ 30 1.4.1 텐서플로의 한계...................................................................................................... 31

1.5 마치며........................................................................................................................... 32

8


CHAPTER

2 텐서플로 기초 소개 2.1 텐서 소개 ...................................................................................................................... 34 2.1.1 스칼라, 벡터, 행렬.................................................................................................... 34 2.1.2 행렬 수학............................................................................................................... 38 2.1.3 텐서...................................................................................................................... 40 2.1.4 물리학의 텐서......................................................................................................... 41 2.1.5 수학 부연 설명........................................................................................................ 43

2.2 텐서플로 기초 계산 ........................................................................................................ 44 2.2.1 텐서플로 설치와 시작 ............................................................................................... 44 2.2.2 상수 텐서 초기화 ..................................................................................................... 45 2.2.3 난수 텐서 만들기 ..................................................................................................... 46 2.2.4 텐서 추가와 확장 ..................................................................................................... 48 2.2.5 행렬 연산............................................................................................................... 48 2.2.6 텐서 형.................................................................................................................. 50 2.2.7 텐서 형상 조작........................................................................................................ 51 2.2.8 브로드캐스팅.......................................................................................................... 52

2.3 명령형과 선언형 프로그래밍 ........................................................................................... 54 2.3.1 텐서플로 그래프...................................................................................................... 55 2.3.2 텐서플로 세션......................................................................................................... 56 2.3.3 텐서플로 변수......................................................................................................... 57

2.4 마치며........................................................................................................................... 59

CHAPTER

3 텐서플로를 사용한 선형 및 로지스틱 회귀 3.1 수학 복습 ...................................................................................................................... 62 3.1.1 함수와 미분 가능성 .................................................................................................. 62 3.1.2 손실 함수............................................................................................................... 64

9


CONTENTS

3.1.3 경사 하강법............................................................................................................ 69 3.1.4 자동 미분 시스템 ..................................................................................................... 72

3.2 텐서플로를 사용한 학습.................................................................................................. 73 3.2.1 토이 데이터셋 만들기 ............................................................................................... 73 3.2.2 새로운 텐서플로 개념 ............................................................................................... 79

3.3 텐서플로에서 선형 모델 및 로지스틱 모델 학습하기 ......................................................... 84 3.3.1 텐서플로의 선형회귀 ................................................................................................ 84 3.3.2 텐서플로의 로지스틱 회귀 ......................................................................................... 93

3.4 마치며........................................................................................................................... 99

CHAPTER

4 완전연결 딥 네트워크 4.1 완전연결 딥 네트워크란? ............................................................................................ 101 4.2 완전연결 네트워크에서의 ‘뉴런’ ................................................................................... 104 4.2.1 오차역전파법으로 완전연결 네트워크 학습 ................................................................ 106 4.2.2 일반근사정리....................................................................................................... 107 4.2.3 왜 딥 네트워크인가? ............................................................................................. 108

4.3 완전연결 신경망 학습 .................................................................................................. 109 4.3.1 학습 가능한 표현 .................................................................................................. 109 4.3.2 활성화................................................................................................................ 110 4.3.3 완전연결 네트워크의 기억 ...................................................................................... 111 4.3.4 정규화................................................................................................................ 111 4.3.5 완전연결 네트워크 학습 ......................................................................................... 115

4.4 텐서플로 구현............................................................................................................. 115 4.4.1 딥켐 설치............................................................................................................ 116 4.4.2 Tox21 데이터 집합............................................................................................... 116 4.4.3 미니배치 플레이스홀더 입력 ................................................................................... 117 4.4.4 은닉층 구현......................................................................................................... 118

10


4.4.5 은닉층에 드롭아웃 추가 ......................................................................................... 119 4.4.6 미니배치 구현하기 ................................................................................................ 120 4.4.7 모델 정확도 평가 .................................................................................................. 121 4.4.8 텐서보드를 사용해 모델 수렴 추적 ........................................................................... 122

4.5 마치며........................................................................................................................ 124

CHAPTER

5 하이퍼파라미터 최적화 5.1 모델 평가 및 하이퍼파라미터 최적화 ............................................................................ 126 5.2 지표, 지표, 지표.......................................................................................................... 128 5.2.1 이진 분류 지표..................................................................................................... 128 5.2.2 멀티클래스 분류 지표 ............................................................................................ 131 5.2.3 회귀 지표............................................................................................................ 133

5.3 하이퍼파라미터 최적화 알고리즘.................................................................................. 134 5.3.1 기준선 설정하기................................................................................................... 134 5.3.2 대학원생 하강법................................................................................................... 137 5.3.3 그리드 탐색 ........................................................................................................ 138 5.3.4 랜덤 하이퍼파라미터 탐색 ..................................................................................... 139 5.3.5 독자를 위한 과제 .................................................................................................. 140

5.4 마치며 ...................................................................................................................... 141

CHAPTER

6 합성곱 신경망 6.1 합성곱 아키텍처 소개 .................................................................................................. 144 6.1.1 지역 수용 영역..................................................................................................... 144 6.1.2 합성곱 커널......................................................................................................... 146 6.1.3 풀링 계층............................................................................................................ 148 6.1.4 합성곱 네트워크 구축 ............................................................................................ 149

11


CONTENTS

6.1.5 팽창된 합성곱...................................................................................................... 150

6.2 합성곱 네트워크 애플리케이션 ..................................................................................... 151 6.2.1 객체 탐지와 지역화 ............................................................................................... 151 6.2.2 이미지 조각화...................................................................................................... 152 6.2.3 그래프 합성곱...................................................................................................... 152 6.2.4 변분 오토인코더로 이미지 생성 ............................................................................... 155

6.3 텐서플로 합성곱 네트워크 학습.................................................................................... 159 6.3.1 MNIST 데이터 집합 ............................................................................................. 159 6.3.2 MNIST 적재 ....................................................................................................... 160 6.3.3 텐서플로 합성곱 기본 요소 ..................................................................................... 163 6.3.4 합성곱 아키텍처................................................................................................... 165 6.3.5 학습된 모델 평가 .................................................................................................. 169 6.3.6 도전 과제............................................................................................................ 172

6.4 마치며........................................................................................................................ 172

CHAPTER

7 순환 신경망 7.1 순환 아키텍처 개요 .................................................................................................... 174 7.2 순환 셀 ...................................................................................................................... 176 7.2.1 장단기 기억(LSTM) .............................................................................................. 177 7.2.2 게이트 순환 유닛(GRU)......................................................................................... 178

7.3 순환 모델 애플리케이션............................................................................................... 179 7.3.1 순환 네트워크에서 샘플링하기 ............................................................................... 179 7.3.2 seq2seq 모델 .................................................................................................... 179

7.4 신경 튜링머신............................................................................................................. 182 7.5 순환 신경망을 사용하여 실제 작업하기 ......................................................................... 184 7.6 펜 트리뱅크 말뭉치 처리하기 ...................................................................................... 184 7.6.1 전처리를 위한 코드 ............................................................................................... 186 7.6.2 텐서플로에 데이터 로딩하기 ................................................................................... 188

12


7.6.3 기본적인 순환 아키텍처 ......................................................................................... 190 7.6.4 독자를 위한 과제 ................................................................................................. 192

7.7 마치며........................................................................................................................ 192

CHAPTER

8 강화학습 8.1 마르코프 결정 과정 ..................................................................................................... 199 8.2 강화학습 알고리즘 ...................................................................................................... 201 8.2.1 Q 학습 ............................................................................................................... 202 8.2.2 정책 학습............................................................................................................ 203 8.2.3 비동기 학습......................................................................................................... 204

8.3 강화학습의 한계 ......................................................................................................... 205 8.4 틱택토 게임 ................................................................................................................ 206 8.4.1 객체지향............................................................................................................. 207 8.4.2 추상 환경............................................................................................................ 208 8.4.3 틱택토 환경......................................................................................................... 208 8.4.4 계층 추상화......................................................................................................... 212 8.4.5 계층 그래프 정의 .................................................................................................. 215

8.5 A3C 알고리즘 ............................................................................................................ 220 8.5.1 A3C 손실 함수 .................................................................................................... 225 8.5.2 작업자 정의......................................................................................................... 226 8.5.3 정책 학습............................................................................................................ 230 8.5.4 도전 과제............................................................................................................ 232

8.6 마치며........................................................................................................................ 232

CHAPTER

9 대규모 딥 네트워크 학습 9.1 딥 네트워크를 위한 커스텀 하드웨어 ............................................................................ 233

13


CONTENTS

9.2 CPU 학습 ................................................................................................................. 234 9.2.1 GPU 학습 .......................................................................................................... 235 9.2.2 텐서 처리 장치..................................................................................................... 237 9.2.3 필드 프로그래머블 게이트 어레이 ............................................................................ 238 9.2.4 뉴로모픽 칩......................................................................................................... 238

9.3 분산 딥 네트워크 학습................................................................................................. 240 9.3.1 데이터 병렬화 ..................................................................................................... 240 9.3.2 모델 병렬화......................................................................................................... 242

9.4 다중 GPU를 사용한 CIFAR-10 데이터 병렬 학습......................................................... 243 9.4.1 데이터 다운로드 및 로딩 ........................................................................................ 244 9.4.2 아키텍처 자세히 살펴보기 ...................................................................................... 246 9.4.3 다중 GPU로 학습하기........................................................................................... 249 9.4.4 독자를 위한 과제 .................................................................................................. 252

9.5 마치며........................................................................................................................ 252

CHAPTER

10 딥러닝의 미래 10.1 기술 산업 밖의 딥러닝 .............................................................................................. 254 10.1.1 제약 산업.......................................................................................................... 254 10.1.2 법률................................................................................................................. 255 10.1.3 로봇공학........................................................................................................... 255 10.1.4 농업................................................................................................................. 256

10.2 윤리적인 딥러닝 사용 ............................................................................................... 257 10.3 인공일반지능이 곧 도래할까요? ................................................................................ 258 10.4 이제 무엇을 해야 할까요? ......................................................................................... 259 찾아보기 ................................................................................................................................................... 261

14


CHAPTER

1

딥러닝 소개

딥러닝은 기술 산업에 혁명을 일으켰습니다. 최신 기계번역, 검색 엔진, 컴퓨터 비서assistant 모 두 딥러닝으로 동작합니다. 이러한 추세는 딥러닝이 로봇, 제약, 에너지, 그 외 현대 기술 분야 로 뻗어나가면서 지속될 것입니다. 현대 소프트웨어 전문가에게 딥러닝 원리의 실무 지식 개발 은 급속도로 중요해질 것입니다. 이 장에서는 딥러닝의 역사를 소개하고 딥러닝이 학계 및 업계에 미친 광범위한 영향을 살펴봅 니다. 이어서 매우 유명한 딥러닝 응용 사례 몇 가지를 소개합니다. 핵심적인 딥러닝 기본 요소 와 주요 머신러닝 아키텍처를 함께 설명할 것입니다. 마지막으로 이후 몇 년간 딥러닝이 나아 갈 방향을 간략히 전망해보고 다음 여러 장에 걸쳐 텐서플로에 대해 깊게 살펴보겠습니다.

1.1 머신러닝이 컴퓨터 과학을 집어삼키다 최근까지 소프트웨어 엔지니어는 많은 기본 알고리즘(그래프 검색, 정렬, 데이터베이스 질의 등)을 배우기 위해 학교에 다녔습니다. 졸업 후에는 실무에 뛰어들어 학교에서 배운 알고리즘 을 시스템에 적용합니다. 오늘날 디지털 경제는 여러 세대에 걸쳐 엔지니어가 기본 알고리즘을 공들여 결합해 만든 복잡한 시스템을 기반으로 만들어진 것입니다. 하지만 이러한 시스템 대부 분은 스스로 조정adapt할 수 없습니다. 고도로 숙련된 엔지니어가 전체 설정과 재설정을 해야 하 며 시스템은 고장나기 쉽습니다.

1장 딥러닝 소개

15


머신러닝은 시스템을 동적으로 조정할 수 있어 소프트웨어 개발 분야를 변화시킬 것입니다. 배 포된 머신러닝 시스템은 예제 데이터베이스로부터 원하는 동작을 학습할 수 있습니다. 게다가 이 시스템은 주기적으로 새로운 데이터가 들어올 때마다 재학습이 가능합니다. 머신러닝을 사 용한 매우 정교한 소프트웨어 시스템은 많은 코드 수정 없이 (학습 데이터 수정만으로) 동작을 크게 바꿀 수 있습니다. 머신러닝 도구와 배포가 쉬워지면 쉬워질수록 이러한 추세는 가속될 것입니다. 소프트웨어 엔지니어링 시스템의 동작이 변화함에 따라 소프트웨어 엔지니어의 역할도 변할 것입니다. 어떤 점에서 이 변화는 프로그래밍 언어의 발전에 따른 변화와 비슷합니다. 최초의 컴퓨터는 많은 공을 들여 프로그래밍되었습니다. 배선망으로 서로 연결했습니다. 시간이 흐르 자 컴퓨터에 천공카드를 설치해 하드웨어 변경 없이 새로운 프로그램을 만들 수 있게 되었습니 다. 천공카드 시대에 이어 최초의 어셈블리어가 탄생했습니다. 다음으로 포트란 또는 리스프 같은 고수준의 언어가 등장했습니다. 연이은 기술 발전은 미리 코딩된 알고리즘으로 구성된 복 잡한 생태계와 파이썬 같은 고수준의 프로그래밍 언어를 만들어냈습니다. 현대의 많은 컴퓨터 과학은 심지어 자동 생성된 코드를 사용합니다. 앱 개발자는 안드로이드 스튜디오 같은 도구를 사용해 만들려는 코드를 자동 생성합니다. 계속된 단순화 물결로 진입 장벽이 낮아지면서 컴퓨 터 과학의 영역은 광범위해졌습니다. 머신러닝은 진입 장벽을 훨씬 더 낮출 것입니다. 머지않아 프로그래머는 코드 한 줄 작성하지 않고 학습 데이터 변경만으로 시스템 동작을 바꿀 것입니다. 사용자 측면에서 프로그래머가 아 닌 사람도 알렉사나 시리 같은 구어 및 자연어 이해를 기반으로 한 시스템을 통해 복잡한 연산 을 할 수 있을 것입니다. 뿐만 아니라 머신러닝을 사용한 시스템은 에러에 더욱 강건할robust 겁 니다. 모델을 재학습할 수 있다는 것은 코드베이스는 줄고 유지 보수성은 향상된다는 뜻입니 다. 즉 머신러닝은 소프트웨어 엔지니어의 역할을 완전히 뒤엎을 것입니다. 오늘날의 프로그래 머는 머신러닝 시스템이 어떻게 학습하는지를 이해하고 머신러닝 시스템에서 발생하는 오류의 종류를 알아야 합니다. 또한 머신러닝 시스템에 깔려 있는 (기존 소프트웨어 설계 유형과는 방 식과 형태가 매우 다른) 설계 유형을 이해해야 합니다. 그리고 정교한 딥 아키텍처가 왜 학습 도중 잘못된 행동을 하는지 이해하기 위해 텐서 미적분학을 충분히 알아야 합니다. 머신러닝 (이론과 실습)은 앞으로 10년 동안 모든 컴퓨터 과학자와 소프트웨어 엔지니어가 이해해야 할 중요한 기술이 될 것입니다.

16

한 권으로 끝내는 딥러닝 텐서플로


이 장의 나머지 부분에서는 최신 딥러닝의 기본에 대해 빠르고 간략히 살펴봅니다. 여기서 다 루는 모든 주제에 대한 자세한 설명은 이 책의 나머지 장에서 다룹니다.

1.2 딥러닝 기본 요소 대부분의 딥 아키텍처는 한정된 아키텍처 기본 요소primitive를 결합하고 또 결합해서 만듭니 다. 일반적으로 신경망 계층neural network layer이라고 불리는 기본 요소는 딥 네트워크의 구성요소 입니다. 신경망 계층은 이 책의 나머지 부분에서 자세히 소개하겠습니다. 이번 절에

building block

서는 여러 딥 네트워크에서 발견되는 공통 모듈을 간략히 살펴봅니다. 여기서는 공통 모듈에 대해 자세히 설명하지 않습니다. 대신 여러분의 입맛을 돋우기 위해 정교한 딥 아키텍처의 구 성요소를 빠르게 훑어봅니다. 딥러닝 기술은 이러한 모듈을 결합하고 또 결합하는 것이며 이 책은 딥러닝 전문가로의 여정을 시작하려는 여러분에게 언어의 알파벳과 같은 기초적인 것을 보여주고자 합니다.

1.2.1 완전연결 계층 완전연결 네트워크는 입력 목록을 출력 목록으로 변환합니다. 모든 입력값이 모든 출력값에 영 향을 줄 수 있기 때문에 이러한 변환을 완전연결fully connected이라고 합니다. 완전연결 계층은 비 교적 적은 입력에 대해서도 많은 학습 매개변수가 필요하지만, 입력에 정해진 구조가 없다는 가정이 큰 이점입니다. [그림 1-1]은 완전연결 계층의 개념을 설명합니다.1

1 역자주_ 책에 사용된 컬러 그림은 다음 주소에서 다운로드할 수 있습니다. 䵱䵽䵽䵹䵃䴸䴸䶀䶀䶀䴷䵱䵪䵷䵫䵲䵽䴷䵬䵸䴷䵴䵻䴸䵼䵻䵬䴸䴺䴹䴺䴻䴻

1장 딥러닝 소개

17


그림 1-1 완전연결 계층. 왼쪽 원으로 들어오는 화살표는 입력을 나타내고 오른쪽 원에서 나가는 화살표는 출력을 나타 냅니다. 상호 연결된 선의 두께는 학습된 가중치의 크기를 나타냅니다. 완전연결 계층은 학습된 규칙을 통해 입력을 출력 으로 변환합니다.

1.2.2 합성곱 계층 합성곱 네트워크convolutional network는 특별한 공간 구조를 취하는 입력을 가정합니다. 특히 공간상 서로 가까이 있는 입력은 의미적으로 관련이 있다고 가정합니다. 이러한 가정은 이미지에 가장 적합한데, 이는 서로 가까이 있는 픽셀은 의미적으로 연결되어 있기 가능성이 크기 때문입니 다. 따라서 합성곱 계층convolutional layer은 이미지 처리를 위한 딥 아키텍처에 폭 넓게 사용됩니다. [그림 1-2]는 합성곱 계층의 개념을 설명합니다.

18

한 권으로 끝내는 딥러닝 텐서플로


그림 1-2 합성곱 계층. 왼쪽은 입력 데이터를 나타내며 오른쪽은 출력을 나타냅니다. 이 경우 입력 형상은 (32, 32, 3) 입니다. 즉 입력 데이터는 32×32픽셀의 3가지 색상 채널을 지닌 RGB 이미지입니다. 입력 데이터에서 강조된 부분은 ‘지역 수용 영역’으로 출력 데이터의 강조된 영역을 만들기 위해 함께 처리되는 입력 그룹입니다.

완전연결 계층이 목록을 목록으로 변환하는 것처럼 합성곱 계층은 이미지를 이미지로 변환합 니다. 결과적으로 사진 애플리케이션으로 이미지에 예술 효과를 적용하는 것과 같은 복잡한 이 미지 변환에 합성곱 계층을 사용할 수 있습니다.

1.2.3 순환 신경망 계층 순환 신경망recurrent neural network ( RNN ) 계층은 입력 시퀀스sequence로 신경망을 학습시키는 기본 요

소입니다. 이 계층은 데이터를 학습할 수 있는 정의된 갱신 규칙update rule에 따라 입력이 단계적 으로 전개된다고 가정합니다. 이 갱신 규칙은 이전에 발생한 모든 상태를 반영하므로 시퀀스에 서 다음 상태를 예측할 수 있게 됩니다. [그림 1-3]은 RNN을 설명합니다.

펼치기

그림 1-3 순환 신경망(RNN). 네트워크 아랫부분으로 입력값이 투입되고, 네트워크 위로 출력값이 나옵니다. W는 (모든 타임 스텝에 공유되는) 학습된 변환을 나타냅니다. 왼쪽 그림은 순환 신경망의 개념을 나타낸 것이며 오른쪽 그림은 이 를 펼쳐서 서로 다른 타임 스텝에서 입력값이 어떻게 처리되는지 보여줍니다.

1장 딥러닝 소개

19


RNN 계층은 데이터로부터 이러한 갱신 규칙을 학습할 수 있습니다. 결과적으로 RNN은 언어 모델링과 같은 작업에 매우 유용합니다. 이전 기록으로부터 사용자가 타이핑할 다음 단어를 예 측하는 시스템 구축을 예로 들 수 있습니다.

1.2.4 장단기 기억 셀 앞 절에서 설명한 RNN 계층은 이론적으로 임의의 시퀀스 갱신 규칙을 학습할 수 있습니다. 하 지만 실제로 먼 과거의 영향은 학습할 수 없습니다. 정교한 언어 모델링을 위해서는 먼거리의 영향이 매우 중요한데 복잡한 문장은 멀리 떨어진 단어들의 관계에 따라 의미가 달라질 수 있 기 때문입니다. 장단기 기억long short-term memory (LSTM ) 셀은 RNN 계층을 변형한 것으로 먼 과거 에서 온 신호를 현재로 전달될 수 있도록 해줍니다. [그림 1-4]는 LSTM 셀을 나타냅니다.

출력 게이트 입력 게이트

삭제 게이트

그림 1-4 장단기 기억(LSTM) 셀. LSTM 셀은 내부적으로 과거의 영향을 보존하여 기본 RNN의 학습 능력을 크게 향 상시키는 일련의 특별한 설계 구조를 가지고 있습니다. 이 그림은 LSTM의 다양한 형태 중 하나입니다.

20

한 권으로 끝내는 딥러닝 텐서플로


1.3 딥러닝 아키텍처 앞 절에서 다룬 딥러닝 기본 요소를 결합한 수백 가지의 서로 다른 딥러닝 모델이 있습니다. 이 들 아키텍처 중 일부는 역사적으로 중요한 의미가 있습니다. 또 다른 일부는 새로운 설계를 제 시해 딥러닝이 할 수 있는 것에 대한 인식을 변화시켰습니다. 이번 절은 딥러닝 아키텍처 중 학계에 영향을 준 몇 가지를 엄선하여 소개합니다. 여기서 설명 하는 아키텍처는 일부일 뿐이며 전부가 아닙니다. 여기서 설명하지 않은 중요한 모델들이 이 시간에도 논문으로 발표되고 있을 것입니다.

1.3.1 LeNet LeNet 아키텍처는 최초로 널리 알려진 ‘심층’ 합성곱 아키텍처임이 틀림없을 것입니다. 이 는 1988년 소개되어 문서용 광학 문자 인식optical character recoginition ( OCR )에 사용되었습니다.

LeNet의 성능은 우수했으나 당시 컴퓨터 하드웨어 사양으로 LeNet 아키텍처를 계산하기에는 비용이 너무 많이 들었습니다. 그래서 이 디자인은 만들어진 후 몇십 년 동안 (상대적으로) 빛 을 보지 못했습니다. [그림 1-5]는 LeNet 아키텍처를 설명합니다.

입력

합성곱층1

합성곱

풀링층1

서브 샘플

합성곱층2

합성곱

풀링층2

서브 샘플

은닉층4

합성곱

출력

완전연결

그림 1-5 이미지 처리를 위한 LeNet 아키텍처. 1988년에 소개된 이 모델은 이미지 처리를 위한 최초의 심층 합성곱 모델입니다.

1장 딥러닝 소개

21


1.3.2 AlexNet ILSVRCImageNet Large Scale Visual Recognition Challenge는 시각 인식 시스템의 성능 개선을 겨루는 대회 로 2010년 처음 개최되었습니다. 주최측은 무수히 많은 이미지를 서로 관련 있는 객체별로 분 류하기 위해 요청자requester와 작업자worker를 이어주는 온라인 플랫폼인 아마존 메커니컬 터크 Amazon Mechanical Turk

를 사용했습니다. 아마존 메커니컬 터크를 통해 전보다 훨씬 많은 데이터를

수집할 수 있었습니다. 처음 2년 동안은 HOG와 SIFT 피처 같은 수동으로 시각적 피처를 추출하는 전통적 머신러닝 시스템이 우세했습니다. 2012년에는 강력한 그래픽 처리 장치graphics processing unit ( GPU )를 사 용하며 LeNet 아키텍처를 변형한 AlexNet 아키텍처가 오류율을 경쟁팀의 절반 수준으로 낮 추며 압도적인 승리를 거두었습니다. 이 승리는 컴퓨터 비전에서 딥러닝 아키텍처를 사용하는 (초기의) 추세를 더욱 가속화시켰습니다. [그림 1-6]은 AlexNet 아키텍처를 나타냅니다.

완전연결 완전연결 완전연결

최대 풀링

최대 풀링

최대 풀링 스트라이드 4

그림 1-6 이미지 처리를 위한 AlexNet 아키텍처. AlexNet 아키텍처는 ILSVRC 2012 우승작으로 합성곱 아키텍처 에 대한 관심을 다시 불러일으켰습니다.

1.3.3 ResNet 합성곱 아키텍처는 2012년부터 꾸준히 ILSVRC에서 (그리고 여러 많은 컴퓨터 비전 대회에서 도) 우승을 차지했습니다. 매년 대회가 열릴 때마다 우승작의 아키텍처 깊이는 깊어지고 복잡 해졌습니다. ILSVRC 2015 우승작인 ResNet 아키텍처는 특히나 주목할 만합니다. 8개 계층

22

한 권으로 끝내는 딥러닝 텐서플로


으로 구성된 AlexNet 아키텍처와 달리 ResNet 아키텍처는 무려 130개의 계층으로 깊이를 늘 렸습니다. 역사적으로 매우 깊은 딥러닝은 학습하기 어려웠습니다. 네트워크의 깊이가 깊어지면 기울기 가 소실되는 문제vanishing gradients problem가 발생하기 때문입니다. 신호는 네트워크를 따라 진행하 면서 점차 감소되고 결국 학습은 약화됩니다. 이러한 감쇠attenuation는 수학적으로 설명할 수 있 으며 계층이 추가될수록 신호의 강도는 급격히 감소해 네트워크의 유효 깊이가 제한됩니다. 감쇠를 제어하기 위해 ResNet은 우회 연결bypass connection을 도입했습니다. 이러한 연결을 통해 깊은 계층의 신호 중 일부는 약화되지 않고 네트워크를 통과하여, 깊이가 깊은 신경망도 효과 적으로 학습할 수 있게 되었습니다. [그림 1-7]은 ResNet 우회 연결을 보여줍니다.

합성곱 계층 항등 연결 합성곱 계층

그림 1-7 ResNet 셀. 우측의 항등 연결을 통해 입력값은 변형되지 않고 셀을 통과합니다. 이는 매우 깊은 합성곱 아키 텍처의 효과적인 학습을 가능하게 합니다.

1.3.4 신경 캡셔닝 모델 실무자들은 딥러닝의 기본 요소 사용에 더욱 익숙해지면서 기본 모듈을 서로 맞춰보고 혼합하 여 기본적인 물체 감지object detection보다 복잡한 작업을 할 수 있는 고차원의 시스템을 만들고자 했습니다. 신경 캡셔닝 시스템neural captioning systems은 자동으로 이미지에 캡션을 생성하는 시스템입니다. 이 미지에서 정보를 추출하는 합성곱 신경망과 이미지에 대한 설명문을 생성하는 LSTM 계층을 결합하여 이미지에 캡션을 생성합니다. 전체 시스템은 종단간end-to-end 학습을 합니다. 즉 주어

1장 딥러닝 소개

23


진 이미지에 대한 설명문을 만들기 위해 합성곱 신경망과 LSTM 네트워크는 함께 학습합니다. 이 종단간 학습은 오늘날의 딥러닝 시스템을 강화시킨 핵심 혁신 중 하나인데 이는 입력값에 대한 복잡한 전처리 과정의 필요성을 줄여주었기 때문입니다. 딥러닝을 사용하지 않는 이미지 캡셔닝 모델은 SIFT와 같은 복잡한 이미지 피처 추출 방법을 사용해야 했는데, 이 모델은 캡션 생성기와 함께 학습될 수 없었습니다. [그림 1-8]은 신경 캡셔닝 모델을 설명합니다.

1. 입력 이미지

2. 합성곱 피처 추출 (14×14피처 맵)

3. 집중 메커니즘을 가진 RNN을

4. 단어 단위의 생성

이미지에 적용 그림 1-8 신경 캡셔닝 아키텍처. 합성곱 신경망을 통해 입력 이미지에서 관련된 피처를 추출합니다. 그다음 순환 신경망 으로 설명문을 생성합니다.

1.3.5 구글 신경망 기계번역 구글 신경망 기계번역Google Neural Machine Translation (GNMT ) 시스템은 종단간 학습 패러다임을 사 용한 번역 시스템으로 출발어source language를 문장 단위로 가져와 도착어target language로 번역합니 다. GNMT 시스템은 LSTM의 핵심 구성요소를 사용하며 이를 여러 층으로 쌓아 방대한 양의 번역된 문장 데이터셋을 학습합니다. 최종 아키텍처는 인간과 기계번역 간의 차이를 최대 60% 까지 줄이며 기계번역에 획기적인 발전을 가져왔습니다. [그림 1-9]는 GNMT 아키텍처를 설 명합니다.

24

한 권으로 끝내는 딥러닝 텐서플로


인코더 LSTM

소프트맥스 디코더 LSTM

8개 계층

집중 모델

그림 1-9 구글 신경망 기계번역 시스템(GNMT)은 순환 신경망 아키텍처로 입력 문장을 처리하고 두 번째 순환 신경망 아키텍처를 통해 번역 문장을 생성합니다.

1.3.6 원샷 모델 원샷 학습one-shot learning은 아마도 머신러닝 및 딥러닝에서 가장 흥미롭고 새로운 아이디어일 것 입니다. 일반적으로 대부분의 딥러닝 기술은 의미 있는 행동을 학습하기 위해 매우 많은 양의 데이터를 필요로 합니다. 예를 들어 AlexNet 아키텍처는 시각적 물체 감지기를 학습시키기 위 해 대규모의 ILSVRC 데이터셋을 사용했습니다. 하지만 인지과학의 많은 연구를 보면 인간은 단지 몇 가지 예시로도 복잡한 개념을 배울 수 있다고 합니다. 처음 기린을 배우는 아기를 예로 들어봅시다. 동물원에서 한 마리 기린을 본 아기는 그 순간부터 눈으로 보는 모든 기린을 인식 하도록 학습할 수 있습니다. 최근 딥러닝의 발전은 이와 유사한 학습 성과를 낼 수 있는 아키텍처를 만들기 시작했습니다. 어떤 개념에 대해 단지 몇 가지 예만 주어져도(단, 부가 정보는 충분히 제공됨), 이 시스템은 매우 적은 데이터로도 의미 있는 예측을 할 수 있도록 학습할 수 있습니다. 최근 한 논문은 아 기들은 학습할 수 없는 맥락(예를 들어 신약 개발)도 원샷 아키텍처는 학습할 수 있다는 것을 보여주었습니다. [그림 1-10]은 신약 개발을 위한 원샷 아키텍처입니다.

1장 딥러닝 소개

25


새로운 화합물

화합물

스티렌 옥사이드

데이터셋

도파민

토실산

카페인

에탄올

리튬 이온

레이블

구조

유사성

예측

그림 1-10 원샷 아키텍처는 각각의 분자를 벡터로 변환하기 위해 합성곱 네트워크를 사용합니다. 그리고 스티렌 옥사이 드 벡터를 실험 데이터셋의 벡터들과 비교합니다. 가장 유사한 데이터(토실산)의 레이블로 예측합니다.

26

한 권으로 끝내는 딥러닝 텐서플로


1.3.7 알파고 바둑은 아시아에서 매우 영향력 있는 오랜 역사를 지닌 보드게임입니다. 컴퓨터가 바둑을 두 게 하는 것은 1960년대 후반부터 컴퓨터 과학의 주된 도전이었습니다. 1997년 체스 그랜드마 스터인 가리 카스파로프를 이긴 컴퓨터 체스 시스템 딥 블루Deep Blue의 기술은 바둑으로까지 확 장되지 못했습니다. 그 이유 중 하나는 바둑이 체스보다 훨씬 더 큰 판을 가지고 있기 때문입 니다. 체스판의 크기는 8×8인 반면 바둑판의 크기는 19×19입니다. 바둑은 하나의 수당 훨씬 더 다양한 이동을 할 수 있기 때문에 바둑의 경우의 수 트리는 더욱더 빠르게 확장합니다. 결국 정상적인 바둑 게임을 하기에는 컴퓨터 하드웨어로 일일이 모든 경우의 수를 탐색하기가 불가 능했습니다. [그림 1-11]은 바둑판을 보여줍니다.

그림 1-11 바둑판. 바둑 기사는 19×19 바둑판 위에 백돌과 흑돌을 번갈아 둡니다.

구글 딥마인드DeepMind의 알파고AlphaGo는 마침내 마스터 수준의 컴퓨터 바둑을 이루어냈습니다. 알파고는 세계 최고 바둑 챔피언 중 한 명인 이세돌을 4:1로 물리쳤습니다. 알파고의 핵심 아 이디어 중 하나는 심층 가치망deep value network과 심층 정책망deep policy network을 사용하는 것입니다. 가치망은 바둑판 위치의 가치를 추정합니다. 체스와 달리 바둑은 바둑판의 상태로부터 흑돌이 이길지 백돌이 이길지 예측하기 매우 어렵습니다. 가치망은 게임 결과를 학습하여 이러한 예측 의 어려움을 해결합니다. 반면 정책망은 주어진 현재 상태에서 최선의 다음 수를 추정합니다.

1장 딥러닝 소개

27


이 두 가지 기술을 몬테카를로 트리 탐색Monte Carlo tree search (고전적인 탐색 방법입니다)과 결합 하여 바둑에서 큰 분기 계수를 극복할 수 있었습니다. [그림 1-12]는 알파고의 아키텍처를 보 여줍니다.

지도 학습

강화학습

정책망

정책망

롤아웃 정책

가치망

신경망 정책 경사 분류

분류

자체 대결

회귀 데이터

프로 바둑 기사의 기보

자체 대결한 기보

정책망

가치망

그림 1-12 A) 알파고 아키텍처. 맨 먼저 이동 위치를 정하는 정책망은 프로 바둑 기사의 게임 데이터셋을 학습합니다. 그리고 스스로 바둑을 두면서 정책을 개선합니다. B) 정책망과 가치망은 모두 바둑판의 상태에 따라 동작합니다.

1.3.8 생성적 적대 신경망 생성적 적대 신경망generative adversarial network ( GAN )은 생성자generator와 적수adversary (판별자 라고도 함)라는 두 개의 신경망이 서로 경쟁하는 것을 이용한 새로운 형태의 딥 네트

discriminator

워크입니다. 생성자는 학습 데이터 분포에서 표본을 추출하려고 합니다(예를 들어 진짜 같은

28

한 권으로 끝내는 딥러닝 텐서플로


새bird 이미지를 만들려고 합니다). 판별자는 생성자가 만든 표본을 실제 데이터에서 추출한 표 본과 구분하려 합니다(이 새는 실제 새 이미지일까요, 아니면 생성자가 만들어낸 가짜 이미지 일까요?). GAN의 ‘적대적’ 학습은 다른 기술보다 훨씬 충실도가 높은 이미지 표본을 생성할 수 있으며 한정된 데이터로 효과적인 판별자를 학습하는 데 유용합니다. [그림 1-13]은 GAN 아키텍처를 보여줍니다.

생성적 적대 신경망(개념)

실제 이미지

진짜

표본

손실 함수

판별자 생성자

표본

가짜

잠재 확률변수 그림 1-13 생성적 적대 신경망(GAN)의 개념

GAN은 매우 진짜 같은 이미지를 생성할 수 있으며 차세대 컴퓨터 그래픽 도구를 강화시킬 것 입니다. 현재 이 시스템으로부터 나온 샘플은 포토리얼리즘에 근접하고 있습니다. 그러나 이 시스템에는 여전히 이론적으로나 실무적으로 해결해야 할 부분이 있으며 많은 연구가 필요합 니다.

1.3.9 신경 튜링머신 지금까지 배운 대부분의 딥러닝 시스템은 적용 범위가 한정된 복잡한 함수를 학습합니다. 예를 들어 물체 감지, 이미지 캡셔닝, 기계번역, 바둑이 그러합니다. 하지만 정렬, 덧셈, 곱셈과 같은 일반적인 알고리즘 개념을 학습하는 딥 아키텍처를 만들 수도 있지 않을까요? 신경 튜링머신neural Turing machine (NTM )은 임의의 알고리즘을 학습할 수 있는 딥러닝 아키텍처를 만든 최초의 시도입니다. 이 아키텍처는 LSTM과 같은 시스템에 외부 메모리 뱅크를 추가하여 딥 아키텍처가 더 복잡한 함수를 계산할 수 있도록 스크래치 공간을 사용하게 합니다. 아직까

1장 딥러닝 소개

29


지 NTM과 같은 아키텍처는 제한적이며 간단한 알고리즘만 학습할 수 있습니다. 그럼에도 여 전히 NTM에 대한 연구는 활발히 진행되며, 향후 기술 발전을 통해 이러한 초기 단계의 NTM은 실용적인 학습 도구로 변모할 것입니다. [그림 1-14]는 NTM 아키텍처의 개념을 보여줍니다.

신경 튜링머신 제어기 입력

출력

읽기/쓰기 헤드

메모리

그림 1-14 신경 튜링머신의 개념. NTM은 딥 아키텍처가 읽고 쓰는 외부 메모리 뱅크를 추가합니다.

1.4 딥러닝 프레임워크 수십 년간 연구자들은 신경망(딥러닝) 아키텍처를 쉽게 구축하기 위한 소프트웨어 패키지를 구현해왔습니다. 몇 년 전까지만 해도 이러한 시스템은 주로 특별한 목적으로 학계에서만 사용 되었습니다. 표준화된 강력한 산업용 소프트웨어가 부족했기 때문에 비전문가들은 신경망을 폭넓게 사용하기 어려웠습니다. 이러한 상황은 지난 몇 년간 극적으로 바뀌었습니다. 구글은 2012년 디스트빌리프DistBelief 시스 템을 만들어 간단한 딥러닝 아키텍처를 구축하고 배포하는 데 사용했습니다. 디스트빌리프와 이와 유사한 카페Caffe, 시애노Theano, 토치Torch, 케라스Keras, 엠엑스넷MxNet 등과 같은 패키지의 등 장은 산업계의 채택을 광범위하게 촉진시켰습니다. 텐서플로는 이러한 풍부한 지성사를 바탕으로 몇몇 패키지(특히 시애노)의 설계 원칙을 기반

30

한 권으로 끝내는 딥러닝 텐서플로


으로 만들어졌습니다. 특히 텐서플로(및 시애노)는 딥러닝 시스템을 작동시키는 핵심 내장 기 본 요소로서 텐서tensor 개념을 사용합니다. 텐서플로는 텐서에 초점을 두기 때문에 디스트빌리 프나 카페와 같은 시스템과는 구별되며, 정교한 모델을 구축할 때 유연성이 더 큽니다. 이 책의 나머지 부분은 텐서플로에 중점을 두지만, 딥러닝에 깔린 기본 원리를 이해하여 깨달 음을 얻는다면 이를 다른 딥러닝 프레임워크에 어려움 없이 적용할 수 있어야 합니다.

1.4.1 텐서플로의 한계 현재 텐서플로의 주요 약점 중 하나는 새로운 딥러닝 아키텍처를 구축하는 게 비교적 느리다 는 것입니다(아키텍처를 초기화하는 데 대략 수 초가 걸림). 결과적으로 텐서플로를 사용하 여 구조를 동적으로 변경하는 정교한 딥 아키텍처를 구축하는 것은 편리하지 않습니다. 이러한 아키텍처 중 하나가 바로 트리 LSTM입니다. 트리 LSTM은 자연어를 이해하는 작업을 수행하 기 위해 영어 문장의 구문 분석 트리syntactic parse tree를 사용합니다. 각각의 문장은 서로 다른 분석 트리를 가지기 때문에 각 문장마다 조금씩 다른 아키텍처가 필요합니다. [그림 1-15]는 트리

LSTM 아키텍처를 보여줍니다.

그림 1-15 트리 LSTM 아키텍처의 개념. 트리 모양은 각각의 입력 데이터마다 다르기 때문에 서로 다른 연산 그래프를 작성해야 합니다.

이러한 모델을 텐서플로를 사용하여 구현할 수는 있지만, 현재 텐서플로 API가 가진 한계로 구 현에 상당한 재주가 필요합니다. 체이너Chainer, 다이넷DyNet, 파이토치PyTorch 같은 새로운 프레임

1장 딥러닝 소개

31


워크는 트리 LSTM 같은 모델을 쉽게 만들 수 있도록 새로운 아키텍처를 충분히 가볍게 만들어 줍니다. 다행히도 텐서플로 개발자들은 이미 동적 아키텍처를 쉽게 만들어줄 이거Eager 등 API 를 확장하는 작업을 하고 있습니다. 한 가지 확실한 것은, 딥러닝 프레임워크는 빠르게 발전하고 있기 때문에 비록 오늘의 새로운 시스템일지라도 내일의 낡은 시스템이 될 수 있다는 것입니다. 하지만 텐서 미적분학에 깔린 기본 원리는 수 세기 동안 존재해왔고 이는 앞으로 프로그래밍 모델이 변하는 것과 상관없이 여러분에게 큰 도움이 될 것입니다. 이 책은 텐서 미적분학에 깔린 직관적 지식을 발전시키기 위한 수단으로써 텐서플로를 사용합니다.

1.5 마치며 이번 장은 딥러닝이 왜 오늘날 소프트웨어 엔지니어에게 매우 중요한 주제인지를 설명하고 여 러 딥 아키텍처를 빠르게 훑어보았습니다. 다음 장에서는 딥 아키텍처를 구축하고 학습시키기 위한 구글의 프레임워크인 텐서플로에 대해 살펴보겠습니다. 3장부터는 여러 가지 딥 아키텍 처에 대한 실제 사례를 깊게 살펴봅니다. 대부분의 컴퓨터 과학과 마찬가지로 머신러닝(특히 딥러닝)은 매우 경험적인 학문입니다. 의 미 있는 실무 경험을 통해서만 딥러닝을 이해할 수 있습니다. 그래서 이 책의 나머지 부분은 다 양한 사례 연구를 심도 있게 다룹니다. 사례를 철저히 탐구하고 여러분의 손으로 직접 텐서플 로를 사용하여 본인의 아이디어를 구현해보기 바랍니다. 알고리즘을 이론상으로만 이해하는 것은 절대 충분하지 않습니다!

32

한 권으로 끝내는 딥러닝 텐서플로


CHAPTER

2

텐서플로 기초 소개

이번 장은 텐서플로의 핵심 내용을 소개합니다. 특히 텐서플로를 사용한 기본적인 계산 방법을 배워봅니다. 텐서의 개념을 안내하고 텐서플로에서 텐서를 표현하고 다루는 법을 장 전반에 걸 쳐 논의합니다. 논의 과정에서 텐서 수학tensorial mathematics에 내재된 일부 수학 개념을 간략히 살 펴봅니다. 이 과정에서 선형대수 기초를 간략히 복습하고 텐서플로에서 기본적인 선형대수 연 산을 수행하는 방법도 살펴봅니다. 수학 기초 다음으로 선언형declarative 프로그래밍과 명령형imperative 프로그래밍 방식의 차이를 다 룰 것입니다. 많은 프로그래밍 언어와 달리 텐서플로는 대부분 선언형입니다. 텐서플로 연산 을 호출하면 텐서플로의 ‘계산 그래프’에 계산에 대한 기술을 추가하게 됩니다. 사실 텐서플 로 코드는 계산을 ‘기술’할 뿐이지 실제로 실행하지 않습니다. 텐서플로 코드를 실행하려면 䵽䵯䴷䵜䵮䵼䵼䵲䵸䵷 객체를 생성해야 합니다. 우리는 세션의 개념과 텐서플로에서 세션을 이용해 사용

자가 어떻게 계산을 하는지 설명할 것입니다. 마지막으로 변수의 개념에 대해 살펴봅니다. 텐서플로에서 변수는 텐서를 포함하며 상태 저장 계산stateful computation으로 변수를 수정할 수 있습니다. 텐서플로를 통해 변수를 생성하고 값을 갱 신하는 예시를 살펴보겠습니다.

2장 텐서플로 기초 소개

33


2.1 텐서 소개 텐서는 물리학과 엔지니어링 분야에서 기본적인 수학적 단위입니다. 하지만 역사적으로 컴퓨 터 과학에서 텐서는 많이 출현하지 않았습니다. 컴퓨터 과학은 전통적으로 이산수학과 논리학 과 더욱 관련이 있었습니다. 이런 상황은 연속적 벡터 수학을 토대로 머신러닝이 도래하면서 급 격하게 바뀌기 시작했습니다. 현대 머신러닝은 텐서의 조작과 미적분을 기초로 세워졌습니다.

2.1.1 스칼라, 벡터, 행렬 친숙할 만한 몇 가지 간단한 텐서 예제로 시작하겠습니다. 가장 단순한 텐서 예제는 스칼라입 니다. 스칼라는 실수로 된 하나의 상수입니다(실수는 임의의 정밀도precision를 가진 소수이며 양 수 또는 음수가 될 수 있습니다). 실수는 수학적으로 로 표기합니다. 수학적으로 말하자면 스칼라는 랭크가 0인(랭크-0 ) 텐서라고 할 수 있습니다.

NOTE_ 체 수학적으로 꼼꼼한 독자는 복소수와 이진수를 기반으로 텐서를 정의해야 의미 있다고 주장할지 모릅니다. 좀 더 일반적으로 숫자는 체field로부터 비롯된다고 해야 정확합니다. 체는 0, 1, 더하기, 곱셈, 뺄셈, 나눗셈이 정 의된 수의 수학적 집합입니다. 잘 알려진 체로 실수 과 유리수 , 복소수 , 유한체 ' 2 등이 있습니다. 이 책에서는 설명을 간단히 하기 위해 실수 텐서를 가정하지만 다른 체의 값을 대입해도 아무런 문제가 없습 니다.

스칼라가 랭크-0 텐서라면 랭크-1 텐서는 무엇일까요? 엄격히 말해서 랭크-1 텐서는 벡터입 니다. 즉 실수들이 모인 목록입니다. 관례적으로 벡터는 다음과 같이 열 벡터 또는 행 백터로 씁니다.

⎛a⎞ ⎜b ⎟ ⎝ ⎠

(a b) 길이가 2인 모든 열 벡터 집합은 2 u1 과 같이 표기하고 길이가 2인 모든 행 벡터 집합은 1u 2

34

한 권으로 끝내는 딥러닝 텐서플로


CHAPTER

3

텐서플로를 사용한 선형 및 로지스틱 회귀

이번 장은 간단하지만 중요한 학습 시스템 예제를 텐서플로로 구축하는 방법을 설명합니다. 첫 번째 절에서는 학습 시스템 구축을 위한 수학적 토대를 살펴보며, 특히 함수, 연속성, 미분 가 능성을 다룰 것입니다. 손실 함수의 개념을 소개하고, 왜 머신러닝의 핵심이 복잡한 손실 함수 의 최소점을 찾는 능력에 있는지를 논의합니다. 그다음 경사 하강법의 개념을 설명하고 이것이 어떻게 손실 함수를 최소화하는 데 사용될 수 있는지를 설명합니다. 자동 미분의 알고리즘적 아이디어를 간단히 논의하며 첫 절을 마무리합니다. 두 번째 절은 이러한 수학적 아이디어를 기반으로 한 텐서플로의 개념을 소개하는 데 초점을 맞춥니다. 살펴볼 텐서플로 개념에는 플레 이스홀더, 스코프, 옵티마이저, 텐서보드가 있으며, 이들을 통해 학습 시스템을 실용적으로 구 성하고 분석할 수 있습니다. 마지막 절은 텐서플로에서 선형회귀 모델과 로지스틱 회귀 모델을 학습하는 방법에 대한 사례 연구를 소개합니다. 이번 장은 분량이 길고 다양한 새로운 개념을 소개합니다. 처음 읽을 때는 이러한 개념의 모든 사소한 부분까지 이해하지 않아도 괜찮습니다. 앞으로 쭉 읽어나가고 나중에 필요할 때 이 장 으로 다시 돌아와 개념을 참조하기 바랍니다. 여기서 다룬 개념을 점차적으로 충분히 이해시키 기 위해 이 책의 나머지 부분에서 이들 기본 개념을 반복적으로 사용할 것입니다.

3장 텐서플로를 사용한 선형 및 로지스틱 회귀

61


3.1 수학 복습 첫 번째 절에서는 머신러닝을 개념적으로 이해하는 데 필요한 수학적 도구를 살펴봅니다. 필 요한 그리스 문자는 최소화하고 기술적인 조작보다 개념적 이해를 쌓는 데 초점을 맞추고자 합니다.

3.1.1 함수와 미분 가능성 이번 섹션은 간략히 함수와 미분 가능성의 개념에 대해 설명합니다. 함수 f 는 입력을 받아 출 력으로 내보내는 규칙을 뜻합니다. 모든 컴퓨터 프로그래밍 언어에는 함수가 있으며, 그 정의 는 함수의 수학적 정의와 크게 다르지 않습니다. 그러나 일반적으로 물리학과 공학에서 사용하 는 수학적 함수에는 연속성과 미분 가능성 같은 중요한 다른 특성이 있습니다. 쉽게 말해서 연 속함수는 [그림 3-1]과 같이 종이에서 연필을 떼지 않고 그릴 수 있는 것을 말합니다(물론 이 것이 함수의 기술적 정의는 아니지만 연속성 조건의 핵심이라고 할 수 있습니다).

그림 3-1 연속함수의 예

미분 가능성은 함수가 매끄러워야 한다는 조건입니다. 이는 함수에 뾰족한 모서리나 회전이 없 어야 한다는 뜻입니다(그림 3-2 ).

62

한 권으로 끝내는 딥러닝 텐서플로


CHAPTER

4

완전연결 딥 네트워크

이번 장에서는 완전연결 딥 네트워크를 소개합니다. 완전연결 네트워크는 딥러닝의 핵심으로 서 수천 개의 애플리케이션에서 사용됩니다. 완전연결 네트워크의 가장 큰 장점은 ‘구조에 제 한이 없다structure agnostic’는 것입니다. 다시 말해 입력에 특별한 가정이 필요 없습니다(예를 들어 그림이나 동영상이어야 한다는 등의 가정이 필요 없습니다). 이 장 뒷부분에서 이러한 일반성 을 활용해서 완전연결 딥 네트워크로 화학 모델 문제를 풀어볼 것입니다. 완전연결 네트워크를 뒷받침하는 수학적 이론도 간략히 살펴봅니다. 특히 완전연결 아키텍처 는 어떠한 함수라도 학습할 수 있다는 ‘일반근사자universal approximator’ 개념을 탐구해봅니다. 일반 근사자 개념으로 완전연결 아키텍처의 일반성generality을 설명할 수 있지만, 이때 주의할 점에 대 해서도 깊게 논의해보겠습니다. 완전연결 네트워크는 구조에 제한이 없어서 매우 광범위하게 적용될 수 있지만 특정 문제 구조 에 맞춰진 네트워크보다는 성능이 떨어질 수 있습니다. 이 장의 뒷부분에서 완전연결 아키텍처 의 이러한 한계점에 대해 논의해보겠습니다.

4.1 완전연결 딥 네트워크란? 완전연결 신경망fully connected nueral network은 일련의 완전연결 계층으로 이루어져 있습니다. 완전연

결 계층은 m 에서 n 으로 가는 함수입니다. 각각의 출력 차원은 입력 차원에 종속적입니다.

4장 완전연결 딥 네트워크 101


[그림 4-1]에서 완전연결 계층을 표현했습니다.

그림 4-1 딥 네트워크 속 완전연결 계층

m 완전연결 네트워크의 수학적 형태에 대해 자세히 살펴봅시다. 완전연결 계층의 입력을 x

라고 합시다. 그리고 완전연결 계층의 i번째 출력은 yi 라고 합시다. 그러면 yi 는 다 음과 같이 계산할 수 있습니다.

yi = σ ( w1 x1 + + wm xm ) 여기서 V 는 비선형 함수이고(우선 V 를 이전 장에서 소개한 시그모이드 함수라고 생각하십시 오) wi는 네트워크에서 학습 가능한learnable 매개변수입니다. 전체 출력 y는 다음과 같습니다.

⎛ σ ( w1,1 x1 + L + w1,m xm ) ⎞ ⎜ ⎟ M y =⎜ ⎟ ⎜⎜ ⎟⎟ ⎝ σ ( wn ,1 x1 + L + wn ,m xm ) ⎠

102 한 권으로 끝내는 딥러닝 텐서플로


완전연결 네트워크를 차례로 쌓을 수도 있습니다. [그림 4-2]에서 나타낸 다층 완전연결 네트 워크를 흔히 ‘딥’ 네트워크라고 합니다.

그림 4-2 다층 딥 완전연결 네트워크

간단하게는 단일 뉴런 방정식을 두 개 벡터의 내적(앞에서 배운 것을 떠올려봅시다)으로 봐도 됩니다. 뉴런 계층에서는 y를 행렬곱으로 계산하는 것이 편리하고 효율적입니다.

y = σ ( wx ) 여기서 시그마는 num 행렬로서 비선형 V 는 컴포넌트단위componentwise로 적용됩니다.

4장 완전연결 딥 네트워크 103


4.2 완전연결 네트워크에서의 ‘뉴런’ 완전연결 네트워크의 노드를 보통 ‘뉴런’이라고 하고, 여러 문헌에서 완전연결 네트워크를 보통 ‘신경망’이라고 합니다. 이런 식으로 부르게 된 데에는 역사적인 이유가 큽니다.

1940년대 워런 매컬러Warren S. McCulloch와 월터 피츠Walter Pitts는 뉴런이 불리언 값의 함수를 임의로 계산할 수 있다고 주장하는 최초의 뇌 수학 모델을 발표했습니다. 그 후 0에서 1 사이에 분포 하는 수학적 ‘뉴런’ 연속함수를 이용해 논리 모델을 조금 개선했습니다. 연속함수의 입력이 충 분히 커지면 뉴런은 ‘발화fired’(값이 1이 됨)하게 되고 그렇지 않으면 아무 일도 일어나지 않습 니다. 여기에 조절 가능한 가중치를 추가하면 조금 전 본 방정식이 됩니다. 진짜 뉴런도 이렇게 동작할까요? 물론 아닙니다! 뉴런(그림 4-3 )은 100조 이상의 원자와 다 양한 신호에 반응하는 수만 개의 신호 단백질signaling protein을 가지는 굉장히 복잡한 기관입니다. 오히려 한 줄짜리 방정식보다는 마이크로프로세서가 신경세포와 더 유사합니다.

세포체

축삭

축삭끝가지

핵 축삭둔덕

시냅스 말단

골지체 소포체 미토콘드리아

가지돌기 가지돌기 가지

그림 4-3 생물학적으로 정밀하게 표현한 뉴런

생물학적 뉴런과 인공 뉴런의 차이는 여러모로 불행한 일입니다. 수십억 개의 ‘뉴런’으로 된 인 공 신경망이 만들어졌다고 주장하는 자료가 쉴 틈 없이 출간되었고(뇌는 단지 1천억 개의 생물

104 한 권으로 끝내는 딥러닝 텐서플로


학적 뉴런을 가짐) 관련 지식이 없는 전문가들은 이런 자료를 읽으며 과학자들이 인간 수준의 지능에 가깝게 뉴런을 만들었다고 믿기 시작했습니다. 말할 필요도 없지만, 오늘날 최신 딥러 닝은 이로부터 수십 년(혹은 수 세기) 멀리 떨어져 있습니다. 딥러닝을 더 공부하다 보면 인공지능에 대한 과장된 주장을 접하게 될 것입니다. 이런 주장에 맞서는 것을 두려워 마십시오. 현재 딥러닝은 빠른 하드웨어로 미적분 문제를 푸는 기술의 집 합일 뿐입니다. 터미네이터를 만드는 기술이 아닙니다(그림 4-4 ).

그림 4-4 불행히도(혹은 다행히도) 이 책은 터미네이터 만드는 법을 가르치진 않습니다.

NOTE_ AI 겨울 인공지능은 호황과 불황의 발전 시기를 여러 번 겪었습니다. 순환적인 발전이 이 분야의 특징입니다. 학습에 서 새로운 진전이 생기면 인간 수준(혹은 초인간)의 지능이 도래할 것이라고 주장하는 낙관론으로 이어집니 다. 몇 년 후에 이러한 지능이 나타나지 않으면 실망한 투자자들이 빠져나갑니다. 이러한 시기를 AI 겨울이라 고 합니다. 지금까지 여러 번의 AI 겨울이 있었습니다. 사고력 훈련 차원에서 다음 AI 겨울이 언제 일어날지 고민해보길 권합니다. 현재 딥러닝 진보의 물결은 이전 진보의 물결보다 많은 현업 문제를 해결했습니다. AI가 결국 비상 하여 호황과 불황의 순환을 끊을 수 있을까요? 아니면 곧 ‘대공황’에 빠지게 될까요?

4장 완전연결 딥 네트워크 105


4.2.1 오차역전파법으로 완전연결 네트워크 학습 최초의 완전연결 신경망은 1950년대 프랭크 로젠블랫Frank Rosenblatt이 만든 퍼셉트론perceptron (그 림 4-5 )입니다. 퍼셉트론은 이전 방정식에서 소개한 ‘뉴런’과 동일합니다.

그림 4-5 퍼셉트론을 표현한 다이어그램

퍼셉트론은 특정한 ‘퍼셉트론’ 규칙으로 학습합니다. 단순한 문제를 푸는 데에는 나름 유 용하지만 근본적인 한계가 있습니다. 마빈 민스키와 시모어 페퍼트는 1960 년대 말에 쓴 『Perceptrons』에서 단순한 퍼셉트론은 XOR 함수를 배울 수 없다고 증명했습니다. [그림

4-6]이 이 주장에 대한 증명을 보여줍니다.

그림 4-6 선형 규칙만으로 퍼셉트론을 학습할 수 없습니다.

106 한 권으로 끝내는 딥러닝 텐서플로


CHAPTER

5

하이퍼파라미터 최적화

딥 모델을 학습시키는 것과 좋은 딥 모델을 학습시키는 것은 매우 다른 일입니다. 인터넷에 있 는 텐서플로 코드를 복붙하면 최초의 프로토타입을 쉽게 실행해볼 수 있겠지만 이 프로토타입 을 고품질의 모델로 바꾸기란 훨씬 어렵습니다. 프로토타입을 고품질로 바꾸는 과정에는 여러 단계가 있습니다. 이 장에서는 여러 단계 중 하나인 하이퍼파라미터 최적화에 대해 살펴봅니다. 대략적으로 설명하자면 하이퍼파라미터 최적화hyperparameter optimization란 경사 하강법으로 학습되지 않는 모델의 모든 매개변수를 조정하는 과정입니다. 이들 값을 ‘하이퍼파라미터’라고 부릅니다. 이전 장의 완전연결 네트워크를 생각해봅시다. 완전연결 네트워크의 가중치는 데이터로 학습 될 수 있지만 다른 설정은 학습될 수 없습니다. 하이퍼파라미터에는 은닉층의 수, 은닉층당 뉴 런의 수, 학습률 등이 있습니다. 어떻게 하면 체계적으로 좋은 하이퍼파라미터 값을 찾을 수 있 을까요? 하이퍼파라미터 최적화 방법이 이 질문에 대한 답을 제시합니다. 앞서 모델의 성능을 평가할 때는 고정된 ‘검증’ 집합을 사용한다고 언급하였습니다. 하이퍼파라 미터 최적화 방법은 검증 집합에서 체계적으로 여러 하이퍼파라미터 값을 선택하여 시도해보 는 것입니다. 그다음 실제 모델의 성능을 측정하기 위해 가장 좋은 성능을 보인 하이퍼파라미 터 값을 또 다른 고정된 ‘시험’ 집합에 적용하여 평가합니다. 하이퍼파라미터 최적화 방법은 새 로운 하이퍼파라미터 설정에 사용하는 알고리즘에 따라 차이가 있습니다. 이러한 알고리즘은 이해하기 쉬운 것부터 상당히 복잡한 것까지 다양합니다. 복잡한 하이퍼파라미터 최적화 기술 은 대용량의 컴퓨팅 파워를 필요로 하는 경향이 있기 때문에 이 장에서는 간단한 방법 몇 가지 만 살펴볼 것입니다.

5장 하이퍼파라미터 최적화 125


4장에서 소개한 Tox21 독성 완전연결 네트워크를 조정하여 좋은 성능을 얻는 사례 연구를 해 보겠습니다. 이 책의 깃허브 저장소의 코드를 사용하여 직접 하이퍼파라미터 최적화 방법을 실 행해보길 바랍니다.

NOTE_ 하이퍼파라미터 최적화는 딥 네트워크에만 적용되는 것은 아닙니다! 하이퍼파라미터 최적화는 딥 네트워크에만 적용되는 것은 아님을 강조합니다. 대부분의 머신러닝 알고리즘 에는 기본적인 학습 방법으로는 학습할 수 없는 매개변수가 있습니다. 이러한 매개변수 또한 하이퍼파라미터 라 부릅니다. 이 장의 뒷부분에서 랜덤 포레스트(흔한 머신러닝 방법)의 몇 가지 하이퍼파라미터 예를 볼 수 있습니다. 하지만 딥 네트워크는 다른 알고리즘보다 하이퍼파라미터 선택에 더욱 민감한 경향이 있습니다. 랜덤 포레스 트의 경우 기본적으로 설정된 하이퍼파라미터로 인해 성능이 약간 저하될 수 있지만, 딥 네트워크의 경우에 는 전체적인 학습에 실패할 수 있습니다. 따라서 딥러닝에 익숙해지려면 하이퍼파라미터 최적화를 숙달하는 것이 매우 중요합니다.

5.1 모델 평가 및 하이퍼파라미터 최적화 이전 장에서는 좋은 머신러닝 모델인지 아닌지 알 수 있는 방법에 대한 질문만 간략히 살펴보 았습니다. 모델에 대한 성능 측정은 그 모델을 일반화할 수 있는지에 대한 능력을 측정하는 것 이어야 합니다. 즉 이 모델이 이전에 보지 못한 데이터포인트에 대한 예측을 할 수 있는지 평가 하는 것입니다. 모델의 성능을 측정하는 가장 좋은 방법은 모델을 만들고 그 모델이 생성된 이 후에 사용 가능한 데이터로, 예측으로 평가하는 것입니다. 하지만 이러한 종류의 테스트는 정기

적으로 하기 어렵습니다. 실무 데이터 과학자는 모델 설계 단계 동안 서로 다른 유형의 모델이 나 학습 알고리즘을 평가하여 최선의 방법을 찾고 싶어합니다. 이러한 딜레마에 대한 해결책은 사용 가능한 데이터셋의 일부를 ‘고정된’ 검증 집합으로 두는 것입니다. 검증 집합은 서로 다른 모델(서로 다른 하이퍼파라미터를 선택)의 성능을 측정하는 데 사용됩니다. 하이퍼파라미터 선택 방법으로 최종 선택된 모델의 성능을 측정하기 위해 또 다른 고정된 집합인 시험 집합을 두는 것도 좋습니다.

100개의 데이터포인트가 있다고 가정해봅시다. 간단한 방법은 데이터포인트 중 80개는 모델

126 한 권으로 끝내는 딥러닝 텐서플로


INDEX 국 문

상태적

가우스 분포 가치 함수 객체

선언형

203

강건하다

57

생성적 적대 신경망(GAN)

75

선형회귀

16

207

76

손실 곡선

113 64

거짓 양성비(FPR)

130

손실 함수

거짓 음성비(FNR)

130

수신자 조작 곡선(ROC)

검증

순환 신경망(RNN)

113, 126, 163, 170

결정계수

스텝 크기

91, 133 69

스트라이드 크기

경사도 소실

110

시계열

공분산

91

시애노

30

과적합

113, 127

안정적

175

교차 엔트로피

어드밴티지

68

구글 신경망 기계번역(GNMT) 구문 분석 트리

에이전트

24

에폭

31

203

70

134

엠엑스넷

다이넷

31

오차역전파법

대칭 깨기 도함수

원 -핫 인코딩 원샷 학습

112

딥 Q 네트워크(DQN) 라소

205 110

203

맷플롯립 명령형

잡음

22, 226 74, 75, 76, 78, 113, 155, 226

정규분포

155

98 71

107

130

재현율

212

비동기적 어드밴티지 액터-크리틱 (A3C)

91

205 207

재앙적 망각

195

상관계수

135

장단기 기억(LSTM)

201

70

변분 오토인코더(VAE)

사전 학습

81

작업자

모델로부터 자유로운

분할선

이름

임계치

201

방향성 그래프

50

일반근사정리

148 54

미니배치

이거

인스턴스화

195

77

모델 기반

25 118

인공일반지능

마르코프 결정 과정 맥스 풀링

101 185

의사 결정 트리

렐루(ReLU)

보상

은닉층

202

111

랜덤 포레스트 롤아웃

107

17

완전연결 신경망

47 63

드롭아웃

30

완전연결

185

93

199

기준선

단어 임베딩

147

174

시그모이드 함수

202

204

130 46 111

정밀도

130

정책 학습

20, 177

203

정규화

정확도

130

19, 173

70

경사 하강법 경험 리플레이

28, 157, 179

54

203 130

제곱근 평균제곱오차(RMSE)

91, 133

찾아보기

261


INDEX 조기중단 종단간

영 문

113 24

accuracy

지역 수용 영역 지역 최소점 지표 체

advantage agent

34

최소점 카페

backpropagation baseline

30

Caffe

30, 215

텐서 토치

class

71, 87

215

207

coefficient of determination

30

튜링 완전

confusion matrix

183

convolution neural network

130 31

convolutional layer

퍼셉트론

106

correlation coefficient

페치

80

평균

46, 75

covariance

플레이스홀더

필터

declarative

80

derivative

하이퍼파라미터

70, 125

하이퍼파라미터 최적화

125

directed graph dropout

115

DyNet

31

57

Eager

50

18, 146, 148

합성곱 신경망(CNN)

143

early stopping

113 24 195, 199

195

environment

형상

35

epoch

70

133

experience replay

184, 192

false negative ratio

확률분포 환경

212

end-to-end

행동

혼잡도

202

112

함수형

혼동 행렬

135 54

63

학습률

합성곱 계층

68

deep Q network

35 148

67

195, 199

활성화 함수

110

false positive ratio featurization feed dictionary fetch

262 찾아보기

91

130

decision tree

80

피드 딕셔너리 피처화

cutoff

80

143

18, 146, 148

91

cross entropy

46, 75

91, 133

133

파이토치

표준편차

203

31

checkpoint

31, 34

특이도

134

30

Chainer

207

텐서보드

205

107

catastrophic forgetting

189

클래스

199

asynchronous advantage actor-critic

215

63

케라스

110

203

artificial general intelligence (AGI)

31

체크포인트

130

195

activation function

93

91, 129

체이너

action

144

35 80

202 130 130

204


INDEX field

34

perplexity

filter

148

placeholder

fully connected

precision

101

PyTorch

75

generative adversarial network

28, 157, 179

Google Neural Machine Translation gradient descent

70, 125

hyperparameter optimization 54

instantiate

queue

189

random forest

125

110

recurrent neural network

19, 173

regularization

207

reward

195

robust

16

Lasso

111

rollout

203

separating line

71

linear regression

shape

76

local minimum

long short-term memory

20, 177

64

Markov decision process

195

77 148

93

130

standard deviation stateful

113

matplotlib

35

specificity

144

stationary

175

step-size

70

stride size

147

symmetry breaking

47 31

46, 75

syntactic parse tree

metric

91, 129

tensor

mini-batch model-based model-free MxNet

31, 34

TensorBoard

70

Theano

63

Torch

71, 87

30

time-series

201 201

46, 75

57

mean

minimum

174

30

Turing completeness

30

91, 133

98

sigmoid function

93

local receptive field

max pooling

111

root mean squared error

115

learning the prior

130

rectified linear activation

30, 215

loss function

205

130

Keras

learning rate

67

31

receiver operator curve

118

imperative

24

recall

69

hyperparameter

loss curve

203

130

probability distribution

57

Gaussian distribution

hidden layer

80

policy learning

17

fully connected nueral network functional

184, 192

183

name

81

universal approximation theorem

noise

74, 75, 76, 78, 113, 155, 226

validation

normal distribution object

46

value function

203

vanishing gradient

207

110

one-hot encoding

185

variational autoencoder

one-shot learning

25

word embedding

overfitting perceptron

113, 127

worker

107

113, 126, 163, 170

155

185

22, 226

106

찾아보기

263




Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.