메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

fastai와 파이토치가 만나 꽃피운 딥러닝

박사 학위 없이 AI를 폼나게 구현하는 법

한빛미디어

번역서

판매중

  • 저자 : 제러미 하워드 , 실뱅 거거
  • 번역 : 박찬성 , 김지은
  • 출간 : 2021-08-10
  • 페이지 : 720 쪽
  • ISBN : 9791162244630
  • 물류코드 :10463
  • 초급 초중급 중급 중고급 고급
4.8점 (38명)
좋아요 : 5



딥러닝 공부는 ‘fastai’를 만나기 전과 후로 나뉜다.

내가 짠 코드가 딥러닝을 한다! 이제 조금 게으르게 살아도 되겠다!

 

fastai 라이브러리는 딥러닝 응용에 일관된 인터페이스를 최초로 제공하며 ‘모두를 위한 딥러닝’을 가능하게 한다. 이제 더 이상 딥러닝은 구글, 페이스북, 마이크로소프트 등 거대 기술 기업의 전유물이 아니다. 파이썬에 친숙한 프로그래머라면 약간의 수학적 배경지식, 소규모 데이터, 짧은 코드만으로도 딥러닝을 구현하는 놀라운 경험을 얻을 수 있다. 이 책에서 fastai 라이브러리의 창시자인 제러미와 실뱅은 fastai와 파이토치로 다양한 작업에 대한 모델을 학습시키는 방법을 소개한다. 또한 내부적인 알고리즘을 완전히 이해하는 데 필요한 딥러닝 이론도 설명한다.

 

 

대상 독자

 

이 책은 딥러닝과 머신러닝을 처음 시작하는 독자에게 가장 적합합니다. 파이썬 코딩 경험이 있으면 더 좋습니다. 또한 딥러닝 실무자에게 도움이 되는 내용도 담았습니다. 최신 연구에서 다룬 기술을 포함하여 세계적 수준의 결과를 달성하는 방법을 알려줍니다. 높은 수준의 수학 교육이나 수년간의 공부는 필요하지 않습니다. 그저 약간의 상식과 끈기만 필요할 뿐입니다.

  • 머신러닝, 딥러닝을 처음 접하는 분(파이썬 또는 프로그래밍 학습을 1년 정도 해보셨으면 충분합니다.)
  • 현업에서 머신러닝, 딥러닝을 활용하고 있는 분 

 

주요 내용 

  • 영상 처리, 자연어 처리, 테이블 데이터, 협업 필터링 모델을 학습합니다.
  • 딥러닝 분야의 최신 기법을 배웁니다.
  • 딥러닝 모델의 작동 방식을 이해하여 안정성, 정확성, 속도를 개선합니다.
  • 딥러닝 모델을 웹 애플리케이션으로 만드는 방법을 배웁니다.
  • 밑바닥부터 딥러닝 알고리즘을 구현합니다.
  • AI 작업에 내재된 윤리적 문제를 고민해봅니다.

 

상세 이미지700_fastai.jpg

제러미 하워드 저자

제러미 하워드

딥러닝의 접근성을 높이는 데 집중하는 fast.ai 기관의 창립 연구자이다. 또한 샌프란시스코 대학교의 저명한 연구 과학자이며, 세계 경제 포럼의 글로벌 AI 위원회의 일원이기도 하다.

실뱅 거거 저자

실뱅 거거

허깅 페이스(Hugging Face)의 기술 연구원이다. 제러미 하워드와 마찬가지로 제한된 자원에서도 모델이 빠르게 학습하는 기술을 설계하고 개선하여 딥러닝의 접근성을 높이는 데 집중하는 fast.ai 기관의 연구 과학자로 일했다.

김지은 역자

김지은

산업, 정보시스템공학을 전공했으며 AI 조직과 회사에서 커뮤니티/프로덕트/프로젝트 매니저로서 UX와 관련한 업무를 하고 있다. 사람들이 기술을 더욱 편하고 쉽게 사용하도록 만드는 일(설계)과 기술을 알려주고 소개하는 일(기술 교육)에 관심이 많다. 애자일, 지속가능성, 접근성, 커뮤니티를 좋아하며 fast.ai KR과 딥백수 커뮤니티에서 개발 행사, 스터디, 워크숍을 운영하고 있다.

박찬성 역자

박찬성

컴퓨터로 할 수 있는 모든 일에 관심이 있습니다. 한국전자통신연구원에서 10년간 광역, 가입자 네트워크 인프라 플랫폼을 연구 및 개발해왔습니다. 그리고 머신러닝 분야의 구글로서 머신러닝 응용, 머신러닝 운용에 대한 커뮤니티 활동도 병행하고 있습니다. 작업한 저/역서로는 『나만의 스마트워크 환경 만들기』(비제이퍼블릭, 2020), 『실전 시계열 분석』(한빛미디어, 2021), 『주머니 속의 머신러닝』(제이펍, 2021), 『fastai와 파이토치가 만나 꽃피운 딥러닝』(한빛미디어, 2021), 『딥러닝을 이용한 정형 데이터 분석』(책만, 2022)이 있습니다.

 

PART I 실전 딥러닝

 

CHAPTER 1 딥러닝으로 떠나는 여행

1.1 모두를 위한 딥러닝

1.2 신경망: 간략한 역사

1.3 저자 소개

1.4 딥러닝 학습 방법

1.5 소프트웨어: 파이토치, fastai, 주피터 노트북

1.6 첫 번째 모델 만들기

1.7 다양한 분야에서의 딥러닝

1.8 검증용 및 테스트용 데이터셋

1.9 모험의 순간, 여러분만을 위한 선택

1.10 질문지

 

CHAPTER 2 모델에서 제품까지

2.1 딥러닝 프로젝트를 실천하기

2.2 데이터 수집

2.3 데이터에서 DataLoaders까지

2.4 모델 훈련과 훈련된 모델을 이용한 데이터 정리

2.5 모델을 온라인 애플리케이션으로 전환하기

2.6 재앙을 피하는 방법

2.7 기술적 글쓰기의 장점

2.8 질문지

 

CHAPTER 3 데이터 윤리

3.1 데이터 윤리의 핵심 사례

3.2 머신러닝과 제품 디자인 통합하기

3.3 데이터 윤리의 주제

3.4 윤리적 문제를 식별하고 해결하기

3.5. 정책의 역할

3.6 결론

3.7 질문지

3.8 실전 딥러닝: 요약

 

 

PART II fastai 애플리케이션 계층 이해하기

 

CHAPTER 4 숫자 분류기의 학습 내부 들여다보기

4.1 픽셀: 컴퓨터 영상 처리의 기본 토대

4.2 첫 번째 시도: 픽셀 유사성

4.3 브로드캐스팅으로 평가지표 계산하기

4.4 확률적 경사 하강법

4.5 MNIST 손실 함수

4.6 모든 것을 한 자리에 

4.7 비선형성 추가

4.8 전문용어 정리

4.9 질문지

 

CHAPTER 5 이미지 분류

5.1 개/고양이 예를 애완동물 품종으로 확장하기

5.2 사전 크기 조절

5.3 교차 엔트로피 손실

5.4 모델 해석

5.5 모델 향상하기

5.6 결론

5.7 질문지

 

CHAPTER 6 그 밖의 영상 처리 문제

6.1 다중 레이블 분류

6.2 회귀

6.3 결론

6.4 질문지

 

CHAPTER 7 최신 모델의 학습

7.1 이미지네트

7.2 정규화

7.3 점진적 크기 조절

7.4 테스트 시 증강

7.5 믹스업

7.6 레이블 평활화

7.7 결론

7.8 질문지


CHAPTER 8 협업 필터링 깊게 알아보기

8.1 데이터의 첫 인상

8.2 잠재 요소 학습하기

8.3 DataLoaders 만들기

8.4 밑바닥부터 만드는 협업 필터링

8.5 임베딩과 편향의 분석

8.6 초기의 협업 필터링 모델 구축하기

8.7 협업 필터링을 위한 딥러닝

8.8 결론

8.9 질문지

 

CHAPTER 9 테이블 데이터 모델링 깊게 알아보기

9.1 범주형 임베딩

9.2 딥러닝 이외의 기법

9.3 데이터셋

9.4 결정 트리

9.5 랜덤 포레스트

9.6 모델의 해석

9.7 외삽 및 신경망

9.8 앙상블

9.9 결론

9.10 질문지

 

CHAPTER 10 NLP 깊게 알아보기: 순환 신경망

10.1 텍스트 전처리

10.2 텍스트 분류기의 학습

10.3 허위 정보와 언어 모델

10.4 결론

10.5 질문지

 

CHAPTER 11 fastai의 중간 수준 API로 데이터 변환하기

11.1 fastai의 계층적 API 깊게 들여다보기

11.2 TfmdLists와 Datasets: 콜렉션 목록의 변환

11.3 중간 수준 데이터 API 적용 해보기: SiamesePair

11.4 결론

11.5 질문지

11.6 fastai의 애플리케이션 이해하기: 요약

 

 

PART III 딥러닝의 기반 지식

 

CHAPTER 12 밑바닥부터 구현하는 언어 모델

12.1 데이터

12.2 첫 번째 언어 모델

12.3 RNN 개선하기

12.4 다층 RNN

12.5 LSTM

12.6 LSTM의 정규화

12.7 결론

12.8 질문지

 

CHAPTER 13 합성곱 신경망

13.1 합성곱의 마법

13.2 첫 번째 합성곱 신경망

13.3 컬러 이미지

13.4 학습의 안정성 개선하기

13.5 결론

13.6 질문지

 

CHAPTER 14 ResNets

14.1 이미지네트 문제로 되돌아가기

14.2 현대적 CNN의 구축: ResNet

14.3 결론

14.4 질문지

 

CHAPTER 15 애플리케이션 구조 깊게 살펴보기

15.1 영상 처리

15.2 자연어 처리

15.3 Tabular

15.4 결론

15.5 질문지

 

CHAPTER 16 학습 과정

16.1 기준선 정하기

16.2 포괄적 옵티마이저

16.3 모멘텀

16.4 RMSProp

16.5 Adam

16.6 분리된 가중치 감쇠

16.7 콜백

16.8 결론

16.9 질문지

16.10 딥러닝의 기초: 요약

 

 

PART IV 밑바닥부터 구현하는 딥러닝

 

CHAPTER 17 기초부터 만드는 신경망

17.1 밑바닥에서부터 신경망 계층 구축하기

17.2 순전파와 역전파

17.3 결론

17.4 질문지

 

CHAPTER 18 CAM을 이용한 CNN의 해석

18.1 CAM과 훅

18.2 그레이디언트 CAM

18.3 결론

18.4 질문지

 

CHAPTER 19 밑바닥부터 만드는 Learner 클래스

19.1 Data

19.2 모듈과 파라미터

19.3 손실

19.4 Learner

19.5 결론

19.6 질문지

 

CHAPTER 20 맺음말

 

부록 A 깃허브 기반 블로그 만들기

A.1 깃허브 페이지로 블로깅하기

A.2 주피터 노트북을 블로깅에 활용하기

 

부록 B 데이터 프로젝트 점검 목록

B.1 데이터 과학자

B.2 전략

B.3 데이터

B.4 분석

B.5 구현

B.6 유지 관리

B.7 제약 사항

널리 개발자를 이롭게 할 최첨단 딥러닝 기술 fast.ai의 모든 것

 

이 책의 원서는 미국 아마존 컴퓨터 신경망 분야에서 최상위권 자리를 지키고 있습니다. 제일 뜨거운 주제인 fastai 라이브러리를 사용해 딥러닝을 설명하기 때문이죠. 개발과 데이터에 관심을 가지기 시작한 분들과 대화하다 보면 전산 전공자가 아니고, 개발자 출신이 아니기 때문에 코드가 나오는 일을 잘하지 못할 것이라 걱정하는 분들이 계십니다. 당연히 그럴 수 있습니다. 기술을 처음 접할 때는 풀어야 할 문제, 풀고 싶은 문제를 위해 스스로 무엇을 알아야 하는지 몰라서 좌절하기 쉽습니다. 이러한 분들은 이 책을 통해 딥러닝 엔지니어링을 향한 호기심을 충분히 충족할 수 있을 것입니다.  

 

 

추천사

완전히 밑바닥에서부터 최첨단 연구까지 이끌어줄 가이드를 찾는 이에게 적합한 책입니다. 학위 소지자뿐만 아니라 여러분도 실제 문제 해결에 딥러닝을 사용하는 재미를 느끼게 될 것입니다.

_할 바리안, 구글 수석 경제학자이자 캘리포니아 대학교 버클리 회계학과 교수

 

인공지능이 딥러닝 시대로 접어들면서, 최대한 딥러닝의 작동 원리를 많이 배우는 것이 당연해졌습니다. 이 책은 매우 복잡하다고 여겨진 개념을 아직 배우지 않은 사람도 쉽게 학습할 수 있는 훌륭한 방법을 제공합니다.

_에릭 토폴, 스크립스 연구소 교수이자 『딥메디슨』 저자

 

제러미와 실뱅은 노트북 환경에서 대화형 방식으로 코드를 한 줄 한 줄 실행하며 딥러닝의 성능 최고점과 손실 계곡에 대한 여행을 안내합니다. 수년간 머신러닝 분야의 개발과 교육에서 얻은 통찰과 실용적인 직관으로 뒤덮인 이 책은 깊이 있는 기술적 개념을  가벼운 대화형 방식으로 풀어내는 균형 잡힌 접근법으로 쓰였습니다. 온라인 교육 수상 경력에 빛나는 fast.ai의 철학을 충실히 반영한 이 책은 실용적인 최신 도구와 이를 사용해볼 수 있는 실제 사례를 함께 제공합니다. 초보자, 전문가를 가리지 않고 딥러닝 여정을 빠르게 여행하고, 폭넓고 깊이 있는 지식을 얻게 될 것입니다.

_서배스천 루더, 딥마인드 연구 과학자

 

이 책은 인공지능과 그 외 분야를 성공적으로 연결하는 제러미 하워드와 실뱅 거거의 훌륭한 저술서입니다. 매우 실질적인 통찰을 제공할 뿐만 아니라, 딥러닝에 관련된 모든 사람에게 기본 지침서로도 손색이 없습니다.

_앤서니 창, 오렌지 카운티 아동병원 정보 혁신 기관장

 

어떻게 늪에 빠지지 않고 딥러닝을 습득할 수 있을까요? 예제와 코드를 통해 개념, 기술, 기법을 빠르게 배울 방법은 무엇일까요? 실습을 통한 딥러닝 입문서 표준의 한 획을 긋는 이 책을 놓치지 마세요.

_오렌 에치오니, 앨런 인공지능 기관 CEO 및 워싱턴 주립대학교 교수

 

이 책은 수년간 수천 명의 학생들을 성공적으로 길러낸 경험을 토대로 신중하면서도 매우 효과적으로 작성된 산물입니다. 저도 그 학생 중 한 명이며 fast.ai는 저의 삶을 멋지게 바꿨습니다. 여러분도 마찬가지의 경험을 할 수 있다고 확신합니다.

_제이슨 앤틱, DeOldify 제작자

 

이 책은 매우 훌륭한 자료입니다. 시간을 허투루 낭비할 내용이 하나도 없습니다. 처음 몇 장에서는 딥러닝을 효과적으로 사용하는 방법을 가르치며, 그다음 머신러닝 모델과 프레임워크의 내부 작동 방법을 철저히 그러나 쉽게 접근할 수 있는 방식으로 설명합니다. 제가 머신러닝을 배웠을 때도 이런 명서가 있었다면 정말 좋았을 겁니다.

_에마뉘엘 아메장, 『Building Machine Learning Powered Applications』 저자

 

이 책의 1장 1절의 ‘모두를 위한 딥러닝’이라는 말은 다른 책에서도 흔히 볼 수 있는 주장이지만, 이 책만큼 이 주장을 잘 전달하는 경우는 없었습니다. 저자는 머신러닝에 대한 광범위한 지식을 가지고 있을 뿐만 아니라, 프로그래밍 경험은 있지만 머신러닝을 모르는 독자에게 매우 적합한 방식의 설명을 제공하고 있습니다. 이 책은 구체적인 예시를 먼저 제시하고, 그 예시의 맥락에 이론을 첨가하는 방식으로 설명합니다. 또한 영상 처리, 자연어 처리, 테이블 데이터 처리에 적용되는 딥러닝의 응용 사례뿐만 아니라, 다른 책에서는 찾아보기 힘든 데이터 윤리와 같은 주제도 함께 다루기 때문에 매우 인상적입니다. 이 책은 딥러닝에 능숙해지고 싶은 프로그래머에게 최고의 자료입니다.

_피터 노빅, 구글 연구소장

 

이 책은 코딩을 조금이라도 해본 사람이 딥러닝을 접하기에 가장 이상적인 자료입니다. 책과 더불어 fast.ai 교육 과정을 직접 탐색하고, 재사용 가능한 코드를 제공하여 딥러닝을 실용적으로 쉽게 설명해 줍니다. 더는 추상적인 개념에 대한 정리와 증명을 어렵게 익히지 않아도 됩니다. 1장에서는 첫 번째 딥러닝 모델을 구축하고 이 책이 끝날 무렵에는 딥러닝 논문을 읽고 이해하는 방법을 깨우치게 될 것입니다.

_커티스 랑글로츠, 스탠퍼드 대학교 인공지능 의학 및 이미징 센터장

 

이 책은 딥러닝이라는 블랙박스의 가장 어두운 부분을 쉽게 이해할 수 있게 해줍니다. 파이썬으로 작성된 완전한 노트북으로 빠르게 실험할 수도 있습니다. 또한 인공지능에 내재된 윤리적 문제를 깊이 있게 다루어 디스토피아가 되는 것을 방지하는 방법을 보여줍니다.

_기욤 샬로, 모질라 펠로우

 

OpenAI 연구자로 전향한 전 피아니스트로서, 딥러닝에 뛰어드는 방법을 물어보는 사람들에게 항상 fastai를 추천합니다. 이 책은 복잡한 주제를 친근하게 안내할 뿐만 아니라, 숙련된 실무자에게도 유용한 최신 기법을 다루는 등 주옥같은 내용으로 가득 차 있습니다. 완전히 다른 두 집단 모두를 위한 어려운 작업을 해낸 책입니다.

_크리스틴 페인, 뮤즈넷과 쥬크박스 제작자이자 OpenAI 연구자

 

누구나 딥러닝 프로젝트를 빠르게 시작하는 데 도움이 되는 실습 위주의 접근성이 뛰어난 책입니다. 실용적인 딥러닝에 대해 매우 명확하고 따르기 쉬운 정직한 가이드를 제공합니다. 초보자부터 경영진, 관리자까지 모든 이에게 유용한 자료입니다. 수년 전에 이 책이 있었다면 너무 좋았을 것 같습니다!

_캐럴 라일리, Drive.ai 설립 이사이자 의장

 

제러미와 실뱅의 딥러닝에 대한 전문성, 머신러닝에 대한 실용적 접근법, 그리고 이들이 이바지해온 오픈소스는 파이토치 커뮤니티의 핵심 중 하나입니다. 머신러닝의 접근성을 더욱 쉽게 만들기 위해 fast.ai 커뮤니티가 해온 작업의 일환인 이 책은 AI 전체 분야에 큰 도움이 될 것입니다.

_제롬 페센티, 페이스북 AI 부사장

 

딥러닝은 최근 인공지능의 놀라운 발전을 책임지고 있는 현재 가장 중요한 기술 중 하나입니다. 이전에는 박사 학위 소지자만을 위한 분야였지만, 이제는 아닙니다! 매우 인기 있는 fast.ai 교육 과정을 기반으로 작성된 이 책은 프로그래밍 경험이 있는 모든 사람이 딥러닝에 접근할 기회를 제공합니다. 훌륭한 실습 예제, 대화형으로 실행해볼 수 있는 사이트와 함께 딥러닝이 탑재된 시스템의 ‘전체’를 가르칩니다. 또한 박사 학위 소지자에게도 유익한 내용이 많이 담겨 있습니다.

_그레고리 피아테스키-샤피로, KDnuggets 사장

 

최고의 딥러닝 전문가인 제러미와 실뱅이 저술한 이 책은 제가 지난 수년간 꾸준히 추천해온 fast.ai 교육 과정의 연장선으로, 수개월 만에 초심자에서 자격을 갖춘 실무자가 되는 길을 안내합니다. 

_루이스 모니어, 전 에어비앤비 인공지능 연구소장이자 알타비스타 설립자

 

이 책을 강력하게 추천합니다! 고급 프레임워크로 구체적인 실제 인공지능 및 자동화 작업을 빠르게 다뤄볼 수 있습니다. 또한 모델을 안전하게 상품화하는 방법, 절실히 필요한 데이터 윤리와 같이 일반적으로 간과되는 주제도 함께 다룹니다.

_존 마운트와 니나 주멜, 『R로 배우는 실무 데이터 과학』 저자

 

