본문 바로가기
+ 펴낸 책

딥러닝을 이용한 정형 데이터 분석

by 책만 2022. 6. 8.

딥러닝을 이용한 정형 데이터 분석

비즈니스 가치 창출을 위한 숫자와 표 형식의 엔터프라이즈 데이터 분석과 예측

마크 라이언 지음 | 박찬성 옮김
308쪽 | 28,000원 | 2022년 6월 20일 출간 | 185*240*15 | ISBN 9791189909420

 

판매처 | [교보문고] [YES24] [알라딘] [인터파크] + 전국 교보문고 매장

전자책 판매처 | (8월 말 출간 예정)


* 원서: Deep Learning with Structured Data

 

 소스 코드 다운로드: https://github.com/onlybooks/structured-data

★ 정오표: https://www.onlybook.co.kr/entry/structured-data-errata (아직 등록된 정오사항이 없습니다)

 

 

✔ 기업과 공공기관 등 현실에서 맞닥뜨리는 숫자와 표 형식의 정형 데이터셋, 이제는 딥러닝으로 분석하고 풀어내 보자!


✔ 실세계 정형 데이터셋을 정리하고 케라스 프레임워크로 딥러닝 모델을 훈련시켜, 웹 페이지와 페이스북 메신저용 챗봇으로 배포해본다!


✔ 테이블 데이터의 전처리와 가공부터 딥러닝 모델의 훈련, 구축, 배포까지, 케라스, 판다스, 사이킷런, 텐서플로2.0, 주피터 노트북을 활용한 엔드투엔드 프로젝트!

 

| 이 책에서 다루는 내용 | 

● 딥러닝을 사용해야 할 적재적소 파악하기
● 케라스로 만든 딥러닝 모델의 구조
● 모델 훈련, 배포, 모니터링 방법
● 성능 측정 방법

대부분의 데이터 과학 프로젝트가 완성되기까지, 데이터를 정리해서 모델이 훈련할 수 있는 형식으로 준비하는 데에 절반 이상의 시간이 투입된다는 사실은 모두가 감추는 불편한 진실이다. 하지만 더 나은 방법도 존재한다. 정형 데이터와 관계형 데이터베이스에 최적화된 딥러닝 기법을 사용하면, 피처 엔지니어링을 치열하게 수행하지 않더라도 분석과 통찰을 얻을 수 있다. 데이터 필터링, 검증, 정리 작업은 확 줄이는 한편, 딥러닝 성능을 드높일 수 있는 기술을 이 책에서 배워보자.

이 책에서는 정형 데이터와 관계형 데이터베이스에 대한 강력한 데이터 분석 기법을 알려준다. 현실 세계의 토론토 교통 시스템 데이터셋으로 시작해보자. 배포와 성능 모니터링 등 실제 상용 제품을 만들 때 중요한 고려사항을 해결함은 물론, 정형 데이터셋을 딥러닝에 맞게 구성하는 일이 매우 손쉬워질 것이다. 파이썬과 머신러닝을 이미 알고 있는 독자라면 기량을 드높일 좋은 기회가 될 것이다.

추천의 글

“딥러닝을 정형 데이터셋에 적용하고, 딥러닝이 탑재된 풀스택 데이터 상품을 구축하는데 관심 있는 학습자와 실무자 모두에게 강력히 추천한다.”
- 이케추쿠 오콘쿠 / 솔리드 스테이트 AI
“정형 데이터를 위한 딥러닝의 이론과 실습을 훌륭하게 버무린 책” 
- 이르판 울라 박사 / 샤히드 베나지르 부토 대학교
“딥러닝의 기초뿐만 아니라 지저분한 데이터를 처리하는 내용도 다루는 놀라운 책이다!” 
- 니콜 쾨니히슈타인 / 리파인 AG
“가공되지 않은 정형 데이터부터 실세계에 배포된 딥러닝 서비스까지, 모든 내용을 다루는 훌륭한 책” 
- 게리 베이크 / 체프
흔히들 딥러닝, 머신러닝 같은 용어가 들어가면, 무엇인가 어려워 보이고 알 수 없는 다양한 수식이 가득할 것이라 생각한다. 그리고 이러한 선입견 때문에 기술에 접근하는 데 많은 허들이 있을 것이라 여긴다. 나 또한 그런 생각이 없지 않았다. 하지만 이 책을 읽은 뒤로 딥러닝은 누구나 편하게 접근할 수 있는, 그리고 언제 어디서나 손쉽게 활용할 수 있는 생활 기술임을 깨달았다. 그만큼 이 책은 이해하기 쉽고 친절하게 쓰였다. 이 책에서 다루는 예제 또한 우리가 일상생활에서 흔히 공감할 수 있는 상황의 데이터를 사용했기에 책을 읽고 학습하는 데 전혀 거부감이나 무리가 없었다.

