이론보다는 실전! 몸으로 먼저 익히는 <3분> 딥러닝 시리즈!
새로운 프로그래밍 언어나 라이브러리를 학습하는 가장 좋은 방법은 무엇일까요? <3분> 시리즈는 긴 설명을 읽기보다는 직접 코드를 입력해가면서 익히게 해 쉽고 재미있습니다.
독자 옆에 앉아 빠르게 ‘함께 코딩해가며’ 설명한다는 느낌이 들도록 했습니다. 코드는 설명 흐름에 맞춰 필요한 만큼만 보여주며, 전체 코드를 마지막에 제시합니다. 이론은 큰 그림을 이해할 정도로만 알려주고, 코드도 세세한 부분까지 설명하지는 않습니다.
우선은 큰 그림과 동작하는 코드를 손에 넣은 후, 파이토치 사용법 문서와 저자가 만든 파이토치 깃허브를 참고해 코드를 주물러보며 파이토치와 친해져보세요.
각 절의 마지막에는 주석이 거의 없는 전체 코드가 등장합니다. 주~욱 훑어보며 배운 걸 정리하고 제대로 이해했는지 점검해보기 바랍니다. 각 코드 블록에 해당하는 본문 설명의 위치를 숫자로 연결해뒀으니 특정 코드가 이해되지 않을 때 활용하기 바랍니다.
주요 내용
- 파이토치 시작하기
- 파이토치로 구현하는 ANN
- 패션 아이템을 구분하는 DNN
- 이미지 인식 능력이 탁월한 CNN
- 사람의 지도 없이 학습하는 오토인코더
- 순차적인 데이터를 처리하는 RNN
- 딥러닝을 해킹하는 적대적 공격
- 경쟁하며 학습하는 GAN
- 주어진 환경과 상호작용하며 학습하는 DQN
이 책의 구성
딥러닝과 파이토치를 처음 접하는 사람이 쉽게 이론을 익히고 구현할 수 있도록 구성했습니다. 딥러닝은 언어부터 이미지까지 넓은 분야에 쓰이며 응용 분야에 따라 그 형태가 다양합니다. 따라서 최대한 다양한 학습 방식과 딥러닝 모델을 구현할 수 있도록 예제를 준비했습니다 .
_1장. 딥러닝과 파이토치
딥러닝의 기본 지식을 쌓고 여러 머신러닝 방식을 배웁니다. 파이토치가 무엇이고 왜 필요한지, 텐서플로와 케라스 같은 라이브러리와 무엇이 다른지 알아봅니다.
_2장. 파이토치 시작하기
파이토치 환경 설정과 사용법을 익힙니다. 파이토치 외에도 책을 진행하면서 필요한 도구를 설치합니다.
_3장. 파이토치로 구현하는 ANN
파이토치를 이용하여 가장 기본적인 인공 신경망(artificial neural network)을 구현하고 모델을 저장, 재사용하는 방법을 배웁니다.
_4장. 패션 아이템을 구분하는 DNN
앞서 배운 인공 신경망을 이용하여 Fashion MNIST 데이터셋 안의 패션 아이템을 구분해봅니다.
_5장. 이미지 인식능력이 탁월한 CNN
영상 인식에 탁월한 성능을 자랑하는 CNN(convolutional neural network)을 알아봅니다. 또한 CNN을 더 쌓아 올려 성능을 높인 ResNet에 대해 알아보고 구현합니다.
_6장. 사람의 지도 없이 학습하는 오토인코더
정답이 없는 상태에서 특징을 추출하는 비지도학습을 알아보고 대표적인 비지도학습 모델인 오토인코더(autoencoder)를 이해하고 구현하는 방법을 익힙니다.
_7장. 순차적인 데이터를 처리하는 RNN
문자열, 음성, 시계열 데이터에 높은 성능을 보이는 RNN(recurrent neural network)을 활용하여 영화 리뷰 감정 분석을 해보고 간단한 기계 번역기를 만들어봅니다.
_8장. 딥러닝을 해킹하는 적대적 공격
딥러닝 모델을 의도적으로 헷갈리게 하는 적대적 예제를 알아보고 적대적 예제를 생성하는 방법인 적대적 공격(adversarial attack)을 알아봅니다.
_9장. 경쟁하며 학습하는 GAN
두 모델의 경쟁을 통해 최적화하는 특이한 학습 구조를 가진 GAN(generative adversarial network)에 대해 알아봅니다. GAN은 데이터셋에 존재하지 않는 새로운 이미지를 생성할 수 있습니다. 예제로 Fashion MNIST 데이터셋을 학습하여 새로운 패션 아이템을 만듭니다.
_10장. 주어진 환경과 상호작용하며 성장하는 DQN(deep q-network)을 알아보고 간단한 게임을 마스터하는 인공지능을 구현해봅니다.
추천사
딥러닝 프레임워크는 딥러닝의 발전에 큰 기여를 해왔습니다. 파이토치는 딥러닝 발전에 기여한 프레임워크 중 하나로 처음 세상에 소개된 이후 많은 사람에게 사랑을 받아왔습니다. 최근에는 파이토치로 코드를 구현해서 공개하는 논문 저자도 많아졌습니다. 또한 페이스북에서 2019년 초에 발표한 내용에 따르면 파이토치를 단순히 연구용이 아닌 제품에 사용하는 용도로 개발하고 있다고 합니다.
이 책은 파이토치를 간단한 코드와 다양한 예제를 통해 잘 설명하고 있습니다. 파이토치를 수월하게 다룰 수 있도록 단계별로 파이토치의 기능을 잘 알려줍니다. 딥러닝이 적용되는 분야가 많다 보니 분야마다 프레임워크를 사용하는 방식이 조금씩 다릅니다. 이 책에서는 이미지, 텍스트, 강화학습 분야에서 어떻게 파이토치를 사용하는지 소개합니다. 따라서 각자 공부하거나 연구하는 분야에 파이토치를 더 손쉽게 적용할 수 있도록 도와줍니다. 딥러닝을 학습할 때 적절한 도움이 있다면 더 빠르게 성장할 수 있다고 생각합니다. 이 책이 파이토치와 함께 많은 사람의 학습을 도와서 딥러닝 커뮤니티를 발전시킬 것으로 생각합니다.
_이웅원, 당근마켓 소프트웨어 엔지니어, 『파이썬과 케라스로 배우는 강화학습』 공저자
코딩에 입문하게 된다면 Hello World!, 딥러닝에 입문하게 된다면 MNIST라고는 하지만 입문자에게는 생소한 함수와 문법들 때문에 적응하기 어려웠습니다. 하지만 그 어떤 딥러닝 프레임워크보다 파이써닉하고 쉬운 딥러닝 프레임워크인 파이토치로 인해서 초등학생들도 딥러닝을 할 수 있는 시대가 왔습니다. 이 책에서는 다른 딥러닝 책에서는 잘 다루지 않는 GAN이나 적대적 공격(Adversarial Attack)도 파이토치로 쉽게 다루고 있습니다. 딥러닝은 들어봤지만 아직 모델을 직접 구현해보지 않은 사람이나 딥러닝의 어느 분야에서 공부해야 할지 갈피를 못 잡은 사람에게 추천합니다.
_주찬웅, 네이버 소프트웨어 엔지니어
머신러닝과 딥러닝은 이제 어려운 분야가 아닙니다. 잠깐 반짝하고 사라지는 일시적인 유행이라 볼 수도 없습니다. 이제는 개발자의 필수 교양으로 입지를 다져가고 있습니다. 머지않아 자료구조, 알고리즘과 함께 인공지능에 대한 이해가 개발자의 기초가 될지 모릅니다. 저자는 쉽게 그리고 친절하게 딥러닝의 필수 요소를 설명해줍니다. 마치 동료와 함께 프로젝트를 하며, 짝 프로그래밍하는 느낌으로 가깝게 다가옵니다. 각 장에서 간결한 이론과 흥미로운 예제들은 빠르게 기초를 다지고, 핵심을 이해하고, 실전처럼 기술을 다룰 수 있게 도와줍니다. 딥러닝에 대한 사전 지식이 없더라도 프로그래밍 기초만 있다면 문제없습니다. 파이썬, 파이토치와 풍부한 예제로 누구나 즐겁게 오늘의 요리사가 될 수 있습니다.
_박성순, 아마존 소프트웨어 엔지니어
이 책을 읽는 것은 마치 한편의 코스 요리를 맛보는 것과 같습니다. 처음에는 애피타이저로 간단하게 인공 신경망을 구현해보는 것부터 시작하여 CNN, RNN, GAN과 같은 다양한 메인요리까지 다양한 주제를 맛보게 될 겁니다. 마지막에는 딥러닝 해킹이나 강화학습과 같이 다소 생소할 수 있는 주제까지 접할 수 있는 좋은 기회가 될 겁니다.
_성민석, 홍익대학교 컴퓨터공학과 4학년
대부분의 딥러닝 서적은 텐서플로로 쓰여 있습니다. 최근 들어 파이토치에 관련된 책이 하나둘씩 나오는 가운데 이 책을 알게 됐습니다. 텐서는 정적 그래프로 시작하면 수정할 수 없습니다. 파이토치는 동적 계산 그래프를 사용해 데이터에 유연한 모델을 만드는 장점이 있습니다. 이 책은 파이토치를 활용해 딥러닝 기초부터 심화까지(CNN, RNN, DQN, GAN, 오토인코더 등) 다룹니다. 저자가 직접 만든 그림 설명은 인공지능 입문자가 이해하는 데 큰 도움이 돼 강력하게 추천합니다.
_오동주, SW 개발자
파이토치를 사용해 처음부터 하나씩 구현해보며 딥러닝을 학습 할 수 있는 책입니다. 오늘보다 내일을 생각하고자 하는 당신에게 이 책은 간결함과 유연함으로 뭉친 파이토치의 매력을 보여줄 겁니다. 단순한 사용법을 넘어 이해를 바탕으로 한 적용을 목표로 하고 있으며, 한 줄 한 줄 읽다 보면 저자가 말하고자 하는 내용을 자연스럽게 이해할 수 있도록 구성되어 있습니다. 특히, 뻔하지 않은 새로운 예제를 활용한 각 장의 실습 코드는 간단한 수정을 거친다면 바로 당신만의 데이터로 훈련시켜 볼 수 있는 딥러닝 네트워크로 사용 할 수 있습니다. 이 책이 소개하는 ‘파이토치다운’ 딥러닝을 지금 시작해보세요.
_임우재, 경희대학교, 융합의과학과 석사과정
이 책을 통해서 파이토치가 이해하기 쉽고 실무에서 사용하기에도 장점이 많은 딥러닝 프레임워크라는 것을 알게 되었습니다. 초보자를 위한 도서임에도 예제가 틀에 박히지 않고 신선하게 구성되어서 좋았네요. 저자들의 정성만큼 가장 쉽고 범용적인 입문서를 표방하는 3분 딥러닝 시리즈 명성을 그대로 이어가기를 기대합니다.
_이요셉, 지나가던 IT인
이 책의 주요 장점은 ‘쉽게 설명해준다’, ‘파이토치를 통하여 쉽게 구현할 수 있다’, ‘다양한 개념을 다룬다’는 점인 것 같습니다. 딥러닝을 시작할 때, 구현해보지 않고 이론만 배우면 흥미가 떨어지고, 개념이 잘 와닿지 않는 경우가 많습니다. 또, 구현할 때 어려운 언어나 라이브러리를 사용하면 진입장벽이 높아집니다. 파이토치는 상대적으로 쉽게 딥러닝을 프로그래밍할 수 있는 라이브러리입니다. 이 책은 단원별로 그림을 이용하여 쉽게 개념을 설명해주고 쉽게 구현해볼 수 있어, 인공지능을 처음 시작하는 사람이 보기 좋은 책입니다. 또, GAN, DQN, RNN, 오토인코더 같은 다양한 내용도 다루고 있습니다. 딥러닝을 계속해서 접하다 보면 이러한 내용들이 자주 등장합니다. 이 책에서는 다소 어려울 수 있는 위의 개념을 굉장히 쉽게 설명해줍니다. 쉽게 다양한 주제를 접할 수 있다는 것도 이 책의 장점이라고 생각합니다.
_임재곤, SK하이닉스, 시스템엔지니어
딥러닝을 연구 개발하면서 텐서플로와 케라스를 주로 사용해왔습니다. 최근 파이토치에 관련된 논문과 자료가 작년부터 급증하는 추세인데요, 더는 파이토치를 편식해서는 안 되겠다는 생각이 들던 차에 이 책을 만났습니다. 책을 열고 하루만에 두 번 읽었습니다. 이 책은 파이토치의 핵심을 쉽게 이해할 수 있도록 쓰인 책입니다. 딥러닝 모델에 대한 쉬운 설명과 신선한 예제들은 학습하는 데 흥미를 일으킵니다. 파이토치는 넘파이와 매우 유사해서 파이썬에 대한 기본적인 지식이 있는 사람은 파이토치로 딥러닝을 좀 더 쉽게 배울 수 있습니다.
_황시연, 데이터 저널리스트
모임이 있을 때마다 사람들이 “토치토치, 파이토치”라고 했다. “토치토치” 그러는데 아기공룡 둘리에 나오는 ‘또치’인가 하며 가만히 있었다. 대화에 낄 수가 없어서 너무나도 아쉬웠다. 이 책을 보면서 고개라도 끄덕일 수 있지 않을까 하고 기대했다. 나처럼 모임에 갈 때 조금 아는 척하며 대화에 끼고 싶은 사람은 이 책을 따라 하면 좋을 듯하다.
_송진영, 데이터분석가, fast.ai.kr 운영진
처음에 인공지능을 파이토치가 아닌 다른 프레임워크로 공부했기 때문에 새로운 프레임워크를 배우는 게 조금 부담스러웠습니다. 하지만 파이토치는 파이써닉하게 직관성과 간결성을 가졌고, 저자들의 친절하고 자세한 설명 덕분에 쉽게 입문할 수 있었습니다. 파이토치라는 도구를 가지고 다양한 분야에서 어떻게 인공지능 모델들이 만들어지는지 배울 수 있는 기쁨을 느껴보기 바랍니다. 인공지능이 데이터를 학습하고 새로운 세계에서 자신의 지능을 활용하듯, 이 책을 읽고 파이토치에 대해 학습한 여러분은 이제 자유자재로 파이토치를 자신의 태스크에 맞게 사용할 수 있을 겁니다.
_이정연, Biomimetics + AI를 꿈꾸는 공학도, AI Robotics KR 1기 운영진
파이토치를 사용하여 동작하는 예제로 딥러닝을 맛보기 좋게 풀어내는 책입니다. 책 제목처럼 부담 없이 코드를 실행해보면서 딥러닝 개념을 손과 몸에 익히고 흥미를 느껴보기 바랍니다.
_조우진, 라인플러스, Data Analytics dev