이 책은 파이토치 기반으로 구축된 강력한 머신러닝 프레임워크이자 탄탄한 커뮤니티인 fast.ai와 함께할 때 책 이상의 가치를 지니게 됩니다. 일류 산업 연구실에서 경쟁력을 갖출 수 있는 최신 기법들을 타협 없이 약간의 계산만으로 즉시 사용 가능한 수준으로 제공합니다. 개인적으로 이 책과 함께 fast.ai 교육 과정이 지닌 교육과 학습에 대한 철학은 여러 차원에서 개인적 성장을 가속화할 수 있는 도구를 제공합니다. fast.ai 교육 과정과 이 책을 통해 소프트웨어 공학, 테스트, 반복적 개발 방법론, 윤리적 프레임워크에 대한 귀중한 경험을 배울 수 있습니다. 이 책을 통해 제러미의 정신을 엿볼 수 있습니다. 마지막으로 제러미와 실뱅의 교육 방식은 항상 이해심과 공감력에 기초하고 있고, 이는 오늘날 가장 접근성이 좋은 딥러닝 책을 탄생시켰습니다.

_하멜 후사인, CodeSearchNet 프로덕트 리드 및 깃허브 머신러닝 엔지니어

 

이 책은 ‘프로그래머를 위한’ 것이며, 박사 학위는 전혀 필요하지 않습니다. 저는 박사 학위 소지자이고, 프로그래머가 아닌데 왜 이 책을 검토했을까요? 바로 이 책이 얼마나 굉장한지를 알려드리기 위해서 입니다! 여러분은 1장의 몇 페이지 내로 4줄의 코드와 1분 미만의 계산량으로 고양이와 개를 분류하는 최신 신경망을 구축하는 방법을 배우게 됩니다. 그다음 모델을 상품화하는 2장에서는 서버, HTML, 자바스크립트 없이 웹 애플리케이션을 즉시 배포하는 방법을 배웁니다. 이 책을 양파에 비유하고 싶습니다. 가능한 최고의 설정으로 작동하는 완전한 패키지로 시작해서, 일부 변경이 필요하다면 하나의 껍질을 벗겨내면 되기 때문이죠. 좀 더 많은 변경이 필요하다고요? 그러면 계속해서 더 많은 껍질을 벗겨내면 됩니다. 그렇게 순수 파이토치를 사용하는 수준까지 껍질을 벗겨나갈 수 있습니다. 이 많은 분량의 여정 동안 세 명의 독립적인 목소리는 각 주제에 대해 지침과는 개별적인 관점을 접하는 기회도 제공합니다.

_알프레도 칸지아니, 뉴욕 대학교 컴퓨터 과학 교수

 

이 책은 접근성이 좋으며, 대화형 방식으로 작성된 책으로 딥러닝 개념을 전체적인 관점에서 가르칩니다. 이 책은 실제 예제를 즉시 다뤄볼 기회와 함께, 필요한 경우에서만 독자에게 참고용 개념을 제공하는 데 집중합니다. 실무자의 경우 전반부 실습을 통해 딥러닝 세계를 접할 수도 있지만, 후반부로 직행하여 더 심도 있는 개념을 자연스럽게 접하는 것도 가능합니다.

_조시 패터슨, 패터슨 컨설팅

 

여러분의 모델이 원하는 대로 작동하지 않을 때 이 책을 읽어보세요! 제러미의 실제 경험과 실뱅의 이론적 지식의 훌륭한 결합을 제공할 뿐만 아니라, 딥러닝의 기술에 더욱 쉽게 접근할 수 있도록 해줍니다.

_론 코하비, 에어비앤비 기술 펠로우이자 부사장

 

제러미, 실뱅, 레이철은 인공지능 분야의 커뮤니티와 접근성이 뛰어난 도구를 만드는 데 있어 통달한 분들입니다. 이 책은 전 세계적으로 미래의 인공지능 연구자가 될 수천 명이 쉽게 관련 분야를 습득하는 데 도움이 되는 fast.ai 팀의 또 다른 역작입니다. 축하드립니다!

조 스피삭, 페이스북 파이토치 프로덕트 관리자

 

책에 내용들을 실습해 보면서 딥러닝에 대해 좀더 이해도가 높아졌다고 생각이 들면서도 한편으로는 fastai가 뭔데? fastai 역할이 뭐였을까? 하며 되짚어 보게 되었습니다. 저자가 딥러닝 이해를 위해 fastai를 사용하였다고 했듯이. fastai는 딥러닝을 구현하기 위한

도구에 불과했던 것이었습니다. 물론 다른 라이브러리와 비교해볼 수 있겠지만, 다양한 분야에서 활용할 수 있는 라이브러리와

도구들을 제공하기 때문에 접근성이 좋은 라이브러리다 라고 단언할 수 있겠습니다. 

    마지막으로 책에 대해 이야기하면서 마무리 하도록 하겠습니다. 책에서는 딥러닝에 대해 로우레벨에서 하이레벨까지 다양한 난이도로

설명하고 있습니다. 그래서 책도 두껍고 중간중간 어려운 용어들도 등장하기도 합니다만, 앞부분 부터 차근차근 읽어나가기에는 큰 어려움이 없었습니다. 한번에 읽히는 느낌은 아니었지만, 반복해서 읽다 보면 딥러닝에 대한 이해도가 많이 올라가겠구나 라는 생각이 들었습니다.

요새는 인공지능 교육에 대한 수요가 많기도 하고, 유무료로 교육자료가 제공되는 형태들도 많아졌다. 맘만 먹으면 양질의 인공지능 강의를 무료로도 들을 수 있는 것이다. 물론 수많은 강의들이 있겠지만, 그 중에 한 축이라고 할 수 있는 강의 중 하나가 fast.ai일 것이다.

 

fast.ai · Making neural nets uncool again

15 Mar 2022 Rachel Thomas On the surface, I may seem into math: I have a math PhD, taught a graduate computational linear algebra course, co-founded AI research lab fast.ai, and even go by the twitter handle @math_rachel. Yet many of my experiences of acad

www.fast.ai

이 단체는 진짜 어떻게보면 인공지능 교육에서 다양한 영향력을 미친다. 물론 Andrew Ng 교수의 ML 강의나 Stanford대학의 cs231n과 같이 이론적인 내용을 다루는 강의도 있겠지만, fast.ai에서 제공하는 강의는 뭔가 이론적이라기 보다는 실용적으로 활용할 수 있는 방법론에 대해서 주목한다. 예를 들어서 tensorflow나 pytorch와 같이 특정 딥러닝 프레임워크에 초점을 맞추기보다는 번거로운 작업을 대신 구현해놓은 fastai 패키지들이나 교육 내용을 공유할 수 있는 fastpages같은 것을 통해서 사람들이 인공지능 교육을 어렵다고 느끼기 보다는 실용적으로 접근할 수 있도록 해준다. 사실 오늘 소개할 책도 이 단체에서 만든 MOOC 강의인 "Practical Deep Learning for Coders"을 풀어쓴 책이기도 하다.

 

 

책의 두께는 여타 다른 인공지능 관련 책과 비교했을 때 무척 두껍다. 그런데 신기한 것은 이 두꺼운 책 내에 수학 공식이나 어떤 이론을 증명할 때 그 복잡한 과정이 거의 없다. 예를 들어서 신경망 이론을 처음 공부할 때 다루게 되는 Perceptron에서도 output이 어떻게 도출되는지 weight과 bias의 복잡한 곱셈 연산부터 쭉 다루는 반면, 이 책의 첫번째는 이런 이론적인 내용이 아니라 딥러닝을 공부하면서 다루게 될 수많은 예시들을 간단하게 체험해보는 것이다. 그래서 책의 내용이 뭔가 딱딱하지 않고, 술술 풀어서 전개된다. 강의 사이트에서도 명시되어 있는 내용이지만, 이 책에서는 다음의 내용을 최대한 배제하려고 했다.

 

few things you absolutely don't need to do world-class deep learning

 

간단하게 설명하자면, 흔히 딥러닝을 할 때 장애물이라고 생각할 수 있는 것이 세가지가 있는데, 바로 수학과 방대한 데이터, 그리고 이를 학습시킬 고성능의 컴퓨터인데, 이 강의에서는 이런게 필요없다는 것을 강조한다. 그런 내용이 책에도 반영되어 있어서 책에서 다뤄지는 내용이 막 엄청 이론적인 지식을 요구하거나 그렇지 않다. 참고로 책에서 다뤄지는 내용은 다음과 같다.

  • 딥러닝 맛보기
  • 딥러닝에서 다뤄지는 데이터 윤리
  • fastai API를 활용한 비전 모델과 언어 모델 구현
  • fastai API를 활용한 데이터 처리 등..

물론 어떤 사람에 따라서는 "왜 굳이 tensorflow나 pytorch를 알아서 쓰면 되는데, 굳이 fastai 패키지까지 알 필요가 있을까?" 하고 의문을 가질 수 있는데, fastai API 자체가 복잡하고 번거로운 작업을 간단하게 할 수 있도록 도와주고, 모델 생성이나 이론적인 내용을 구현할 때는 PyTorch의 도움을 받는다. 진짜 책의 의도대로 최대한 실용적으로 딥러닝에 접근할 수 있도록 해주는 것이라고 생각한다.

개인적으로 생각하는 책의 장점은 "생각할 수 있는 여지"를 매 장마다 부여한다는 것이다. 딱 책 자체가 실용적으로 구현해보는 것 위주로 되어 있기는 하지만, 책을 읽다보면 "어 이런 부분이 궁금한데..." 라는 부분에서도 책에서 그에 대한 설명이 이뤄지고, 더 생각해볼 내용에 대해서는 끝부분에서 질문 형태로 만들어서 제공한다. (가령 인공지능 관련 인터뷰를 하게 된다면 도움이 될 듯 하다) 한편 책의 내용 중 데이터 윤리에 관한 내용을 다루는 부분도 있어서, 평소에는 가볍게 넘어갔을 법한 주제에 대한 내용도 소개되어 있다.

책 자체가 두껍기 때문에 선뜻 손이 안갈수도 있겠지만, 한번 딥러닝 공부를 해보겠다 하면 이 책 (+ 강의)를 가지고 시작해보면 어떨까 생각해본다.

 

(해당 포스트에서 소개하고 있는 "Deep Learning for Coders with fastai & PyTorch" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

출처: https://talkingaboutme.tistory.com/entry/Book-Deep-Learning-for-Coders-with-fastai-PyTorch [자신에 대한 고찰]

기본적인 코딩 실력을 갖춘 독자를 대상으로 하는 책입니다. 그리고 수학적 지식도 고등학교 수준의 수학 지식을 요구합니다. 기억이 잘 안 나더라도, 책에서 추천하는 khanacademy.com를 통해 학습하면서 책을 따라갈 수 있습니다.

딥러닝 모델도 알고 싶고, 최근에 언급되고 있는 fastai도 알고 싶고.. 모델 구축 뿐만 아니라 활용까지 고민하고 있는 딥러닝 입문(초급)자에게 추천합니다.

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

 

내가 처음 fastai라는 단어를 보고 이게 뭐지 하고 당황했던 기억이 난다. 점 하나만 찍으면, 의미가 확실해지는데, 그걸 몰랐다. fast.ai 빠른 인공지능이었다. 내가 너무 어렵게 생각했던 것이다.

 

fastai는 파이토치에서 사용하는 딥러닝 라이브러리로 탄탄한 커뮤니티를 구축하고 있어서 이를 통해 정보도 얻기 편리하고 배우기도 좋은 환경을 가지고 있다. 

 

이번에 접한 'fastai와 파이토치가 만나 꽃피운 딥러닝'은 fastai가 가진 교육적 기반 환경을 잘 활용하여, fastai와 함께 딥러닝을 제대로 배울 수 있는 기회를 제공하는 책이다.

 

워낙 시중에 딥러닝 관련 책들이 넘쳐 나는 상황이다 보니, fastai라는 새로운 거 하나 알려주는 책인가 보다 할 수 있으나, 읽어 보면 알겠지만, 내용면에서 상당히 독특한 특징이 풍기는 개성이 넘치는 책이다.

 

 

 

첫 번째로 이 책은 세미나 또는 수업 강의를 듣는다는 느낌을 크게 받는다. 720쪽이나 되는 두툼한 책의 분량만 봐도 저자가 얼마나 많은 것을 알려주고 싶어 안달이 났는지 알 수 있을 것이다. 실제 책에서는 딥러닝 설명에 영화 이야기도 나오고, 역사적 사실, 저자들의 경험, 각종 중요 논문 이야기 같은 것들이 불쑥불쑥 튀어나온다.  사각 박스로 처리되어 나오기도 하고, NOTE로도 나온다. TIP을 통해서는 제러미, 실뱅 저자의 부가적 설명도 나와서 대화식 강의의 느낌도 들게 한다.

 

 

 

물론 이렇게 정보가 많으면 산만해질 수도 있다. 그러나 각 장 끝날 즈음해서 내용을 제대로 이해했는지 체크할 수 있는 '질문지' 파트가 있어서 길을 잃지 않고 정리할 수 있게 돕는다. 아울러 '추가 연구' 코너는 각 장의 주제를 좀 더 깊은 공부할 수 있게 방향을 제시해준다.

 

두 번째 특징은 내용을 보면, 보통 책들은 인공지능에 대한 기본 지식을 설명하고 테스트 코딩이나 활용이 나오는데, 이 책은 반대로 파트1 실전 딥러닝이란 주제로 딥러닝 소개와 함께 개와 고양이 인식, 곰의 종류 분류 같은 간단한 활용부터 해본다. 

 

이런 학습 방식은 사람에 따라서 호불호가 있을 수 있다. 일단 뭔가 짜봐야 이해가 빠른 분에게는 이 방식이 아주 잘 맞을 수 있을 것이다. 나도 그런 쪽이긴 한데, 원리부터 배우고 활용하는 식으로 된 책을 더 많이 봐서 그런지, 나도 처음에는 살짝 당황스러웠다. 

 

파트1에서 수박 겉핥기 활용을 하며, 기본 용어와 지식을 익히고, 파트2에서 본격적으로fastai를 조금씩 깊이 있게 알아보고, 파이토치의 내부적인 성능에 대해서 많은 이야기를 하며, MNIST, 시그모이드, 모델 해석,  다중 레이블 분류, 이미지네트, 평활화 등 여러 딥러닝 관련 알고리즘과 기법에 대해 배운다. 

 

 

 

이렇게 활용 위주로 학습을 하고, 파트3에서 언어 모델과 합성곱 신경망, ResNets, 영상처리, 자연어처리 같은 딥러닝의 기반지식을 배우게 된다. 파트4에선 신경망, CNN 같은 것을 익히다 보니, 아마 일반적인 인공지능 책을 보셨다면, 이쪽 파트가 더 익숙하게 느껴질 것이다.

 

이렇게 역으로 가는 학습 구성은 진도가 나갈수록 앞에 것을 다시 곱씹어 보게 만든다. 주입식이 아닌, 근본적인 원리를 생각하며 찾아보는 능동적 학습을 하게 한다. 'WARNING_잠시 멈추고 생각해봅시다!' 같은 코너를 봐도 그런 의도를 알 수 있다. 물고기를 주는 것이 아닌, 낚시하는 방법을 알려주고 있는 것이다. 그만큼 주제별로 깊이 있게 파고들며, 스스로 문제 해결책을 찾는 힘을 길러준다. 더욱더 공부하라고, 도움이 되는 책도 곳곳에서 추천하고 있다. fast.ai에 모든 것을 익힐 수 있게 어떻게 하면, 제대로 활용할 수 있는지 구체적인 학습 방법이나 book.fast.a, course.fast.ai의 활용법도 알려주고 있으며, 학습한 것의 완벽한 소화를 위해 블로깅을 하라고도 조언한다.

 

다양한 사고를 독려하고 있으면서도 코드 설명에 있어서는 아주 꼼꼼하다. 함수에 인자들이 어떤 역할을 하는지, 어떤 의미를 가졌는지, 자세히 알려주고 있다. 인공지능에 있어 이것들을 제대로 알고 있지 않으면, 전혀 엉뚱한 결과를 가져오게 되므로 매우 중요하다.

 

 

 

세 번째 특징으로 'fastai와 파이토치가 만나 꽃피운 딥러닝'은 가급적 어려운 수학을 사용하고 있지 않다는 점이다. 고등학교 수준 정도이고, 그나마도 책에 비중이 크지 않다. 어쩌다 상위 개념의 수학이 나오면, 프로그램 코드로 개념을 바꿔 설명하고 있어 프로그래머 입장에서는 더욱 편하게 받아들일 수 있다. 

 

이는 딥러닝에 대한 거부감을 더는데 도움이 된다. 비전공자도 좀 더 쉽게 접근하게 만들고, 이를 통해 자신이 잘하는 업무에 딥러닝을 활용하도록 용기를 준다. 이 책의 저자인 제러미 하워드도 세계적으로 유명한 딥러닝 전문가이지만, 철학 전공자다. 

 

 

 

책 내용 중에 독특했던 것은 데이터 윤리 부분이었다. 다른 딥러닝 책에서는 거의 다루지 않는 주제의 내용이었다. 과학자의 생명 윤리와도 비슷한 느낌인데, 잘못된 알고리즘이 어떤 문제를 낳는지 구체적 사례를 보며, 데이터 윤리가 왜 중요한지를 말하고 있다.

여기에는 여러 예가 나오는데, 그중 IBM의 기술이 홀로코스트에 일조했다는 것은 충격적이었다. IBM은 단지 기술적인 일을 했을 뿐이지만, 그 결과는 참혹한 만행에 일조를 한 것이다. 

 

자동화나 인공지능 개발자도 비슷한 상황일 수도 있다. 내가 만든 자동화 기기, 인공지능 프로그램이 결국 사람들의 일자리를 뺏고 있는 것이 아닌가 하는 그런 거 말이다.

많은 책에서 그건 시대의 흐름이고 러다이트 운동 같은 짓을 해서는 안된다고 한다. 새로운 일자리도 창출될 거라고 한다. 하지만, 현재 상황은 일자리가 줄고 있다는 것이 사실이며, 새로운 일자리는 더 고도화된 기술 가진 인력만이 누릴 수 있다. 단순노동자는 녹아가는 빙산 위에 있는 것과 마찬가지 형국이다.

 

자신이 개발하고 있는 알고리즘이 어떤 편향을 가지고 있는 게 아닌지, 또는 도덕적, 윤리적, 사회적으로 어떤 영향을 끼칠지 신중히 고민할 필요가 있다. 

 

 

 

'fastai와 파이토치가 만나 꽃피운 딥러닝'은 초보자를 위한 책이기는 하지만, 적어도 파이썬 코드는 볼 줄 알아야 한다. 인공지능을 아예 모르는 분들은 다소 버겁게 느낄 수도 있다. 급한 마음으로 단기간에 책을 정복하겠다는 생각보다 좀 여유를 가지고 하나씩 실습하며 진도를 나가는 것이 좋을 것이다. 

 

반면, 인공지능을 좀 접해 본 분들은 기존 지식을 새로운 시각으로 볼 수 있는 기회가 될 것이다. 미흡한 부분을 다시 체크하는데도 도움이 되는 책이기도 하다. 인공지능 공부는 결과도 중요하지만, 어떻게 그런 결과가 나왔는지 제대로 이해하는 것이 더욱 중요하다. 그래야 더욱 효율 좋은 알고리즘도 만들 수 있다고 생각한다. 그런 면에서 'fastai와 파이토치가 만나 꽃피운 딥러닝'이 그런 생각 근육을 길러주는데 여러 도움이 될 것이다.

딥러닝 공부는 ‘fastai’를 만나기 전과 후로 나뉜다.

내가 짠 코드가 딥러닝을 한다! 이제 조금 게으르게 살아도 되겠다!

- 사이트 책 소개 중 -

책 소개에는 저런 내용이 있다. 정말 게으를 수 있는 것인가.

차일 파일 공부를 미루다 보니 이전 보다 더 쉽게 그리고 더 좋은 기능들이 많이 나오고 있다.

사람은 역시.. 게으름을 위해 부지런해지는 동물인가 보다. 책 뒷면도 같은 내용 !

개발자에서 말하자면 늘 내가 짠 코드가 딥러닝을하지만.. 과거보다 훨씬 쉽고 다양한 것으로 그리고 딥러닝에 대해서 잘 알지 않아도 충분히 이해할 수 있게 해주겠다는 자신감으로 보인다.

과연 그러한지 하나씩 보자면..

정말 책이 두껍다. 종이도 얇은데 두께가 어마무시 하다. 600 페이지가 넘는 양이라니..이쑤시게통 높이의 절반 두께라면 얼마나 두꺼운지 짐작 해 볼 수 있다.

책은 코딩경험이 없어도 충분히 이해 할 수 있도록 작성되었다고 말하고 있다. 과연 책의 대부분의 내용은 코드와 결과를 눈으로 볼 수 있도록 충분히 수록되어 있고 컬러와 함께 설명도 잘되어 있다. 이미지를 설명할 때는 이미지를 텍스트일 땐 텍스트를 수식은 수식을 이해할 만큼 충분한 양으로 설명한다.

 

또한, 책은 기술에 대해서만 설명하지 않는다. 머신 러닝에서의 데이터 윤리에 대한 내용도 정리하고 있다.

 

단순 사용만이 수록되어 있는것이 아니라 데이터를 구성하고 사용하기 위한 생각법과 머신러닝 어플리케이션을 만들고 배포하는 것도 알려주며, 주피터로 블로그를 만드는 방법 또한 설명한다.

정말로 제로에서 시작하는 머신러닝 배움의 책!

최신 정보까지 잘 정리해 놓은 책으로 또 다시 세상이 바뀌기 전까지 꾸준히 보고 실습에 사용하기 좋은 책이라고 생각한다.

한줄 한줄 읽고 코드는 따라 하다 보면 어느새 fastai가 무엇인지, 어떻게 사용하는지를 알게 될 것이다.

번역서라는 것을 잊을 만큼 깔끔하게 정리되어 있다!

 


 

 

 

1. 대상 독자

  위의 책은 보통의 책들과는 다르게 기초부터 쌓기보단 큰 숲을 먼저 경험하고 세부적으로 살펴보는 책입니다. 책의 저자는 어느정도의 프로그래밍 방법과 수학 기초 지식(고등학교)이 있는 독자를 대상으로 작성했습니다. 실제로도 저자가 잘 풀어쓰기 위해 노력했다는 것이 느껴집니다. 직접 만들어보는 작업을 통해서 흥미를 가지고, 점차 세밀하게 배우고 싶은 독자라면 좋은 책이 될 것 같습니다. 

 

2. 이 책의 특징

1) 데이터 윤리 파트

 과학기술의 발달로 데이터 윤리 또한 부각이 되어가고 있습니다. 우리가 만든 모델이 윤리적인 문제를 발생시킬 수 있다는 부분을 언급해주며, 다양한 사례를 통해 인공지능을 만드는 제작자로 올바른 결정과 고민을 하도록 도와주는 부분이라고 할 수 있을 것 같습니다.

 