이 책의 주요 주제는 정형 데이터 형식을 활용한 딥러닝 분석이다. 이 주제는 그 어떤 책보다 매우 큰 장점이라 생각한다. 우리가 가장 쉽게 접할 수 있는 대부분의 데이터 형식이 바로, 정형화된 데이터이기 때문이다. 그렇기 때문에 이 책을 읽고 나면 자신이 가지고 있는 정형 데이터를 딥러닝에 즉시 활용하여 분석할 수 있다. 그동안 딥러닝이 어렵게만 느껴지고 현업과 거리가 멀다고 생각했던 독자라면, 아마 이 책을 통해 ‘나도 딥러닝을 할 수 있다’는 자신감이 생기고 딥러닝이 친숙하게 느껴질 것이다. 딥러닝을 어려워했던 독자에게 이 책을 강력히 추천한다.
- 강성욱 / AWS 시니어 솔루션 아키텍트
이 책의 추천글과 검토를 의뢰받고 원고를 보면서 느낀 점은 이 책에서 다루는 내용이 현재 머신러닝이나 딥러닝이 활용되는 많은 실무와 직접적으로 관련되어 있다는 것입니다. 실제로, 이미 정형 데이터는 많은 데이터가 이용되는 광고 추천 모델 개발 시 글로벌 테크 회사를 비롯한 여러 기업에서 주로 활용되고 있습니다. 

이 책의 각 장은 단계별로 실제 실무에서 데이터를 전처리하는 방법과 모델을 구축하고 실험한 후 배포하는 과정을 예제와 함께 체계적으로 설명해주므로, 실무에 많은 도움을 얻을 수 있을 것이라고 확신합니다. 현재 정형 데이터를 보유하고 있지만 어떻게 활용해야 할지 잘 모르겠다거나, 이를 이용해 손쉽게 딥러닝과 머신러닝을 만들어보고 배포까지 해보고 싶은 분들께 적극 추천드립니다. 많은 분이 이 책을 통해 자신이 보유한 데이터의 가치를 더욱 잘 활용하시기 바라며, 이 책을 번역해주신 박찬성 선생님께도 감사의 말씀을 전합니다.
- 김석우 / 레딧(Reddit) 본사 광고 데이터 사이언스, 머신러닝 팀 테크 리드
정형 데이터를 다루는 통계적 방법은 오랜 시간 동안 숙성되어 수많은 분야에서 널리 사용되고 있다. 이 책은 기존의 정형 데이터 처리에 잘 사용하지 않던 딥러닝 방법론에 대해 적용이 필요한 이유와 과정, 절차를 풍부한 예제와 사례를 함께 엮어 소개한다. 

이 책은 크게 두 가지 점에서 데이터를 다루는 사람들의 시선을 끈다. 하나는 친숙한 기술로부터 시작해 파이썬 데이터 관리를 거쳐 딥러닝을 적용할 수 있도록 체계적인 도입부를 안내한다는 점이고, 다른 하나는 정형 데이터를 기반으로 AI 적용 애플리케이션까지 이어지는 개발 과정 및 파이프라인을 책 전반에 걸친 간단한 예제를 통해 효율적으로 설명한다는 점이다. 

전반부에서는 데이터를 다루는 법부터 시작해 엔드투엔드 딥러닝 솔루션 개발에 필요한 요소들의 구조를 다루고, 특징을 설명하며, 기본 모델을 설계하고 학습 및 실험을 돌리는 과정 전체를 모사한다. 기존 정형 데이터 분석 및 처리에 익숙한 프로그래머들을 위해 데이터 접근 시 SQL과 엑셀, 판다스(Pandas)로 동일한 데이터를 모사하고 접근하는 방식 또한 동시에 소개한다. 후반부에서는 판다스를 주로 다루며, 이 과정에서도 테이블을 동반한 시각화를 통해 독자의 이해를 돕는다. 후반부에서는 웹 및 페이스북 챗봇을 통한 서비스 배포 과정, 그리고 그 과정에서 필요한 단계를 하나씩 다룬다. 웹 배포는 플라스크(Flask)를 통해 일반적인 웹 서버와의 연동을 파이썬 언어로 구현하는 법을 소개한다. 챗봇의 경우 일반 챗봇 프레임워크인 라사(Rasa)를 통해 구현하므로, 이후 꼭 페이스북 메신저가 아니더라도 다른 챗봇들을 만드는 과정에도 적용할 수 있어 응용도가 높다. 

