설명
오탈자를 알려주세요
알려주신 오탈자는 검토 후 다음 쇄에 반영되며,
내역은 정오표에서 확인할 수 있습니다.
[알립니다]
책에서 사용한 단축 URL 서비스가 종료되어 오리지널 링크를 남깁니다.
- 실습용 대시보드 페이지에 접근하기
- 실습용 대시보드 페이지URL : colab.research.google.com/drive/11k-SAzMs6mw_0gTMxmIAIY2gCfB8VbqB
이 링크에 접속하시면 다른 모든 실습/데이터 예제 링크에 접속할 수 있습니다.
★ 먼저 〈기본 블록〉과 〈학습 루프〉로 이해하고
★ 15가지 파이토치 딥러닝 신경망을 구현하고 학습하라
개념을 제대로 이해하면 누구나 ‘데이터 분석 → 전처리 → 모델링 → 평가’ 순서를 따라 딥러닝 신경망을 어렵지 않게 만들 수 있습니다. 그래서 이 책은 이해를 돕는 그림을 곁들여 개념을 충실히 설명하고 〈기본 블록〉과 〈학습 루프〉를 그림으로 제시합니다. 그러고 나서 이미지, 텍스트, GAN 생성 모델을 학습하는 데 유용한 15가지 신경망을 만들어봅니다. 이 책으로 딥러닝 기초를 다지고 나서 최신 논문을 참고하면 실무에서 만나는 데이터에 알맞은 문제 풀이 전략을 고안할 수 있게 될 겁니다.
★ 이 책으로 파이토치 딥러닝을 익혀야 하는 이유
이 책은 독자 여러분이 파이토치 딥러닝을 효과적으로 배울 수 있게 파이토치 딥러닝 개념, 파이 토치 코딩, 실전 노하우에 집중합니다. 또한 학습 마무리 단계에 자연스럽게 복습되게 만들었습니다.
딥러닝 개념은 수학과 떼려야 뗄 수 없습니다. 하지만 너무 어려운 수식을 사용하면 이해하는 데 오히려 방해됩니다. 그래서 고등학교 수학 지식만 있다면 누구나 쉽게 이해할 수 있는 수식에 그림을 곁들여 단계적으로 개념을 설명했습니다.
파이토치는 클래스 기반으로 신경망, 학습 순서를 정의하고 학습합니다. 그래서 파이토치에서 권고하는 코딩 구조를 먼저 알려드리고 나서 본격적인 학습에 들어갑니다. 기초 신경망인 CNN부터 스스로 창작하는 GAN까지 총 16가지 신경망을 만들 때는 먼저 신경망의 〈기본 블록〉과 〈학습 루프〉를 그림으로 제시합니다. 제시된 〈기본 블록〉과 〈학습 루프〉를 눈으로 보고 코드로 구현하면 되기 때문에 이해하기가 훨씬 쉽니다. 참고로 독자의 시간을 아낄 수 있도록 소스 코드뿐만 아니라 학습이 끝난 모델 파일 또한 코랩으로 제공합니다. 따라서 고성능 컴퓨터가 없어도 예제를 체험할 수 있습니다.
신경망을 만들 때는 〈기본 블록〉을 적당한 반복을 하는데 ‘적당한’은 주로 협업을 진행해본 사람만 아는 노하우입니다. 적당한 손실 함수를 선택하거나, 적당한 평가 방법을 고를 때도 마찬가지입니다. 이 책은 그저 코드를 따라 치는 게 아니라 어떤 관점에서 문제를 풀어나가야 하는지 실전 경험을 바탕으로 설명해 여러분이 실전에서 ‘적당한’을 알맞게 선택할 수 있게 돕습니다.
학습 마무리에서는 전체 과정을 되짚어 보여주고, 스스로 익힌 바를 확인할 수 있게 연습 문제를 제공합니다. 이런 식으로 16가지 신경망을 모두 학습하고 나면, 딥러닝 알고리즘에 대한 이해뿐만 아니라, 파이토치 코딩에 대한 지식과 실무 노하우도 얻을 수 있게 될 겁니다. 학습에 도움이 되길 빕니다.
★ 왜 파이토치 프레임워크를 사용해야 할까요?
paperswithcode.com에 따르면 2022년 3월 현재 파이토치는 전 세계 논문에서 가장 많이 사용하는 딥러닝 프레임워크입니다. 파이토치는 페이스북, 마이크로소프트 같은 대형 회사부터 대학 연구실까지 많은 사람이 이용합니다. 파이토치 코드는 파이썬 본래의 코드와 유사해 직관적이라는 장점이 있습니다.
★ 타깃 독자
__파이썬을 아는 딥러닝 입문자
__딥러닝을 더 잘 활용하고 싶은 현업 데이터 엔지니어
__딥러닝 전공 학과 학생
책의 구성
★ 이 책의 구성
이 책은 학습 흐름을 끊지 않기 위해 개발 환경부터 설명한 후, 다음과 같이 총 5단계에 걸쳐 딥러닝 알고리즘을 개발하는 방법을 공략해나갑니다.
_1단계 : 딥러닝 입문하기
인공지능의 배경지식과 신경망을 알아보고 나서 간단한 신경망을 만듭니다. 이미 배경지식을 아는 분은 1장과 2장을 건너뛰어도 되지만, 가능하면 다시 돌아보는 기회로 삼기 바랍니다.
_2단계 : 입문용 신경망 3총사 CNN, ResNet, RNN
딥러닝에서 가장 흔하게 사용되는 알고리즘 세 가지를 소개합니다. 먼저 이미지를 처리하는 가장 기본적인 신경망인 VGG(CNN 모델)를 다룹니다. 거기서 조금 더 발전된 형태인 ResNet은 최근에도 사용될 정도로 성능이 좋습니다. 시간의 흐름에 따라 순서가 있는 데이터를 시계열 데이터라고 부르는데, 시계열 데이터를 다루는 기본 알고리즘인 RNN을 마지막으로 알아보겠습니다.
_3단계 : 딥러닝으로 이미지 처리하기
분류보다 더 복잡한 이미지 처리 기술인 이미지 세그멘테이션, 이미지 디노이징, 자동 채색을 알아보겠습니다. U-Net, 오토인코더, Let there be color를 이용합니다. 딥러닝을 이용한 이미지 처리는 이미지로부터 얻은 특징을 어떻게 사용하느냐가 매우 중요합니다. 이미지의 특징을 처리하는 방법도 배워봅시다.
_4단계 : 딥러닝으로 텍스트 처리하기
실전에서 등장하는 시계열 알고리즘을 사용해 조금 더 복잡한 텍스트 처리를 배워보겠습니다. 10장에서는 RNN의 발전형인 LSTM을 이용해 ‘글을 쓰는 인공지능’을, 11장에서는 어텐션 기법을 이용해 기계 번역기를 만듭니다. 12장에서는 이미지로부터 텍스트를 추출하는 알고리즘을 알아봅니다. LSTM과 어텐션은 텍스트 처리에서 빠지지 않고 등장하는 개념입니다.
_5단계 : GAN으로 생성 모델 만들기
그림이나 음악을 만드는 등을 입력으로 주고 새로운 결과물을 출력하는 모델을 생성 모델이라고 부르는데, 가장 기본은 적대적 생성 신경망(GAN)입니다. 사람 얼굴을 생성하는 GAN, 화질을 개선하는 GAN, 데이터 없이 학습하는 GAN을 만들겠습니다.
_부록
본문에서 다루지 못한 GPT, BERT, ViT
를 알아보고, 오차 역전파를 이용해 실제로 가중치가 업데이트되는 과정을 알아봅니다. 끝으로 로컬에 실습 환경을 구축하는 방법을 알아봅니다.
★ 이해를 돕는 이 책만의 특징 미리보기
추천사
“딥러닝을 기초를 지났고 파이토치로 다양한 문제를 풀고 싶은 사람들에게 추천합니다. 깔끔한 코드와 수많은 그림을 곁들인 설명 덕분에 왠만한 문제는 풀 수 있겠다라는 자신감이 생겼습니다.”
Mo Kweon | 구글 시니어 소프트웨어 엔지니어
“딥러닝의 기본 내용을 알고 있는 초중급자가 더 높은 수준의 개념을 파이토치로 구현하며 이해하고 싶을 때 유용합니다. CNN에서 GAN까지 다양한 신경망을 다루면서 핵심 요약과 정리, 실습을 동시에 제공하고 있어서 실무자와 학생 모두에게 도움되는 책입니다.”
이호상 | SK텔레콤 매니저
“파이토치는 딥러닝 프레임워크의 양대 산맥이지만, 국내에서는 텐서플로에 비해 인기가 덜합니다. 하지만 이 책 덕분에 파이토치를 배우는 사람이 국내에서도 늘어날 것 같습니다. 입문자도 알기 쉽게 코드와 설명을 잘 구성했으며, 현업자에게도 유용한 이미지 분류부터 텍스트 생성과 번역, GAN을 활용한 이미지 생성까지 현재 각광받는 AI 기술도 알려줍니다.”
정현준 | 매드업 CTO
“다른 딥러닝 입문 서적을 읽어보았지만 어떻게 활용해야 하는지 감이 잡히지 않은 분께 전체적인 개요와 구체적인 활용 방법을 제공하는 책입니다. 이 책을 다 읽을 때 쯤이면 딥러닝이 사용되는 여러 분야에 대한 기본 지식을 두루 이해할 수 있을 거예요.”
홍승환 | 스캐터랩 Machine Learning Engineer
“이 책을 베타리딩하면서 파이토치를 처음 사용해보았습니다. 몇 년 전 OCR 프로젝트를 수행할 당시에는 텐서플로를 사용했는데 그때 이 책을 만났다면 파이토치를 활용해 더 직관적으로 딥러닝 문제를 해결할 수 있었을 텐데 하는 생각이 들었습니다. 무엇보다 파이토치를 활용해서 다양한 문제를 해결하는 과정을 접할 수 있어 좋습니다. 인공지능을 처음 접하는 분이 보기엔 쉽지 않을 수 있지만, 관련 내용을 찾아가며 같이 공부한다면 소중한 경험을 가져갈 수 있을 거라고 생각합니다.”
황후순 | 아일리스프런티어(주) 프로그래머
“수많은 개발자, 통계학자, 전문가가 만든 라이브러리로 쉽게 딥러닝을 맛볼 수 있다는 것은 엄청난 혜택입니다. 그중에서도 파이토치는 사용 편의성과 강력한 기능으로 전 세계에서 가장 사랑받는 딥러닝 프레임워크입니다. 이 책에서 다루는 16가지 파이토치를 활용한 예제를 따라 하면 딥러닝에 대한 흥미와 이해를 확실히 높일 수 있을 겁니다.”
김수정 | 웹 프로그래머
목차
00장. 실습 환경 안내
__0.1 코랩 시작하기
__0.2 코랩 기초 사용 방법
__0.3 예제 코드 노트 복사하기
__0.4 실습에 사용할 데이터셋 준비하기
[1단계] 딥러닝 입문하기
01장. 딥러닝 한눈에 살펴보기
__1.1 머신러닝과 딥러닝
__1.2 지도 학습, 비지도 학습, 강화 학습
__1.3 왜 딥러닝에 파이토치인가?
__1.4 파이토치 권고 코딩 스타일
__1.5 딥러닝 문제 해결 프로세스
__1.6 딥러닝 문제 해결 체크리스트
__1.7 딥러닝에 필요한 최소한의 통계 개념
__1.8 직관적 분석에 유용한 시각화
__학습 마무리
__연습문제
02장. 인공 신경망 ANN 이해하기
__2.1 퍼셉트론
__2.2 다층 신경망으로 단층 신경망 한계 극복하기
__2.3 인공 신경망의 학습 확인해보기
__2.4 손실 함수로 올바른 가중치 찾기
__2.5 경사 하강법과 오차 역전파로 최적의 값 찾기
__2.6 활성화 함수로 기울기 소실 예방하기
__2.7 신경망 성능 비교하기
__학습 마무리
__연습문제
03장. 간단한 신경망 만들기
__3.1 사인 함수 예측하기
__3.2 보스턴 집값 예측하기 : 회귀 분석
__3.3 손글씨 분류하기 : 다중분류
__학습 마무리
__연습문제
[2단계] 입문용 신경망 3총사 CNN, ResNet, RNN
04장. 사진 분류하기 : CNN과 VGG
__4.1 이해하기 : CNN
__4.2 데이터 전처리하기
__4.3 CNN으로 이미지 분류하기
__4.4 전이 학습 모델 VGG로 분류하기
__학습 마무리
__연습문제
05장. 유행 따라가기 : ResNet 만들기
__5.1 이해하기 : ResNet
__5.2 이해하기 : 배치 정규화
__5.3 기본 블록 정의하기
__5.4 ResNet 모델 정의하기
__5.5 모델 학습하기
__5.6 모델 성능 평가하기
__학습 마무리
__연습문제
06장. 넷플릭스 주가 예측하기 : RNN으로 첫 시계열 학습
__6.1 이해하기 : RNN
__6.2 데이터 살펴보기
__6.3 학습용 데이터 만들기
__6.4 RNN 모델 정의하기
__6.5 모델 학습하기
__6.6 모델 성능 평가하기
__학습 마무리
__연습문제
[3단계] 딥러닝으로 이미지 처리하기
07장. 이미지 세그멘테이션 : U-Net
__7.1 이해하기 : U-Net
__7.2 데이터 살펴보기
__7.3 학습용 데이터 만들기
__7.4 U-Net 모델 정의하기
__7.5 모델 학습하기
__7.6 모델 성능 평가하기
__학습 마무리
__연습문제
08장. 이미지 노이즈 제거 : 오토인코더
__8.1 이해하기 : 이미지 노이즈
__8.2 이해하기 : 오토인코더
__8.3 데이터 살펴보기
__8.4 학습용 데이터 만들기
__8.5 인코더 모델 정의하기
__8.6 디코더 모델 정의하기
__8.7 CAE 모델 정의하기
__8.8 모델 학습하기
__8.9 모델 성능 평가하기
__학습 마무리
__연습문제
09장. 자동 채색 : Let there be color 모델
__9.1 이해하기 : Let there be color 모델 구조
__9.2 데이터 살펴보기
__9.3 학습용 데이터셋 만들기
__9.4 모델 정의하기 : 로 레벨 특징 추출기
__9.5 모델 정의하기 : 미들 레벨 특징 추출기
__9.6 모델 정의하기 : 글로벌 레벨 특징 추출기
__9.7 모델 정의하기 : 컬러라이제이션 신경망
__9.8 모델 정의하기 : 전체 모델
__9.9 모델 학습하기
__9.10 모델 성능 평가하기
__학습 마무리
__연습문제
[4단계] 딥러닝으로 텍스트 처리하기
10장. 글쓰는 인공지능 : LSTM 텍스트 생성
__10.1 이해하기 : 텍스트 생성
__10.2 이해하기 : LSTM
__10.3 데이터 살펴보기
__10.4 학습용 데이터 만들기
__10.5 LSTM 모델 정의하기
__10.6 학습하기
__10.7 모델 성능 평가하기
__학습 마무리
__연습문제
11장. 직접 만드는 번역기 : 어텐션 기계 번역
__11.1 이해하기 : Seq2Seq 모델
__11.2 이해하기 : 어텐션 메커니즘
__11.3 이해하기 : GRU
__11.4 데이터 살펴보기
__11.5 학습용 데이터 만들기
__11.6 인코더 정의하기
__11.7 디코더 정의하기
__11.8 어텐션 기계 번역기 학습하기
__11.9 모델 성능 평가하기
__학습 마무리
__연습문제
12장. 캡챠 텍스트 인식 : CRNN+GRU
__12.1 이해하기 : CRNN
__12.2 이해하기 : CTC 손실
__12.3 데이터 살펴보기
__12.4 학습용 데이터셋 만들기
__12.5 CRNN 모델 정의하기 : CNN
__12.6 CRNN 모델 정의하기 : 전체 모델
__12.7 모델 학습하기
__12.8 모델 성능 평가하기
__학습 마무리
__연습문제
[5단계] GAN으로 생성 모델 만들기
13장. 사람 얼굴을 생성하는 GAN
__13.1 이해하기 : GAN
__13.2 이해하기 : 특징 공간
__13.3 데이터 살펴보기
__13.4 학습용 데이터셋 만들기
__13.5 GAN 생성자 정의하기
__13.6 GAN 감별자 정의하기
__13.7 가중치 초기화하기
__13.8 모델 학습하기
__13.9 모델 성능 평가하기
__학습 마무리
__연습문제
14장. 화질을 개선하는 GAN
__14.1 이해하기 : SRGAN
__14.2 학습용 데이터셋 만들기
__14.3 SRGAN 생성자 정의하기
__14.4 SRGAN 감별자 정의하기
__14.5 CNN 특징 추출기 정의하기
__14.6 모델 학습하기
__14.7 모델 성능 평가하기
__학습 마무리
__연습문제
15장. 데이터 없이 학습하는 GAN
__15.1 이해하기 : 모델 경량화
__15.2 이해하기 : GAN을 이용한 경량화
__15.3 교사 모델 학습하기
__15.4 GAN 생성자 정의하기
__15.5 학생 모델과 생성자 학습하기
__15.6 모델 성능 평가하기
__학습 마무리
__연습문제
부록 A. 트랜스포머 · GPT · BERT · ViT 알아보기
부록 B. 오차 역전파에서 가중치 업데이트 과정
부록 C. 윈도우 · 맥OS · 우분투에 개발 환경 구축하기
CONTENTS
관련 콘텐츠들
[무료강의] 《파이썬 데이터 분석가 되기》 출간기념 업로드 완료!
★ 파이썬으로 데이터 분석을 하고 싶다면? 파이썬 입문 그다음에 꼭 보세요! ‘패스트캠퍼스’, ‘메가스터디’ 셀레나 쌤과 함께 실패 없이 완주하세요!
Read More[ChatGPT] 챗GPT와 함께 앱스 스크립트 조건부 서식 만들기 | 구글 시트, 스프레드시트
보통 스프레드시트의 조건부 서식 기능으로 처리합니다. 조건부 서식은 앱스 스크립트에서도 할 수 있습니다. 한 번에 여러가지 조건부 서식을 적용하고 싶을 때 유용하게 쓰일 겁니다. 교통사고 시트로 돌아가 이 작업을 다시 해봅시다.
Read More[ChatGPT] 앱스 스크립트로 챗GPT API 사용하기
챗GPT는 손쉽게 활용할 수 있는 API를 제공합니다. 그래서 앱스 스크립트 공부의 보조 도구로 쓸 수 있을 뿐만 아니라 바로 앱스 스크립트에 붙여서 사용할 수도 있습니다. 그럼 API 인증키 발급부터 앱스 스크립트에서 챗GPT를 활용하는 방법을 알아보겠습니다.
Read More[ChatGPT] 챗GPT로 문자 자동 응답하기 | 업무 자동화, AI 업무 활용
챗GPT를 이용해 문의에 대한 답변을 자동으로 생성하는 실습을 해보겠습니다. 챗GPT에게 어떤 식으로 답변을 생성할 것인지 미리 가이드라인을 만들어주고, 챗GPT는 가이드라인에 따라 답변을 생성하게 됩니다.
Read MoreSUBSCRIPTION
책 이야기를 들려드립니다.
책이 만들어지는 집필, 편집, 베타리딩 등의 출간 소식뿐 아니라,
관련 주제의 책 소식, 저자와의 만남, 강의, 오탈자 등 책 관련 소식을 전해드립니다.
이홍규 –
“골든래빗 출판사로부터 책을 제공받아 작성했습니다.”
현재 대표적인 딥러닝 프레임워크는 텐서플로,케라스,파이토치가 있는데 논문에서 가장 많이 사용되는 프레임워크가 바로 파이토치라고 합니다.
그 이유는 파이토치가 파이썬 본래의 코드와 유사해 직관적이기 때문에 사용하기가 편하다고 하는데요~
저는 파이토치가 무엇인지 궁금해서 이 책을 읽어 보게 되었습니다.
이 책의 구성은 다음과 같이 구성되어 있습니다.
1단계 : 딥러닝 입문하기 편에서는 딥러닝에 처음 입문하는 분들을 위해서 딥러닝이 무엇인지 개념을 살펴 보고 인공신경망인 퍼셉트론을 이용해서 다층신경망을 만드는 개념을 상세하게 살펴 보고 있습니다. 그리고 이러한 개념을 가지고 사인함수 예측, 보스턴집값예측,손글씨 분류등을 통해서 신경망의 동작뿐 아니라 실제로 오차를 계산하고 직접 역전파해 보면서 개념을 깨닫게 됩니다.
2단계 : 입문용 신경망 3총사 CNN,ResNet,RNN 에서는 딥러닝에서 가장 흔하게 사용되는 이미지처리하는 CNN,그것을 조금 더 발전시킨 ResNet, 시간의 흐름에 따라 순서가 있는 시계열 데이터를 다루는 RNN 까지 다루고 있으며 그러한 알고리즘을 이용하여 사진분류,유행따라가기,넷플릭스 주가예측하는 모델을 직접 만들어 봅니다.
3단계 : 딥러닝으로 이미지 처리하기 에서는 분류보다 더 복잡한 이비지 처리 기술인 이미지 세그멘테이션,이미지 디노이징, 자동채색을 통하여 이미지로부터 얻은 특징을 어떻게 사용하는지 처리하는 방법을 배우게 됩니다.
4단계 : 딥러닝으로 텍스트 처리하기 에서는 시계열 알고리즘을 사용해 RNN의 발전형인 LSTM을 이용해 글을 쓰는 인공지능, 어텐션 기법을 이용하여 기계번역, 이미지에서 텍스트를 추출하는 알고리즘을 구현해 봅니다.
5단계 : GAN으로 생성 모델 만들기 에서는 그림이나 음악을 입력으로 주고 새로운 결과물을 추출하는 GAN(적대적 생성신경망)에 대해 알아 보고 사람얼굴을 생성하는 GAN,화질을 개선하는 GAN, 데이터 없이 학습하는 GAN 을 만들어 봅니다.
서평
이 책은 코랩을 기반으로 한 실습 코드를 제공하고 있기 때문에 한 줄 한 줄 따라서 작성해 보면서 원리를 깨닫도록 설계 되어 있습니다.
(제 개인적인 입장으로 파이썬 프로그램을 설치 하지 않고 코랩을 사용해서 실습을 진행하는 책을 선호 합니다. 파이썬 프로그램을 설치하게 되면 버젼이나 기타 환경에 따라서 실습 진행시 매끄럽게 진행 되지 않아서 한페이지 한페이지 진행 할 때마다 고생을 했던 기억 때문에 이렇게 동일한 환경을 제공하고 있는 코랩에서는 실습이 매끄러워서 개념 이해 할때 너무 편하거든요.)
특히나 이 책의 장점은 실습 코드에 대해서 중요한 내용을 상세하게 설명해 주고 있고 또한 파이토치를 사용하면서 새로 나온 명령어는 별도로 빼서 자세하게 설명을 해 주고 있다는 점이 정말 좋았습니다.
코랩에서 실행 가능한 소스코드
각각의 코드에 대해 초보자도 이해하기 쉽게 상세하게 설명을 하고 있다.
새로 등장한 함수에 대한 설명으로 파이토치를 이해하기 쉽다.
또하나의 장점은 설명을 너무 쉽게 설명을 해 주고 있다는 점입니다.
예를 들어 ResNet 의 구조를 인터넷과 책에서 설명하는 내용을 살펴 보면 다음과 같습니다.
왼쪽은 인터넷에서 ResNet을 설명하는 구조, 오른쪽은 책에서 설명하는 구조
왼쪽은 인터넷에서 설명하는 ResNet의 구조인데 너무 복잡해서 이해하기 쉽지 않은데 책에서는 ResNet의 구조를 간결하게 설명하고 어떤 원리인지 자세하게 설명 되어 있어서 쉽게 이해 할 수 있게 구성이 되어 있습니다.
위의 이미지는 전자책으로 보면서 찍은 사진이라서 화질이 너무 안 좋게 나왔는데요~
새로운 함수가 나오면 사용법이나 어떤 기능을 사용하고 있는지를 인터넷을 검색하면서 배우는 수고를 할 필요가 없이 바로 바로 이해 할 수 있으니 파이토치 입문자가 쉽게 다가 갈 수 있는 책인것 같습니다.
그리고 사진분류,넷플릭스 주가 예측,이미지 노이즈 제거,글쓰는 인공지능, 사람얼굴을 만드는 프로젝트를 직접 실습하면서 지루할 틈이 없이 흥미 진진하게 따라 해 볼 수 있었습니다.
이 책을 읽으면서 파이토치의 사용법 뿐만 아니라 딥러닝 알고리즘에 대해서도 조금 더 깊은 이해를 할 수가 있었습니다.
한상곤 –
텐초의 파이토치 딥러닝 특강 – CNN부터 GAN까지 15가지 신경망 예제 + 실무 노하우로 익히는 문제풀이
골든래빗 출판사로부터 전자책을 제공받아 작성했습니다.
TL;DR
완벽하게 작동하는 예제, Colab 활용도가 높음
출판사에서 제공하는 예제가 에러 없이 작동함
Colab 사용법을 친절하게 소개하고 있기 때문에 어려움 없이 실행 가능
다양한 시각자료와 간결한 문장, PyTorch 초급자에게 적극 권장
모델과 코드에 관한 부분을 시각적으로 잘 표현하고 있음
초급자의 경우 코드의 흐름을 이해할 수 있을만큼 주석이 잘 작성되어 있음
딥러닝/머신러닝에 대한 이해도가 없다면 이론적인 교재를 곁들여서 읽기를 권함
(분량을 고려해보면) 이론적인 부분에 대한 아쉬움은 별도의 교재를 참고하길 권함
책표지
이젠, 어쩔 수 없다.
주변 연구자들이 PyTorch로 넘어갈 때, 회사에서 업무를 하느라 TensorFlow를 계속해서 활용하고 있었다. 회사 일을 하면서 논문을 작성하려고 논문을 읽으면서 피부로 느껴지는 변화가 있었다. 많은 연구자, 주요 학회 및 학술지에 투고되는 논문들이 PyTorch를 활용하고 있다는 점이다. 몇몇 모델은 TensorFlow에서 작동하지 않는 경우도 있어서 약간 놀라기도 했다. 주변에서 PyTorch를 배워야 한다고 적극적으로 권했고, 나도 ‘머릿속에서’ 생각은 했지만 새로운 프레임워크를 배운다는 게 여간 귀찮지 않았다.
졸업 준비를 위해서 논문을 작성하는 과정에서 PyTorch를 완전히 배제하기 쉽지 않아서 차일피일 미루고 있었는데, 이번 기회(도서 리뷰)를 틈타서 한 달간 PyTorch를 배워보는 기회를 가질 수 있었다(역시 공부란 눈앞에 Task가 놓여야…).
저자분의 간결한 문장, 시각적 자료의 효과적인 배치와 활용, 그리고 수준 높은 편집 덕분에 책을 읽고 실습을 진행하는 동안 어려움이 없었다. 그리고 책을 리디북스를 통해서 읽었기 때문에 듀얼 모니터 환경에서 실습을 손쉽게 진행할 수 있다는 점도 좋았다. 아이패드 앱을 활용해서 평소에는 이론적인 것을 읽고, 실습은 리디북스 PC 앱을 활용해서 진행하였다.
예제 코드가 완벽하게 작동!
출판사에서 제공하는 예제는 Colab으로 제공된다. Colab에서 모든 예제가 잘 작동하는 것을 확인하였다. 예제에 문제가 없다는 것을 확인하고 PC를 활용해서 실습을 진행할 수 있도록 환경을 구성하였다. 책 말미에 GPU를 기반으로 한 실습 환경을 구성하는 방법도 소개하고 있어서 참고하였다.
Colab도 충분히 좋은 플랫폼이긴 하지만, 될 수 있으면 코드를 직접 작성하고 싶었다. 그리고 PyTorch 환경을 한 번쯤 구성해보고 싶었다. 평소의 개발 환경을 고려했다. 그리고 업무 및 강의 시간 중에서 남는 시간에 코드를 작성하였다. 리디북스 PC 앱이 많은 도움이 되었다. 출판사에서 제공하는 데이터를 활용했고, 코드를 작성해서 직접 실행하였다. 이미지를 다루는 모델을 중심으로 실습을 진행하였다. 최소한 내가 직접 코드를 작성해서 실습한 부분은 문제없이 실행되었다.
개발은 로컬에서
PyTorch 초급자에게 적극 권장!
책의 수준은 CS전공 기준으로 학부 3~4학년이 충분히 실습해볼 수 있을만큼 잘 구성되어 있었다. CS 관련 학부에서 딥러닝 수업을 하게 된다면, 주교재로 채택해도 무난하다. 책 곳곳에 다양한 시각 자료를 배치하고 있어서 내용을 효율적으로 이해할 수 있다. 이미지가 해당 분야의 대표적인 논문에서 자주 다루고 있는 형태로 작성되어 있다. 저자분이 문장을 매우 간결하게 작성해주셔서 시각 자료와 곁들여서 읽으면 관련 분야의 기초적인 이론은 충분히 이해할 수 있다.
시각적 자료
코드를 작성하는 절차나 방법도 시각 자료를 적절하게 배치하고 있다. 코드를 작성할 때 어떤 부분을 작성하고 있는지 확인할 수 있도록 배려하고 있다는 점도 좋았다. 코드가 길어지면 작성하는 코드의 역할을 잊기 마련인데, 이 책은 코드 작성에 대해 모호함이 많이 줄어서 좋았다.
모델의 흐름을 설명
코드도 필요한 부분에 주석을 통해서 한 번 더 설명하고 있다. 코드를 직접 작성 할 때 주석도 많은 도움이 되었다. 그리고 Python의 특징인 들여쓰기 및 줄 바꿈 등과 같은 가독성 관련한 부분의 편집이 잘 되어있다. Python의 경우 코드가 길어지면 들여쓰기 때문에 곤란한 점이 간혹 있는데, 해당 책은 그런 불편함은 없었다.
코드도 알뜰하게 작성
이론적인 부분의 아쉬움은 다른 책을 참고하자.
«텐초의 파이토치 딥러닝 특강»에 등장하는 대부분의 모델은 이미 알고 있었다. 딥러닝을 학교에서 수업하기도 하였고, 별도로 친구들과 해당 논문을 스터디도 진행했기 때문에 별다른 어려움이 없이 진행할 수 있었다. 기존에 Tensorflow를 활용하고 있어서 큰 어려움 없이 책을 읽고 실습할 수 있었다. 하지만 딥러닝에 관한 이론적인 측면이 필요하시면 다른 교재를 함께 참고하시면 좋을 듯하다.
P.S 이번에도 전자책 덕분에 예제 코드를 한결 수월하게 작성할 수 있었다. 전자책이 어색하신 분들은 종이책을 구매하셔도 좋을 듯 싶다.
이유림 –
???? 골든래빗 출판사로부터 책을 제공받아 작성했습니다.
What I want to learn
—
텐서플로우 1.0을 사용하다가 파이토치로 메인 프레임워크를 바꾸면서 가장 중요했던건 실무에 써먹을 수 있을 정도의 실력으로 업그레이드하는 것이었다. 기존에 나와있는 책들도 물론 좋았지만 좀 더 실무에 필요한 노하우들이 필요했고 이 책에서 얻을 수 있을 것이라 생각했다. 최근 이미지 데이터를 다루게 되면서 이미지 데이터를 분류하는 모델과 이미지 데이터의 전처리 단계라 불릴 수 있는 GAN과 같은 모델을 이용한 augmentation 기법을 이 책을 통해 공부하길 원했다.
Review
—
정말 좋았다! CNN, RNN 등과 같이 기초 모델을 어느 정도 알고 있는 사람들에겐 더더욱 좋을 것 같다. 심화된 모델들이 포함되어 있어 혼자서 아직 U-Net이나 attention 기법들을 구현하기 어려운 단계라면 이 책을 통해 공부한다면 어느 정도 가능하지 않을까하는 생각이 든다.
가장 좋았던 포인트는 모델을 이해하기 쉽게 그림으로 표현했다는 것이다. 단계별로 번호를 붙여 해당 번호가 어떤 역할을 하는지도 설명해주고 있어 그림을 보고 먼저 직관적으로 이해하고 글을 읽으면서 디테일을 잡을 수 있었다. 사용하는 핵심 용어를 미리 설명해주고 있어 용어들을 미리 공부 할 수 있다는 점도 좋았다. 나에개 부족했던 건 어떤 데이터셋이 주어졌을때 그 데이터셋을 이용해 커스텀 데이터셋을 만들고 데이터로더를 거쳐서 학습하는 코드 구현이었다. 이 책에선 다양한 데이터셋을 학습용 데이터를 만드는 내용도 함께 담겨져 있어 프로젝트를 진행할 때 참고할 수 있을 것이다.
마지막으로 하나의 챕터가 끝난 후 한번 더 요약해 내용들을 다시 상기시킬 수 있어 이해하지 못한 내용을 확인할 수 있다. 이 책을 전자책으로 가지고 있어 코드를 짤 때 자주 들쳐보며 필요한 내용들을 계속해서 공부할 예정이다. 책을 통해 이해하기 어렵거나 책을 들고다니기 어려운 상황일땐 유튜브를 통해서 강의를 들을 수 있어 어느 곳에서든 공부하기 좋을 듯 하다.
유튜브 강의 url: https://youtube.com/playlist?list=PLgD4RfwkG2A4JqDZGx9YFrQhGz9EL2xO1
양민혁 –
파이토치(Pytorch)는 딥러닝 프레임워크 중 가장 많이 사용되는 편이며, 가장 파이썬(Python) 구조와 유사하여 직관적이라는 장점이 있습니다. 저 또한 텐서플로우(Tensorflow)보다는 파이토치(Pytorch)를 많이 사용하고 있으며, 개발 환경 제약이 있거나 코드 최적화가 필요한 상황이 아닌 경우에는 지금까지 전혀 부족함이 없었습니다.
해당 도서에서는 이론 설명과 예제 실습을 위주로 실제 손에 익혀가며 학습하는 구조로 설명하고 있습니다. 간단한 코드들을 직접 구현해 보며 딥러닝 전반적인 메카니즘 및 코드 작성 패턴을 이해하고 싶으신 분들에게 추천드립니다.
또한, 딥러닝을 잘 모르시는 입문자분들에게는 실제 활용 중심에 맞춘 간략한 코드 구조와 설명으로 쉽게 학습하실 수 있을거라 생각합니다.
나건주 –
책 구매처
http://www.yes24.com/Product/Goods/111102197
일단 저는 딥러닝 학과 수업을 들은 학생의 관점으로 서평을 작성하였습니다.
왜 신청했나요?
대학교 수업을 들으면서 대부분 Tensorflow를 사용하여 강의를 진행하였다.
하지만 현업과 논문에서 Pytorch가 추세라는 이야기를 많이 들어 Pytorch를 공부하고 싶었다.
하지만 대부분 Pytorch 혹은 딥러닝 책은 너무 이론에 치우치거나, Pytorch에 대한 설명이 부족했다.
예를 들면, Dataloader에 관한 내용 설명 없이 Dataloader을 사용한다거나, “init“이나 “forward”에 대한 설명 없이 모델을 만들곤한다. 그래서 다양한 책을 찾아보다가 텐초의 파이토치 딥러닝 특강의 목차 구성이 인상깊어서 신청하게 되었다.
이 책의 구성
이 책은 코랩을 기본 개발환경으로 하고 실습을 진행한다.
그 점이 다른 책과 다른 장점이라고 생각한다. 어떤 책들은 개발환경이 로컬이라 개발환경 설정에 많은 시간을 보내기 때문이다.
또한 학생의 입장에서 그래픽카드를 보유하고 실습을 빠르게 진행하기에는 코랩 환경이 훨씬 합리적이라고 생각한다.
딥러닝 입문하기
딥러닝 입문하기에서는 학교에서 배웠던 기본 개념을 복습이 가능했다는 점과 파이토치의 특징, 그리고 딥러닝 문제 해결에 중요한 프로세스나 시각화를 간단히 다시 살펴볼 수 있었다.
마찬가지로 경사하강법, 오차역전파와 같은 내용들은 앞에 배치하여 딥러닝을 접해봤던 사람의 입장으로써 실습에 더 집중할 수 있다는 생각이 들었다.
본문
이 책은 CNN, RNN부터 ResNet과 같은 알고리즘, 이미지 처리를 위한 U-Net과 오토인코더, 텍스트 처리를 위한 LSTM과 Attention, 그리고 GAN과 같은 내용이 담겨있었다.
이러한 내용들은 딥러닝 입문 단계에서 배우는 퍼셉트론에서 한단계 진화한 내용들로 더 깊은 모델들을 배우기 위한 발판이 될 수 있는 내용들이라 생각되어 좋았다.
부록
좀 더 고난이도의 내용인 트랜스포머, GPT, BERT, VIT에 대한 내용이 나오며 초심자에게 어려울 수 있는 오차 역전파 가중치 업데이트 과정이나 개발 환경 구축을 부록에 뺀 내용은 이 책이 타겟으로 하고있는 독자층이 분명하다는 것을 알수 있었다.
후기
이 책은 분명히 초급자도 상급자도 타겟으로 하는 책이 아니다.
딥러닝에 대해 한번쯤 인터넷에 있는 많은 기초 강의들 중 하나를 들었다면 거기서 부족했던 부분을 채울 수 있는 훌륭한 책이라고 생각된다.
새로 나온 함수들에 대한 설명이 충분하며 각 코드들에 대한 설명이 구체적으로 나와있기 때문에 논리적 설명도 충분하다고 생각된다.
물론 “이 책이 초급자에게 권할 수 있는 책이냐?” 한다면 자신이 딥러닝에 대한 공부 의지가 있다면 교과서로 쓸 수 있을 정도의 내용이라고 생각한다.
공부하면서 코드를 사용한 이유에 대한 궁금증을 잘 해결하지 못하는 학생이라면 이 책을 추천한다.
손계원 –
알파고가 가지고 온 인고지능 쇼크 이후 벌써 6년이라는 시간이 지났습니다. 그 기간동안 다양한 인공지능/딥러닝 관련 서적들이 나왔고, tenosrflow와 pytorch가 인공지능 프레임워크의 두 기둥으로 자리 잡았습니다. 다양한 프레임워크와 네트워크/모델들이 나왔고 그래서 상대적으로 초창기에 나온 책들은 기초적인 MLP, CNN, RNN 정도를 다루고 부록에 GAN, Transformer 등 나름 트랜디하게 뒤에 나온 모델들을 소개하는 정도였습니다. 이번 책은 퍼셉트론을 시작으로 GPT, ViT등 요즘 핫하다고 할 수 있는 대규모 모델 등까지 다루고 있습니다.
다양한 모델을 다루고 있어 각 모델들에 따라 pytorch를 이용해서 모델을 구성하는 법을 배울 수 있습니다. 논문 등을 보면서 논리적인 구조는 이해해도 이해를 코드로 바꾸는 것은 다른 이야기여서 피상적으로 그림같은 구조로 모델의 구조만 이해하고 있을 학습자가 꽤 있을 것입니다. 구조만 이해하고 돌아가는 코드를 깃허브에서 찾아 해매 가중치를 또 찾아 해매 모델을 돌렸을 겁니다.
모델을 torch를 이용해 구성하면서 torch의 사용법과 모델 구성하는 방법 두 마리 토끼를 한번에 잡을 수 있습니다. torch의 사용법 모델 구성법를 같이 다루고 있어서 책을 처음부터 쭉 읽을 수도 있고, 필요한 모델구성에 따라서 발췌하면서 읽을 수 있습니다.
각 모델별로 접근 방식과 문제 정의부 등 학습목표와 학습 순서를 제시하고 새로운 용어를 챕터 시작에서 정리를 해주기 때문에 필요한 내용을 빠르게 확인 할 수 있습니다. 예저 파일도 QR코드, URL, 단축 URL을 제공해주어서 편한 방법으로 예제 코드에 접근 할 수 있습니다. 모델을 각 단계별로 쪼개서 코드로 정의하기 때문에 원하는 부분으로 필요에 따라 다시 보기 좋은 구성입니다.
이승표 –
파이토치를 통해 딥러닝 하는 것에 입문 할 수 있었다. 책에서는 코랩을 사용하고 있지만 개인적으로 Visual Studio 2022, VSCode 환경을 구축하여 코드를 실행해 보았다. 코랩은 아무래도 브레이크 포인트 기능을 지원하지 않으니 중간 과정을 로그를 통해서 밖에 볼 수 없는 것으로 보인다.
이 책은 딥러닝이 처음인 파이썬 개발자 에게는 간단한 예제부터 복잡한 예제까지를 제공하고 있으며 현직 딥러닝 엔지니어에게는 기초 지식 이상의 내용을 제공하고 있다.
입문용 신경망 3총사 CNN, ResNet, RNN 부터 딥러닝으로 이미지 처리하기, 딥러닝으로 텍스트 처리하기, GAN으로 생성 모델 만들기 등의 주제를 다루고 있다.
부록에선 GPT, BERT ViT에 대해서 알아보며, 오차 역전파에서 가중치 업데이트 과정 소개 및 윈도우와 맥OS 그리고 우분투에 개발 환경 구축하는 방법을 소개하고 있다.
개인 적으로 파이토치를 통해 머신러닝, 딥러닝 대회들에 참여해 보며 실무자는 아니지만 실전 경험을 익혀갈 생각을 하고 있다.
이 글은 해당 책을 증정 받아 작성되었습니다.