2) 수학을 최대한 이해하기 쉽도록 구성

 수학과를 졸업했음에도 수학적인 정의는 현실적으로 이해하기가 어려운 경우가 많습니다. 저자의 말을 통해 쉽게 자신의 것으로 만드는 방법 등을 표현해줌으로써 자신 만의 방법으로 이해하도록 돕는 부분이 인상적이었습니다. 이외에도 수식적인 부분이 등장할 때마다 그림을 통해 최대한 이해하기 쉽도록 구성하였습니다.

3) 챕터가 끝날 때마다 포함되어 있는 질문

 각 챕터별로 알아야할 개념에 대해 마지막으로 짚어볼 수 있도록 구성한 부분이 인상적이었습니다. 이 챕터를 읽고 해당 질문에 대해 답변하지 못하는 부분이 있다면 해당 파트를 스스로 공부할 수 있도록 도와줄 수 있을 것 같습니다. 혼자 공부해본 경험을 살려보면, 어떤 것이 더 중요한 지에 대해 알고 접근하기가 어려웠습니다. 해당 질문지가 그런 어려움을 해결해주는 길잡이가 될 것이라고 생각합니다.

 

3. 총평

 최근에 많이 활용되는 PyTorch, Tensorflow를 활용해서 밑바닥부터 쌓기보다는 먼저 접근하기 쉬운 라이브러리로 딥러닝을 배우고 싶은 사람에게 추천드리는 책입니다. 또한 PyTorch에 대한 내용도 많이 포함하고 있어서, fastai를 시작으로 PyTorch까지 확장해나가기 괜찮은 책인 것 같습니다. 특히, 번역서의 경우에 문맥이 매끄럽지 못한 부분이 많은데, 이 책은 번역 측면에서 아쉬운 느낌은 없는 책입니다.

 

Deep Learning for Coders with fastai & PyTorch

fastai와 파이토치가 만나 꽃피운 딥러닝

  부제 : 학위 없이 AI를 폼나게 구현하는 법

 

 

한빛미디어, 인공지능 서적, 초판 1쇄 21.08.10, Deep Learning for Coders with fastai & PyTorch

 

 

  저자 : 제러미 하워드, 실뱅거거

  번역 : 박찬성, 김지은

 

fast.ai 기관의 창립 연구자인 제러미 하워드 와 fast.ai 의 연구 과학자인 실뱅거거에 의해 집필된 책입니다.

부제에서 나타내고 있는것 처럼 "학위 없이 AI를 폼나게 규현하는 법"을 모토로 하고 있습니다.

본 책은 인공지능 관련한 깊은 지식이 없더라도 쉽게 접근할 수 있는 방법을 제시하고자 하나,

책 내용에서는 대상 독자가 최소 알면 좋을 것 같은 부분들이 명시 되어 있습니다. 

 

 

 

대상 독자 및 알아둘 내용에서 제시하는 약간의 파이썬 코딩 경험 (1년 정도의 경험이라고 되어 있음), 그리고 고등학교 이상의 수학 과정을 마친 분을 대상으로 한다고 되어 있는데, 

이 책을 공부하면서 어느 정도 이해를 하고자 한다면, 어느 정도 수학 용어는 이해 하는것이 좋을 것 같으며, 코딩에 대한 경험은 최소 코드를 읽을 수 있다면 좋을 것 같습니다.

 

사실, 딥러닝에 대해 학문적으로 접근하게 되면 공부해야할 책들이 너무 많기에 처음 시작하기에는 그 양도 많거니와 이해하기도 힘든 부분들이 많습니다. (생소한 용어들도 많구요... 수학적인 부분들 ......)

처음부터 지칠 수 있는데, fast.ai 와 PyTorch 는 수미스 친탈라 (파이토치 공동 제작자)가 감사의 글에서 얘기한 것과 같이 처음 시작할 경우에 충분히 쉽게 접근할 수 있도록 해주는 것 같습니다.

단, 책에서도 적혀있는 것과 같이 fast.ai 의 fastai 라이브러리는 하나의 도구이기 때문에 한 가지만 바라보는 것 보다는 딥러닝의 이해를 쉽게 하기 위한 도구로써 사용 하면서 여러가지 라이브러리들을 접해 보는 것도 좋을 것 같습니다.

 

차례를 보게 되면, 

-------------------------------------------------------

      PART 1 실전 딥러닝

      PART 2 fastai 애플리케이션 계층 이해하기

      PART 3 딥러닝의 기반 지식

      PART 4 밑바닥부터 구현하는 딥러닝

      PART 5 부록

-------------------------------------------------------

으로 구성 되어 있습니다.

 

"PART 1 실전 딥러닝" 에서는 딥러닝이 어떤 것인지 그리고 간단한 신경망에 대한 역사, 딥러닝을 배우는 방법

           fast.ai 에서 PyTorch 를 도입한 이유와 지속적으로 사용하고 있는 이유를 시작으로 

           "첫 번째 모델 만들기" 를 시작으로 실습을 통한 학습을 시작 합니다.

           본 책에서는 프로그래밍 실험 플랫폼인 주피터 (https://jupyter.org) 를 사용합니다.

           그리고 다양한 모델을 통하여 학습 할 수 있도록 구성되어 있습니다.

           "데이터 윤리"에 대한 부분은 모든 사람들이 꼭 읽어 봐야 할 부분인 것 같습니다.

"PART 2 fastai 애플리케이션 계층 이해하기" 에서는 "PART 1" 에서는 따라하기 형태로 모델을 만들고 애플리케이션을

           배포하는 과정 등 큰 그림에서 학습하였다면, "PART 2" 에서는 실제 내부에서 일어나는 일들을 학습 할 수

           있도록 이끌어 줍니다.

           그래서, 수학 관련 부분들이... 많이 나오네요.

"PART 3 딥러닝의 기반 지식" 에서는 지금까지 도구에 대한 연습과 그리고 내부에서 일어나는 일들에 대해 학습한 것을

           기반으로 확장해서 언어 모델을 만들어 보고 어플리케이션의 구조를 들여다 보게 됩니다.

           (언어 모델의 구현, 합성곱 신경망, ResNets, 애플리케이션 구조 에 대한 내용을 다루고 있음)

"PART 4 밑바닥부터 구현하는 딥러닝" 에서는 밑바닥 부터 라는 제목처럼 세부적인 구현방식을 익힐 수 있도록 이끌어

           줍니다. (기초부터 만드는 신경망, CAM을 이용한 CNN 해석, Learner 클래스에 대한 내용들을 다루고 있음)

 

책 자체의 설명은 최대한 쉽게 설명하고자 노력하고 있고, 그리고 중간중간 알아야 할 부분들에 대해서는 NOTE 블럭을 이용하여 추가 설명을 해줍니다.

 

 

책을 보다 보면 실제, NOTE 에서 알려주는 것보다 좀 더 많이 찾아보아야 할 부분들이 많긴 하지만, 하나하나씩 따라해보고 읽어가보면 조금씩 알아가는 재미는 있습니다.

 

차례로 실습하고 결과에 대한 그림들을 이용해서 쉽게 설명하고 있으며, 필요한 용어들에 대해서는 녹색의 볼드체로 표시하고 있습니다.

 

 

각 챕터의 마지막에는 "질문지" 를 두어 학습한 것을 다시 리프레쉬 할 수 있도록 하고 있습니다.

질문지에 대한 답안지는 없는게 아쉬울 수도 있을 것 같지만 기억나지 않는 부분에 대해 다시 찾아보고 익힐 수 있는 장점(?)은 있습니다.

그리고, 추가 연구라는 섹션을 두어 익힌 부분에 대해 좀 더 자율적으로 확장할 수 있도록 주제를 던져 줍니다.

 

책의 전체 구성을 보면, 처음 접하기에는 어색할 수 있는 용어들과 그리고 당장에 보여지는 파이썬 구문들, 수학 계산들로 인해 어렵게 다가올 수 있지만, 조금씩 천천히 읽다 보면 코드에 대한 설명 및 도출하게 된 이유 등을 설명하고 있기에 원리를 이해할 수 있도록 도와주고 있습니다.

그리고 수학공식 및 개념들에 대해서도 수학적인 부분에 대해서 어느정도 이해는 해야겠지만 최대한 문제 해석을 위한 풀이로 설명하기에 조금이나마 쉽게 접근 할 수 있도록 이끌어 주고 있습니다.

 

PART 1 ~ PART 4, 그리고 부록 까지 한번에 이해하기는 힘들지만 이끌어가는 차례대로 정독 하면서 필요한 부분은 구글의 도움을 받으면 충분히 학습할 수 있을 것 같습니다.

  

 

 

720쪽이나 되는 굉장히 두꺼운 책이라서 끝까지 다 보지는 못했지만..

"높은 수준의 수학 교육이나 수년 간의 교육이 필요하진 않다, 약간의 상식과 끈기만 있으면 끝까지 읽을 수 있는 책이다." 라는 글에 힘입어 끝까지 나가보기로. 즉, 고등학교 수학 정도 마쳤다면 누구나 공부할 수 있다고 한다. 고등학교 수준의 수학 실력으로 고가의 장비 없이(Colab활용!) 50개 미만의 데이터로도 의미있는 결과를 도출해 내는 것. 딥러닝을 막 시작한 사람들에게 필요한 것 아닐까.

 

내용 면에서는 이미지, 자연어 처리, 범주형/연속형 데이터 처리부터 밑바닥 부터 딥러닝을 구현하고 성능을 향상시키는 방법, 실무에서 중요한 최신 딥러닝 기술 소개, 딥러닝 연구 논문을 읽는 방법, 윤리적인 측면에 대한 고민까지 광범위하게 다루고 있다. 처음에는 넓은 관점에서 큰 그림을 보고, 서서히 세부적인 것으로 들어갈 수 있도록 구성했다. 사전 학습된 모델을 사용해 가능하면 빨리 자신의 문제에 활용할 수 있도록 유도하는 방향으로 끌고 가므로 질리지 않고 재미있게 공부할 수 있을 것 같다. 앞부분에서 너무 이론이 길어진다든가, 너무 깊이 들어가면 뒷부분까지 끌고 나가기가 어려운데...

 

실습은 Colab을 이용하면 되니 큰 부담이 없고,

https://course.fast.ai/start_colab#Opening-a-chapter-of-the-book

이 사이트에 접속하면 Colab 사용법 부터 각 챕터마다 담겨 있는 소스코드들을 Colab에서 활용할 수 있는 링크를 볼 수 있다.

 

이 책을 보고 싶었던 제일 큰 이유는 파이토치로 되어 있기 때문이라는 것인데, 그동안 텐서플로에만 익숙해져 있었는데, 이번에 자연어처리를 공부하면서 파이토치에도 익숙해져야 할 필요가 생겨서이다. 기본 개념을 알고 있으면 몇 가지 문법적인 차이만 배우면 되지 않을까 하는 가벼운 마음으로 접근해 보려고 한다.(그러다 큰 코 다치려나?)

 

Colab에서 첫 번째 이미지 인식 모델을 실행해 봤다.

image111.png

 

GPU설정을 안 해서 다시^^

image112.png

 

각각의 명령어 라인에 대해서는 책에서 상세하기 설명을 하고 있기 때문에 그대로 따라가다 보면 감을 잡을 수 있겠다. 실제로 학생들을 가르치면서 느끼는 것은 코드를 작성하고 실행하는 것 보다는 "무엇을 위한 코드를 작성할 것인가"를 생각하고 결정하는 것이 훨씬 더 중요하다는 것이다. 내가 해결하고 싶은 문제가 무엇인가가 먼저이고, 그것을 어떻게 해결할까는 그 다음. 해결책에 대한 안내는 여기저기 참 많다. 이 책도 좋은 안내서가 될 것 같다. 또한 이 책에서는 '원동력 접근법'이라는 것을 소개하고 있는데, 실제로 모델을 유용하게 사용하기 위해 먼저 모델의 사용 방식을 고려해 보자는 것이다. 먼저 목표를 고려하고, 목표에 변화를 주는 '레버'를 생각한 다음, 각 레버를 목표로 연결하는 유용한 데이터가 무엇인지 고민하고, 모델을 구축하는 것이다. '원동력 접근법'이라는 것은 2012년에 나왔다는데(10년!) 용어 자체는 처음 들어보고, 내용 면에서는 내가 생각했던 것과 통하는 점이 있어서 흥미로웠다.

 

 

책의 구성이나 배치도 읽기 편하게 되어 있고, 각 장마다 있는 결론, 질문지, 추가연구 부분이 생각할 거리를 줘서 나에게는 참 유익했다.

 

 

 

 

image114.png

 

 

image115.png

 

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

 

딥러닝을 쉽게 배울 수 있는 리소스가 아직도 점점 더 많아지고 있고, 그 덕에 초보자들은 기초적인 이론지식부터 복잡한 딥러닝 모델과 태스크에 도달하기까지의 시간이 많이 단축되었다.

<fastai와 파이토치가 만나 꽃피운 딥러닝> 또한 딥러닝 공부를 시작하고자 하는 사람들에게 좋은 입문책이 되어줄듯 하다. 다른 입문책과 차별되는 점이 있다면 CV, NLP, 추천시스템과 같은 굵직한 딥러닝 분야들 맛보기를 다뤄주고 있다는 점. 아직 어떤 필드를 할지 결정하지 못했거나 필드들이 서로 어떻게 다른지 알아보고싶은 사람들에게 제격이다.

개인적으로는 <밑바닥부터 시작하는 딥러닝> 책과 병행해도 좋겠다는 생각이 들었다. <fastai와 파이토치가 만나 꽃피운 딥러닝>이 fastai라는 높은 레벨의 프레임워크를 이용해서 딥러닝 어플리케이션을 쉽게 구현해보는 반면, <밑바닥부터 시작하는 딥러닝>에서는 딥러닝 프레임워크 없이 numpy와 파이썬의 기본 라이브러리만을 사용해서 말그대로 “밑바닥부터” 딥러닝을 구현해본다. 이 두가지 경험 모두 초보자에게는 중요하다. 딥러닝 “이론”만 백날 붙잡고 있어도 딥러닝을 이해하는 데에는 한계가 있고, 잘 되어있는 프레임워크를 사용해서 딥러닝 모델을 “구현”해본다고 해도 무엇이 이론 밑바탕이 되는지 알기 힘들기 때문이다. 만약 초보자 때부터 이 두가지를 모두 경험해본다면, 시작할 때부터 좋은 인사이트를 가지고 딥러닝을 공부할 수 있는 기회를 가질 것 같다. “밑바닥” 시리즈와 이 포스트에서 소개하는 <fastai와 파이토치가 만나 꽃피운 딥러닝> 모두 입문자를 대상으로 출판된 책이니, 겁먹지 말고 펼쳐봐도 좋다.

이 책이 지향하는 방향을 잘 나타내는 책 속 문장들은 다음과 같다.

먼저 간단하면서도 사용하기 좋은 도구를 사용해 실세계 문제를 해겨하는 데 사용할 수 있는 최신 딥러닝 모델을 사용하는 방법을 보여드리겠습니다. 그다음 이런 도구가 만들어진 방시고과 이런 도구를 만든 도구가 만들어진 방식 등을 점점 더 깊이 파고듭니다. (P40)

지금까지 딥러닝은 특정 집단의 전유물처럼 사용됐습니다. 저희는 그 경계를 허물고, 모두가 딥러닝을 쓸 수 있도록 합니다. (P40)

저희는 기술의 기본기를 이해하고, 이를 실제로 적용하고, 새로운 도구와 기법이 출시될 때 신속하게 전문성을 확보하는 방법을 배우는 것이 핵심이라고 믿습니다. (P44)

…그리고 도중에 읽기를 포기했습니다. ‘윽! 나는 도저히 수학을 이해하지 못할 거야!’라고 수천 번 생각했습니다. 그러기를 반복하다가 복잡한 수학적 용어를 접할 때마다 코드로 바꿔 개념을 터득하는 방법을 생각해냈습니다… (P195)

여기서는 그레이디언트 부스팅 트리 앙상블을 학습시키는 방법을 자세히 다루지 않습니다. 빠르게 변하는 분야라서, 이 책을 읽을 때쯤엔 여기서 습득한 지식이 구식이 될 가능성이 높기 때문이죠. (P415)

개인적으로 이 책에 대해 높이 평가하고 싶은 부분이 있다. 바로 Chapter 3 통째로 데이터 윤리를 다룬다는 것이다. 머신러닝은 그저 우리가 먹여주는 데이터를 가지고 학습을 하기 때문에, 데이터의 내용과 퀄리티에 따라 천차만별한 결과를 보일 수 있다. 최근 몇년동안 데이터 윤리에 대한 중요성이 점점 더 조명을 받고 있는데, 과거 딥러닝 입문 책에서는 거의 다루지 않거나 조금만 언급하고 말았던 데이터 윤리 내용을 한 챕터에서 디테일하게 설명해준다. 건강관리 알고리즘의 버그가 많은 환자들에게 피해를 끼쳤던 사례, 유튜브 추천 시스템이 갑작스러운 음모론 유행을 일으킨 사례에 더불어 아프리카계 미국인 이름을 구글링하면 범죄 신원 조회 광고가 등장했던 사례를 소개하고 이와 같은 문제에 대응할 수 있는 기술적인 방법론과 사회적으로 요구되는 책임감을 다룬다. 혐오 표현, 알고리즘 필터 버블과 같은 관련 연구들이 활발하게 진행되고 있는 시기인 만큼, 입문자들도 이와 관련해서 처음부터 공부할 기회가 있다면 딥러닝을 조금 더 넓은 시각에서 바라볼 수 있을 듯 하다.

이처럼 이 책은 딥러닝을 직접 만져보면서 입문하기에 매우 적합한 책이고, 많은 실질적인 문제들을 쉬운 예시를 들어 소개해준다. 번역이 어색한 부분들이 있어서 아쉽긴 했지만 번역본들의 특성상 어쩔수 없는 부분이기도 하다. 직접 만지면서 공부하기 좋아하는 입문자들에게 추천한다. :)

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

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

리뷰하기에 앞서서...

사실 저는 fastai API를 쓸 일이 없다고 생각했습니다. Scratch로 구현할 수 있기 때문이기도 하지만, API를 활용하면 API가 지원하지 않는 최신 모델들과는 호환성이 떨어진다고 생각했기 때문이기도 합니다. 보통 그러한 이유로 저는 PyTorch를 베이스로 모델을 구성하고, optuna/ray 등으로 하이퍼파라미터 서치를 하는 경우가 많았습니다.

그럼 왜 fastai?

베이스라인을 구성하는 데에는 이만큼 적합한 것이 없습니다. 리서치 환경에서의 Static data가 아닌 Flow data를 다루고, Cutting-edge architecture와 SOTA 모델을 목표로 하는 것이 아닌 이상 fastai는 정말 빠르고, 간결하고, 편리한 API임에 분명합니다.