특히 이 책을 빛나게 해주는 점은 기술에 대한 구체적인 설명뿐 아니라 적재적소에 배치된 다양한 부가 설명들이다. 데이터를 다루는 과정에서는 도메인 전문가의 중요성과 역할을 소개하고, 딥러닝과 기존의 머신러닝 방법론과의 비교를 통해 장단점을 가감 없이 보여주는 식이다. 이러한 접근은 독자가 방법론을 배우는 것뿐만 아니라 ‘어떤 도구’가 ‘어떤 상황’에 적합한지, ‘어떤 사람들’과 협업해야 하는지를 알게 해준다. 또한 책 말미에 제안하는 다양한 숙제들은, 책을 통해 정형 데이터와 딥러닝 적용에 관심이 생긴 독자들이 스스로 학습하고 응용하는 길을 제시한다. 역자 박찬성 님의 유려한 번역을 통해 쉽게 다가오는 이 책은 딥러닝에 관심 있는 데이터 과학자뿐 아니라, 정형 데이터 전반에 관심이 높은 독자 모두에게 흥미로운 책이 될 것이다.
- 신정규 / 래블업(Lablup Inc.) 대표
“정형 데이터에는 딥러닝을 쓰지 않는 게 좋다.”라는 말은 제법 오래된 정설이었습니다. 여러 이유가 있었고 이 책에도 몇 가지 이유가 언급되어 있습니다만, 그 외에 대표적인 것들을 생각해보면, 복잡한 딥러닝 알고리즘보다는 간단한 머신러닝 알고리즘들이 성능이 더 좋은 경우가 대부분이고, 딥러닝은 결과가 잘 나오더라도 그 결과에 대한 판단 기준을 알기 어려우며, 결과가 잘못 나왔을 때 역시 마찬가지라서 성능을 개선하는 어렵다는 의견도 있습니다.

그럼에도 딥러닝은 엄청난 속도로 발전하고 있습니다. 사람의 능력을 뛰어넘음은 물론이고 매년 사람들을 깜짝 놀라게 할 만한 기술들이 계속 등장하며, 기술의 발전 속도보다는 더디지만 우리의 세상도 딥러닝을 통해 조금씩 변해가고 있습니다. 그리고 그와 함께 딥러닝의 기술적인 단점들도 하나씩 극복되어 가고 있습니다. 이러한 과정 속에서 딥러닝을 정형 데이터에 적용하려는 시도도 매우 다양하게 이루어져 왔습니다. 구글의 태브넷(Tabnet)이 그 대표적인 예입니다. 그 결과 이제 딥러닝을 활용해도 정형 데이터를 활용한 분석 및 예측에서 높은 성능을 얻을 수 있을 뿐만 아니라 결과에 대한 해석도 가능해지고 있습니다.

하지만 막상 정형 데이터를 딥러닝 알고리즘에 적용하려면 정형 데이터를 어떻게 신경망에 넣어줘야 할지, 학습은 어떻게 해야 하는지 등등 저를 비롯한 많은 분이 막막함을 느끼실 거라고 생각합니다. 그런 분들께 이 책은 아주 훌륭한 길잡이가 되어줄 것이라고 확신합니다. 저 역시 이 책을 읽으면서 정형 데이터를 딥러닝에 활용하는 방법을 구체적이고 또 체계적으로 익힐 수 있었습니다. 이 책에서는 데이터를 준비하고 다루는 법부터 모델을 만드는 법, 학습시키는 법까지 핸즈온으로 한 단계씩 따라가면서 진행할 수 있도록 자세한 가이드를 제공해줍니다. 특히 기존에 정형 데이터에서 많이 사용되어온 머신러닝 알고리즘과 비교한 부분이 개인적으로 아주 좋았습니다.
마지막으로 이 책의 큰 장점 중 하나는 역자분의 탁월한 번역 품질이라고 생각합니다. 개인적으로 박찬성 님이 집필, 번역하신 도서는 꼭 구매를 해서 소장할 만큼 정확한 이해를 바탕으로 꼼꼼한 번역을 해주시는 분입니다. 정형 데이터에 딥러닝을 적용하길 원하는 분들이나, 정형 데이터에 딥러닝을 어떻게 적용하면 좋을지 궁금하신 분들께 이 책을 자신 있게 추천드립니다.
- 이진원 / 삼성전자 스태프 엔지니어

 

