최신 딥러닝 모델을 학습할 수 있는 <혼자 만들면서 공부하는 딥러닝>이 출간되었습니다!
이 책은 합성곱 신경망(CNN)과 트랜스포머 기반 대규모 언어 모델(LLM)에 초점을 맞추고 있습니다. 그동안 이 분야를 다루었던 책들과 달리 이 책에서는 대표적인 CNN 모델과 LLM 모델을 직접 구축해 보면서 인공지능 분야의 최신 발전을 배우도록 구성되어 있습니다. 백문이 불여일타란 말이 있듯이요! 🙂
직접 모델을 구현해 보면 블랙 박스 같았던 인공지능 모델의 실체를 파악하는데 큰 도움이 되리라 생각합니다. 그리고 여기에서 한 걸음 더 나아가 깊게 공부할 때도 든든한 밑받침이 될거에요. 이를 위해 책에서는 KerasNLP 패키지와 transformers 패키지를 사용합니다. <혼자 공부하는 머신러닝+딥러닝>을 읽은 독자들이 연장선상에서 공부할 수 있도록 케라스를 사용했고, 최신 언어 모델을 다루기 위해 꼭 알아 두어야할 transformers 패키지에 대해서도 배울 수 있습니다. 기본적인 신경망 모델 훈련은 물론 전이 학습에 대해서도 자신감을 얻게 되리라 생각합니다.
이 책에서 만들어 보는 모델은 다음과 같습니다. LeNet, AlexNet, VGGNet, ResNet, GoogLeNet, DenseNet, MobileNet, EfficientNet, BERT, RoBERTa, DistilBERT, GPT-2, Llama-2, Llama-3, Gemma, Gemma-2, BART, T5
학습에 도움이 되도록 <혼자 공부하는 머신러닝+딥러닝>처럼 동영상 강의가 제공됩니다. 이에 그치지 않고 추가 콘텐츠를 계속 만들어 제공할 예정이니 많이 기대해 주세요! 🙂
- 온라인/오프라인 서점에서 판매중입니다. [교보문고] [Yes24] [알라딘] [한빛미디어]
- 444페이지,
28,000원 –> 25,200원, 전자책: –원 - 이 책에 실린 코드는 깃허브에 있습니다.
- 동영상 강의: 유튜브
이 페이지에서 책의 에러타와 라이브러리 버전 변경에 따른 바뀐 점들을 계속 업데이트 하겠습니다. 이 책에 대해 궁금한 점이나 오류가 있으면 이 페이지 맨 아래 ‘Your Inputs’에 자유롭게 글을 써 주세요. 또 제 이메일을 통해서 알려 주셔도 되고 구글 그룹스 머신러닝/딥러닝 도서 Q&A에 글을 올려 주셔도 좋습니다. 또 카카오톡 오픈 채팅(참여코드: flow)에 오셔서 문의해 주셔도 좋습니다.
감사합니다! 🙂
Outputs (aka. errata)
- (p47) 위에서 2번째 줄에 ‘페이스북의 얀 르쿤’을 ‘메타의 얀 르쿤’으로 수정합니다.
- (p105) 아래에서 10번째 줄에 ‘입력의 공간 방향 크기를 줄입니다(예 56 –> 28)’을 ‘입력의 채널 방향 크기를 줄입니다(예 256 –> 64)’로 수정합니다.
- (p146) 코드 블록 아래 2번째 줄에서 ‘위아래와 왼쪽, 오른쪽 부분에’를 ‘아래쪽과 오른쪽 부분에’로 수정합니다.
- (p154) 맨 아래에서 8번째 줄에 “깊이별 분리 합성곱층: 빨간색으로 표시한 깊이별 합성곱이 등장합니다. 이 깊이별 분리 합성곱층 다음에는”을 “깊이별 합성곱층: 빨간색으로 표시한 깊이별 합성곱이 등장합니다. 이 깊이별 합성곱층 다음에는”로 수정합니다.
- (p187) 중간 부분에 있는 피스타치오 그림에서 ‘Kirmizi‘를 ‘키르미지‘로 ‘Siirt‘를 ‘시이리트‘로 수정합니다.
- (p191) 위에서 12번째 줄에서 ‘마지막 역 잔차 블록의 출력 크기는 (7, 7, 320)이지만’을 ‘마지막 합성곱 층의 출력 크기는 (7, 7, 1280)이지만’로 수정합니다.
- (p209) 아래에서 2번째 줄에서 ‘인코더-디코더 모델이 등장했습니다.’ 문장 끝에 다음 주석을 추가합니다. ‘Ashish Vaswani 등, Attention Is All You Need(2017)‘
- (p159) 페이지 중간의 하드시그모이드 그래프와 시그모이드 그래프에서 x=-3까지 그래프가 왼쪽으로 늘려져야 합니다(M**m 님). 예를 들면, 다음과 같습니다.

9. (p247) datasets 라이브러리 4.0에서 trust_remote_code 매개변수가 삭제되었고 더이상 사용자 정의 코드를 허락하지 않습니다. 따라서 “e9t/nsmc” 저장소에 있는 데이터를 로드할 수 없습니다. 저장소 소유자가 이를 해결하기 전까지 대신 “Blpeng/nsmc” 저장소를 사용합니다. 247페이지 맨 아래 코드nsmc = load_dataset("nsmc", trust_remote_code=True)를nsmc = load_dataset("Blpeng/nsmc")로 수정합니다. 그다음 불필요한 열과 누락된 데이터를 삭제하기 위해 아래 코드를 실행합니다.from datasets import DatasetDict
nsmc = nsmc.map(remove_columns=["Unnamed: 0"])
nsmc = DatasetDict({split: nsmc[split].filter(lambda x: x['document'] and x['document'].strip()) for split in nsmc})
10. (p354) 위에서 4번째 줄에 ‘문맥 길이 8,912로’를 ‘문맥 길이 8,192‘로 수정합니다.
11. (p113) ‘잔자 스택 만들기(3)’ 코드 블록에서 4번째 줄 주석에서 ‘두 번째 ~ 네 번째 잔차 블록을 만듭니다’를 ‘두 번째 ~ 네 번째 잔차 스택을 만듭니다’로 정정합니다.(최*준 님)
12. (p64) 05번 설명에서 “입력(컬러 이미지)의 크기를”을 “입력(3차원 텐서로 표현된 흑백 이미지)의 크기를”로 정정합니다.(Lee*k 님)
Your Inputs