이 책은...

결론부터 말하자면 정교하고, 그 내용이 결코 얕지 않은 책입니다.

많은 번역서에서 나타나는 과대번역(Leaky ReLU를 누설 렐루함수라고 번역하는 경우도 봤습니다.) 문제는 심하지 않은 편입니다. 오히려 영어 원문 그대로의 표기를 활용하는 것이 의사소통의 측면에서 정확하다는 생각을 많이 하곤 하는데, 이 책에서는 지나치게 한글 표현을 사용하려고 애쓰다 보니 발생하는 어색한 번역을 찾아볼 수 없었습니다.

저는 개인적으로 ~교과서 라는 제목의 입문서를 썩 좋아하지 않습니다. 간혹 유명한 모델들의 설계도를 그려 놓고서, 이대로 건축을 해봤더니 잘 되는군요! 라고 말하는 경우가 있기 때문입니다. 장기적으로는 이 책처럼 "왜 이러한 설계를 해야 하는가?"라는 Intuition이 훨씬 중요하다고 생각합니다. 아키텍처에 따라 달라지는 Data flow, 혹은 Data의 Geometric Structure(혹은 Topology)를 직관적으로나마 파악하는 것이 훨씬 중요하다고 생각합니다.

이 책은 그러한 욕구를 충족시키기에 충분한 것 같습니다. Pytorch를 활용한 딥러닝 구조 설계 파트와 fastai의 철학을 설명하는 두 파트로 나누어 볼 수 있는데, Pytorch를 활용한 딥러닝 구조 설계 파트에서는 Kaggle Notebook을 여러 번 필사하다 보면 경험적으로 알게 되는 디테일들이 풍부하다고 생각합니다. fastai의 API를 활용하는 11장의 파트가 조금 더 길었으면 참 좋았겠다는 생각이 들기도 하지만, fastai API 입문으로는 충분하고 fastai docs를 보면서 빠르게 적용해 볼 수 있도록 초석을 잘 다져 놓았다는 생각이 들었습니다.

딥러닝의 민주화를 꿈꾸는 fast.ai를 다룬 책으로 애플리케이션 구동부터 밑바닥 구현에 이르기까지 Top-Down 방식으로 fast.ai의 철학과 구현의 묘를 알려주는 양서이다.

fast.ai는 손쉽게 딥러닝을 가능하게 해주는 Pytorch보다 고수준의 딥러닝 라이브러리이다. 흔하게 알려진 Tensorflow, Pytorch에 비해 문자 그대로 얼마나 빠르고 쉽게 AI를 구현할 수 있는지 본 도서의 1장만 참조해도 쉽게 파악할 수 있다.

예를 들면 1장에는 개와 고양이의 분류기를 만드는 예제가 등장하는데 필요한 코드량이 고작 6줄이다. 딥러닝 입문자 수준만 되어도 fast.ai 라이브러리의 학습 유무와 무관하게 직관적으로 이해할 수 있는 코드라는 점이 특징이다.코드

위 코드를 한 번 해석해 보는 것이 fast.ai의 정체가 무엇인지 가장 빠르게 느낄 수 있는 방법이 될 것 같다는 생각이 든다. 그 외에 data 기반으로 손실 함수를 자동 선택하는 매력적인 기능에서부터 doc() 함수와 같이 사소한 부분까지 fast.ai에는 매력적인 기능들이 넘쳐난다.

이 책의 학습 방식은 다소 독특한데 전반적으로 Top-Down 방식으로 구성되어 있다. 먼저 위와 같이 최소한의 코드로 빠르게 개와 고양이 분류기를 만들고 눈으로 직접 확인하며 어플리케이션 사용자가 되어 본다.

다음으로 코드를 한 줄씩 뜯어보며 정체를 알아본다. 코드를 해석하고 난 다음에는 필요한 딥러닝의 개념, 모델의 구조를 알아보는 식이다.상세코드
구조

종국에는 fast.ai 없이 밑바닥까지 구현하는 구성으로 되어 있으며 필요 시 논문 및 연구 결과를 해석해보는 것은 물론 그 안에 포함된 수식도 주저없이 다룬다.연구

fast.ai라는 것이 밑바닥 레이어를 가리고 빠르고 쉽게 딥러닝을 구현 가능하게 해주는 라이브러리라는 것이 무색할 정도로 시간이 흐를수록 책이 뒷부분으로 넘어갈수록 깊이 있는 내용까지 세세하게 파고든다는 것이 꽤 아이러니했다.

얼마나 상세하게 다루는지 그동안 기초라고 생각하며 넘어갔던 내용도 상세히 뜯어주고 있어 당연하듯 외우고 넘어갔던 부분을 내가 얼마나 모르고 있었는지 부끄럽게 만들어 줄 정도이다.

왠만한 교과서 이름 들어가는 딥러닝 책을 수 십권 이상 읽은 것 같은데 새롭게 배우게 된 내용들이 많아서 충격이었다.

대충 알고 있던 연구 결과의 심오한 의미를 다시 깨닫게 된 것에서 시작하여 마빈 민스키 교수가 XOR과 관련하여 여러 층의 신경망으로 해결할 수 있다는 사실을 증명했다는 사소한 것까지 이 책 덕분에 바로 잡을 수 있었다.

분량도 700p가 넘고 fast.ai를 사용하는 사람들의 기대와는 다르게 왜 딥러닝의 밑바닥까지 기술했는지 읽을 수록 궁금했다. 상당한 분량의 책을 오랜 시간 1회독한 후에야 저자들의 의도를 어렴풋이나마 알 수 있게 되었다.

아마도 이 책을 읽는 독자는 수준이나 경험의 차이는 있을지 몰라도 딥러닝으로 어떤 솔루션을 구현하는데 있어 저마다의 방법론을 갖고 있을 것이다.

때로는 그 방법이 매우 뛰어난 방법이 될 수도 있는 반면 크게 도움이 되지 않는 조촐한 방법이 될 수도 있을 것이다. 그리고 아마 대부분 후자에 해당될 것이다.

나 역시 딥러닝을 활용한 나름의 해결 방법론을 갖고 있는데 이 책 덕분에 나의 방법이 얼마나 조악하고 임기 응변 식이었는지 적나라하게 깨달을 수 있었다.

fast.ai의 껍데기에서 11장의 중간수준 API를 거치고도 밑바닥까지 구현하는 방법을 모두 소개하는 과정 덕분에 fast.ai는 어떤 철학으로 만들어졌으며 나의 방법과는 어떤 차이가 있는지 깨달을 수 있었다.

그리고 이 책의 저술 방식 또한 fast.ai의 철학을 그대로 따르고 있다는 사실을 알게 되었다. fast.ai가 딥러닝의 민주화로 칭송받는 만큼 이 책은 fast.ai가 어떻게 만들어졌는지 투명하게 공개하여 다른 고수들의 도전을 받아들일 준비가 되었음을 시사하는 것 같아 감회가 새로웠다.

읽는 내내 세상에 완벽한 시스템은 없지만 이 정도 철학과 구현에 토를 달 수 있을 것인지 만약 그렇다면 fast.ai를 업그레이드하는데 참여해 볼 생각이 없느냐는 저자 심중의 말이 들리는 느낌이었다.

아무튼 fast.ai가 어떻게 구현되고 설계되어있으며 현존하는 다른 솔루션과 어떻게 연결할 수 있는지를 파악하며 내 딥러닝 세계의 모래성이 상당 부분 허물어졌고 새롭게 쌓아 올리게 되었으며 그 과정에서 많은 것들을 배울 수 있었다.

즉, 이 책은 fast.ai의 모든 것을 다룬 책이지 결코 fast.ai의 장점이나 활용 측면만을 다룬 책이 아니라는 것을 꼭 알아두었으면 한다.

개인적으로 가장 재미있던 파트는 9장과 11장이다. 9장은 Tabular 데이터를 다루는데 딥러닝이 얼마나 개입할 수 있고 딥러닝이 무엇을 도와줄 수 있는지에 대해 꽤 깊이있게 다룬다.

캐글 경진대회에 관심이 많거나 기존 레거시를 그대로 안고 AI를 도입하려는 조직에 몸담고 있는 분들이라면 공감이 될 만한 장이다. AI로 새 출발을 하는 스타트업이나 부서라면 모르겠지만 대부분의 기존 부서들은 RDBMS에 대한 의존도가 상당히 높기 떄문이다.

영상처리나 NLP, 시계열에는 딥러닝이 우위를 점하고 있지만 Tabular 데이터 앞에서는 그다지 활용도가 높지 않다. 기존 머신러닝 세계의 앙상블만으로도 꽤 좋은 성능을 내기 때문이다.

하지만 흔히 활용되는 랜덤 포레스트, 그레이디언트 부스팅과 비교하여 딥러닝을 활용하는 방법은 구체적으로 어떤 차이가 있을지 다차원의 피처에서 어떤 도움을 받을 수 있는지 등 다른 책에서 찾아보기 힘든 내용이 많이 담겨 있어 흥미롭게 읽을 수 있었음은 물론 배울 내용이 많았다.

11장은 중간 수준 API를 통해 fast.ai의 내부를 엿볼 수 있는 장이다. Python이 제공하는 추상화의 위력을 실감할 수 있고 콜러블, 데코레이터 등 특수한 기능을 어떻게 fast.ai에 녹였는지 짧지만 쉽게 이해할 수 있도록 잘 정리하고 있다.

fast.ai의 철학을 엿보기 쉬운 장이므로 조금 더 많은 분량을 할애하여 설명해 주길 바랬지만 이 책이 fast.ai의 활용과 이해에 주안을 두고 있는 것을 알았기에 아쉬움을 뒤로 할 수 있었다.

전체적으로 파트1에서는 실제로 눈으로 확인 가능한 제품을 만들고 확인하는 것에서 출발한다. 파트2는 fast.ai의 애플리케이션 레이어에 대한 설명을 다루고 있으며 영상처리, 협업 필터링과 관련한 추천시스템 등 제품 관점에서 필요한 지식 위주의 설명을 담고 있다.

파트3는 딥러닝의 기반을 이루는 모델에 대해 분석하고 논문 등의 연구 결과를 뜯어 본다. 마지막 파트4에서는 밑바닥 수준의 신경망을 구현하는 방법 등을 다루는 데 특히 Learner 클래스를 직접 구현해 보는 19장이 흥미로웠다.

그 외에도 이 책은 많은 흥미로운 서드 파티 요소들을 소개하고 있다. IPython, Voila 등을 이용해서 주피터 노트북을 애플리케이션화하는 방법이나 배포하는 방법 혹은 깃허브 블로그를 만들어 연동하는 방법까지 보다 생태계를 널리 활용하는 방법도 담고 있다.생태계

책의 구성 방식도 매우 독특한데 주인공 세명이 등장한다. 컴퓨터에 강하지만 수학에 약한 제러미, 수학은 잘 하는데 IT에 약한 실뱅, 독자와 비슷한 눈높이를 가진 동료같은 알렉시스가 어려운 내용이 등장할때마다 TIP 박스에 등장한다. 마치 옆에서 얘기해주는 느낌이 들 만큼 친절한 구성이었는데 깊이 있는 이해와 졸릴 때마다 많은 도움이 되었다.

또, 각 장 말미에는 질문지가 등장하는데 딥러닝을 어느 정도 학습한 독자라면 이 질문지를 먼저 읽을 것을 권하고 싶다. 이미 알고 있는 내용은 빠르게 건너뛰고 질문지에서 답하기 힘들었던 내용을 중심으로 입체적으로 읽어나간다면 더 빠르고 확실한 이해에 도움이 될 것이다.

리뷰가 너무 길어져 이만 정리하지만 사실 하고 싶은 말이 너무 많았다. 700p가 넘는 책을 읽다보니 언급하고 싶었던 것도 많지만 너무 글이 통일성도 없고 두서없이 늘어놓는 것만 같아 이즈음에서 줄인다.

꼭 fast.ai를 활용하지 않더라도 밑바닥에서 고수준을 아우르는 라이브러리를 직접 구현하여 사용한다면 스스로의 작품과 fast.ai와의 진검승부에 이 책은 좋은 가이드가 되어 줄 것 같다.

상당히 심오하고 깊이있는 내용임에도 매우 쉽게 전달하는 저자들의 능력과 노력에 감탄했다. fast.ai와 무관하게 딥러닝에 관심이 있는 독자라면 누구에게라도 반드시 도움이 될 것을 확신하며 리뷰를 마친다.


한빛미디어에서 "fastai와 파이토치가 만나 꽃피운 딥러닝" 이라는 책이 출간되어 읽어보았다. 먼저 fastai가 무엇인지 알아보았다. fastai는 제레미 하워드라는 사람이 만든 PyTorch의 상위 Wrapper 같은 개념이며, PyTorch를 이용하여 다양한 기능들을 자동화시켜주고, 딥러닝 모델 구현을 용이하게 한다고 한다.

 

이 책에서는 fastai를 이용하여 최고의 결과를 달성하는 모델을 학습 시키는 방법, AI 모델을 웹 어플리케이션으로 바꾸는 방법, 딥러닝 모델이 작동하는 이유와 방법 등을 다룬다. 또한 딥러닝을 처음 접하는 사람들을 대상 독자로 다루고 있으며, 코딩 경험이 없더라도 내용을 이해하는데에는 무리가 없다. 다만 책이 총 720 페이지에 달하기 때문에 들고다니기에는 약간 무리가 있지만, 그만큼 구성되어있는 딥러닝 내용들이 알차고, 꼼꼼하고 세심하게 잘 설명되어있기 때문에 딥러닝 사전이라고 생각하면 좋을 것 같다. 개인적으로 A부터 Z까지 다룬 책 한 권을 읽는게 지식을 습득하는데 굉장히 도움이 많이 되는 듯 하다. 

 

Part 1. 실전 딥러닝 

1장에서는 신경망의 역사부터 시작해서 딥러닝 학습 방법, GPU를 탑재한 딥러닝 서버 구하기, 검증용 및 테스트용 데이터세트까지 딥러닝을 시작하는데 필요한 기본적인 것들을 전반적으로 설명하고있다. 2장에서는 컴퓨터 영상처리 문제를 예시로 딥러닝 애플리케이션 제작 과정을 처음부터 끝까지 살펴본다. 3장에서는 데이터 윤리에 대해 설명한다.


Part 2. fastai 어플리케이션 계층 이해하기 

4장에서는 학습을 진행할 때 적용될 수 있는 기법들에 대해 소개한다. 5장에서는 이미지 분류에 대해 다루며, 6장에서는 다중 레이블 분류 및 회귀 문제를 다룬다. 7장에서는 최신 모델 학습 기법에 대해 다루고 있으며, 그 예로 TTA, Label Smoothing 등이 있다. 8장에서는 사용자가 많고 다양한 제품을 보유한 상황에서 어떤 제품이 어떤 사용자에게 가장 유용할지 추천할 때 쓰일 수 있는 Collaborative filtering을 설명한다. 9장에서는 CSV나 스프레드시트와 같은 테이블 형식의 데이터를 모델링 하는 방법에 대해 알아본다. 10장에서는 NLP에 대해 다룬다.

 

Part 3. 딥러닝의 기반 지식

11장에서는 fastai의 중간 수준 API로 데이터 변환하는 방법에 대해 알아본다. 그리고 12장에서는 언어모델을 밑바닥부터 구현하는 방법에 대해 다루며, 13장에서는 CNN에 대해 다룬다. 14장에서는 ResNet에 대해 다룬다. 15장에서는 애플리케이션의 구조에 대해 살펴본다. 즉 fastai가 제공하는 응용 모델의 작동 방식과 구현의 상세 부분을 다루게 된다. 16장에서는 학습이 어떻게 진행되는지를 다룬다.

 

Part 4. 밑바닥부터 구현하는 딥러닝

17장에서는 역전파를 구현하는 것 부터 시작해서 정말 밑바닥부터 신경망 계층을 구현하는 방법에 대해 다룬다. 또한 18장에서는 Class Activation Map을 이용한 CNN의 해석에 대한 내용을 다루게 되는데 특징 맵이 어떻게 구성되는지에 대해 이해할 수 있었다. 19장에서는 Learner 클래스를 만들어 학습을 하는 방법에 대해 다루는데, 아마 이 장을 혼자 할 수 있다면 딥러닝 개념은 모두 배운게 아닌가 싶다. 


이 책에서 좋았던 점은 무엇보다 책의 두께가 두껍기 때문에 그만큼 유익한 내용을 A부터 Z까지 많이 담고 있었다. 예를 들면 테스트용과 검증용 데이터셋이 왜 중요한지에 대해서 상세히 설명해놓은 점, 당연했다고 생각했던 딥러닝에서 사용되는 용어들을 상세히 설명해놓은 점, 이미지 증강 종류에 따른 단계를 상세히 그림으로 설명해 놓은 점, 이 책 기준 최신 딥러닝 기법의 논문을 해설해놓은 점 등이 있다. 심지어 기술적 글쓰기(Technical Writing)를 독려하고, 블로그 개설을 추천하는 조언들까지 정말 다양한 내용을 많이 담고있다. 

 

또한 책의 매 장마다 "질문지"를 제공한다. 수 많은 개념을 읽다 보면 집중해야 하는 주요 내용이 무엇인지 알아차리기 어렵기 때문에 각 장의 마지막에 배운 내용을 정리하는 질문 목록이 포함되어있다. 혼자 딥러닝을 공부하려는 사람에게 제격인 듯 하다. 딥러닝을 가르치려는 사람이 이 질문지를 보고 시험을 내도 좋을 것 같다. 

 

그리고 책에서 개념을 설명할 때 첨부된 그림자료들의 출처가 매우 다양했기에 정말 많은 자료들을 쉽게 접할 수 있었다. 블로그를 통해 봤었던 그림도 있었고, 논문의 그림도 참조하는 등 다양한 자료들을 상세한 글과 함께 볼 수 있어서 매우 친절하게 설명되어있는 블로그 글을 읽는 느낌이 들었다. 또한 각 장마다 설명하는 개념이 다음 장에도 다른 개념과 함께 설명되는 경우가 많았어서 마인드 맵 연결된 것 처럼 어려운 내용들이 서로 연결되어 이해가 잘 되었다.  

 

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

 

안녕하세요 마개입니다.

이번에는 딥러닝에 관련된 책에 대해 소개를 해보고자 합니다.

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

 

도서 소개

 

 

B7970422863_l.jpeg

 

* 도서명 : fastai와 파이토치가 만나 꽃피운 딥러닝

* 지은이 : 제러미 하워드, 실뱅 거거

* 옮긴이 : 박찬성, 김지은

* 출판사 : 한빛미디어

* 페이지 : 720쪽

* 가격 : 정가 44,000원

 

 

수식을 공부할 필요없이 딥러닝을 경험할 수 있는 책

 

 책을 처음 봤을 때 들었던 생각은 "학위없이 AI를 구현한다는 것은 무엇일까?", "두껍다", "컬러로 되어있어서 보기 편하다" 입니다. 머신러닝, 딥러닝에 처음 관심을 가지고 공부를 할 때 가장 많이 고민했던 부분이 '대학원을 가야하나??'라는 고민이었습니다. 그런데 이 책은 이러한 학위가 없이 AI를 구현할 수 있다고 합닏다. 그렇기에 흥미를 유발하는 책이라고 볼 수 있습니다.

 

 이 책은 fastai라는 라이브러리를 개발한 개발자들이 직접 집필한 책으로 fastai와 파이토치를 이용해서 딥러닝을 손쉽게 개발할 수 있도록 가이드해주는 책입니다. 현재 머신러닝, 딥러닝에 관한 책들은 이미 많이 나와있지만 대부분은 수식들로 가득차있는 모습을 볼 수 있습니다. 이쪽에 이미 종사하고 계신 분들에게는 편할 수 있지만 딥러닝의 세계에 입문하려고 하는 분들에게는 딥러닝을 어렵게 느끼고 포기하게 만드는 부분입니다. 하지만 이 책은 첫 장에서부터 이러한 수학 실력이나 고가의 장비는 필요하지 않다고 어필하였습니다. 대신 fastai나 파이토치 모두 파이썬이라는 프로그래밍 언어를 이용하여 개발하기 때문에 파이썬에 대해서는 어느 정도 알고 학습을 하시는게 도움이 됩니다.

 

 이 책에서는 단순히 딥러닝 기술들에 대해 배우는 것뿐만 아니라 프로젝트를 하거나 여러 상황들에 대해 저자의 경험이 팁으로 들어가있어 독자에게 도움을 주고 있습니다.

 

 딥러닝은 데이터를 다루는 직업이다보니 데이터를 통해서 나타날 결과도 중요합니다. 이 책에서는 하나의 Chapter를 통해서 알려줄 정도로 "데이터 윤리의 중요성을 강조하고 있습니다. 과거 구글 포토는 자동 레이블링 기술을 이용하여 사용자들의 이미지를 분류하는 작업을 했는데 흑인 사용자의 사진을 '고릴라'로 분류하여 큰 파장을 일으킨 사건이 있었습니다. 그외에도 여러 예시를 통해 딥러닝을 통해 발생할 수 있는 데이터 윤리에 대해 신경을 써야 한다고 말하고 있습니다.

 