| 이 책의 구성 | 

1장 ‘정형 데이터를 딥러닝으로 다뤄야 하는 이유’는 고수준에서의 딥러닝 개념, 정형 데이터에 딥러닝을 적용하거나 적용하지 말아야 하는 이유를 빠르게 검토합니다. 또한 정형 데이터가 의미하는 바도 여기서 설명합니다.


2장 ‘판다스 데이터프레임과 책 전반에서 사용할 예제 소개’는 이 책의 예제 코드를 위한 개발 환경을 설명합니다. 정형 데이터용 파이썬 라이브러리인 판다스를 소개하고, 책의 나머지 부분에서 다루게 될 경전철 시스템의 지연을 예측하는 예제의 개요를 살펴봅니다. 즉 경전철의 지연을 예측하는 문제죠. 2장의 마지막에는 딥러닝 모델을 학습시키는 간단한 예제를 보여줌으로써, 이후의 장에서 배우게 될 내용을 빠르게 맛보는 기회를 제공합니다.


3장 ‘데이터 준비 (1) 데이터의 탐색과 정리’는 경전철 문제에 대한 데이터셋과 데이터셋에 내재된 다양한 문제를 다루는 방법을 탐색합니다. 또한 딥러닝 모델을 훈련시키는 데 얼마만큼의 데이터가 필요한지에 대해서도 함께 다룹니다.


4장 ‘데이터 준비 (2) 데이터 변형’은 데이터셋에 내재된 추가적인 문제를 해결하는 방법과, 모든 정리 작업이 완료된 후에도 잘못된 값이 남아 있다면 무엇을 해야 할지 등의 내용을 다룹니다. 또한 비수치형 데이터를 딥러닝 모델에 사용하기 위한 준비 과정도 살펴봅니다. 그리고 처음부터 끝까지의 코드 예제를 요약하며 마무리합니다.


5장 ‘모델 준비와 구축’은 경전철 지연 예측 문제를 위한 딥러닝 모델을 구축하는 과정을 다룹니다. 그리고 데이터 누수(예측 시 사용할 수 없는 데이터로 모델을 훈련시키는 현상) 문제와 이 문제를 방지하는 방법도 함께 살펴봅니다. 또한 딥러닝 모델을 구축하는 코드를 자세히 살펴보고, 모델의 구조를 분석하는 다양한 옵션도 소개합니다.


6장 ‘모델 훈련과 실험 수행’은 모델을 훈련시키고 검증하기 위한 입력 데이터셋의 일부를 고르는 것부터, 초기 훈련을 수행하고, 훈련된 모델의 성능을 개선하기 위한 여러 가지 실험을 반복적으로 수행하는 것까지 모델 훈련에 대한 모든 과정을 설명합니다. 


7장 ‘훈련된 모델로 추가적인 실험 수행’은 6장에서 소개된 모델 훈련의 기법을 확장하여, 좀 더 심도 있는 세 실험을 추가적으로 수행합니다. 그중 첫 번째 실험은 4장의 데이터 정리(유효하지 않은 값이 포함된 기록 삭제)가 모델의 성능을 향상하기 위한 것이었음을 증명합니다. 그리고 두 번째 실험은 범주형 열에 학습된 벡터(임베딩)를 연관시키는 것이 성능 향상에 주는 이점을 보여줍니다. 마지막 세 번째 실험은 딥러닝 모델의 성능과, 딥러닝을 사용하지 않는 유명한 접근법 중 하나인 XGBoost의 성능을 비교합니다. 


8장 ‘모델 배포’는 훈련된 딥러닝 모델을 외부 세상에서 유용하게 사용될 수 있도록 만드는 방법을 상세히 다룹니다. 우선 훈련된 모델을 웹에 배포하는 간단한 방식을 살펴본 뒤, 그다음으로 오픈소스 챗봇 프레임워크인 라사(Rasa)를 사용하여 페이스북 메신저로 배포하는 방식을 알아봅니다.


9장 ‘향후 개선 방향’은 지금까지 책에서 다룬 내용을 요약 정리합니다. 그런 다음 위치, 날씨 데이터를 포함해 모델의 성능을 개선하는 데 쓰일 수 있는 추가적인 데이터를 살펴봅니다. 그리고 책에서 제공된 코드를 완전히 새로운 정형 데이터 문제에 적용하는 방법을 알아봅니다. 마지막에는 딥러닝과 정형 데이터라는 주제를 배울 수 있는 추가적인 책, 강의, 온라인 자료의 목록을 소개합니다.


부록 A ‘구글 코랩 가이드’에서는 책에서 제공하는 예제 코드를 코랩(Colab)이라는 무료 환경에서 실행하는 방법을 다룹니다.


각 장은 바로 직전 장의 내용을 기반으로 하기 때문에, 앞에서부터 순서대로 책을 읽기를 권장합니다. 그리고 이 책을 가장 잘 활용하는 방법은 제공되는 코드를 직접 실행해보는 것입니다. 특히 경전철 지연 예측 문제에 대한 코드는 꼭 실행해보세요. 마지막으로 6, 7장에서 다루는 실험과 9장에서 소개하는 추가적인 개선점을 스스로 연습해봄으로써, 정형 데이터에 대한 문제해결 능력을 길러보기 바랍니다.

 

| 이 책의 대상 독자 | 

이 책을 최대한 활용하려면 주피터 노트북 환경에서의 파이썬 코딩에 익숙해야만 합니다. 그리고 로지스틱 회귀, 서포트 벡터 머신과 같은 딥러닝 외의 접근법과 머신러닝에서 표준적으로 사용되는 용어에도 익숙한 편이 좋습니다. 만약 행과 열로 구성된 표 형식의 데이터로 작업을 자주 하는 분이라면, 이 책에서 소개한 내용이 여러분의 실제 업무에 쉽게 적용될 수 있다는 사실을 깨닫게 될 것입니다.

 

| 예제 코드 활용과 다운로드  | 