4강부터는 숫자 분류를 시작으로 이미지 분류, 추천 시스템을 위한 협업 필터링, 자연어 처리 (NLP) 등 여러 분야에서 fastai를 이용하여 학습을 하고 있습니다. 이론을 설명하면서 이를 코딩으로 적용하면서 학습을 하는 방식으로 진행합니다. 코딩의 경우 전체 코드를 보여주는 것이 아니라 필요한 부분을 한줄 한줄씩 코딩하며 친절히 설명해주고 있습니다. 이를 하나씩 따라가면서 학습하다보면 어렵지 않게 학습할 수 있습니다. 도형과 컬러를 이용해서 좀더 효율적으로 설명해주고 있다는 것도 독자들을 위해 신경써준다는 느낌을 받았습니다.

 

 이 책에서는 학습을 하면서 기술 블로그를 운영하는 것을 제안하고 깃허브를 이용해서 블로그를 만드는 방법을 알려주고 있습니다. 기술 블로그를 통해 학습한 내용을 정리하고 다른 사람들에게도 같이 공유를 하며 더 좋은 기회를 만들 수 있다고 설명하고 있습니다. 많은 기술 서적을 봤지만 기술 블로그에 대해 이야기를 해준 책은 처음 봐서 신선한 충격이었습니다. 이 책은 진짜 코딩만 알려주는 것이 아니라 데이터를 다루는 사람으로써 중요한 부분들을 가이드해준다는 것이 좋았습니다.

 딥러닝에 대해 어떻게 공부를 시작해야할까 고민하시는 분들에게 이 책을 추천합니다.

 

 

 

 

IMG_1304.JPG

 

 

이번에 받은 책은 딥러닝 관련 파이토치 책이다.

 

fastai는 생소한거라서 신청하게 되었는데, 뭔가 파이토치를 더 쉽게 쓰게 해주는 녀석인 것 같다.

 

책의 구성은, 간단한 딥러닝 관련 지식들을 던져주고 곧바로 코드와 함께 따라 쳐보면서 모델들을 익혀 나갈 수 있도록 한다. 그래프와, 코드와, 다양한 시각적 자료들이 많아서 따라하기 좋은 것 같다.

 

조그맣게 써있는 '학위 없이 AI를 폼나게 구현하는 법'에 정말 충실한 책인 것 같다 ㅋㅋ 일반적인 딥러닝 입문서적에서는 보기 힘든 내용들도 많았고 생각보다 디테일하게 알려줘서 좋았다. 그런 것들을 fastai와 파이토치를 사용해서 코딩해볼 수 있는 괜찮은 책인 것 같다.

 

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

요즘 딥러닝에 관심을 갖고 무엇을 공부해야 하나 고민을 하다가 대세를 따르기로 했다.

언어는 파이썬이 대세다.

언제부터인가 파이썬이 주력 언어가 된 느낌이다.

이렇게 파이썬을 많이 사용하는 이유 중에 하나는 가벼우면서도 강력한 기능에 있다고 생각한다.

이번에 읽게 된 fastai와 파이토치가 만나 꽃피운 딥러닝 책도 파이썬을 기반으로 fastai와 파이토치 라이브러리를 통해 가볍게 딥러닝을 학습할 수 있도록 도와준다.

파이토치는 페이스북 인공지능 연구집단에 의해 개발되었다.

간결하고 구현이 빨리되며, 텐서플로우보다 사용자가 익히기 훨씬 쉽다는 특징이 있다.

텐서플로우는 Define-and-Run 프레임워크인 반면에, 파이토치는 Define-by-Run이다.

출처 Complex neural networks made easy by Chainer

Define-by-Run 정의와 값 초기화가 동시에 된다.

여러 장점이 있겠지만 일단 쉽고 편리하다.

파이토치도 파이썬 처럼 코딩이 쉽고 비슷하다.

그래서 요즘 딥러닝 프레임워크로 많이 사용된다.

fastai 라이브러리도 파이토치 기반으로 구축이 되어 둘의 조합은 높은 시너지 효과를 만들어 준다.

인공지능을 가장 쉽게 공부하는 방법이 뭔지라고 검색해 봤더니

이 책을 읽고 무료 과정을 학습하는 것이라 한다.

바로 이 책을 지은 제러미 하워드가 한 말이다.

딥러닝을 공부하기 위해 박사과정을 학습할 필요없이 이 책과 무료 과정을 통해 학습할 수 있다는 것이다.

 

책은 바로 코딩을 통해 첫번째 모델 개와 고양이를 인식하는 이미지 분류 모델을 학습하도록 한다.

책과 함께 fastai에서 도움을 받을 수 있다.

딥러닝을 공부하려는 사람의 조건이다.

박사 학위는 필수가 아니다.

고등학교만 졸업했다면 딥러닝을 공부할 수 있다고 하는데

이 책을 통해 딥러닝을 공부하려면 파이토치, fastai, 주피터 노트북 소프트웨어만 있으면 된다.

모두 무료로 사용할 수 있기 때문에 정말 누구나 이 책 한 권만 있으면 딥러닝을 공부할 수 있는 세상이 왔다.

딥러닝을 가장 쉽게 공부하는 방법을 찾는 독자에게 수 많은 사람들이 추천하는 책이다.

머신러닝, 딥러닝을 수학적으로 잘 풀어준 교육, 교재는 많다. 아무래도 수학이 장벽으로 느껴지곤 하니 아예 딥러닝 관련 수학을 알려주는 교육과정과 책도 꽤 있다. 그런데 좀 색다른 책이 나왔다.

 

딥러닝 교재의 기본 스타일은 Coursera의 Deep learning specialization 과정이다. (https://www.coursera.org/specializations/deep-learning) 어지간한 인공지능 이론/실습 과정은 선구적인 이 교육과정의 영향을 받았다고 해도 과언이 아닐 것이다.

 

그래서 책 안내를 접하고 기대 반 걱정 반이었다. 일단 딥러닝의 원리를 수학 공식을 들먹이지 않고 설명하는 것에 감탄했고 컬러 인쇄를 해서 뭔가 더 다가가기 쉬웠으나, TensorFlow나 PyTorch가 아닌 fast.ai를 통해 배우면 결국 실전에 돌입할 때에는 머신러닝 프레임워크를 새로 배워야 하지 않는가 하는 걱정이었다. 더구나 다른 입문서는 책이 얇은 편인데 700쪽이 넘는 두꺼운 책이라 분량이 도리어 장벽이 되지 않을까 우려가 되기도 했다.

 

드롭아웃이 12장이나 되어야 나올 정도로 딥러닝 원리를 풀어 나가면서도, 이미지와 자연어를 막론하여 다양한 데이터를 찬찬히 다루어 나갔다. 700쪽이 넘는 이유는 설명이 다방면에 걸친 데이터를 상세하게 다루었기 때문이었다. 에포크와 배치를 늘이고 줄이는 노하우도 눈에 들었다. 다방면으로 원리를 충분히 배우니 프레임워크를 바꾸더라도 어렵지 않게 적응할 수 있겠다는 생각이 들기도 했다.

 

2021년 기준으로 이 책이 다루지 않는 인공지능 주제는 없다시피하다. 실제 현장에서는 모델을 경량화하곤 하는데, 그런 주제만 다루지 않는 편이다. 파이썬 문법에 어려움을 겪지 않는 수준이라면, 검색 좀 섞어서 이런 저런 프로그래밍 예제를 풀 수 있는 사람이라면 이 책으로 인공지능을 시작해도 괜찮다고 본다. 아니면 개념 검증 차원에서만 계속 fast.ai를 사용하고, 본사업은 전문업체에 맡겨서 진행해도 좋겠다. 강인공지능이 나오기 전까지는, 한 번 보고 꽂아놓고 잊어버릴 게 아니라 현안을 새로 만날 때마다 다시 열어 볼 만한 책이다.

책을 처음 봤을 때의 첫 인상은 두껍다는 느낌을 받았다. 부록을 포함하여 페이지수가 700 페이지를 넘어가니 처음엔 약간의 부담감이 있었다. 그러나 책을 펴서 내용을 학습해보니 왜 이렇게 분량이 많았는지 이해가 갔다. 지금까지 내가 접했던 다른 딥러닝, 머신러닝 학습서들도 대부분이 분량이 적지 않은 편이다. 그런 책들은 하나같이 어려운 통계학 용어, 복잡한 수식, 끝없이 펼처지는 길고 불친절한 코드의 연속이었다. 


그러나 이 책은 달랐다. 첫째로 '어려운 통계학 용어'는 절대로 그냥 넘어가지 않고 책 한켠에 용어 사전으로 정리를 하였다. 용어의 뜻이 나중에도 기억나지 않으면 용어 사전이 있는 그 페이지로 가서 다시 복습하면 된다. 두번째로 '복잡한 수식'은 거의 등장하지 않는다. 처음 조우했던 수식은 로그를 다룬 것이었고 그 외에 수식이 직접 등장하는 경우는 손가락에 꼽을 정도이다. 물론 수식이 적다고 좋다는 것은 아니다. 그래도 이 책은 우선 수식을 이해하기 힘들어서 시작도 하기 전에 겁에 질리는 사람들이 딥러닝을 '일단' 시작할 수 있도록 도와주는 것이다. 딥러닝은 어떻게 구현하는지 따라해보면서 딥러닝의 원리와 작동 방법을 익히고 나서 이를 떠받치는 수학적 내용은 후에 보강하면 된다. 세번째로는 '끝없이 펼쳐지는 길고 불친절한 코드'인데 어떤 책들은 예제 코드 한 단위 당 분량이 한페이지를 넘어가는 것이 있을 정도로 긴 것도 있는데 설명까지 그냥 지나가버리는 경우도 있다. 이 책에서는 각 코드 예제들이 전반적으로 길지가 않다. 밑바닥에서부터 딥러닝을 구현한다는 말처럼 최소 단위로 코드가 구성되어있고 코드 설명도 빠뜨림 없이 상세했다.

이렇게 상세하고 자세한 설명이 들어가다보니 분량이 많아지는 것은 당연한 것이었다. 분량으로 인한 부담감을 입문자의 이해도를 높이는 것으로 상쇄해버렸다. 입문자에게 초급 내용부터 중, 고급 내용까지 설명하려다보니 하나의 두터운 기본서가 되었다. 

나는 책을 평가할 때 가장 중요하게 보는 것 중에 하나가 비슷한 주제를 다루는 책과 비교할 때의 차별성이다. 이 책의 차별성은 fast.ai 라이브러리를 중심으로 딥러닝을 다뤘다는 것이다. 기존에는 numpy, pandas 등의 라이브러리를 중심으로 많은 책이 쓰여졌다. fast.ai는 딥러닝을 쉽고 빠르게 활용할 수 있게 해주는 라이브러리이다. 딥러닝을 할 때 쉽고 편리한 최신의 라이브러리를 사용하는 것은 시간, 노력을 상당히 줄여준다. 이 책 표지에 나온 것처럼 '박사 학위 없이 폼나게 AI를 구현하는 법'이라는 수식어는 바로 이러한 fast.ai 라이브러리의 특징으로부터 나왔을 것이다.

한편 이 책으로부터 내가 인상 깊었던 점은 옮긴이의 주석(각주)이 매우 친절하고 자세하다는 것이었다. 본문을 그대로 직역하다보면 우리 현실과 달라 조금 더 설명이 필요한 부분이 있는데 이 부분은 해당 분야의 전문가이기도 한 옮긴이가 채워주었다. 


또 다른 특징으로는 한 가지 분야에서 적용되는 딥러닝 구현 사례를 살펴보는 것이 아니라 정말 다양한 분야에서 사용되는 딥러닝 사례를 예시로 보여주었다. 이 예시마다 도움이 될 사진, 코드, 그림을 페이지에 아낌 없이 담음으로써 절대로 포기하는 법 없이 사례로 소개된 부분을 이해할 수 있도록 아주 큰 배려를 하였다. 그리고 각 장(챕터) 마무리 부분마다 질문지가 나오는데 본문의 상세한 설명이 여기에서는 예외이다. 즉, 남이 해주는 주입식 학습이 아니라 이 부분만이라도 혼자서 생각해보는 힘을 기르게 해준다. 이것 또한 나에겐 꽤나 인상적이었다. 그리고 이 질문지에 자신있게 답할 수 없다면 해당 장의 내용을 완벽하게 내것으로 익히지 못했다는 의미도 된다. 일종의 자기 평가, 복습의 역할을 하는 것이다. 

내가 관심있던 부분은 전혀 예상치 못했던 캐글 사용법, NLP 처리 방법 등이었다. 또 GPT-2 알고리즘에 기반한 모델이 레딧이라는 커뮤니티에서 스스로 댓글로 토론하는 모습을 보고 소름이 돋기도 했다. 인공지능이 벌써 이런 수준까지 도달했구나라고 생각하며 인공지능, 딥러닝을 이용해 정말 무궁무진하고도 혁신적인 응용 사례가 앞으로 쉼없이 등장할 것 같다.

fastai.jpg

 

< fastai와 파이토치가 만나 꽃피운 딥러닝 > | 제러미 하워드, 실뱅 거거 지음 |

박찬성, 김지은 옮김 | 한빛미디어

 

현재 많은 제품들에 인공지능 또는 머신러닝 기술이 적용되어 있다고 광고하고 있다. 또한 많은 사람들이 머신러닝에 관심을 가지고 공부하고 있는 것 같다. 하지만 머신러닝으로 첫 걸음을 떼기 위해 접하는 책이나 참고 자료들은 일단 수학적인 배경과 이론위주로 설명을 하기 때문에 시작이 어렵다고 느껴지는 것도 사실인 것 같다.

 

그런 면에서 이 책은 조금은 색다른 방식으로 초보자가 딥러닝을 시작할 수 있도록 도와준다. 복잡한 수학적 배경지식이 없어도 약간의 수학지식과 소규모 데이타, 짧은 코드를 이해할 수 있는 수준이라면 딥러닝을 구현할 수 있는 경험을 할 수 있다. 이 부분이 중요하다고 느끼는 것 중의 하나는 딥러닝을 공부하는 초반에 코드를 실행해서 결과를 확인할 수 있다는 것이다. 

 

대부분 책들은 지루한 이론적 설명을 하고 복잡한 수식을 보여준 다음에 간단한 예제를 설명한다. 따라서 초반부에 제대로 따라가지 못하면 쉽게 포기하게 되는 것 같다. 하지만 이 책은 초반에 자신이 뭔가 동작하는 코드를 실행하고 원하는 결과를 눈으로 볼 수 있기 때문에 한층 흥미있게 공부를 이어할 수 있도록 해 준다고 생각한다.

 

초반부에 딥러닝에 대한 개요를 설명하고 바로 데이타 윤리에 대해 설명한다. 이 부분도 이 책이 가지는 독특한 점이면서 장점이라고 생각한다. 요즘 머신러닝이 탑재되어 출시되는 많은 제품에서 일부 인종 차별적인 결과 또는 여성 비하적인 학습 결과를 보이는 사례가 발견되어 논란이 된 적이 있다. 학습 과정에서의 문제도 있겠지만 근본적인 부분은 데이타에 대한 부분, 즉 데이타 윤리가 중요하다는 것은 잘 알려준다고 생각한다. 그런 면에서 딥러닝을 학습하기 전에 데이타 윤리를 제대로 이해하는 것이 꼭 필요한 점이라고 생각되고 이 책이 그런 면에서 중요한 포인트를 잘 제시하고 있다고 생각한다.

 

fastai 라이브러리는 지난 6년간 샌프란시스코 대학교의 fast.ai 연구 단체에서 진행해 온 딥러닝 교육의 접근법을 그대로 녹여낸 것이다. 이 책을 통해 라이브러리를 배운다는 생각보다 딥러닝으로 무언가를 만들면서 그런 결과가 어떻게 나왔는지 고민하고 더 나은 결과를 만들어낼 수 있는지를 생각한다면 보다 많은 것을 경험할 수 있다고 생각한다.

 

책 소개에는 코딩경험이 없어도 괜찮다고 되어 있지만 전반적인 책의 구성이 코드 위주로 설명되고 있기 때문에 기본적인 python 개발 경험은 필요하다고 생각한다. 그리고 딥러닝에 대한 디테일한 부분까지 상세히 설명하고 있기 때문에 추상적으만 생각했던 딥러닝의 세계를 새롭게 경험할 수 있는 유용한 책이 된 것 같다.

 

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

어떤 머신러닝 전문가가 기본적인 수학, 프로그래밍에 대한 내용이 어렵다면 머신러닝과 딥러닝을 하겠다고 하면 안 된다는 얘기를 해서 적잖아 놀랐던 적이 있다.

딥러닝을 익히고 다양한 분야에 적용하면서 사용하는 라이브러리는 점점 더 추상화 되어 기본적인 철학을 이해하고 있다면 수백, 수천줄로 구성된 딥러닝 알고리즘을 추상화된 코드 몇줄로 좋은 성능을 내는 모델을 만들 수가 있게 되었다.

코딩 경험이 없어도 고등 수학을 이해하고 있지 못하더라도 딥러닝을 시작할 수 있게 용기를 준다. 그리고 딥러닝의 핵심적인 내용을 대부분 다루면서도 Fast.ai 라는 추상화된 도구를 통해 직접 모델을 구현할 수 있게 해준다.

대부분의 딥러닝 책은 딥러닝을 구성하는 신경망의 기초부터 시작하는데 이 책은 탑다운방식으로 구성되어 있다. 딥러닝의 개요와 윤리를 가장 먼저 설명하고 바로 CNN으로 넘어간다. 데이터 윤리를 초반에 강조해서 설명하는 것도 인상적이다.

이 책은 초반에 다음의 원칙을 제시한다.

  • 게임 전체를 가르친다.
  • 항상 예시를 사용한다.
  • 최대한 쉽게 설명한다.
  • 경계를 허문다.

기술을 배울 때 지금 배우는 내용이 전체의 어느 부분인지 어떻게 응용될 수 있는지 자세하고 친절하게 설명하고 있다. 그래서 꼭 파이토치, Fast.ai 사용자가 아니더라도 데이터 윤리를 이해하고 적정기술로 활용하고자 하는데 도움이 된다. 이 책을 통해 기술을 다루고 그 기술을 다른 사람에게 알려주는 태도에 대해 배울 수 있었다. 게다가 fast.ai는 다양한 커뮤니티를 포용하고 있다.

국내에서도 fast.ai 커뮤니티를 이끌고 있는 역자 두 분이 번역해 준 책이라 더 신뢰가 가는 책이다.

모든 실습 코드를 colab 으로 바로 연결할 수 있는 링크를 제공하고 있어서 전체적인 소스코드를 실행해 볼 수 있다.

Using Colab - Practical Deep Learning for Coders

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.

대부분의 딥러닝 관련 코스의 시작은 기본적인 선형대수, 확률통계 지식으로 시작해서 선형회귀, 로지스틱 회귀를 거쳐 MLP, CNN, RNN과 같은 순서로 진행하는 것이 일반적이다. 이런 바텀업 방식의 교습은 어느 정도 궤도에 오른 사람 또는 백과사전식으로 레퍼런스를 찾아볼 때는 유용하지만 소프트웨어 엔지니어가 익숙한 방식은 아니라고 생각한다.

소프트웨어 엔지니어는 코드를 이렇게 저렇게 바꿔도 보고, 코드를 일부러 동작하지 않게도 만들어가면서 동작 원리를 파악하는 접근 방식에 대체로 익숙한 경우가 많다. 이 책은 이런 소프트웨어 엔지니어들이 딥러닝 애플리케이션을 탑다운 방식으로 배울 수 있도록 구조화되어있다. 동명의 코스웍이 굉장히 유명한데 ( https://course.fast.ai/ ) 그것을 책으로 옮겼다고 볼 수 있을 것이다. 

개인적으로는 fastai 의 여러가지 코스들 (Deep Learning 뿐만 아니라 NLP와 선형대수학)을 모두 좋아했기 때문에 그 코스를 책으로 옮긴 해당 책에 대해서 기대도 컸고 코스와 어떤 부분이 다를 지 많이 궁금했었는데 대체로 코스를 잘 옮긴 것으로 보인다. 다만, 책의 두께가 있고 역자가 2명이다보니 간혹 번역체의 일관성이 떨어지거나 번역 문장의 이해가 어려운 부분이 일부 보이나 아주 신경쓰일 정도는 아니고 학습하는 데는 큰 무리는 없을 것이라고 생각한다


fastai는 딥러닝 진입장벽을 낮춰주는 파이썬의 딥러닝 라이브러리 입니다.


파이썬에 친숙한 개발자라면 딥러닝 구현을 짧은 코드로 구현할 수 있습니다.


이에 관련된 책을 소개해 드릴려고 합니다.

바로 'fastai와 파이토치가 만나 꽃피운 딥러닝'입니다.


이 책은 아마존 컴퓨터 신경망 분야에서 최상위 순위에 있는 책이기도 합니다.


책의 난이도는 파이썬이나 프로그래밍을 해본 사람은 쉽게 이해할 수 있을 겁니다.


책이 다루는 주제는 영상 처리, 자연어 처리, 데이터 등이 있습니다.


그럼 하나씩 알아보도록 하겠습니다.



12.jpg

 



1) 딥러닝 과정 한눈에 보기


각 파트 마다 실습을 쉽게 따라 갈 수 있도록 주피터 파일을 줍니다.


주피터의 장점은 데이터 전처리 부터 모델 개발하는 모든 과정을 한눈에 볼 수 있습니다.


또한 코드를 학습할 때 실제 코드를 작성하는 것이 중요한데요.

주피터는 한줄 한줄 실행해보면서 바로 실행 결과를 확인할 수 있습니다.


이로 인해 개발 과정이 쉽게 이해가 됩니다.


책을 보면서 이해가 안된 내용들은 코드를 미리 실행 한 후 큰틀의 개념을 익히고 책을 다시 읽으면 이해하는 데 큰 도움이 될 것입니다.



14.jpg

 


2) 딥러닝 개발에 대한 외연 확장