이 책에서 다루는 예제 코드는 깃허브 페이지(https://github.com/onlybooks/structured-data)에서 내려받을 수 있습니다. 3~8장에서 다루는 경전철 지연 예측 문제에 대한 코드뿐만 아니라, 2장(판다스 라이브러리, 판다스와 SQL 간의 관계를 보임)과 5장(케라스의 순서형, 함수형 API 사용법을 보임)에서 독립적인 예제 코드가 제공됩니다.

- 파이썬(버전 3.7이상)
- 판다스(Pandas)
- 사이킷런(scikit-learn)
- 케라스(Keras)
- 텐서플로(TensorFlow 2.x)

 

지은이마크 라이언(Mark Ryan)

캐나다 토론토에 위치한 인택트(Intact)라는 보험사의 데이터 과학 매니저다. 머신러닝 부트캠프를 개최해 참가자가 실습을 통해 머신러닝의 세계를 경험하는 기회를 제공하는 등 머신러닝의 유용성을 공유하는 일에 열정적이다. 정형 데이터에 내재된 가치를 찾아내는 딥러닝의 잠재력, 그리고 챗봇과 자율 주행 자동차의 가능성에 관심이 많다. 워털루대학교에서 수학 학사학위를, 토론토대학교에서 컴퓨터 과학 석사학위를 받았다.

지난 50여 년을 되돌아보며 최근 20여 년을 평가할 때, 가장 혁신적인 기술 중 하나로 딥러닝이 꼽힐 것입니다. 딥러닝의 이론적 기반은 1950년대에 세워졌지만, 2012년이 되어서야 비전문가의 눈에도 딥러닝의 잠재력이 보이기 시작했습니다. 그로부터 10년이 지난 현재, 우리의 목소리를 텍스트로 매끄럽게 바꿔주는 스마트 스피커부터 사람의 능력을 초월한 수많은 분야까지, 딥러닝은 우리의 삶 구석구석에 스며들어 있습니다. 이 책은 아직까지 그 가능성이 간과된 정형 데이터(행과 열로 구조화된 데이터)에 딥러닝을 적용하는 내용을 다룹니다.

일반적인 통념은 정형 데이터에 딥러닝을 적용하는 일은 피해야 한다는 것입니다. 그리고 딥러닝의 유명한 응용 사례는 이미지 인식과 같은 비정형 데이터에 대한 것들이 대부분이죠. 그렇다면 비정형 데이터를 위한 딥러닝이라는 주제의 책을 읽어야 하는 이유는 무엇일까요? 첫째, 1장과 2장에서 이야기하겠지만 딥러닝으로 정형 데이터 문제를 해결하는 것에 대한 부정적인 시각 중 일부(딥러닝이 너무 복잡하다거나, 정형 데이터셋이 너무 적다는 등)는 오늘날 적용되지 않습니다. 어떤 머신러닝 접근법을 정형 데이터 문제에 적용할지 판단할 때는 열린 마음으로 딥러닝 또한 하나의 잠재적인 해결책으로 고려해야 합니다. 둘째, 딥러닝이 적용된 많은 대표적인 분야에는 비정형 데이터가 연관되어 있지만(이미지 인식, 목소리를 텍스트로 변환, 기계 번역 등), 소비자, 고용인, 시민으로서의 우리 삶은 대체로 표 형식의 정형 데이터로 정의됩니다. 모든 은행 거래, 세금 납부, 보험금 청구 등 우리 일상의 수많은 부분은 정형 데이터를 통해 흐르죠. 딥러닝에 관한 한 초보든 숙련자든 상관없이, 정형 데이터와 관련된 문제를 해결해야 할 때면 언제든 딥러닝을 사용할 준비가 되어 있는 편이 좋습니다.

이 책을 읽으면서 여러분은 다양한 정형 데이터 문제에 딥러닝을 적용하는 데 필요한 내용을 터득해나갈 것입니다. 실세계 데이터셋을 통해 딥러닝을 응용하는 전반적인 과정을 배울 것입니다. 즉 딥러닝 모델을 훈련시키기 위해 데이터를 준비하는 것부터 훈련된 모델을 배포하는 전 과정을 경험하게 되는 것이죠. 이 책이 제공하는 예제 코드는 머신러닝 분야의 공통어로 간주되는 파이썬으로 작성됐으며, 산업에서 가장 일반적으로 사용되는 딥러닝 플랫폼인 케라스(Keras)와 텐서플로(TensorFlow)를 활용합니다.

 

옮긴이 박찬성

인공지능 기술이 현실에 지속적으로 융합되는 MLOps 기술에 관심이 많다. 현재 머신러닝 분야의 구글 공인 개발자 전문가(ML GDE), 텐서플로 코리아 및 fast.ai 코리아 커뮤니티 운영진으로 활동하며, 다양한 아이디어를 실현하며 기술적 토론을 자유롭게 즐기는 코딩 맛집 커뮤니티를 운영 중이다. 『fastai와 파이토치가 만나 꽃피운 딥러닝』, 『실전 시계열 분석』(한빛미디어, 2021), 『주머니 속의 머신러닝』(제이펍, 2021) 등을 번역했다.

인공지능의 가능성이 급격히 부상한 2016년 이래로, 점점 더 인간의 상상을 초월하는 능력을 갖춘 인공지능 모델에 대한 연구가 매일 새롭게 경신되고 있습니다. 이렇게 사람의 이목을 집중시키는 수많은 연구와 결과는 이미지, 영상, 텍스트, 오디오 등 비정형 데이터에만 기반한 경우가 대부분입니다.

하지만 사람이 매일 생산하는 데이터 중 큰 부분은 비정형 데이터보다는 정형 데이터가 차지하고 있습니다. 정형 데이터 자체만 놓고 봤을 때는 전통적인 머신러닝 기법만으로도 유의미한 예측 능력을 확보하는 것이 가능했습니다. 물론 딥러닝을 적용하면 조금 더 뛰어난 결과를 얻을 수도 있습니다. 하지만 앞으로 정형 데이터에 딥러닝을 고려해야만 하는 가장 중요한 이유가 있습니다. 비정형과 정형 데이터를 모두 결합해 시너지를 낼 수 있는 기술이 바로 딥러닝이기 때문입니다. 한마디로 비정형 데이터와 정형 데이터를 융합하여 지금까지 얻을 수 없던 통찰을 얻고, 새로운 방향성을 만들어낼 수 있게 됐다는 것이죠.

이 책은 실전 데이터셋을 활용해 그 방법의 기초를 다질 수 있는 기회를 제공합니다. 이 책의 가장 큰 장점은 처음부터 끝까지 딥러닝 모델로 완전한 서비스를 만들어내는 전 과정을 다룬다는 점입니다. 특히 처음에는 두서없는 형태를 띤 데이터셋을 판다스, 사이킷런 등의 라이브러리로 가공하는 전처리 작업, 텐서플로/케라스 라이브러리로 손쉽게 딥러닝 모델을 정의하고 훈련시키는 작업, 플라스크를 통한 단순 웹을 포함해 라사(Rasa)와 페이스북 메신저로 모델을 배포해 실제 사용자와 상호작용하는 방법을 다룹니다.

머신러닝으로 가치를 창출할 수 있는 가장 좋은 방법은 처음부터 끝까지의 엔드투엔드 과정을 항상 머릿속에 새긴 채 각 단계를 완성해나가는 것입니다. 사실상 여러 과정이 복잡하게 얽혀 있지만, 불행히도 그중 데이터 또는 모델을 훈련시키는 부분에만 집중한 책이 대부분입니다. 이 책을 통해 실제 구현 능력뿐만 아니라, 정형 데이터에 딥러닝을 적용해 얻을 수 있는 통찰, 실제 가치를 창출할 수 있는 엔드투엔드 과정을 모두 얻어갈 수 있기를 바랍니다.

 

[차례]

1장 정형 데이터를 딥러닝으로 다뤄야 하는 이유
__1.1 딥러닝 개요
__1.2 딥러닝의 장단점
__1.3 딥러닝 소프트웨어 스택
__1.4 정형 데이터와 비정형 데이터
__1.5 정형 데이터에 딥러닝을 사용하는 것에 대한 부정적 시각
__1.6 정형 데이터 문제로 딥러닝을 살펴보는 이유
__1.7 이 책에서 제공하는 코드 소개
__1.8 알아둘 내용
__1.9 정리

2장 판다스 데이터프레임과 책 전반에서 사용할 예제 소개
__2.1 다양한 종류의 딥러닝 개발 환경
__2.2 판다스를 살펴보기 위한 코드
__2.3 파이썬의 판다스 데이터프레임
__2.4 CSV 파일을 판다스 데이터프레임으로 만들기
__2.5 판다스를 사용한 SQL 등의 작업 수행
__2.6 주요 예제: 경전철의 지연 예측
__2.7 딥러닝을 배우는 데 현실의 데이터셋을 사용해야 하는 이유
__2.8 입력 데이터셋의 형식과 범위
__2.9 최종 목표: 엔드투엔드 솔루션
__2.10 솔루션 코드에 대한 상세한 설명
__2.11 개발 환경: 일반적인 환경과 딥러닝이 가능한 환경
__2.12 딥러닝을 배척하는 의견들
__2.13 딥러닝의 접근성이 좋아진 까닭
__2.14 딥러닝 모델 훈련 과정 맛보기
__2.15 정리

3장 데이터 준비 (1) 데이터의 탐색과 정리
__3.1 데이터 탐색 및 정리를 위한 코드
__3.2 파이썬에서 설정 파일을 사용하는 방법
__3.3 XLS 파일을 판다스 데이터프레임으로 변환하기
__3.4 판다스 데이터프레임을 피클링된 파일로 저장하여 세션 간 공유하기
__3.5 데이터 탐색
__3.6 데이터를 연속형, 범주형, 텍스트로 분류하기
__3.7 데이터셋에 내재된 문제 정돈: 누락된 데이터, 오류, 추측성 문제
__3.8 딥러닝에 필요한 데이터 규모의 산정
__3.9 정리

4장 데이터 준비 (2) 데이터 변형
__4.1 데이터 준비와 변형을 위한 코드
__4.2 바르지 못한 값 다루기: Route
__4.3 유효하지 않은 값에 대해 하나의 대쳇값만 사용하는 이유
__4.4 올바르지 않은 값 다루기: Vehicle
__4.5 일관성 없는 값 다루기: Location
__4.6 공간 데이터 다루기: Location
__4.7 자료형 불일치 문제 다루기
__4.8 여전히 잘못된 데이터를 가진 행 다루기
__4.9 파생된 열 생성하기
__4.10 딥러닝 모델 훈련을 위해 비수치형 데이터를 수치형 데이터로 대체하는 방법
__4.11 엔드투엔드 솔루션 구성요소
__4.12 정리

5장 모델 준비와 구축
__5.1 데이터 누수 및 모델 훈련에 적절한 피처
__5.2 도메인 전문성과 데이터 누수를 방지하기 위한 최소 점수 검정
__5.3 경전철 지연 예측 문제에서 데이터 누수를 방지하는 방안
__5.4 케라스 모델 구축용 코드 살펴보기
__5.5 모델 훈련을 위한 데이터프레임의 단계별 리팩토링
__5.6 케라스 모델이 원하는 형식으로 데이터프레임 변형하기
__5.7 케라스와 텐서플로에 대한 간략한 역사
__5.8 텐서플로 1.x에서 2로 마이그레이션하기
__5.9 텐서플로와 파이토치
__5.10 케라스 딥러닝 모델의 구조
__5.11 데이터 구조가 케라스 모델을 정의하는 방식
__5.12 임베딩 계층의 능력
__5.13 데이터 구조에 따라 자동으로 케라스 모델을 구축하는 코드 
__5.14 모델 탐색
__5.15 모델 파라미터
__5.16 정리

6장 모델 훈련과 실험 수행
__6.1 딥러닝 모델 훈련을 위한 코드
__6.2 딥러닝 모델의 훈련 과정 검토
__6.3 경전철 지연 예측용 모델의 최종 목표 검토
__6.4 훈련, 검증, 테스트용 데이터셋 선택
__6.5 초기 훈련 수행
__6.6 모델의 성능 측정
__6.7 케라스 콜백: 훈련 과정 중 최상의 결과를 얻는 방법
__6.8 여러 훈련 과정에서 동일한 결과를 얻는 방법
__6.9 훈련된 모델로 단일 샘플에 대해 예측하기
__6.10 훈련된 모델을 직접 저장하기
__6.11 일련의 실험을 통해 모델 성능 향상하기
__6.12 정리

7장 훈련된 모델로 추가적인 실험 수행
__7.1 더 많은 실험을 수행하기 위한 코드
__7.2 잘못된 값의 제거가 모델 성능을 개선할 수 있는지 검증
__7.3 범주형 열에 적용된 임베딩이 모델 성능을 개선할 수 있는지 검증
__7.4 딥러닝 모델과 XGBoost의 비교
__7.5 딥러닝 모델 개선을 위한 고려사항
__7.6 정리

8장 모델 배포
__8.1 모델 배포의 개요
__8.2 중요한 주제인 배포가 어려운 이유
__8.3 단일 샘플에 대한 모델의 검증 과정 되돌아보기
__8.4 웹 배포에서의 사용자 경험
__8.5 모델을 웹에 배포하기 위한 절차
__8.6 웹 배포의 이면
__8.7 페이스북 메신저 배포에서의 사용자 경험
__8.8 페이스북 메신저 배포의 이면
__8.9 라사에 대한 추가 배경지식
__8.10 모델을 라사로 페이스북 메신저에 배포하기 위한 절차
__8.11 파이프라인의 개요
__8.12 모델 훈련 단계의 파이프라인 정의
__8.13 예측 점수를 매기는 단계에 파이프라인 적용하기
__8.14 배포 후 모델을 유지/보수하는 방법
__8.15 정리

9장 향후 개선 방향
__9.1 지금까지 학습한 내용 되돌아보기
__9.2 경전철 지연 예측 프로젝트 개선을 위한 기본 아이디어
__9.3 상세한 위치 정보 추가 방안
__9.4 딥러닝 모델 훈련을 위한 날씨 데이터 추가 방안
__9.5 딥러닝 학습을 위한 계절 또는 시간대 데이터 파생 방안
__9.6 잘못된 값을 삭제하는 대신 결측값으로 대체하는 대안
__9.7 웹 배포용 모델을 외부에 공개하는 방법
__9.8 새로운 데이터셋에 대한 모델 구축 방안
__9.9 데이터셋 준비와 모델 훈련
__9.10 웹 모델 배포를 위한 코드 변경
__9.11 페이스북 메신저용 모델 배포
__9.12 다른 데이터셋에 적용하기 위한 사례 연구
__9.13 추가 학습 자료
__9.14 정리

부록 A 구글 코랩 가이드 
__A.1 코랩이란
__A.2 코랩 세션에서 구글 드라이브 사용하기
__A.3 제공되는 저장소의 노트북을 코랩에서 실행하기
__A.4 코랩과 페이퍼스페이스의 장단점

댓글0