딥러닝 내부가 어떻게 돌아가는지는 알 수 없습니다. 


블랙박스 구조이기 때문이죠. 


딥러닝이 정상적으로 돌아가게 하려면 모델을 올바르게 이해해야 합니다.


또한 모델에서 검사해야 할 세부항목을 숙지해야 원하는 결과가 나올 수 있습니다.


모델에 대한 이해를 돕기 위해 책의 장의 끝 부분에 질문지가 있습니다.


저자가 해당 장의 내용의 내용을 정리할 수 있도록 체크리스트를 만들었다고 봅니다.


책을 읽는 분들에게는 질문지를 먼저 보고 해당 장을 읽는 점을 추천드립니다.


저자의 의도가 어떤 부분을 중점적으로 생각하고 코드를 구현해야하는지 가이드가 되기 때문입니다.


13.jpg

 

 

Ps

이 책의 저자는 fastai 라이브러리 창시자입니다.


창시자에게 라이브러리를 직접 배울 수 있는 책입니다.


코드 밑에 설명이 있는 형태로 작성되어 있는데요.

라이브러리를 직접 만든 사람에게 배우는 것이라 큰 도움이 될 것입니다.


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

일단 이 책은 fast.ai 의 공동설립자인 제러미 하워드와 리서치 사이언티스트였던 실뱅 거거가 직접 저술한 책이다. 또한 기본적으로 책의 내용들은 fast.ai (https://www.fast.ai/) 를 근간으로 하고 있다고 한다. 영어에 아무런 부담이 없다면 fast.ai 의 Online Courses 를 같이 활용하면 최신 정보를 받아들이면서 더 쉽게 공부할 수 있을 것이다. 나는 부담 많이 된다. 특이한 점은 제러미는 철학 전공에 인공지능과 관련된 정식 교육을 받은 적이 없다고 하며 실뱅은 그 제러미의 강의를 보고 머신러닝을 처음 시작했다고 한다.

책의 장점

 

(0) 읽기 편한 입문서

 

저자가 비전공자이면서 교육에 뜻이 있는 부분이 반영된 결과일까. 아직 훑어보는 정도로 읽어봤지만 책의 내용이나 구성이 정말 심플하고 읽기 좋게 작성되어 있다. fast.ai 를 통해 한번 검증된 교육 코스를 기반으로 작성한 책이라서 그럴수도 있고. 설립자이기에 더 정성을 쏟았는지도 모르겠다. 어쨋든 이 책은 머신러닝과 딥러닝 자체를 처음 시작하는 독자를 대상으로 하고 있고 심지어 코딩 경험이 없는 사람도 따라올 수 있도록 구성되어 있다. 그러다보니 책의 두께가 700여 페이지가 되버린 참사가 일어나긴 했지만 이런 방식의 과한 친절은 나처럼 파이썬을 주언어 사용하지 않는 개발자에게는 정말 고마운 호의다.

 

 

(1) 깔끔한 번역

 

잘 써진 책이면 뭐하겠는가... 최근에는 내가 공부하는 속도보다 몇 배는 빠른 속도로 전문적으로 번역 책을 찍어내듯이 하는 훌륭한 분들이 많아져서 검증된 옮김이나 역자분들의 책은 믿고 볼 수 있지만 사실 번역책은 어투가 자연스럽지 않으면 내용이 훌륭하고 말고를 떠나서 집중이 안되는 경우가 많다. 이 책을 보는 동안에는 그런 느낌을 전혀 받지 못했다. 그냥 한글로 바로 쓰인 책이 아닌가 싶을 정도로 깔끔하고 좋았다. 

 

 

(2) 보기 좋은 올 컬러

 

언제 부터인가 나에게 있어 가장 중요한 요소 중 하나는 컬러다. 처음부터 끝까지 정독한 책은 몇 권 없지만 예쁘고 깔끔한 책은 읽을 맛이 난다. 특히 소스코드 색깔이나 차트, 이미지 등에 색깔이 씌워져 있기만 해도 왠지 모를 읽는 재미가 있다고 할까. 괜히 사람들이 블로그에 소스코드를 첨부할 때 코드 스타일을 씌우는 귀찮은 작업을 하는게 아닌 것도 다 이유가 있기 때문이라 생각한다. 단언컨데 이 책은 몇 안되는 소스코드에 스타일이 씌워진 훌륭한 머신러닝 입문용 책이다.

목차

PART I 실전 딥러닝

CHAPTER 1 딥러닝으로 떠나는 여행

CHAPTER 2 모델에서 제품까지

CHAPTER 3 데이터 윤리

 

PART II fastai 애플리케이션 계층 이해하기

CHAPTER 4 숫자 분류기의 학습 내부 들여다보기

CHAPTER 5 이미지 분류

CHAPTER 6 그 밖의 영상 처리 문제

CHAPTER 7 최신 모델의 학습

CHAPTER 8 협업 필터링 깊게 알아보기

CHAPTER 9 테이블 데이터 모델링 깊게 알아보기

CHAPTER 10 NLP 깊게 알아보기: 순환 신경망

CHAPTER 11 fastai의 중간 수준 API로 데이터 변환하기

 

PART III 딥러닝의 기반 지식

CHAPTER 12 밑바닥부터 구현하는 언어 모델

CHAPTER 13 합성곱 신경망

CHAPTER 14 ResNets

CHAPTER 15 애플리케이션 구조 깊게 살펴보기

CHAPTER 16 학습 과정

 

PART IV 밑바닥부터 구현하는 딥러닝

CHAPTER 17 기초부터 만드는 신경망

CHAPTER 18 CAM을 이용한 CNN의 해석

CHAPTER 19 밑바닥부터 만드는 Learner 클래스

CHAPTER 20 맺음말

 

부록 A 깃허브 기반 블로그 만들기

부록 B 데이터 프로젝트 점검 목록

 

 

위 책은 기본적으로 딥러닝과 머신러닝을 처음 시작하는 독자들을 타겟으로 삼아

PART I 실전 딥러닝 에서는 초보자들에게 유용한 정보들로 구성되어있다.

1장의 경우에는 1.4절 딥러닝을 배우는 방법에 관해 간략하게 소개하였는데, 데이비드 퍼킨스 교수님의 말씀을 언급하여, 전체적으로 딥러닝을 어떠한 방향성을 갖고 공부를 해야하는지에 관해 좋은 말씀들을 수록해 주셨다.


2절에서는 2.7절 기술적 글쓰기의 장점파트가 다른 책과 다른점이라고 느껴졌는데, 특히 취업을 희망하는 학생이라면 기술적 글쓰기의 중요성은 아무리 강조해도 지나침이 없다 생각한다. 네이버 블로그, 티스토리, velog, github 블로그 등등에서 각자 본인들이 관심있는 주제를 글로 쓰고 있을텐데, 이에 관해서 레이철 토마스의 조언들을 수록해 놓아, 현재보다 좀더 양질의 글을 쓸 수 있는 방법들을 아낌없이 담아 위 책을 읽는 독자라면, 모두에게 도움이 되는 정보가 수록되었다고 생각한다.


3장의 경우 나에게는 3.3 데이터 윤리의 주제가 남달랐는데, 아무래도 빅데이터를 통한 장점도 있지만, 이로인한 부작용 또한 만만치 않고, 위와 관련된 법적 윤리적 조항 또한 아직 마련되고 있지 않는 현실이다 보니, 우리가 인지하지 못하더라도 조심해야 될 윤리적 부분에 대해 수록되어 있어, 3장에서 가장 흥미 로운 파트라고 생각된다.

한 파트가 끝날 때마다, 요약 파트를 수록해놓아, 위 파트에서 어느 부분이 중요하고, 어느 부분은 놓치지 않았는지 점검 할 수 있어, 다시 한번 해당 단원을 구체적인 점검 기준을 통해  리마인드 한다는 점에서 유용했다.


파트2에서는 본격적으로 딥러닝에 대해 탐구하며, 코드와 그에 관한 결과 및 설명을 같이 수록해 놓아 한결 수월하게 해당 코드를 이해할 수 있었다.


특히 결과 중에서도, 단순히 코드 결과 만 수록하는 것이 아닌, 실제 코딩 처럼 learning rate에 따른 그래프나, epoch에 따른 train_loss, valid_liss, error_rate을 표로 비교 하여 볼 수 있다는 점에서 좋았다.

해당 챕터가 끝난 뒤에는 결론을 수록해 놓아 위 챕터의 특징, 내용등을 간략히 수록해 놓아

해당 챕터를 정리 할 수 있어 좋았다. 특히 질문지 파트도 있어, 취업하는데 나올 수 있는 유용한 질문들이 수록되어, 면접까지 준비할 수 있다는 점이 취준생에게 큰 도움이 될 수 있을거라 생각이 들었다.

추가 연구 파트에서는 해당 단원 그 이상을 공부할 수 있는 내용 및 방향성을 수록해 놓아 딥러닝과 머신러닝에 경험이 있는 독자들에게 심화 연구에 대해서도 제시해 놓았다. 위 부분에 있어서는 석사 이상의 독자들이라면 위와 같은 심화 연구를 하며, 대학원 생활의 도움을 받을 수 있을거라 생각하였다.

 

그리고 pytorch 기본서로 나왔다는 점에서, 이제까지 얼마 없던 pytorch 서적이 출간되어 기쁘다.

요즘들어 pytorch의 중요성은 날로 날로 늘어나고 있는데, 이제까지 배운 딥러닝 및 머신러닝 지식을

파이토치로 구현해 보며, 아직 부족한 실력을 기르고, 질문지 코너를 통해 면접도 준비하여

꼭 2021년에는 취준생을 벗어나 어엿한 실무자로서 거듭났으면 좋겠다. ^^

 

 

추천독자

· 딥러닝과 머신러닝을 처음 시작하는 독자

· 딥러닝과 머신러닝에 경험은 있지만, 파이토치에 익숙하지 않은 독자

· 최신 기술에 관심있는 딥러닝 실무자

· 딥러닝 분야로의 진학을 희망하고, 이와 관련된 면접 질문과 유용한 사이트에 관심있는 학

생 및 실무자 분들께 위 책을 추천드립니다.

 

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

# fastai와 파이토치가 만나 꽃피운 딥러닝

 

- [fastai]는 딥러닝을 조금 더 쉽게 사용할 수 있도록 도와주는 고 수준의 라이브러리입니다. 많은 사람들이 사용하는 [PyTorch]를 기반으로 만들어졌습니다.

- [fastai와 파이토치가 만나 꽃피운 딥러닝]은 fastai를 사용하여 딥러닝을 쉽고 빠르게 배울 수 있도록 많은 내용을 담고 있습니다. 특히 다양한 딥러닝 영상 처리와 자연어 처리(NLP), 테이블 데이터를 다루고 있습니다.

 

 

## 독특한 책의 구성

 

- fastai와 파이토치가 만나 꽃피운 딥러닝이 다른 책들과 다른 특징을 소개합니다.

 

 

### 딥러닝 가이드

 

- 딥러닝 여행의 가이드를 담당하는 분들이 책 중간중간 본인들의 이야기를 전달합니다. 제러미 하워드와 실뱅 거거, 알렉시스 갤러거 분들인데요. 특이하게도 두 명의 해설(제러미, 실뱅)과 한 명의 캐스터(알렉시스)가 유용한 팁을 전달합니다.

  - 가이드에서 가장 만족스러웠던 부분은 캐스터와 해설 모두 딥러닝, 머신러닝에 대한 배경지식이 다릅니다. 처음 배우는 사람의 입장에서는 알렉시스와 실뱅의 이야기를, 어느 정도 지식을 갖고 있는 사람은 제러미의 이야기를 보다 주의 깊게 읽어보면 더욱 효과적인 학습이 가능할 것이라 생각합니다.

 

 

### 현업 중심의 구성

 

- 복잡한 수식과 퍼셉트론으로 시작하지 않습니다.

  - 많은 딥러닝 관련 서적이, 이야기의 시작을 신경망의 역사와 퍼셉트론의 구조, 동작 방식을 채택합니다. 정작 실제로 필요한 CNN와 RNN 등 영상 처리와 자연어 처리 등 다양한 분야에서 활용하는 기술을 배우기에는 책을 생각보다 많이 읽어야 하는 단점이 있습니다.

  - 반면 fastai와 파이토치가 만나 꽃피운 딥러닝 책은 영상 처리를 시작으로 실무에서 필요로 하는 내용으로 시작합니다. 물론 딥러닝에 필요한 기초적인 내용은 책의 후반부 **PART 4 밑바닥부터 구현하는 딥러닝**에서 소개하고 있습니다. 또한 각 챕터의 내용을 소개할 때 복잡한 수식 없이 코드와 예시 위주로 설명하고 있어, 복잡하고 이해하기 힘든 수학으로부터 조금 더 자유로워질 수 있습니다.

 

 

### 스스로 생각하는 질문지와 추가 연구

 

- *질문지*와 *추가 연구*로 해당 챕터의 핵심을 정리합니다. 학습한 챕터 마지막은 항상 질문지와 추가 연구가 있습니다. 

  - 질문지는 공부한 내용을 다시 정리하고자 하는 목표로 간단한 질문을 통해 스스로 점검할 수 있도록 도와줍니다.

  - 추가 연구는 논문과 기사를 추천하는 등 책에서 제공하는 내용 외적으로 추가적인 학습과 생각거리를 제공합니다.

 

 

## 짧은 후기

 

- 초월 번역 수준의 깔끔한 번역과 컬러의 위대함이 만나 정말 멋진 책이 만들어졌다고 생각합니다. 특히 번역서 제목을 멋지게 만들었다고 생각하는데요. 원서의 제목이 [Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD 1st Edition]입니다. 다소 평범하고 내용이 갖는 위대함을 표현하기에는 제목이 다소 약하다고 느껴지는데요. 번역서의 제목은 [fastai와 파이토치가 만나 꽃피운 딥러닝]으로 책을 한 장 한 장 넘길수록 꽃피운다는 것을 제대로 느낄 수 있었습니다.

- 책에서 끝내지 말고 [fastai 공식 홈페이지]을 통해 더 많은 정보와 지식을 얻을 수 있습니다. 책에서 제공하는 내용 외에도 fastai 공식 홈페이지에는 다양한 온라인 코스, 커뮤니티를 제공하고 있습니다. 특히 [Practical Deep Learning for Coders]은 책을 읽어보셨다면 다시 한번 더 보시는 걸 추천합니다.

 

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

 

IMG_6777.jpg

 

 
 
신청한 이유
 
다시 한번 딥러닝에 대한 학습을 하기 위해서 책을 알아보다가 최근에 기본 프로그래밍만으로도 최신의 딥러닝 기술을 이용할 수 있는 
 
fast.ai라는 것이 있어서 흥미를 느껴서 신청을 하게 되었습니다.
 
 
 
내용
 
1장에는 딥러닝에 대한 역사 및 저자 소개 학습방법과 fast.ai를 활용한 모델을 만드는 법이 설명되어 있습니다.
 
특히 저자분이 바로 옆에서 알려주는 듯한 느낌이 들어 더욱더 흥미를 느꼈어요. 이게 이 책의 장점인 것 같아요.
 
​그리고 저자분께서는 딥러닝에 대한 용어를 더욱더 세세하게 쉽게 설명을 해주려고 하는듯한 느낌이 들어서 좋았습니다.
 
​그리고 책이 칼라로 되어 있고 이렇게 이미지 또한 있어서 실습을 하지 못하는 환경이라도 최소한 어떤 식으로 결과가 나오는지 확인을 할 수
 
있습니다.
 
 
저는 개발 환경으로는 구글에 colab을 주로 이용하였습니다.
 
2장 
 
책에서의 장점은 저자분께서 장단점을 확실하게 설명을 잘해주신다는 점 
 
예를 들어 아마존의 예시를 들어줬어요. 아마존의 예시 중 추천 시스템의 예시 또한 설명이 되어 있어서요.
 
 
그리고 예시 중에는 마이크로소프트의 빙 이미지 검색을 활용한 모델 예시가 있어서 흥미로웠어요.
 
그리고 애플리케이션 배포를 하는 내용도 있습니다.
 
 
3장은 데이터 윤리에 관련된 내용이 있습니다.
 
 
그리고 파트 2부터는 실제로 fastai의 애플리케이션 계층을 이해해 보고 이미지 분류 및 영상 처리 문제에 대해서도 
 
확인해 볼 수 있습니다. 그리고 NLP의 순환 신경망을 통한 텍스트 전처리, 학습에 대한 내용을 공부하실 수 있습니다.
 
 
 
파트 3장은 아직은 못 읽었지만 느긋하게 읽을 예정입니다. 왜냐하면 일일이 실습을 따라 하면서 하기에는 리뷰 기간에 다 읽기에는 
 
힘들어서요. 느긋하게 천천히 하나하나 알아가면서 하실 분들에게는 추천드립니다.
 
 
 
마지막으로
 
그래도 이 책은 저처럼 배경지식이 하나도 없는 사람들이 읽기에도 좋은 것 같아요. 저자분께서 최대한 쉽게 설명을 해주시려고 하니까요.
 
무엇보다 공부하기 딥러닝 책으로는 제일 읽기가 편했던것 같습니다. 감사합니다.

이 책을 학습하면서 느낀 장점은 크게 2가지였는데, '이해하기 쉬운 개념 설명'과 '코드 위주의 설명'이었습니다.  
 
알고리즘을 소개하면서 중간중간 언급되는 수학 공식 또는 개념들을 수리적 풀이가 아닌 문해적 풀이로 설명하여 초심자들도 보다 쉽게 이해할 수 있게 배려하는 부분이 인상 깊었습니다(설명이 부족하다는 얘기가 아닙니다).
 
그리고 코드를 세심하게 설명합니다. 딥러닝 학습 도서들을 보다보면 코드는 주석으로 설명하고 넘어가는 경우가 많은데 이 책에서는 코드 설계, 작성 원칙까지 설명하고 있어 구현된 코드의 이해가 아닌 원리를 이해할 수 있도록 제공하고 있습니다.
 
개인적으로 베타리딩 보서는 한번 읽고 난 후 다시 안보게 되는 경우가 많은데, 이번 도서는 다시 한번 깊게 이해하고 싶다는 의욕이 생기는 책이었습니다. 딥러닝을 연구를 시작하시는 분들에게 강력히 추천드리는 책입니다.

 

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

책 리뷰

 

풀컬러

 

다른 분들의 리뷰들을 보시면 아시듯이 이 책은 풀컬러입니다. 정말 별 거 아니지만 이런 번역서들을 풀컬러로 만나면 기분이 그렇게 좋더라고요. 또한, 720p라는 두꺼운 책인데도 불구하고 풀컬러로 인쇄한 출판사가 정말 대단하다고 느껴집니다. 덕분에 시각적으로도 편하게 볼 수 있었습니다.

 

TIP

 

이 책의 저자 2명과 함께 Alexis Gallagher라는 사람이 수학과 공학적 배경지식이 적거나 실제로 코딩 경험이 없는 사람들을 위한 TIP을 알려줍니다. 각 분야에 대한 멘토가 나와서 한 번씩 조언해주고 알려주는 느낌입니다. 매우 도움이 됐습니다.

 

하향식

 

일반적인 머신러닝, 딥러닝 책이었다면 밑바닥부터 무언가를 구현하여 하나하나 단계를 올라가는 느낌인데 이 책은 다릅니다. 이 책은 top-down(하향식)으로 쓰여진 책입니다. 일반적인 강의 또는 책과는 정반대의 방식이기 때문에 딥러닝에 대한 사전 지식이 있으면 좀 더 읽기 쉬울 것 같습니다.

 

처음부터 모델을 만들어보고 사용해보는데 이런 과정 속에서 모든 개념들을 이해하기는 어렵습니다. 이러한 초반부에서는 그저 딥러닝에 대한 흥미를 느끼는데 목표를 갖기를 바랍니다. 후에 내부적으로 어떻게 작동되는지 설명합니다. 

 

개발 환경

 

이 책은 Jupyter Notebook을 사용합니다. 그러나 이런 환경을 구성하는 방법까지 자세히 알려주지는 않습니다. 그렇기에 자신이 환경을 구성할 줄 알아야 합니다. 전 GPU가 매우 좋지 않기 때문에 구글에서 제공하는 [Colab]을 사용했습니다. 근데 전 Colab Pro를 사용했는데 왜 저자의 환경에서 코드를 실행시키는 것보다 더 오래 걸리는지 아직도 잘 모르겠습니다.

 

저처럼 GPU가 좋지 않다면 Colab 사용 방법도 알아야겠죠. 책에서는 자세히 설명되어 있지 않지만 [fast.ai course]에서 Colab에서 코드를 사용하는 방법을 알려줍니다. 

 

질문지(Questionnaire)

 

각 장이 끝날 때마다 질문지가 주어집니다. 개인적으로 전 이 질문지가 독특하다고 느꼈고 정말 도움이 많이 됐습니다. 이 질문지는 각 장을 공부하기 전에 먼저 읽어도 좋고 한 장을 다 읽고 후에 복습용으로 읽어봐도 좋습니다. 사전에 읽으면 어떤 부분에 집중할 지 미리 알 수 있고 공부한 후에 읽으면 자신이 제대로 공부했었는지 지식을 점검할 수 있겠죠. 책을 잘 읽었다면 대부분의 질문들은 대답할 수 있을 것입니다. 그래도 질문지의 정답을 모르면 [Fastbook questionnaire solutions - fast.ai forum]에서 solution이 주어지니 참고하시면 좋을 것 같습니다. 나중에 기회가 된다면 블로그에 질문지에 대한 솔루션을 올려볼 예정입니다.

 

대상독자

 

책에서는 1년 정도의 코딩 경험, 고등학교 이상의 수학 과정을 마친 사람을 대상으로 합니다. 그러나 전 이 책을 읽기 전에 추가적으로 파이썬, PyTorch, 조금의 딥러닝 지식이 있으면 책을 읽는 데 더 편할 것이라고 예상됩니다. 

 

전 딥러닝이 공부하기 어려운 이유가 '다양한 개념들과 기초 지식들'이라고 생각합니다. 개념을 세부적으로 다 설명해줘도 갑자기 무수히 많은 개념들이 등장하면 머리가 혼란스러워집니다. 또한, 딥러닝을 공부하기 위해서 기초 지식이 충분하지 않다면 이해하기 어려울 수도 있다고 생각합니다. 그렇기에 이 책을 읽을 때 빠르게 읽기 보다는 천천히 시간적 여유를 두고 이해하면서 읽으시는 걸 추천드립니다.

 


[한빛미디어에서 제공 받은 '나는 리뷰어다' 2021년 9월 도서 리뷰입니다]


딥러닝과 머신러닝이란 기술을 알게된 지 벌써 5년이 지났다.

그 전부터 존재했던 기술이지만,

'4차 산업혁명' 이라는

미래 산업의 주축이 될 기술로 각광 받고,

알파고 vs 이세돌 이라는 퍼포먼스를 통해

일반 사람들에게 알려졌다.

 

당시 '알파고' 라는 기술이

클라우드 컴퓨팅에

딥러닝과 머신러닝이 결합된

결과물 이라는것이 알려지고,

'한번 배워볼까?' 하는 생각으로

이것저것 책도 사보고 정보도 모아봤지만

매번 실패했다.

 

그 이유는 아마 실패하는 사람들 대부분 같을거라 생각한다.

1. 어렵다.

2. 너무 어렵다.

3. 진짜 어렵다.

 

어렵기 때문에 실패했다.

처음 접하는것이기도 하고,

설명하기 어려운 분야 라고 생각한다.

'사람이 어떻게 생각하는가?' 라는

문제를 푸는 느낌과 같달까...

 

아무튼 그런 어려움을 조금이나마 달래준다고 말하는 오늘의 리뷰 서적

O'REILLY Deep Learning for Coders with fastai & PyTorch

'O'REILLY fastai와 파이토치가 만나 꽃피운 딥러닝' 이다.

 

  • 요약

1.  fastai를 직접 만들고 책을 집필

2. python 사용 경험이 있는 딥러닝과 머신러닝을 처음 시작하는 사람이 '대상 독자'

3. 딥러닝&머신러닝에 '뛰어난 수학 실력', '많은 양의 데이터', '고가의 컴퓨터 장비'는 필요 없다고 함

4. 주피터 노트북 활용(설치방법 없음)

5. 소개부분을 제외하더라도 약 650쪽이 넘어가는 두꺼운 분량

 

  • 정리

1. 저자가 책의 내용을 '여행'이라고 표현하며 직접 실행해보고 결과물을 확인할 수 있도록 짧은 코드들을 제공

2. '전체 코드' 같이 지면을 많이 차지하는 방법이 아닌 내용의 핵심이 되는 코드들을 실행하면서 흥미를 유발시킴(이미지, 그래프등의 시각적인 결과를 많이 보여줌, 또 컬러로 출력되어 있어 조금 더 눈길이 가는듯)

3. 책이 두꺼운만큼 '왜' 이런 기술이 나왔는지 설명에 힘을 씀, 해당 내용을 설명하기 전에 기존에 나와있는 결과들을 보여주고 앞으로 어떤식으로 진행할 것인지 상세하게 기술 되어있음

4. '질문지'라는 란과 '추가연구' 라는 항목을 매 챕터 마지막에 두어 독자들에게 질문을 던짐, 해답은 나와있지 않고 해당 장에서 배웠던 내용들을 다시 복습하는 의미로 넣어둔것 같음

5. 책의 저자 + 해설 도우미 3명의 팁이 중간중간에 삽입, 특정 사건에 대해 간략 첨삭의 느낌으로 짧게 들어가 있음

 

  • 여담 & 결론

1. 기술 개발자가 직접 책을 저술한것과 여러 사람이 함께 만듦으로써 다양한 시각으로 바라볼 수 있는것은 매우 좋은 방법이라고 생각함

2. 기술적으로, 금전적으로 풍족하지 않은 초심자들을 위한 다양한 방법이 엿보임(사진, 그래프, 차트 등의 시각적 자료)

3. 챕터별 마지막 부분에 독자들에게 질문하는 형태는 정답지를 제공해주던가, 간단하게 꾸몄으면 어땠을까 하는 아쉬움이 듦, 거의 두 면을 다 차지할 정도의 분량이기 때문에 독자들이 긴 글을 읽고 이부분에 흥미를 가질까? 하는 생각이 듦

4. 가끔 파이썬 언어를 기반으로 나온 책들을 보면 코드로만 1~2장을 차지하는 경우가 있는데, 이 책은 위에서 언급한 것처럼 짧게(길어야 5~6줄?) 정도로 구성되어 있어 보기 수월하고 따라하기 수월함, 파이썬의 특성상 코드를 줄이고 주피터 노트북을 사용한 장점을 극대화 한 방법이라고 생각함.

5. '어렵지' 않을 수는 없지만 어려운걸 어떻게 풀어서 독자들에게 전달하느냐가 저자의 역량이라고 생각함, 대상 독자를 초심자로 정한 만큼의 값어치를 하는 훌륭한 책이라고 생각.

fastai와 파이토치가 만나 꽃피운 딥러닝.png

풀어가는 순서

많이 회자되고 있으며 이미 많은 책들이 나와있습니다. 더 이상 미루면 안 될 것 같다는 느낌을 받기는 하지만 선뜻 시작하기에는 주저하게 됩니다. 책을 펼칠 때마다 보는 수식이 상당히 부담스럽기 때문입니다.

 

많은 딥러닝 책들은 무엇을 만들 것인가 알려준 뒤 어떻게 만들어 가는지 보여줍니다. 왜 만드는지는 알려줄 때도 있고, 생략할 때도 있습니다.

무엇을, 어떻게 만드는지에 집중합니다. 제대로 만들어지고 있는지 대상과 과정을 반복 확인하며 만들어 나가는데 중점을 두고 있는 경우가 대부분입니다.

 

'무엇을, 어떻게, 왜' 라는 순서를 가집니다. 이 책은 방향이 다릅니다.

먼저 '왜'를 앞에 두고, 그다음 '어떻게'를, 그리고 '무엇을' 하는지 알려줍니다.

 

읽는 도중 '왜' 라는 질문을 계속하게 합니다.

예를 들머, 딥러닝을 시작할 때 이미지를 가지고 시작합니다. 왜 데이터로 이미지를 사용할까요? 텍스트를 이용하면 좀 더 쉬울 것 같다는 생각이 드는데 말이죠.

그리고 이미지를 어떻게 활용하는 걸까요? 이미지를 데이터로 만들고 이를 통해 훈련시킨다고 볼 수 있지만, 데이터만 나열한 상태로는 사람이 이해하고 확인하기 어려우니, 이미지로 구현하면 이해하기 쉽고 생각을 확장하기도 쉽기 때문이라고 생각합니다.

이렇게 이미지로 훈련시킬 수 있으면 보이는 이미지뿐 아니라 보이지 않는 대상도 이미지화해서 활용할 수 있습니다. 소리, 정확히는 소리가 가진 여러 가지 복잡한 파형이 대상이 되겠죠. 움직임, 움직이는 경로를 추적한 이미지. 냄새조차도 센서로 측정하여 이미지화할 수 있다면 가능하다는 얘기입니다.

 

 

같이 가려는 발맞춤

각 단원 마지막에 질문지와 추가 연구가 있습니다.

간혹 연습문제가 있는 책이 있습니다. 정답을 알려주는 것도 있고, 그렇지 않은 경우도 있지만요.

연습문제가 '이런 문제를 풀어 보면 앞에서 배운 내용을 좀 더 이해할 수 있을꺼야' 라고 알려준다면, 질문지는 '이번 단원에서 알고 넘어가야 하는 내용에는 이런 것들이 있는데 어때' 라고 물어봅니다. 결정적인 차이점은 질문지에서 물어보는 내용은 앞에서 모두 확인할 수 있다는 점입니다.

 

추가 연구는 어떻게 보면 연습문제와 비슷할 수 있습니다. 다만 결이 조금 다릅니다.

연습문제가 가르치고 배우는 입장이라면, 추가 연구는 동료를 찾는, 동료가 되어주었으면 하는 입장입니다.

알게 된 지식에 매몰되지 않도록 다양한 시각으로 살펴보는 시간과 자신만의 생각을 정립하는 시간을 가지기를 바라는 바람이 들어있는 것 같습니다.

 

 

기술 밖을 바라보다

데이터 윤리, 다른 책에서 볼 수 없는 이 책만 가진 특징이라고도 생각합니다.

인공지능 대화 프로그램이 막말이나 인종차별 발언 때문에 문제가 되었던 일이 있었습니다. 명령어를 기반으로 기능하는 프로그램이 아니라 데이터를 기반으로 훈련하여 움직이는 프로그램이 가진 장점이자 단점인 부분입니다.

데이터 윤리 단원에서는 기술에만 몰두하다 보면 놓칠 수 있는 부분인, 기술보다 더욱 중요한 사람을 잊지 않도록 알려줍니다.

 

unintended.jpg

 

편향이 존재할 수 밖에 없는 데이터와 이러한 편향에서 벗어나기 위해 필요한 인식과 다양성, 정책을 놓치지 않도록 챙겨줍니다. 굳이 엔지니어가 아니더라도 일하는 분야가 딥러닝과 관련 있거나 관심이 있다면 데이터 윤리 단원은 도움이 되리라 생각합니다.

 

 

수식도 좋지만 딥러닝에 보다 집중할 수 있는 책이라 생각합니다.

 

 

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

오늘 리뷰 도서는 딥러닝 관련 내용이다. 딥러닝 관련해서는 개인적인 관심 때문에 여러 책을 보고 공부를 좀 한 경험이 있다.
 
 
한빛의 도서 소개 페이지를 보니 온갖 미사여구와 좋은 표현들이 있길래 너무 오버하는거 하닌가 싶었지만...
 

표지 2021-09-19 17.03.50.jpg

 

이 책을 보면서 점점 나 자신도 동감하고 있었다. 그동안 봤던 딥러닝 책들과는 약간 다른듯 하고, 
 
좀 더 친절한 설명을 하는듯 했다. "어차피 딥러닝 책은 초보용이 아닌데 쉽게 설명해봤자 거기서 거기겠지" 라고 할수 있지만
 
왠지 이 책은 좀 더 쉽게 설명 하는듯한 느낌을 받는다. 아마 저자들이 오랜 기간동안 실제로 학생들을 가르친 경험을
 
반영해서 그런것 같다.
 
720페이지의 상당한 분량이지만 딥러닝 관련 책이라면 이 정도 볼륨이 기본으로 되어야 충분한 설명을 담을수 있을거다.
 
이 책이 친절하고 쉽게 설명한다는 점 이외의 가장 큰 장점은 바로 "컬러판 인쇄의 장점을 잘 살린 끝판왕" 이라는 점이었다.
 
아래 찍은 사진들을 보면 컬러 인쇄가 아니었으면 도저히 설명하기 힘든 내용들인 사진들이 이 책 전반에 걸쳐 
 
포함 되어 있다. 정말 이 책을 컬러 인쇄 한것은 신의 한수 임에 틀림 없을것이다.
 

이미지 1.png

 

그리고 딥러닝에서는 온갖 어려운 용어들이 많이 나오는데 곳곳에 아래처럼 용어들에 대해서도 잘 정리한 점도 좋았다.
 
볼드체 폰트와 색상을 살짝 달리하는 등 신경을 많이 쓴 흔적이 보인다.

용어 사전 2021-09-19 17.05.11.jpg

 

또한, 각 장의 마지막 부분에는 다양한 질문들을 포함하여 독자들로 하여금 다시 생각해보는 시간을 갖게 하고 있는 구성도
 
독특하다고 생각한다.
 
대부분의 딥러닝 관련 책들이 텐서플로 기반으로 되어 있지만 이 책은 파이토치 기반이다. 책을 읽다보니 두 가지의
 
차이점은 중요하지 않은듯 했다. 왜냐하면 대부분 같은 내용들을 다루고 있어서 내용의 본질을 다루고 이해하는데에는
 
같은 맥락이기 때문이다. 
 
손글씨 분류, 이미지 분류, 추천, 자연어 처리, 등등의 다른 책에서도 볼 수 있었던 대부분의 내용을 이 책에서도 다루고
 
책의 후반부로 가면 다른 책에서는 잘 다루지 않는 옵티마이저에 대한 부분들도 있으니 관심 있는 독자들은 참고 하시길.
 
마지막으로 정리하면, 딥러닝을 공부하는 사람들이라면 꼭 이 책을 권하고 싶다. 다른 책들에서 이해가 안가는 부분들이
 
이 책으로 시원하게 이해가 될 수도 있고, 텐서플로우가 아닌 파이토치를 이용한 것도 새로운 경험이 될 것이다.
 
그리고 완벽한 컬러 인쇄로 눈호강 한다는 점도 또 한번 강조한다.
 
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
 


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

 

pytorch를 기반으로 만든 국내에서는 아직은 생소한 fastai 패키지를 다루는 책입니다.

게으른 딥러닝, 좀더 접근성이 높은 딥러닝을 추구하는 것이 이 책의 목적이지만,  개인적으로는 텐서플로, 파이토치 정도를 알고 있는 상황에서 이 책을 읽으면서, 딥러닝을 오랫동안 사용할 것이 아닌 프로젝트 때문에 한 두번 정도 사용할 사람들에게 좋은 책이라는 것을 느꼈습니다. 

 

fastai라는 패키지가 파이토치나 텐서플로였다면, 2~3단계를 거쳐야 하는 것들을 한 가지의 함수를 적용하여 뛰어 넘을 수 있도록 도와주는 패키지이라는 점에서 다른 딥러닝 프레임워크에 익숙하지 않았다면, 오히려 좋은 모델을 만들 수 있겠다는 생각이 들었기 때문입니다. 

 

책의 내용적인 부분으로 들어가면, 다른 책이었다면 30페이지 안밖에 끝났을 내용을 딥러닝의 역사와 실제 작성될 모델에서의 효과 등 자문자답의 형식으로 중심적인 내용에 살이 상당히 많이 붙어 있습니다.

 

다른 책에서 초반에 나오는 딥러닝의 역사 부분에서 다루는 배경 설명 부분에 그치지 않고, 실무에서 데이터를 어떻게 사용해야 할 것인가 등등의,  데이터 품질 관리 책에서 다룰 법한 내용도 있어, 책을 읽는 동안 마치 딥러닝 캠프를 한 것 같은 느낌이었습니다. 

 

이 점에서 파이토치, 텐서플로에 능숙하시면서도, 딥러닝 프로젝트에 대한 경험은 적어서 우왕자왕하시는 분들에게도 도움이 될 것 같습니다. 

(이 분들은 자기에게 익숙한 프레임워크로 진행하시는 게 나을 것 같습니다. )

 

이 책의 내용은 작가가 강사로서 학생들과 부딪치면서 겪은 경험을 그대로 녹였기 때문에 꼼꼼하게 집어나갔다는 생각이 들었습니다.

 

그러나 이 책이 상세하고 친절하다고 해서, 이 책을 프로그램 언어에 대해서 이해가 없는 딥러닝만을 보고 시작하는 초심자에게는 권하고 싶지 않습니다. 

 

이 책 자체에 모든 코드가 들어가 있지 않기 때문입니다.  즉, 코드 한줄 한줄 치면서 해도 다 될 정도의 책이 아니라는 것입니다. 

 

작가가 작성한 코드를 다운 받고 읽으면서 하는 것을 전제로 하고 있는 책으로, 아마 코드를 치는 것이 생판 처음인 분들은 책을 머리글부터 꼼꼼히 읽는 분이 아니라면, 며칠은 고생하다가 악몽으로 남을 것 같은 책입니다.  

 

물론 이런 것들을 지적해줄 수 있는 교수님이 이 책을 교재로 사용한다면, 오히려 학생들에게 프로그래밍에 더 익숙해질 수 있도록 해주는 계기가 될 수도 있는 책이라고 생각합니다. 

 

그렇기 때문에,  프로그래밍에 나는 관심없다, 딥러닝 하나만 보고 공부하고 있다+ 코드 대로 눌렀는 데, 안 됬을 때 주변에 도움을 줄 사람이 없다 하시는 분들은 파이토치 기본책을 읽고 오는 게 좋을 것 같다고 생각합니다. 

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

 
fastai는 파이토치에 고수준의 기능을 넣은 딥러닝 라이브러리입니다.

예제는 구글 Colab 통해 실행하는게 편한거 같습니다.
실행시간은 책에 나온 저자의 환경보다 10배 정도 더 걸리는것 같음.-_-

https://colab.research.google.com/notebooks/ 통해서 GITHUB 탭에서
저장소: fastai/book_nbs 선택시 나오는 파일들을 클릭


일반적인 머신러닝 딥러닝책들과 다르게 시작합니다.
일반적으로 간단한 예제등으로 기초를 다진후에 점점 깊은 내용을 다루고 후반부에 가서야 일반적인 응용을 다루는 방식이 아니라
바로 개/고양이 분류 문제 부터 시작합니다.  그리고 이미지의 세그멘테이션 분류, 긍정부정 감성분석 이진 분류하는 모델,
추천시스템 모델 등 여러가지 모델을 다룹니다. 그리고 데이타 수집, 전처리, 모델 생성 저장, 온라인 어플리케이션으로 전환까지
등을 단 2장만에 보여줍니다.

물론 이 시점에 각각을 다 이해할 수는 없습니다. 다만 이런것들을 하기 위해선 이런 모델을 사용해야하는데,
기본적인 코드 형태에서 아 모델만  코드에서 몇 줄만 간단히 바꿔서 사용하면 되는구나, 딥러닝같은걸 배워서 이런식으로 서비스를 하는구나
같은 감을 잡는 초반부라고 생각됩니다.
 
실무에서 쓸 수 있는 정도의 성능을 갖추고도 매우 적은 양의 코드로.
예전 텐서플로등으로 코딩하는것에 비해  fastai나 파이토치등에 의해 상당부분의 코드가 라이브러리화 되어 감춰졌기 때문에
이해하기도 쉬워졌네요. 격세지감이 느껴집니다.
 
이렇게 시작하기에 바로 어떤식으로 진행되는지 대략 본 후 궁금증을 갖게 한 후 한단계씩 점점 내부에서 일어나는 일들을 설명해 나갑니다.
먼저 숲은 보게 하고 나무를 보게하고, 그 다음 나뭇가지를 보고, 그 다음 꽃이나 새들을 보게하는 것처럼..
보다가 궁금한 것을 한번에 다 이해하고 넘어가길 원하는 사람에게는 답답할 수는 있습니다.  

인공지능이 모든것을 검토하고 결정을 내렸다고 해서 그 결정이 항상 옳다고 할 수도 없으며, 잘못된 결정이라고 하더라도 책임을 피해갈 수는 없습니다.
데이터 윤리라는 챕터에서는 머신러닝의 데이터 수집부터 서비스하는 단계까지에서 편향이 생길 수 있음을 다양한 사례를 통해 보여주고
이를 피해가기 위한 다양한 방법이나 접근법을 제시합니다.

중간 부분은 일반적인 딥러닝 책들처럼 경사하강법이나 손실함수, 모델 생성, 시각화 , 결과 해석등의 내용들이 나옵니다.
데이타 수집(확인) 이나 전처리등에서 시각화가 가능한 것들에 대해 가능한 많은 그림들이 제시되어 있고, 
입력해야할 코드량은 굉장히 적습니다(단 내용이해를 위해선 파이썬 문법정도는 배운 상태여야 합니다)
결과의 해석은 케이스 바이 케이스라 이정도 정확도면 괜찮은걸까 다른 방법을 써야하는걸까 ,어떤 것은 적은양으로도 이해가 되고, 어떤것은 좀 더 설명이 있었으면 하는것도 있고 정답이 없는거 같습니다.
  
대상독자: 그래도 처음 접하는 사람보다는 한번이라도 딥러닝과 머신러닝관련 공부를 해본  독자에게 좀 더 적합할 거 같습니다. 
우선은 최대한 빠르게 하지만 최신 기술을 사용해서 어느정도 수준을 갖춘 인공지능 서비스를 하고 싶은 사람에게 fastai는 좋은 기회가 될 거 같습니다.
 
자기가 인공지능 관련 공부를 하긴 했는데 어느정도 알고 있는지 스스로 체크하고 싶다면
각 챕터의 끝에는 해당 챕터와 관련된 수많은 질문들이 들어있습니다. 제대로 이해했는지 복습의 개념으로 봐도 좋고,
예습느낌으로 질문을 미리 읽은 후 내용을 읽을때 관련된 부분은 좀 더 집중해서 볼 수 있는 장점도 있는거 같습니다. 

2021년 올해의 책리뷰 / fastai와 파이토치가 만나 꽃피운 딥러닝 / 한빛미디어

 

이 책은 딥러닝과 머신러닝을 처음 접하는 사람들을 대상으로 쓰여진 책입니다. 파이썬 프로그래밍, 문법을 알고 있다면 도움이 많이 됩니다. 높은 수준의 수학 지식을 갖고 있지 않아도 되며, 딥러닝 실무자에게 도움이 되는 내용들일 많이 있습니다.

 

딥러닝을 쉽게 사용할 있는 파이썬 라이브러리인 fast.ai를 직접 개발한 개발자인 실뱅과 제레미가 이 책을 집필하였습니다. 제레미는 약 30년 동안 머신러닝을 사용하고 가르쳤으며, 25년 전부터 신경망을 사용해 왔다고 합니다. 또한 실뱅은 일반적인 기술 교육 과정을 매우 잘 알고, 심화 수학 교과 과정을 다루는 교과서를 다수 집필하였다고 합니다. 코딩 및 머신러닝 전문가와 수학 전문가가 만나 집필한 책이라고 볼 수 있습니다.

 

이 책은 실제 사례로 딥러닝의 거의 모든 것을 설명하기 때문에, 맥락 속에서 필요한 이론적 기초를 점진적으로 학습하며, 이론이 중요한 이우와 작동 방식 등을 이해하기 수월합니다. 이 책을 이해하기 위해 딥러닝 분야에 대한 박사 학위 등 학문적 배경이 필요하지는 않지만, 그래도 딥러닝이기 때문에 많은 인내를 요구합니다.

 

파이썬으로 실습을 하는데, 주피터 노트북을 이용하고 있습니다. 주피터 노트북을 설치하여 책을 보면서 실습하고 이해하면 좋을 것 같고, 컴퓨터 사양이 안좋아서 GPU를 사용할 수 없다면 구글에서 제공하는 COLAB을 사용해도 됩니다.

 

딥러닝이 공부하기 어려운 이유 중에 하나가 어려운 용어들이 많이 등장하기 때문인데, 이 책에서는 어려운 용어들을 쉽게 풀어서 설명하고 있어서 쉽게 이해하기 좋습니다. 각 장마다 마지막 부분에 질문지와 추가 연구하는 부분에 대하서도 기술되어 있어서 더 심도있게 연구하고, 고민할 수 있도록 합니다.

 

 

fastai 애플리케이션 계층을 이해하기 위해, 숫자 분류기의 학습 내부, 이미지 분류, 영상처리 문제, 최십 모델의 학습, 협업 필터링, 테이블 데이터 모델링, NLP(자연어 처리), fastai의 중간 수준 API로 데이터 변환을 다루고 있습니다.

딥러닝의 기반 지식을 이해하기 위해, 밑바닥부터 구현하는 언어 모델, 합성곱 신경망, ResNets, 애플리케이션 구조, 학습 과정에 대해 다루고 있습니다.

딥러닝을 구현하기 위해 신경만, CAM을 이용한 CNN의 해석, Learner 클래스의 내용을 다루고 있다.

 

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

IMG_1149.png

 

 

이 책은 fastai라는 고수준 라이브러리를 사용해서, 딥러닝에 쉽게 입문할 수 있도록 도와주는 책입니다.

 

그래서, 딥러닝의 본질에 더 집중할 수 있도록 합니다.

 

 

fastasi라는 라이브러리는 뛰어난 데이터 로더를 지원하고 있다는 정도만 알고 있었고, 사용해 본 적이 없었지만 이 책을 통해 fastai의 또다른 여러 장점을 쉽게 알 수 있었습니다.

 

이 책은 전반적으로 적절한 컬러 이미지와 도표, 그리고 코드가 깔끔하게 편집되어 있어서 읽는 동안에 피로감을 느낄 수 없었습니다. 그리고 중간 중간에 저자들의 코멘트로 부터 저자들의 경험을 그대로 느낄 수 있도록 해주고 있습니다. 

 

저는 이 책에서 chapter 2, 3도 마음에 들었습니다. chapter 2은 데이터 수집 부터 실제 배포까지 전체적인 라이프사이클을 알 수 있도록 설명되어 있으며, chatper 3은 최근에 중요하게 부각되고 있는 데이터 윤리에  대해 설명하고 있습니다. 다른 입문 책에서는 보기 힘든 내용인 것 같습니다.

 

 

 

파이토치로 자기만의 라이브러리를 만들어 나가는 것도 좋지만, 이런 고수준 라이브러리를 익힘으로서 좀 더 시간을 절약할 수 있다고 생각합니다. 아직 어떤 고수준 라이브러리 ( fastai 혹은 pytorch lightning 등) 를 사용할지 선택하지 못한 입문자에게 추천합니다.

 

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

  • 상향식 학습
    • 뭔가를 설명할 때는 기초부터 고급까지 차근차근 올라가는 것이 일반적이다.
    • 더하기 빼기를 배워야 곱하기 나누기를 알 수 있고, 미분과 적분처럼 어려운 것들은 나중에 배운다.
    • 이를 상향식(bottom-up) 접근이라고 하며 공교육과 사교육을 막론하고 일반적인 접근이다.
    • "이런거 배워서 어디에 써요?"라는 질문은 공부하기 싫은 이의 핑계처럼 여겨지기도 하고,
      "크면 다 알게 돼"라는 답이 여기에 더해지면 지식과 무관한 나이가 권위처럼 여겨진다.
  • 하향식 학습
    • 학교를 벗어나 사회에 나와서 뭔가를 배우다 보면 당장 성과를 내야 할 때가 잦다.
    • 기초부터 차근차근 배우기를 기대하기는 어렵고 일단 일이 되게 만드는 것이 최우선이다.
    • 왜 그런지는 나중에 배우는데 안 배워도 되는 경우, 배울 수 없는 상황도 많다.
    • 흔히 이런 상황을 몸으로 배운다고 하는데, 나중에라도 원리나 개념을 익히면 하향식(top-down) 학습이 된다.
  • 북극점 정복하기
    • 상향식의 가장 큰 단점은 결과물을 만져보기까지 시간이 오래 걸린다는 것이다.
    • 재미를 느끼지 못하는 기간이 길어지면 지치기 마련이고, 결과물을 만져보지 못했으니 가치도 못 느낀다.
    • 특히 빠르게 발전하는 분야는 공부하는 사이에 목표가 저만치 달려가고 있어서 절대로 끝이 나지 않는다.
    • 탐험가들은 남극점보다 북극점이 다다르기 어렵다고들 한다.
    • 남극점은 육지에 속해있어서 나만 열심히 달려가면 언젠가 다다를 것이라는 희망이 있는데,
      북극점은 바다 위를 떠다니는 얼음덩어리 위에 있기 때문에 죽어라 가봐야 얼음이 반대로 흘러가면 끝이다.
    • 대부분 북극점까지 가는 루트를 확보하는 것이 목적이 아니라 북극점에 도착하는 게 목적이다.
    • 눈밭을 뚫고 달릴 것 없이 일단 비행기에서 낙하산을 메고 뛰어내려 북극점에 도달하고 천천히 돌아와도 된다.
  • 극단적인 하향식 기술서
    • 대부분의 딥러닝 책의 진도는 이렇다.
    • 행렬연산 배우고, 역전파 배우고, FCN 만들고, CNN 만들고, .... 레이블 스무딩 배우고, 웹 애플리케이션 개발.
    • 트리 모델 같은 고전 머신 러닝을 같이 배운다면 딥러닝 배우기 전에 배운다.
    • 이 책의 진도는 이렇다.
    • 웹 애플리케이션 만들고, CNN 모델 만들면서 역전파 배우고, 레이블 스무딩 배우고, 트리 모델을 배운다.
    • 그 다음에서야 합성곱 연산이 어떻게 되는지, 행렬끼리 곱셈은 어떻게 하는지, 데이터 로더를 배운다.
  • 에반게리온을 처음 봤을 때 느낌.
    • 처음에 굉장히 혼란스럽다.
    • 뭐가 뭔지 모르겠는데 건물이 부서지고 있다.
    • 그 속에서 차 한대가 달려오더니 설명도 없이 주인공을 로봇에 태우고 적을 무찌르란다.
    • 이게 어떻게 된 세상인지는 회차가 진행되면서 하나씩 밝혀진다. (그나마도 마지막까지 모르는게 많다)
    • 이 책이 그렇다.
    • 다짜고짜 웹 애플리케이션을 만들더니 내가 알던 진도와 거꾸로 간다.
    • 심지어 딥러닝 경험이 많은 사람들이나 고민할만한 AI 윤리부터 짚고 넘어간다.
  • 내가 생각하는 최적의 독자: 컴퓨터를 조금은 다뤄보셨는데 딥러닝은 처음인 분들
    • 하향식은 당장 결과를 손에 쥘 수 있기 때문에 흥미를 잃지 않고 달릴 수 있다.
    • 특히 딥러닝처럼 계속 새로운 모델이 나오는 분야라면 필수적인 방식이다.
    • 그런데 컴퓨터 자체가 낯설다면 문제가 될 것 같다.
    • 갑자기 딥러닝 붐이 불면서 클릭과 드래그로만 컴퓨터를 사용해보신 분들이 딥러닝에 입문한다.
    • 메모장같은 터미널에 어려서 영어단어를 외우듯 외운 명령어를 입력하는 방식은 피할 수 없다.
    • 적어도 이 과정이라도 손에 익어야 이 극단적인 하향식을 따라갈 수 있지 않을까 생각한다.
    • 이 정도만 가능해도, 초반부터 등장하는 코드를 조금씩만 바꿔도 결과물을 얻을 수 있다.
  • 두 번 읽으면 더 좋을 책.
    • 에반게리온은 제레의 인류보완계획을 웬만큼 이해하고 다시 보면 또 다른 재미가 있다.
    • 이 책도 마찬가지. 저자의 설계를 따라 책을 한번쯤 따라간 뒤, 다시 보면 더 좋을 것 같다.
    • "이게 이래서 그렇구나?" 라는 즐거움은 뇌에 상당한 양의 도파민을 분비시킨다.
    • 즐거움이 묻은 기억은 오래 간다.

 

이 책을 한 줄로 설명하라고 한다고 하면 다음과 같이 말할 것 같네요.

딥러닝을 공부하는 목적을 정확히 알려준 책

 

이렇게 단 한줄로 표현하게 된 이유는 다음과 같습니다.

  • 넷플릭스와 같은 서비스를 살펴 보면 한개의 영화를 보게 되면 그 영화를 좋아하는 사람들이 많이 보았던 영화를 딥러닝 기반으로 추천을 해 주는 시스템을 일상 생활에서 자주 보게 됩니다.
  • 이 책은 이러한 서비스 기반으로 주피터노트북에서  fastai 라이브러리를 활용해서 애플리케이션을 만들어 보고 먼저 배포를 해 보는 것 부터 시작 합니다
  • 일반적인 딥러닝 책은 상향식 기반(기술적인 부분부터 시작해서 사용법 등으로 접근)인데 비해 이 책은 하향식 기반(먼저 fastai 라이브러리의 사용법을 중심으로 서비스를 만들어 보는 것으로 시작해서 기술적인 부분으로 접근)입니다.

 

 

이 책의 특징
  • 이 책의 저자
제레미 하워드 : 철학 전공자 이면서 fast.ai 기관의 창립 연구자
실뱅 거거 : 수학과 컴퓨터 과학을 가르치면서 fast.ai기관의 공동 창립 연구자

 

그들은 처음부터 머신러닝의 전문가가 아니었습니다.

머신러닝 과학자 또는 엔지니어로서 정규 훈련 없이 딥러닝을 배우고 적용하기를 원했습니다.

지금보다 더 열악한 환경에서 하나하나 배우면서  다른 사람들이 자신들이 걸어온 고통스러운 길을 걷지 않도록 하기 위해 fast.ai라는 과정을 만들었습니다.

이 책은 파이토치 기반의 fastai 라이브러리를 활용하여 딥러닝의 여행을 하기 위한 안내서가 될것입니다.

 

  • 이 책의 목차
1. 실전 딥러닝
2. fastai 애플리케이션 계층 이해하기
3. 딥러닝의 기반지식
4. 밑바닥부터 구현하는 딥러닝

 

1장 실전 딥러닝에서는 딥러닝을 사용해 실제 애플리케이션 및 제품을 만드는 방법을 보여 주고 있습니다.

2장 fastai 애플리케이션 계층 이해하기에서는 딥러닝을 실제로 사용하는 방법 대신 딥러닝이 어떻게, 왜 작동하는지를 알아 보고 있습니다.

3장 딥러닝의 기반지식에서는 fastai의 모든 애플리케이션과 주요모델 구조의 구축방식, 권장되는 모델의 학습방법을 이해하고 이를 처음부터 구축하는데 필요한 지식을 다루고 있습니다.

4장 밑바닥부터 구현하는 딥러닝 에서는 신경망의 실제 순전파와 역전파가 수행되는 방식을 알아보고 성능을 개선하는데 어떤 도구를 사용하는지 등을 다루고 있습니다.

 

  • 소소한 팁으로 바로 옆에서 멘토링을 해 주는 듯한 구성

딥러닝을 공부하면서 정말 막막한 경우가 많은데 이럴때 옆에서 멘토링을 해주는 분이 있다면 정말 폭풍성장을 할것 같은 생각을 많이 해 보게 되는데요~

이 책은 제레미 하워드와 실뱅거거도 우리와 같은 입장이었을때 하나 하나 배우면서 느꼈던 부분들을 옆에서 멘토링 하듯이 설명을 해 주고 있다는 것이 특징이네요.

 

 

저도 벡터 노름이라는 단어를 보고 구글링 검색을 해보고 이해 되지 않는 수식에 의해 좌절에 빠졌었는데요~

이렇게 제레미는 저처럼 좌절에 빠지는 사람들이 있을까 하여 친절하게도 자신도 이런 문제에서 그것을 이해하려고 하기 보다 코딩을 통해서 어떻게 동작하는지를 깨우쳤다는 내용을 담아 내고 있습니다.

 

대상독자

이책의 대상 독자를 다음과 같다고 설명하고 있습니다.

  • 이 책은 딥러닝과 머신러닝을 처음 시작하는 독자에게 적합합니다.( 이 책을 읽으면서 느낀 점은 실제 애플리케이션 및 제품을 만드는 방법부터 들어가기 때문에 편안하게 접근 할 수가 있어서 좋았습니다. 하지만 기본적인 내용을 알고 접근하면 훨씬 도움이 될것 같네요. 정말 딥러닝을 처음 접해 본다고 하면 생활코딩에서 제공하는 데이터과학을 먼저 공부하고 보신다면 효과가 더욱 좋을것 같네요.)
  • 파이썬 코딩 경험이 있으면 더욱 좋습니다.(아무래도 직접 코딩을 하면서 결과가 나오는 원리를 파악하고 싶다고 하면 파이썬 코딩 경험이 있다면 훨씬 유리할 것입니다.)
  • 딥러닝 실무자도 이책을 읽는다면 많은 도움이 될것 같습니다.( 이 책은 최신 연구에서 다룬 기술을 포함하여 세계적인 수준의 결과를 달성하는 방법까지도 세세하게 다루고 있습니다.)

 

 

이 책을 읽고~

딥러닝에 관심이 있는 분들이 딥러닝에 접근하는 것이 쉽지 않은 것이 사실인것 같네요~

초등학생에게는 인공지능을 다루어 보는 서적이 대부분이고~

이렇게 인공지능을 다루어 보고 인공지능에 대해 공부를 해 보려고 하면 정말 망망대해가 펼쳐진 느낌을 받을 수 밖에 없는데요~

이 책은 이 망망대해에서 한줄기 등대가 되어 주지는 않을까 라는 생각을 해 보게 되었네요.

 

 

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

 

20210902_203144.jpg

 

 

책에서 가장 기초적인 classification, 즉 고양이와 개 사진을 분류하는 실습을 진행하여 볼 수 있었고 기존에 케라스에 쓰던 방식과 어떤 점이 다른지에 대하여도 한번 쯤 생각을 해볼 수 있었습니다.

또한 부가적으로 왜 technical writing, 기술적 글쓰기가 중요한지에 대한지도 설명을 해주는 점이 인상 깊었습니다.

 

그리고 딥러닝의 학습 과정이 어떠한 방식으로 전개되고 과정을 이해할 수 있었던 점이 이 책의 가장 큰 장점이 아닐까 싶습니다.

 

20210902_203158.jpg

 

 

마지막으로 본 책은 파이토치를 처음 입문하는데 있어서 문법보다도 어떻게 작동하는지의 원리를 이해하고 그에 대한 실습을 천천히 진행해 보실 수 있는 분에게 추천 드립니다.

 

 

마지막으로 좋은 책 제공과 기회를 주신 한빛미디어 담당자 분들께 감사 드립니다. 10월에도 내용이 탄탄한 도서를 읽고 빨리 리뷰를 남기고 싶습니다.

 

 

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

 

 

 

# 나는리뷰어다

fast.ai는 수십년간 머신러닝 교육과 수학 교육 분야의 전문가가 직접 개발하였으며 이 책 또한 개발자들이 직접 집필한 서적으로

 

딥러닝을 초보자의 눈높이에서 학습해 나갈 수 있게 매우 쉽고 체계적으로 구성이 된 서적이다

 

책을 공부하면서 책에서 소개하는 사이트에서 공부에 필요한 정보들을 참조해 더욱 깊이 있게 내용을 이해할 수 있다

 

 

이 책에서 강조하는 바는 연습과 훈련이다 딥러닝은 끊임없이 연습과 훈련을 하면서 지식을 쌓아나가고 그런 경험들이 쌓여서 자신의 실력이 되는 것이라고 한다

 

 

딥러닝에 입문하고 공부하고 연구할 수 있는 환경이 점점 더 좋아지고 있다

 

이제는 반드시 대학에서 이런 지식들을 공부하지 않더라도 충분히 공부할 수 있는 자료들이 넘쳐나는 세상이다

 

 

이 fast.ai라는 딥러닝 라이브러리도 정말 혁신적으로 초보자들 뿐만 아니라 실무자들도 사용하기 쉽게 만들어져 사용성이 매우 높음에도 불고 하고 매우 강력한 기능들을 가지고 있는 라이브러리이다

 

개발자들이 직접 집필한 이 서적으로 누구보다 발빠르게 fast.ai로 딥러닝에 입문해보자

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
fastai와 파이토치가 만나 꽃피운 딥러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
fastai와 파이토치가 만나 꽃피운 딥러닝
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
fastai와 파이토치가 만나 꽃피운 딥러닝
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실