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

한빛출판네트워크

그로킹 딥러닝 : 알기 쉬운 비유와 기초 수학으로 시작하는

한빛미디어

번역서

판매중

  • 저자 : 앤드루 트라스크
  • 번역 : 박상현
  • 출간 : 2019-12-01
  • 페이지 : 388 쪽
  • ISBN : 9791162242285
  • 물류코드 :10228
  • 초급 초중급 중급 중고급 고급
4.7점 (27명)
좋아요 : 12

딥러닝 문턱을 낮춰 드립니다. 수포자도 이해할 수 있는 명쾌하고 친절한 딥러닝 입문서!

 

인공지능은 단순한 유행이 아니라 시대의 요구사항이 되었습니다. 두 번의 AI 겨울을 지나고, 전 세계 바둑 챔피언을 꺽으며 새롭게 등장한 인공지능은 기술을 넘어 예술까지도 넘보며 다양한 산업과 함께 발전하고 있습니다. 실시간으로 빠른 길을 안내하는 지도 앱을 보며 길을 찾고 넷플릭스가 취향에 맞는 영화를 추천하고, 은행 앱이 투자 방향을 알려주는 개인 비서 시대, 영화속 스카이넷은 현실에서 점차 구체화되고 있습니다.

 

지금이 바로 여러분이 이 책을 읽어야 하는 ‘때’입니다. 딥러닝을 이해하는 데 필요한 모든 사전 지식은 이 책 안에 있습니다. 이 책을 위해 여러분이 준비할 것은 아무것도 없습니다. 쉬운 비유와 그림으로 차근차근 책에서 안내하는 대로 앞 장에서 배운 내용을 복기하며 다음 장의 코드를 입력하다 보면 어느새 딥러닝의 기본을 튼튼히 갖추게 될 것입니다.

 

 

누구를 위한 책인가요?

  • 수학은 자신 없지만, 딥러닝을 배우고 싶은 개발자
  • 딥러닝을 연구에 활용하고 싶은 개발자가 아닌 연구자
  • 라이브러리를 활용해 딥러닝을 구현했지만 동작원리가 궁금한 개발자
  • 프로그래밍에 능숙하진 않지만, 딥러닝 또한 배워두고 싶은 학생

 

[도서 특징]


어려운 수식, 고수준 라이브러리, 복잡한 코드 없이도 단계별 학습으로 완성하는 딥러닝 코드

이 책은 신경망이 어떻게 인간을 모사하는지를 먼저 알려줍니다. 복잡한 수식 없이 서너 줄짜리 간단한 코드로 신경망을 구축한 다음, 이 작은 코드 조각을 다음 장에서 활용해 조금 더 그럴 듯한 프로그램으로 점차 발전시켜갑니다. 책 전체에 걸쳐 다음과 같이 물 흐르듯 학습할 수 있습니다.

 

인공지능/딥러닝 용어 설명 → 예측, 비교, 학습 패러다임 실습 → 기초 신경망 구축 → 딥러닝 관련 이론 설명 → 최신 기법 소개 → 딥러닝 프레임워크 구축 

 

그리고 마지막 장은 이 책을 읽은 다음 무엇을 할지 10단계에 거쳐 딥러닝을 처음 접하는 입문자에게 방향을 제시합니다.

 

이 책에서 배우고 구현하는 내용

딥러닝에 필요한 것 / 머신러닝의 기본 개념 / 예측, 비교, 학습 패러다임 / 기초 신경망 구현 / 예측 평가와 에러 식별 / 학습 과정 / 심층 신경망 실습 / 오버피팅 / 드롭아웃 / 경사하강법 / 활성화 함수 / 확률 모델링 / 합성곱 신경망 / 자연어 처리 / 순환 신경망 / 언어 모델링 / 데이터 프라이버시

 

 

그로킹 딥러닝 상세(700px).jpg

 

앤드루 트라스크 저자

앤드루 트라스크

구글 DeepMind 리서치 사이언티스트. 인간의 언어와 연관된 딥러닝을 주로 연구하고 있습니다. Digital Reasoning에서 연구원으로 있으며 세계 최대 인공 신경망을 구축했습니다.

박상현 역자

박상현

반도체 공정 자동화, 통신 장비, 방공무기체계, 사이버 시큐리티, SaaS 분야에서 소프트웨어를 개발해왔으며, 현재 캘리포니아 소재 스타트업에서 소프트웨어 엔지니어로 일하고 있습니다.  

여가 시간에는 집필과 번역, 강의를 합니다.  대표 저서로 『이것이 C#이다(3판)』(2023), 『이것이 자료구조 + 알고리즘이다 with C 언어』(2022) , 『뇌를 자극하는 파이썬』(2016) 등이 있습니다.

 

__추천사 

__옮긴이의 글 

__독자들에게 

__마음을 열고 이 책을 읽기 위한 사전 안내 

__각 장의 내용 미리보기 

__감사의 말 

 

CHAPTER 1 딥러닝을 소개합니다 : 당신이 딥러닝을 공부해야 하는 이유

__딥러닝의 세계에 어서 오세요 

__왜 딥러닝을 공부해야 할까요? 

__딥러닝을 시작하기가 어렵진 않을까요? 

__이 책으로 딥러닝을 공부해야 하는 이유 

__시작에 앞서 필요한 지식과 실습 환경은? 

__파이썬 지식이 조금 필요합니다 

__요약 

 

CHAPTER 2 딥러닝의 기초 개념 : 컴퓨터가 학습하는 원리

__딥러닝이란? 

__머신러닝이란? 

__지도 학습 

__비지도 학습 

__모수적 학습 vs 비모수적 학습 

__모수적 지도 학습 

__모수적 비지도 학습 

__비모수적 학습 

__요약 

 

CHAPTER 3 신경망을 소개합니다 : 순전파

__신경망이 처음으로 할 일 : 예측 

__예측을 수행하는 신경망 

__신경망이 뭔가요? 

__신경망이 하는 일이 궁금합니다 

__복수 입력을 받아 예측하기 

__신경망은 복수 입력을 어떻게 다루나요? 

__복수 입력 코드 : 실행 가능한 완성 버전 코드 

__복수 출력을 하는 예측하기 

__복수 입력을 받아 복수 출력을 하는 예측 

__복수 입력과 복수 출력 : 동작 원리 

__예측에 관한 예측 

__NumPy 빠르게 입문하기 

__요약 

 

CHAPTER 4 딥러닝을 소개합니다 : 경사하강법

__예측하고 비교하고 학습하라 

__비교 

__학습 

__비교 : 여러분의 신경망은 예측을 잘하고 있습니까? 

__오차를 측정하는 이유 

__신경망 학습의 가장 간단한 형태는 어떤 걸까요? 

__온냉 학습 

__온냉 학습의 특징 

__오차를 이용하여 이동 방향과 거리 계산하기 

__경사하강법 1회 반복 

__학습이란 오차를 줄이는 것 

__학습의 여러 단계를 관찰해보세요 

__왜 이게 작동하죠? weight_delta는 뭔가요? 

__한 가지 개념에 집중하기 

__툭 튀어나오는 막대기가 있는 상자 

__미분계수 : 두 번째 이야기 

__이건 몰라도 괜찮습니다 

__미분계수를 학습에 이용하는 방법 

__익숙한가요? 

__경사하강법 망가뜨리기 

__과잉 교정 시각화하기 

__발산 

__알파를 소개합니다 

__코드 속의 알파 

__외우기 

 

CHAPTER 5 복수 가중치 동시에 학습하기 : 경사하강법 일반화 하기

__복수 입력을 받는 경사하강법 

__복수 입력을 받는 경사하강법 이해하기 

__학습의 각 단계를 관찰해보세요 

__가중치 한 개 동결시키기 

__복수 출력을 하는 경사하강법 

__복수 입력을 받아 복수 출력을 하는 경사하강법 

__가중치가 학습하는 것은 무엇일까요? 

__가중치 시각화하기 

__내적(가중합) 시각화하기 

__요약 

 

CHAPTER 6 첫 심층 신경망 만들기 : 역전파를 소개합니다

__신호등 문제 

__데이터 준비하기 

__행렬과 행렬 관계 

__파이썬으로 행렬 만들기 

__신경망 구축하기 

__전체 데이터셋 학습하기 

__전체, 배치, 확률적 경사하강법 

__신경망은 상관관계를 학습합니다 

__상향 압력과 하향 압력 

__경계 조건 : 과적합 

__경계 조건 : 서로 충돌하는 압력 

__간접 상관관계 학습 

__신경망 적층하기 : 복습 

__역전파 : 장거리 오차 귀착법 

__역전파는 왜 효과가 있는 걸까요? 

__선형 vs 비선형 

__아직 신경망이 동작하지 않는 이유 

__간헐적 상관관계의 비밀 

__짧은 휴식 

__첫 심층 신경망 만들기 

__코드로 만나는 역전파 

__역전파의 한살이 

__모두 합치기 

__심층 신경망이 왜 중요한가요? 

 

CHAPTER 7 신경망 사진 찍기 : 머릿속과 종이 위에

__이제 단순하게 만들어야 합니다 

__상관관계 요약 

__미리 너무 복잡해져 버린 시각화 

__단순화한 시각화 

__더 단순하게 

__이 신경망이 예측하는 모습을 관찰해봅시다 

__그림 대신 문자로 시각화하기 

__변수 연결하기 

__모두 나란히 

__시각화 도구의 중요성 

 

CHAPTER 8 신호 학습과 잡음 제거 : 정규화와 배치 소개

__3계층 신경망으로 MNIST 도전하기 

__흠, 쉬운데요 

__암기 vs 일반화 

__신경망에서의 과적합 

__오버피팅의 원인 

__가장 단순한 정규화 : 조기 종료 

__산업 표준 정규화 : 드롭아웃 

__드롭아웃은 왜 효과가 있을까요 : 앙상블 

__코드 속의 드롭아웃 

__배치 경사하강법 

__요약 

 

CHAPTER 9 확률과 비선형성 모델링하기 : 활성화 함수

__활성화 함수란 무엇일까요? 

__표준 은닉 계층 활성화 함수 

__표준 출력 계층 활성화 함수 

__핵심 사안 : 입력에 유사성이 있는 경우 

__softmax 계산하기 

__신경망 계층에 활성화 함수 추가하기 

__delta에 기울기 곱하기 

__출력을 기울기로 변환하기(미분계수) 

__MNIST 신경망 업그레이드하기 

 

CHAPTER 10 가장자리와 모서리를 학습하는 신경망 : CNN 소개

__여러 장소에서 가중치 재사용하기 

__합성곱 계층 

__NumPy로 간단하게 구현하기 

__요약 

 

CHAPTER 11 언어를 이해하는 신경망 : 왕-남자+여자 == ?

__언어를 이해한다는 것은 무엇을 의미할까요? 

__NLP : 자연어 처리 

__지도 NLP 

__IMDB 영화 리뷰 데이터셋 

__입력 데이터 안에서 단어 상관관계 포착하기 

__영화 리뷰 예측하기 

__임베딩 계층 기초 

__출력 해석하기 

__신경 아키텍처 

__단어 임베딩 비교하기 

__뉴런이 가지는 의미는 뭘까요? 

__공란 채우기 

__King - Man + Woman ~= Queen 

__단어 유추 

__요약 

 

CHAPTER 12 셰익스피어처럼 글쓰기 : 순환 계층으로 가변 데이터 다루기

__임의의 길이를 향한 도전 

__비교가 정말 중요할까요? 

__평균 단어 벡터의 놀라운 힘 

__임베딩은 어떻게 정보를 저장할까요? 

__신경망은 임베딩을 어떻게 활용할까요? 

__단어주머니 벡터의 한계 

__단위행렬을 이용해서 단어 임베딩 총합하기 

__정말 아무것도 바꾸지 않는 행렬 

__전이행렬 

__유용한 문장 벡터 생성하는 법 학습하기 

__파이썬으로 순전파 하기 

__어떻게 여기에 역전파를 넣을까요? 

__학습시켜 봅시다! 

__준비하기 

__임의 길이로 순전파 하기 

__임의의 길이로 역전파 하기 

__임의의 길이로 가중치 갱신하기 

__실행과 출력 분석 

__요약 

 

CHAPTER 13 자동 최적화를 소개합니다 : 딥러닝 프레임워크를 만들어봅시다

__딥러닝 프레임워크란? 

__텐서를 소개합니다 

__자동 미분, autograd를 소개합니다 

__간단히 점검해보기 

__여러 번 재사용되는 텐서 

__텐서 재사용을 위한 자동 미분 업그레이드 

__덧셈 역전파는 어떻게 이루어질까요? 

__부정 연산 지원하기 

__몇 가지 함수 더 지원하기 

__자동 미분을 이용해서 신경망 학습하기 

__자동 최적화 추가하기 

__계층 형식 지원하기 

__계층을 포함하는 계층 

__손실 함수 계층 

__프레임워크 배우기 

__비선형 계층 

__임베딩 계층 

__자동 미분에 색인화 추가하기 

__임베딩 계층 다시 생각하기 

__교차 엔트로피 계층 

__순환 신경망 계층 

__요약 

 

CHAPTER 14 셰익스피어처럼 글쓰기 : LSTM

__문자 언어 모델링 

__부분 역전파의 필요성 

__부분 역전파 

__출력의 샘플 

__소멸하는 기울기, 폭발하는 기울기 

__RNN 역전파의 장난감 예제 

__LSTM 셀 

__LSTM 게이트에 관한 몇 가지 직관 

__LSTM 계층 

__문자 언어 모델 업그레이드하기 

__LSTM 문자 언어 모델 학습하기 

__LSTM 문자 언어 모델 튜닝하기 

__요약 

 

CHAPTER 15 보이지 않는 데이터로 하는 딥러닝 : 통합 학습 입문

__딥러닝의 개인정보 문제 

__통합 학습 

__스팸 탐지 학습 

__통합해봅시다 

__통합 학습 해킹하기 

__보안 통합 

__동형 암호화 

__동형 암호화 통합 학습 

__요약 

 

CHAPTER 16 다음 도약을 위한 준비 : 작은 안내서

__축하합니다! 

__1단계 : 파이토치를 배우세요 

__2단계 : 새 딥러닝 수업을 수강하세요 

__3단계 : 수학적으로 접근하는 딥러닝 교과서를 구하세요 

__4단계 : 블로그를 개설해서 딥러닝을 가르치세요 

__5단계 : 트위터 

__6단계 : 학술 논문의 내용을 구현하세요 

__7단계 : GPU를 사용할 수 있는 환경을 확보하세요 

__8단계 : 급여를 받으면서 일하세요 

__9단계 : 오픈소스 프로젝트에 참여하세요 

__10단계 : 지역 커뮤니티를 발전시키세요 

 

__찾아보기

프로그래밍 교육 파트에서 일을 하다보면, '어려운 주제에 대해 쉽게 말하기'라는 것이 얼마나 세심한 노력을 필요로 하는 일인지 새삼 느낀다. 물론, 내 일은 누군가를 교육하는 것보다는 '우리 교육 방식을 선택해야 할 이유'에 대해서 끊임 없이 설득하는 일(마케팅)에 가깝다. 그럼에도 우리 교육을 들으러 오는 사람들의 학습 수준이 천차만별이다보니, 상대방이 쉽게 이해할 수 있도록 말하기는 내 일의 70%를 차지한다고도 할 수 있다.

 

어떻게 어려운 주제에 대해 알기 쉽게 말할 수 있을까?

'어려운 주제에 대해 쉽게 말하기'란 직장을 다닌지 2년이 다 되어가는 지금도 쉽지 않은데, 그 이유 중 하나는 내가 문과생이라는 데에 있다. 나의 생업이 기술과는 직접적 연관성이 떨어지기도 하고, 직장을 다니기 전 학부 시절까지는 기술과 관련된 공부를 몰입하여 해본 적이 없기에, 어려운 것은 당연하다. 때문에 '어려운 학문에 어떻게 하면 조금이라도 더 쉽게 다가갈 수 있는'라는 질문은 나의 주된 관심사이기도 하다.

 

KakaoTalk_20200405_000958943_02.jpg

 

앤드루 트라스크의 <알기 쉬운 비유와 기초 수학으로 시작하는 그로킹 딥러닝>(한빛미디어)의 경우, 이러한 측면에서 나를 놀랍게 한 책 중 하나이다. 최근 딥러닝이라는 분야에 대한 관심이 점차 높아지면서, 딥러닝과 관련된 여러 분야에 대한 공부 니즈도 적지 않은 편이다. 그런데 입문자들이 늘 하는 질문은 단 하나이다. "이 책으로 or 이 수업으로 '나 같은 수준의 입문자도' 공부할 수 있나요?" '나의 수준'이라는 건 언제나 주관적이기 때문에, 이들에게 딱 잘라서 학습의 가능/불가능을 이야기 해주는 건 쉽지 않다. 하지만 딥러닝이라는 분야에 안전하게 진입하기 위해 필요한 모든 지식을 가장 기초부터 준비해주는 건 가능하다. 어떤 분야든 '시작점'이라는 것은 존재하기 때문이다. 앤드루 트라스크의 <그로킹 딥러닝>은 딥러닝을 시작하기 위해 필요한 모든 사전 준비를 알아서 다 해주는 책이라는 점에서, 입문자에게 추천할 수 있는 딥러닝 교재이다. 

 

수학 지식이 없어도 문제 없이 보는 딥러닝 책

<그로킹 딥러닝>은 서문부터 목차, 각각의 chapter가 매우 친절하게 집필되어 있다. 저자는 독자들에게 보내는 서문에서 누구나 이 책을 보고 공부할 수 있도록 딱 2가지를 염두에 둔 채, 책을 집필했다고 하는데 그 내용은 아래와 같다.

1. 간단한 계산을 넘어서는 수학 지식이 없어도 독자가 이 책을 소화할 수 있어야 한다.
2. 내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존하지 않아야 한다.

딥러닝을 본격적으로 이해하기 위해 필요한 사전지식은 다양하지만, <그로킹 딥러닝>은 이 책을 펼쳐보는 모든 이들의 사전지식이 0에 가깝다고 가정한 뒤 내용을 시작한다. 딥러닝을 공부하려면 수학이 기본 바탕이 되어야 하기 때문에, 실제로 구글에 '딥러닝 수학' '딥러닝을 위한 수학' 등을 검색하면 다양한 책과 강의들이 쏟아져 나온다. 하지만 <그로킹 딥러닝>의 경우, 간단한 계산을 할 수 있는 아주 기초적인 수학적 지식만 있다면, 딥러닝에 문제 없이 입문할 수 있다고 말한다. 아직 완독을 해보지 않아서 모르겠지만, 적어도 딥러닝에 대한 기초 개념과 실습을 진행하는 파트들을 살펴봤을 때 이 책을 이해하기 위해서 어려운 수학적 지식이 요구되지는 않는 것 같다.

KakaoTalk_20200405_000958943_05.jpg

 

그림과 도식을 충분히 활용하는 친절한 교과서

또 하나의 특징은 그림이 많다는 점이다. 이는 강의장에서 직접 교수님에게 판서를 통해 지도를 받거나, 영상과 같은 매체를 통해 시각적인 도움을 받을 수 없는 '책'에서 가장 필수적인 부분이기도 하다. 나는 수학이나 과학을 배척하는 사람은 아니지만(...^_^), 컴퓨터공학 쪽을 전공한 사람이 아니기 때문에 늘 '기술 서적'에 대한 막연한 편견 같은 것을 가지고 있었다. 문학이나 인문학 책에 비해, 기술 서적은 왠지 그들만이 아는 언어로 이야기할 것 같고, 아기자기한 일러스트와는 거리가 멀며, 대체로 글을 잘 못 쓰는(이것도 편견이다) 필자들이 딱딱하게 서술했을지도 모른다는 부정적인 이미지가 있다. 

 

그런데 <그로킹 딥러닝>은 내가 누군가에게 딥러닝에 관한 아주 기초적인 개념부터 다루는 교양 강의를 듣는다면 이런 느낌일까 싶을 만큼, 상세하고 유려한 문체로 집필되었다. 특히, 비유를 통해서 딥러닝의 개념들을 설명하는 파트가 자주 등장하는데 인상적이다. 딥러닝, 머신러닝, 비지도/지도학습과 같은 학문 분야에 대해 설명하는 것부터 시작해, 신경망, 경사하강법 등 딥러닝 기술을 단계적으로 공부하기 위한 다양한 개념들을 도식화된 이미지와 친절한 텍스트를 통해 알려주고 있다. 아마 중/고급 수준의 공부를 이미 하고 있는 분들은 너무 쉽다고 느낄 것이다. 

 

딥러닝 프레임워크를 스스로 구축하는 법을 배움

 

딥러닝 프레임워크, 특히 이쪽 파트에서는 다들 배운다는 '파이토치'와 '텐서플로'를 다룬 교재나 강의는 요즘 정말 많은 것 같다. 딥러닝에서 프레임워크는 코드의 복잡성을 비교적 완화하고, 신경망 학습의 생산성을 높이기 위해 활용된다. 개발자들이 개발 생산성을 높이기 위해 프레임워크나 라이브러리를 지속적으로 공부하는 것과 마찬가지로, 딥러닝 프레임워크도 딥러닝 관련 엔지니어나 연구자에게는 꼭 공부해야 할 필수 요소이다. 독특한 것은, 이 책은 딥러닝 프레임워크를 사용하는 법을 다루지는 않는다는 점이다. 그렇다면 무엇을 공부하느냐, 미니 버전의 딥러닝 프레임워크를 직접 구축하는 걸 배운다. 이걸 하는 이유는, 파이토치나 텐서플로를 다루는 법을 학습하는 건 어렵지 않지만, 프레임워크 내부의 아키텍처가 어떻게 이루어지고 동작하는지를 이해하는 것이 장기적으로 딥러닝 활용에 도움이 되기 때문이다. 개인적으로는 정도의 길을 걷기 위해 미리 매를 맞는다는 느낌을 받았다...ㅋㅋㅋㅋ 물고기 낚는 법을 알려주는 거겠지만

 

KakaoTalk_20200405_000958943_06.jpg

 

 

챕터가 총 16개이고, 마지막 챕터는 '다음 도약을 위한 준비'라고 해서, 이 모든 과정을 공부한 학습자에게 앞으로 무엇을 하면 되는지 필자가 상세하게 안내하는 내용이 있다. 이걸 보면서 정말 선생님(필자)이 친절하고 지식 공유에 힘 쓰는 사람이라는 걸 느낄 수 있었다. '1단계 : 파이토치를 배우세요' 부터 '4단계 : 블로그를 개설해서 딥러닝을 가르치세요' 등 다양한 공부법 추천이 등장한다. '8단계 : 급여를 받으면서 일하세요'는 굉장히 현실적이면서도, 이 책이 학습자의 커리어까지 제시해보려(?) 한다는 걸 알게 하는 내용이다. 

 

외서임에도 불구하고 문체가 유연하고 책의 전반적인 구성이 친절하다는 점에서 딥러닝과 관련된 일을 하지 않는 나도 천천히 완독을 해볼까, 하는 마음이 든다. 필자가 적어놓은 '다음 도약을 위한 준비'까지 가기에는 많은 시간이 소요될 것 같기는 하나, 딥러닝 분야에 관심이 많고 이제 막 공부를 시작해보려는 사람이라면 이 책을 기꺼이 추천할 생각이다. 아, 물론 파이썬 정도는 쪼금 다뤄봤어야 한다!

 


 

 

 

0. 그로킹? 그로킹 딥러닝

 

사진1.png

 

 

 

이 책을 읽으면서 제목 그로킹(Grokking)이란 단어를 찾게 되었습니다. grok의 사전적 의미는 (심정적으로)이해하다, 공감하다 이더군요. 그러면서 아~ 하는 생각이 들었습니다. 우선 저자가 의도하고자 하는 부분이 공감이 가서이고, 이 부분이 딥러닝을 배우는데 많이 필요하기 때문이었습니다. 사실 딥러닝이라는 것으로 공부할 때, 제대로 쉽게 이해하기란 무지 어렵습니다. 딱떨어지게 답이 정해진것을 찾는게 아니다 보니 도무지 최적어떻게까지 하는지 그리고, 어느 정도를해야하는 건지 답을 찾기 어렵기 때문이죠. 하이퍼 파라미터를 수번에 걸처 변경하고, 여러 알고리즘들을 서로 비교해 하는 과정은 쉽게 지치게 만듭니다. 그러나 결국 답은 "아 이정도면" 이라는 딥러닝 모델을 원하고 필요로하는 사람들의 공감을 이루는 분석결과와 모델이 나올 때, 바로 결론에 도달하게 됩니다.

1. 최대한 쉽게, 그리고 탄탄하게~

저자는 두 가지를 목표로 했다고 하네요

(1) 간단한 계산을 넘어서는 수학 지식이 없어도 독자가 이 책을 소화할 수 있어야 한다.

(2) 내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존하지 않아야 한다.

저자는 최대한 딥러닝의 문턱을 낮추기 위해 최대한 쉽게 설명하려고, 노력했다는 말을 독자들에게 전합니다.

이 부분에서 리뷰어 입장에서, 상당이 공감하는 부붑입니다. 이 책은 책의 절반을 신경망에 대해서 설명하는데 할애합니다. 즉 신경망에 대해서 실제 독자가 심도있게 공부하고, 학습할 수 있도록 제안합니다. 전체가 16장으로 이뤄져있고, 뒤의 2장은 실제 딥러닝에 대해서 교양적인 내용을 다루니, 14장의 9장을 신경망을 설명하는데 배정하였으니 얼마나 집중을 했는지 알수 있으실 것입니다.

사진2.png

 

 

 

즉, 저자는 기초, 이제 딥러닝을 공부하는 독자를 대상으로 이 책을 작성했고, 최대한 이를 충실히 이행하는데 집중합니다.

2. 이해하기 쉽게 설명한 코드의 시각화

그럼, 이 책의 가장 장점을 설명해 보도록 하겠습니다. 이 책은 코드를 쉽게 이해할 수 있도록 코드마다, 시각화된 설명을 매우 많은 공을 들여서 제공합니다. 사실 처음 코드에 익숙하지 않는 초보자들은 코드 울렁증 때문에, 벌써 코드야 하면서 쉽게 포기할 수 있는데, 이 부분을 쉽게 따라 올 수 있도록 많은 지면을 통해 설명합니다.

사실 이렇게 설명하지 않을 경우 많은 부분을 수식으로 채워야하는 사항이 발생합니다. 즉 저자는 이런부분들은 지행하면서, 스스로 독자가 이해하려 노력하도록 유도합니다. 저도 읽다보니 이해안되는 부분은 그림을 통해 눈이 뚤어져라 쳐다보고 있더군요 ~ ㅎㅎㅎ, 아마 여러분들도 비슷한 경험을 하게 될 것입니다.

 

사진3.png

3. 책에서 상호소통?

이 책을 읽다보면, 저자는 독자들과 소통을 하기 위해 노력합니다. 예를 들자면 아래의 지면과 같이 질문형식의 콘텐츠 배치를 통해, 해당 장에서 독자들이 자주 물어볼 수 있는 기초질문, 처음 배우는 사람들이 쉽게 할 수 있는 아주 사소한 질문에 대답하는 형식을 통해 설명을 이어갑니다.

음~~ 이 부분이 사실 이 책에서 가장 마음에 드는 부분입니다. 아래의 사진과 같이 "신경망이 뭔가요?", 딥러닝 입문 강의를 진행하다보면, 이런 질문들을 자주 받게 됩니다. 반대로 수업시간에 질문을 하기도하죠~ "잘 따라오고 있나요?"

저자는 이런 형식을 통해 독자들에게 쉽게 지나칠 수 있는 내용을 각인시키고, 또 지치지 않고 책을 잘 따라올 수 있도록, 유인하고 길을 인도합니다. 물론, 책이라는 제약이 있기 때문에 충분하다고 볼 수는 없지만, 그래도, 이러한 사고를 가지고 설명하고 있다는 부분은 충분히 칭찬받을만 하다고 생각합니다.

 

사진4.png

 

 

4. 그래도 공부하기 어려운 딥러닝

아무리 몸에 좋은 보약이라도, 먹어야 합니다. 즉 아무리 좋은 책이라 해도 읽어야 한다는 것이죠. 물론 그림으로, 매우 천천히 딥러닝을 설명한다해도, 일정 수준의 노력은 반드시 필요합니다. 저는 이 책에 대해서 이런예를 드리고 싶네요, 운동잘 배우는 게 뭐죠? 맞습니다 아주 기초적인 것을 잘 익혔느냐 입니다. 이는 비단 운동에 국한되지 않습니다. 모든 학습법에 적용되죠.

사실 입문자들도 사람이기 때문에 기초는 지루하고 따분할 따름입니다. 뭔가 바로 써먹고 쉽게 이용하고 싶어 응용에 눈을 돌리죠. 그러나 이 부분이

딥러닝 전문가로써 롱런하는 것을 멀게 한다는 사실을 알고계셔야합니다. 그것보다는 입문을 통해 배운부분을 하나씩 정리하면서, 기초가 탄탄한 나만의 코드를 작성하는 것이 중요하죠.이 책은 그런 부분에 집중하고 또 집중합니다.

 

 

사진5.png

 

 

5. 그래도, 재미는 응용이지~ 언어를 이해하는 신경망

저자는 중반부를 떠나 이제 막 훈련이 끝난 입문자들에게, 후반부 부터 쉽고 놀라운 딥러닝의 응용을 소개합니다. 바로 언어를 이해하는 신경망과, 섹스피어처럼 글을 쓰는 딥러닝을 소개합니다. 언어를 이해하는 싱경망은 영화리뷰의 예측을 통해서 사람들이 생각하는 부분을 예측하고, 이를 통해, 영화에 대한 평가를 할 수 있도록 합니다. 아주 재미있는 유명한 응용예제입니다. 여러분들은 이를 통해서, 기사 댓글과 같은 분석을 이제 딥러닝을 통해서 활용할 수 있습니다.

사진6.png

 

 

6. 맺음말, 다음 도약을 위한 준비 작은 안내서

책의 마지막절에서는 [다음 도약을 위한 준비]를 소개하면서, 이 책을 익인후, 딥러닝 전문가로 성장하는 지침에 대해서 이야기 합니다. 많은 부분이 공감이 가는 내용으로, "1단계 파이토치를 배우는 것을 시작으로 10단계 지역커뮤니티를 발전시키기" 까지 여러분들이 딥러닝을 끝까지 공부할 수 있는 길을 제시합니다. 저도 충분히 공감하고 실천하고 있는 사항이라 맺음말에 꼭 남기고 싶네요 사실 딥러닝의 전문가가 되기 위해서는 다양한 케이스, 집단지성을 통한 충분한 토론이 매우 중요합니다. 이를 위해서는 수 많은 난관을 극복해야합니다. 딥러닝 전문가 즉 데이터 사이언티스트는 정말 방대한 양의 학습과 경험을 요구합니다. 전문가들은 진정한 데이터사이언티스트는 극히 적다라는 말을 입버릇 처럼 합니다. 그리고 점점더 공부하면 할 수록 점점더 겸손하게 자신을 소개하게 되죠. 프로그래밍 언어스킬 부터, 데이터베이스 그리고, 통계, 시각화 등 공부해야할 영역의 방대하기 때문입니다. 그러다보면 지칠수 있고, 중도에 포기하는 경우가 대부분입니다. 이를 극복하기 위해서는 제대로 된 길을 만들고, 밝아나가는 것이 필요합니다. 저자는 아래와 같이 정도를 소개합니다.

 

사진7.png

 

드디어, 비전공자나 문과생들도 딥러닝의 원리를 '이해할 수 있게' 해 주는 딥러닝 입문서가 나왔습니다.

 

 

 

그로킹딥러닝01.jpg

 

그로킹딥러닝02.jpg

 

전공자나 겨우 이해할 법한 복잡한 수학적 지식을 요구하지도 않고, 어디에 어떻게 써먹어야 하는지도 알 수 없는 고수준의 파이썬 라이브러리와 난해한 코드를 늘어 놓지 않는 착한 딥러닝 인문서를 만났습니다. 그렇다고 해서 누워서 떡 먹듯 '쉽게'까지는 아니지만, 덕분에 정말 오랜만에 형광펜으로 줄 쳐 가며, 이해한 내용을 행간에 메모해 가며 진지하게 공부하고 있습니다.

 

이 책의 저자 앤드루 트라스크는 구글 DeepMind 리서치 사이언티스트로 인간의 언어와 관련된 딥러닝을 주로 연구하고 있다고 합니다. 주요 연구분야가 인간의 언어와 관련이 있어서인지 이 책의 내용도 신경망이라는 딥러닝 아케텍처의 레고블럭을 이용하여 글자 인식부터 이미지, 자연어처리, 통합학습과 같은 최신 연구분야에 이르기까지 머신이 학습하는 방법을 차근 차근 설명해 갑니다. 보통은 책의 처음부터 무수히 쏟아져 나오는 생소하기 그지 없는 용어들만으로도 학습의지가 무참히 꺾일 수 밖에 없는 분야입니다. 하지만 이 책에서는, 인공지능 기술서에서 흔히 볼 수 있는 고차원적인 수학공식을 배제하였습니다. 이를테면, 과연 이 저자는 이 공식을 제대로 이해하고 쓴 것일까 싶은 외계어 같은 수학공식들 말이죠. 또한 내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존하지 않고 딥러닝을 배우는데 필요한 문턱을 최대한 낮추고자 노력한 3년간의 흔적이 책 곳곳에 보입니다.

 

 

그로킹딥러닝03.jpg

 

인공지능이라는 학문 자체가 지금과 같은 성과를 내기까지 70년가량 걸릴 정도로 굉장히 난해한 학문임에는 분명합니다. 하지만, 이과생도 아니고 전공자도 아닌 초심자가 형광펜으로 줄 쳐 가며 이해도를 높여 갈 수 있었던 것은 벡터와 행렬정도의 수학지식만 가지고 있으면 딥러닝에 대한 학습을 시작할 수 있도록 이끌어 주는 책이기 때문입니다.

 

선행학습으로 파이썬에 대한 학습을 요구하고 있기는 하지만, 배열 연산에 대한 지식과 파이썬이 아닌 다른 프로그래밍 언어일지라도 함수 작성과 사용, 조건문정도까지 이해하고 있다면 책의 중반부까지 따라가는데 큰 어려움이 없었습니다. 파이썬 설치법이나 주피터 노트북 사용방법은 인터넷에서 검색하면 되고 파이썬 코딩도 가장 기본적인 행렬 라이브러리인 NumPy를 이용하여 책의 거의 끝부분까지 진행합니다. 읽다가 이해 안 되는 부분이 있으면 다시 처음부터 읽어 나가면서 익숙해지면 됩니다. 완전히는 아니더라도 책의 다음 단계로 진도를 나갈 정도까지는 학습이 가능했습니다. 정말 많은 개념들을 다루고 있지만 학습분량은 지금까지 본 책들중에서 가장 적은 것 같습니다. 한마디로 부담이 없습니다. 줄 쳐 가면서 메모하면서 손으로 코딩해 가면서 여러번 해 보다 보면 점차 딥러닝에 익숙해져 가는 나를 만날 수 있습니다.

 

 

그로킹딥러닝04.jpg

 

어지간한 개념은 도식화하여 설명하고 있습니다. 이전에 접한 인공지능 관련 서적에서는 신경망이라는 개념을 글로만 익혀서 도대체 어떻게 구현되는지 알 수가 없었습니다. 하지만, 이 책에서는 신경망이라는 개념을 그림을 통해 드디어 이해할 수 있었습니다. 알고 나니 정말 간단한 아이디어였는데 말이죠. 이렇듯 이 책에서는 중요 개념들을 도식화하여 설명하고 그 그림 옆에 해당 파이썬 코드를 배치해 놓았습니다. 인공지능의 개념을 그림으로 설명하고 그 아이디어를 어떻게 파이썬 코드로 옮겨 놓을 수 있는지 보여 주면서, 딥러닝을 보다 쉽게 그리고 보다 심층적으로 이해할 수 있도록 도와주고 있습니다. 난해한 수학공식 따로, 어떻게 작동하는지도 알 수 없는 코드 따로, 따로 따로 노는 서적들과 비교하면 이 책은 사막 한 가운데서 만난 오아시스 같다는 느낌을 받기에 충분했습니다.

 

그로킹딥러닝05.jpg

 

책을 읽어 나가면서 딥러닝 '교과서'를 읽고 있다는 느낌을 참 많이 받았습니다. 하나의 챕터는 해당 챕터의 학습목표라고 생각되는 개념들을 나열하면서 시작하고, 지난 챕터에서 뭘 배웠는지를 요약하면서 설명을 시작합니다.

 

그로킹딥러닝06.jpg

 

그리고 책의 곳곳에 새로운 개념이 나올 때마다 복습할 수 있는 요약부분을 두어, 지금까지 뭘 읽었는지 그리고 저자의 의도대로 제대로 이해하고 있는지, 더 나아가 앞으로 어떻게 이해해 가야 하는지를 알게 해 주었습니다.

 

그로킹딥러닝07.jpg

 

그림과 코드로 설명하는 본문이 지나가면 지금까지 읽은 내용을 다시 요약하면서 해당 챕터를 마무리 합니다. 여러 차례 반복되는 요약으로 인해, 뭔소린지 알듯 모를듯한 본문 내용들에 대하여 제대로 방향을 잡아주어 이해도를 높여가는데 큰 도움이 되었습니다. 하나의 챕터는 두세번 다시 읽기에도 부담 없는 분량이라 더욱 좋았습니다.

 

그로킹딥러닝08.jpg

 

이 책은 여러가지 복잡한 전문 개념을 다루는 책이지만 '입문서' 단계의 책 입니다. 그래서 저자는 책의 마지막 챕터인 16장에서 이 책 이후에 학습할 방향을 자상하게 설명해 주고 있습니다. 책의 모든 부분에 스며 있는 저자의 이러한 자상한 배려로 인해, 예전에 비해 인공지능, 머신러닝, 딥러닝에 대한 이해도가 굉장히 많이 상승했음을 느끼고 있습니다. 이제 반정도 읽어 낸 상황이지만, 인공지능 관련한 동영상 강좌들을 들어 보면 예전에 비해 경험치가 굉장히 많이 올라가 있음을 새삼 깨닫게 됩니다. 손과 머리에 딥러닝에 대한 분명한 개념을 집어 넣어 준 고마운 책입니다.

 

 

알기 쉬운 비유와 기초 수학으로 시작하는 그로킹 딥러닝

(한빛미디어)

 

  • 제목 : 알기 쉬운 비유와 기초 수학으로 시작하는 그로킹 딥러닝
  • 저자 : 앤드루 트라스크 지음, 박상현 옮김
  • 발행 : 2019년 12월 1일
  • 펴낸곳 : 한빛미디어(주)

 

 

 

인공지능. 도대체 인공지능이란 무엇일까?

머신러닝? 딥러닝? 이건 또 뭐란 말인가?

 

뭔가 무시무시해 보이는 이런 것들이 다가오는 앞으로의 시대를 어떻게 살아가야할까? 아니 그보다 그 시대를 우리 아이들이 어떻게 살아갈 수 있도록 도와야할까? 이런 고민들로 가득차 있는 요즘, 도대체 이게 뭔지를 알아야겠다는 마음이 생겼다.

 

그래서 책 몇 권을 구입했었다. 아주 오래전....

구입한 지는 꽤 오랜 시간이 지났지만 아직까지 제대로 읽어보지 못했다. 바쁜 일정 속에 책을 읽을 시간이 부족했다는 핑계를 던져보지만 무엇보다도 앞부분을 읽다보니 내용이 상당히 어렵게 느껴졌다.

 

그래서 보다 쉬운 책, 딥러닝을 처음 접하는 입문자에게 맞는 책을 찾고 있다가 발견한 책이 바로 이 책이다.

 

 

누가 읽을까?

 

 

저자는 이 책의 특징을 이렇게 말한다.

 

1. 간단한 계산을 넘어서는 수학 지식이 없어도 독자가 이 책을 소화할 수 있어야 한다.

2. 내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존하지 않아야 한다.

 

어떤가? 뭔가 솔깃하지 않은가?

 

기존의 책들 몇권을 읽어보며 느꼈던 것은 (파이썬에 대한 기초 지식이 없어서) 복잡한 코드가 제시되어 있을 때 알고리즘을 이해하기가 어렵거나, 너무 자세하게 설명을 해 주는 나머지 쳐다보기도 버거운 수식들이 펼쳐저 있는 경우가 많았다. 그러다보니 저자의 말이  매우 설득력있게 다가온다.

 

 

 

그래서 이 책에는 복잡한 수학적인 내용들이 나오지 않는다. 물론 저자는 고등학생 수준의 수학이면 된다고 하지만 솔직히 벡터나 행렬에 대한 기초적인 지식이 있으면 보다 이해하기가 쉽다. (안타깝게도 지금은 고등학교 수학 교육과정에서 행렬이 없지요...)

 

 

무엇이 담겨있나?

  • 1장 : 딥러닝을 배워야 하는 이유, 딥러닝을 배우는 데 필요한 것들
  • 2장 : 머신러닝, 모수적(parametric) 모델과 비모수적(nonparametric) 모델, 지도 학습과 비지도 학습 같은 기본적인 개념
  • 3장 : 간단한 네트워크를 이용한 예측, 신경망
  • 4장 : 예측 평가 방법, 에러 식별 방법
  • 5장 : '예측, 비교, 학습' 패러다임 중 '학습'
  • 6장 : 심층 신경망
  • 7장 : 신경망의 큰 그림, 심상의 단순화
  • 8장 : 오버피팅, 드롭아웃, 배치 경사하강법
  • 9장 : 활성화 함수, 확률 모델링 적용
  • 10장 : 오버피팅을 막는 구조의 유용함, 합성곱 신경망
  • 11장 : 자연어 처리, 기초 용어와 개념
  • 12장 : 순환 신경망
  • 13장 : 딥러닝 프레임워크, 파이토치, 텐서플로 소개
  • 14장 : 순환 신경망과 언어 모델링
  • 15장 : 데이터 프라이버시, 통합 학습, 동형 암호화, 차등 개인정보, 보안 다중 계산
  • 16장 : 딥러닝을 계속 탐구하기 위해 필요한 도구와 자원 제공

딥러닝 책 몇권을 보면서 느꼈던 점, 용어들이 낯설고 어렵다는 점은 이 책도 피해갈 수는 없었다. 그건 당연하겠지, 용어가 달라지지는 않을 테니... 어쨌든 목차들을 보면서는 여전히 낯설고 겁이 난 건 사실이다.

 

 

읽어 보았더니

일단 나는 책 제목에서 믿지 않는 것들이 있다. 책 제목에 이런 게 들어가 있으면 일단 경계를 한다.

 

  • 누구나 알 수 있는 OOO
  • OOO도 이해하는 OOO
  • 아주 쉬운 OOO

뭐.. 이런 종류의 제목들 말이다. 책을 읽다보면 내가 그 "누구나"에 해당하지 않는다고 생각할 때가 다가오는 경우가 종종 있기 때문이다. 저자 입장에서는 쉬울 수 있을 지 몰라도 독자 입장에서는 그렇지 않을 수도 있으니... (내 문제일 수도 있고..,)

 

아무튼 이 책도 약간 반쯤 경계를 해야 했다. "알기 쉬운" 비유와 기초 수학으로 시작하는 문장이 제목에 들어가 있었기 때문에...

 

 

 

 

나의 이해력과는 별개로 저자는 이 어려운 내용을 쉽게 쓰려고 노력한 흔적이 많이 보인다. 다양한 비유를 통해 개념을 단계적으로 이해하도록 돕고 있다. 딥러닝 알고리즘의 원리를 아주 간단한 수준에서부터 차근 차근 친절하게 설명을 해주고 있다.

 

 

 

 

이미지를 통해 내용을 시각화하고 알고리즘을 파이썬 코드로 상세하게 설명하고 있다.

 

그럼에도 불구하고 뒤로 가면 갈 수록 읽는 속도가 느려지는 것은 어쩔 수 없는 것 같다. 일단은 쭉 훑어보는 수준으로 책 내용을 살펴보았다면 앞으로의 숙제는 이 내용을 곱씹고 곱씹어서 잘 소화를 시키는 것이 남아있다.

 

이 책은 입문서로서는 훌륭한 것 같다. 복잡한 수식(미분, 행렬, 내적 같은 개념들이 나오지만 너무 깊이 들어가지는 않는다)들로 혼란을 주지 않고, 알고리즘 전반을 차근 차근 잘 설명해주고 있기 때문이다.

 

다만 파이썬의 기초 문법이나 다른 언어라도 코딩의 경험이 있는 사람이 보기에 좋을 듯하다. 수학이 아무리 쉽게 등장한다 하더라도 어느 정도 수학적 감각이 있는 사람이라면 책 읽기가 더욱 수월할 것 같다. (아무리 덜어내도 어쩔 수 없는...)

 

마지막으로!!

저자의 이 말이 이 책을 읽는데 아주 중요하게 느껴졌다.

 

 

 

 

그렇지! 이게 진짜 교육이지!

 

딥러닝을 나는 왜 공부하고 싶은가?

딥러닝을 통해 내가 해결해보고 싶은 문제는 무엇인가?

 

이 질문을 가지고 이 책을 읽는다면 보다 재미있고 흥미진진하게 다가갈 수 있을 것 같다. 내가 해결해보고 싶은 문제를 다시 고민해보고 이 책을 다시 읽어봐야겠다!! 벌써 두근두근 떨리는데!!

 

 


 

 


얼마 전에 회사에서 데이터 사이언스 워크숍을 보내줬다. 그동안의 워크숍에서 어렵다는 이야기가 많이 나와 최대한 쉽게 쉽게 진행한 워크숍이라고 주최측이 이야기 했는데, 이런 쪽으로는 완전한 문외한이었던 나에게는 그마저도 어려웠다. 데이터 사이언스, 인공지능, 딥러닝, 머신러닝. 어딜 가나 빠지지 않는 키워드들인데 거리감이 좁혀지지 않았다. 워크숍 내용을 정리하다가 도저히 안 되겠다, 무슨 말인지 모르겠다 싶어 책을 사서 공부하다가 그만 흥미가 생겨버렸다.

 

 


파이썬, R, 텐서플로, 케라스, 파이토치, 각종 라이브러리 등. 그래, 그게 뭐하는 것들인지는 알겠는데 그런 것보다는, 도대체 신경망은 뭐고 활성화 함수는 뭔지. 10년도 훨씬 전에 배운 수학은 머릿속에서 사라진지 오래다. 이 책을 뒤집어보면 "수포자도 이해할 수 있는 명쾌하고 친절한 단 한 권의 딥러닝 입문서"라는 소개말이 있다. 딥러닝을 이해하는 데 필요한 모든 사전 지식이 이 책 안에 있다며. 그래서 선택했다.

 


그동안 공부하면서 "그래서 그게 뭔데?" 했던 개념들이 친절하게 설명되어 있다. 보다 보면 "아, 그런 거였어?"하는 말이 술술 나온다. 가장 마음에 들었던 점은 수학적인 지식을 강요하지 않는 것. 복잡한 수학 공식이 난무하는 다른 책들은 펴자마자 한숨부터 나오곤 했는데 이 책은 공식을 직관적인 비유를 통해 잘게 쪼개어 설명한다. 저자가 책 앞부분에 "여러분이 기초 대수학을 이해하는 수준이라고 가정하고 설명할 겁니다."라는 문장을 실어놓았는데, 박수가 절로 나온다.

  


딥러닝 초심자를 위한 입문서라는 타이틀에 걸맞게 챕터 16에서는 이후의 학습 방향에 대해 안내를 해준다.

 

 


이 목차만 봐도 저자가 얼마나 친절하고 다정하게 책을 썼는지 알 수 있다. 딥러닝을 시작하고자 한다면 나처럼 빙빙 돌다가 "이 길은 내 길이 아니야" 하면서 포기하지 말고 우선 이 책으로 시작해보자.

 

 

[개요]

 

기초 수학의 배경이 없는 사람도 어떻게든지 딥러닝 개념을 붙잡을 수 있도록 만들어주는 책이다. 저자가 딥러닝을 쉽게 설명하기 위해 무려 3년에 걸쳐서 집필했다고 한다. 

 

[성격]

 

딥러닝 입문서는 크게 두 종류로 나뉜다. 딥러닝 자체를 처음부터 끝까지 직접 구현함으로써 개념을 깊이 설명하는 책과, 케라스/파이토치 등의 라이브러리를 이용하여 딥러닝을 쉽게 구현하고, 활용 예시를 다양하게 보여주는 책이다. 두번째 방식은 간단한 예제 결과물은 잘 나오지만 딥러닝의 동작방법에 대한 심층적인 이해는 어렵다. 

 

이 책은 전자의 입장을 따라 딥러닝 자체의 구조를 이해하기 위한 도서이다. 이미 유명한 베스트셀러인 <밑마닥부터 시작하는 딥러닝>과 유사한 접근 방식을 취한다. 이 책은 독자의 이해를 돕기 위해 많은 예시가 실려 있고 서술도 쉬운 편이라, 모든 코드를 따라서 쳐보지 않고 쭉 훑어보는 것만으로도 저자가 뭘 말하고자 하는 지 이해가 간다는 장점이 있다.

 

[내용]

 

모든 개념 설명은 독자의 이해를 위해 극도로 단순화되어 순차적으로 제시되며, 가장 기본적인 개념과 기초 코드로부터 시작한다. 그리고 각 장이 끝날 때마다 앞에서 진행했던 코드에 새로운 내용을 추가해서 점차 발전하는 방식이다. 

 

딥러닝 구현을 위해 사용하는 파이썬 라이브러리도 numpy 하나로 최소화해서, tensorflow니, keras니, pytorch 하는 복잡한 라이브러리의 사용법을 익히느라 골머리 썩을 필요가 전혀 없다. 

 

다만, 쉬운 이해를 위해 지나친 단순화를 하다보니, 중/후반부 장 중 일부 코드는 조금 애매한 부분이 있다. 하지만 어짜피 이 책의 목표는 딥러닝 자체에 대한 이해이고, 다른 도서 또는 동영상 강좌와 병행해서 봤을 때는 전혀 문제가 없을 것이라 생각한다.

 

[번역]

 

그야말로 탁월하다. 번역이야말로 이 책을 읽어봐야만 하는 가장 큰 이유이다. IT 분야에서 다수 저서를 베스트셀러에 올려놓은 저자가 번역에 뛰어들었을 때 얼마나 유리한지를 느낄 수 있다. 예시 하나하나까지 세심하게 우리가 이해하기 쉬운 형태로 변경되었으며, 한국어 문장 또한 유려해서 내용이 술술 읽힌다. 

 

[총평]

 

아무런 배경지식이 없는 초보자가 딥러닝을 처음 익히기 위한 입문서로는 세 손가락 안에 꼽을만한 책이다. 인공지능 분야에 대해서 뿐만 아니라, 선형대수/미적분학/최적화/통계/머신러닝을 모두 몰라도 이 책 하나로 딥러닝 입문이 가능하다. 뒤로 갈수록 서양 특유의 유머(?)를 이해하기 어려운 부분도 약간은 있었지만, 수학 수식들에 경기를 일으키는 나같은 사람에게는 너무 만족스러운 책이었다.

"기계가 (인간처럼) 생각할 수 있을까(Can Machine Think)?"라는 앨런 튜링의 논문 가설에서 시작한

인공지능의 개념은 21세기에 들어 딥러닝, 강화학습 등으로 더욱더 강력해지면서 

4차 산업혁명시대에 거의 모든 분야에 융합 접목하여 그야말로 핫!핫!핫한 키워드가 되었습니다.

 

그런데 막상 인공지능, 특히 딥러닝을 제대로 공부하려들면

관련 책과 논문, 강의에 쏟아지는 온갖 수학공식들과 섞인 개념들 때문에 이해하는 것을

포기하고 손을 놔버리곤 합니다.

(일단 제가 그랬습니다...)

 

 

집에 소장 중인 인공지능 책 (수학공식의 압박)

 

(이건 집에 소장 중인 인공지능 책. 물론 좋은 책이나, 수학공식들이 난무하여

수포자 초심자가 입문서로 접하기엔 적절하지 않습니다...)

 

그래서 이 "그로킹 딥러닝" 이라는 책이 더 필요했는지도 모릅니다.

왜냐하면 이 책에는 수학공식이 없거든요.

단지, 구현 코드와 그림, 설명이 있을 뿐입니다.

그래도 원리와 개념을 이해하는 데에 무리가 없습니다.

 

 

그로킹(Grokking)은 구글 검색해보면 공감하다 라는 뜻으로 쓰인다고 합니다.

공감하는 딥러닝? 이해가 쉬운 딥러닝? 대략 그런 의미로 쓰인 제목인 것 같습니다.

 

 

수포자에게 추천하는 인공지능 입문서라고 합니다 

 

책에서는

1. 딥러닝에 필요한 것이 무엇인지

2. 머신러닝의 기본 개념이 무엇인지

3. 예측, 비교, 학습 패러다임

4. 기초 신경망의 구현

5. 예측 평가와 에러 식별

6. 학습 과정

7. 심층 신경망 실습

8. 오버피팅

9. 드롭아웃

10. 경사하강법

11. 활성화함수

12. 확률 모델링

13. 합성곱 신경망

14. 자연어 처리

15. 순환신경망

16. 언어모델링

17. 데이터 프라이버시

 

를 다루고 있습니다. 

딥러닝을 처음 접하면 "에러", "경사하강법", "활성화함수" 와 같은 개념이

정말 와닿지 않는데, 이 책에서는 정말 이해가 쉽게 서술되어 있었습니다.

 

 

이 책은 신경망의 원리를 그림으로 도식화하면서도 수학공식을 깔끔하게 빼서 

어렵지 않게 이해할 수 있도록 하였습니다.

 

또한, 초심자가 가질 수 있는 기초적인 질문(혹은 당연하게 가질 수 있는 궁금증)과, 답을 실어서

책을 읽다가 궁금한 부분에 대한 답 또한 책에서 얻을 수 있는 "올인원" 인공지능 기초가이드북이라고 할 수 있습니다.

 

나아가 파이썬 딥러닝 코드들을 예시로 나열하여, 

numpy 라는 파이썬 라이브러리만을 사용하여 기본적인 딥러닝 알고리즘의 원리를

코드로 서술하여 원리를 자세하게 이해할 수 있도록 하였습니다.

또한 딥러닝 알고리즘의 종류인 CNN, RNN 등도 다룹니다.

 

고급 라이브러리(파이토치, 텐서플로 등)를 사용하여 함수 한 줄로 구현이 가능하지만

처음 접할 때는 신경망의 알고리즘을 세세하게 구현해보는 것이 기초를 정확히 다질 수 있어

논문을 읽을 때도 많이 도움이 될 것입니다.

 

 

책의 막바지, 마지막 챕터에는 친절하게

이 기본서 이후의 학습 방향에 대해서도 안내를 해줍니다.

 

정말 실용적인 안내여서 읽으면서 눈이 더 반짝였던 부분입니다.

 

이 책이 하나하나 구현한 알고리즘을 쉽게 쓸 수 있는 딥러닝 프레임워크인 파이토치 등을 배우는 것,

다른 딥러닝 수업을 듣는 것,

수학적으로 접근(수학공식)하는 딥러닝 교재를 공부할 것,

블로그로 딥러닝 포스팅을 하는 것,

트위터 정보를 접할 것,

논문을 보고 구현해보는 것,

딥러닝 학습을 위한 컴퓨팅 자원인 GPU를 사용할 수 있는 환경을 확보하여 

인공지능 관련 일을 해보는 것,

오픈소스 프로젝트에 참여하는 것,

지역 커뮤니티에 참여, 발전시켜나가는 것

 

앞으로 책에 나와있는 코드들을 하나씩 구현해나가면서

딥러닝의 기초를 다진 후에 집에 짱박혀있는 수학공식이 가득한 딥러닝 책과 논문들을 정복해나가야겠습니다.

 

image-4474e812-275a-47ae-80fc-c56cd5150e2f.jpg

 

 

 

정말 우연히 마침 인공지능 프로젝트를 하기 위해 공부하고 있던 찰나에 이 책이 배송됐다.

덕분에 좋은 레퍼런스가 생겨서 든든한 마음으로 프로젝트를 시작할 수 있었다.

 

책을 읽어보니

설명이 매우x3 친절하고 쉬운 단어를 사용해서 술술 읽힌다.

실제로 작가분이 머리말에서 그랬듯이 수학 공식을 먼저 던지지 않는다.

예제를 통해 그것도 매우 친절한 예제를 통해 충분히 설명을 해서 동작 원리를 이해시키는 데 목적이 있다.

정말 책을 읽다 보면 작가가 마치 나를 초등학생 대하면서 하나하나 설명해주는 느낌을 받는다.

그도 그럴 것이 이 책의 타겟은 '선형대수, 미적분학, 머신러닝에 대한 사전 지식이 없는 독자'라고 작가가 가정했기 때문이다. 다만, 고등학생 수학 실력과 파이썬에 대한 기초 지식은 갖춰져 있으면 이해가 더 쉽다고 설명한다.

타겟이 입문인 책은 많다. 하지만 실제 입문자가 읽었을 때 진입 장벽이 높아 보인다면 그 책은 실패라고 생각을 하는데, 이 책은 그런 의미에서 성공이라고 말하고 싶다.

머신러닝을 공부하면서 '경사하강법'에 대해 먼저 구글링을 통해 공부했었다. 어느 블로그에서나 수학 공식이 먼저 나왔던 것으로 기억한다. 물론 수학 공식은 많은 내용을 담고 있는 매우 좋은 도구이고, 그 공식 또한 이해하기에 크게 어려운 공식은 아니지만, 왠지 모르게 거부감이 들어서 빨리 스크롤을 내리고 싶고 다른 블로그를 들어가 보고 싶은 기분이 든다.

 

반면에 '그로킹 딥러닝'은?

경사하강법을 설명하는 4장, 5장에 그 어디에도 시그마는 찾아볼 수 없다. 만약 나는 여기에도 시그마가 나왔더라면 머리말에서 본 것에 대한 배신감을 느껴 '역시는 역시군'이라고 생각했을 것이다. 

 

초등학생에게 설명해주듯이

정말 이보다 자세할 수 있을까 싶을 정도로 하나하나 짚어서 설명해준다. 심지어 했던 얘기를 또 하고 다른 표현도 쓰면서 또 하는데 그것 또한 입문자에게는 매우 반가운 일이다. 복습의 효과로 더 각인이 잘 되어서 도움이 많이 됐다.

심지어 2장에서 주구장창 설명한 내용을 4장에서도 여러 번 챙겨준다. 이런 설명방식과 친절한 그림은 확실히 도움이 되고, 작가가 매우 정성을 들였다고 판단하게 된다.

인공지능에 관심을 갖게 된 지 벌써 5년째 들어가고 있습니다.


SAP 파트너사에서 DB 관련 일을 하다가 데이터 저널리즘에 대해 관심을 두게 되었습니다.

그러고 나서 언론사로 이직 후 이세돌 9단의 알파고 대전을 통해서 인공지능의 관심은 더 커졌습니다.


언론사로 이직하기 전에 제일 먼저 공부한 것은 '통계'와 '수학'입니다.

인공지능을 깊이 있게 보게 되면 수식 문제가 상당히 많기 때문이죠.


5년 전만 하더라도 지금 같이 유튜브에 인터넷 강의가 넘치지 않았고 파이선에 관련된 서적도 즐비하지 않았습니다.


정말 막막했었죠. ㅠㅠ 어디서부터 어떻게 시작하고 어떻게 아웃풋이 만들어지는지 그 과정이 정말 궁금했습니다.


한해가 지날수록 다양한 논문들과 책들이 쏟아지고 일들이 나오면서 인공지능에 대해 감을 잡아가는 단계까지 올라갔습니다.


현재 프리로 전향해 다양한 인공지능 관련된 프로젝트 일을 하는 중입니다.


오늘 소개해 드릴 책은 인공지능을 하고 싶은데 관련된 수학적 베이스와 이론에 대해 궁금한 분들이 많을 것으로 생각합니다.

그러한 분들을 위해 구글 딥마인드에서 리서치 사이언티스트인 앤드루 트라스크가 쓴 책입니다.


'그로킹 딥러닝'에 대해 하나씩 알아보도록 하겠습니다.


 

그로킹1.jpeg

 

 

 

1. 기초가 왜 중요한가?

큰 집을 짓기 위해서 가장 많은 시간이 소요되는 일은 무엇일까요?

바로 기초 공사인 '바닥 공사'입니다.

시멘트를 붓고 등 많은 일에 시간이 오래 걸리죠.


그럼 인공지능의 기초는 바로 '개념'입니다.


머신러닝이 무엇인지, 딥러닝이 무엇인지 큰 틀을 먼저 알아야 그걸 통해서 무엇이 되는지 알 수 있기 때문이죠.


기존의 개발자들이 어려워하는 부분이 바로 인공지능에 대한 기초가 없기 때문에 다시 말해서 사용되는 용어의 개념을 모르기 때문에 어려워합니다.


코드를 보면 그냥 개발 언어이지만 돌아가는 메커니즘의 도메인을 모르기 때문에 시간이 오래 걸리는 것입니다.


이 책은 이러한 기초를 누구나 알기 쉽게 비유와 기초 수학으로 풀어 쓴 책입니다.


5년 전에 이 책을 미리 봤다면 지금의 실력은 더 일취월장했다는 생각도 들 만큼 쉽게 풀어 쓰여 있습니다.


 

그로킹2.jpeg

 

 

 

2. 무엇을 만들고 싶은지?

개발자라면 어떤 웹을 만들 거야, 어떤 앱을 만들 거야 눈에 보이고 구체적인 것을 좋아합니다.


그러나 막상 딥러닝으로 무엇을 만들지 하게 되면 없는 것이죠.


왜냐하면 관련된 데이터들을 모 우지도 않았고 어떤 것을 만들고 싶다는 생각 자체를 안 했기 때문일 것입니다.


위에서 내려오는 일들을 관성에 따라서 하다가 여러 삽잘만 할 뿐 구현하는 것들은 대부분 타이타닉 생존율 분석이나, mnist 숫자 분석 등 예제만 돌리기 때문이죠.


서두부터 저자는 딥러닝의 기술로 무엇을 만들지 생각부터 하라고 친절하게 말을 합니다.


저자 또한 트위터 글들을 통해서 주식을 분석 예측 시스템을 만들 생각으로 접근했습니다.


만약 내가 어떤 프로젝트를 한다면 어떻게 확장 시킬지 인공지능의 어떠한 알고리즘을 사용할지 고민이 먼저라는 말입니다.


PS

시중에 판매되는 인공지능에 관련된 책 중에서 기본서로 활용가치가 높다고 판단됩니다.

대학교재 내용보다 쉽게 설명되어 있으며, 더 알차다는 생각이 많이 듭니다.

오히려 실무에 가깝기 때문에 쉽게 응용할 수 있도록 도와줍니다.

인공지능에 대해서 막연한 분들이나 수학적 지식이 부족한 분들에게 추천해 드립니다.



알기쉬운 비유와 기초수학으로 시작하는 그로킹 딥러닝

책 시작부에 쓰인 책의 의도를 보면 이 책은 내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존하지 않고 간단한 계산을 넘어서는 수학지식이 없는 독자가 책을 소화할 수 있어야 한다고 나와있다.

이 책은 의도대로 수학공식보다는 그림이나 도식을 통해 설명을 하려고 노력하고 있고 또 그림과 도식 옆에 코드를 배치해서 의도를 이해할 수 있도록 구성되어 있다.

기존 딥러닝 책은 고수준 라이브러리의 사용법을 통해 원하는 목적에 달성할 수 있도록 레시피를 제공하는 형태와 그 내부의 동작원리를 깊게 설명하는 책으로 나뉘는데 이 책은 고급 수학 지식 없이 코드와 비유 혹은 그림으로 이해할 수 있도록 구성되어 있다.

고수준 라이브러리를 사용하다보면 그냥 구현해서 사용하는게 간단할 때도 있는데, 추상화되어 있는 API를 가져다 사용하다보면 API에는 익숙해지지만 내부 이해를 위해서는 다시 내부 코드를 봐야할 때가 종종 있다.

반대로 복잡한 코드들을 간단한 API 한줄로 불러 사용하는게 훨씬 편할때가 많지만 원리를 이해하지 못 하고 사용할 때면 뭔가 빚을 지는 기분이 들때가 있는데 이런 기분을 조금이나마 해소할 수 있는 책이었다.

자연어처리 쪽 내용도 단어 벡터화나 ngram 기법을 라이브러리를 가져다 사용할 수도 있지만 직접 코드로 구현하고 있다.

이 책에서 사용하는 라이브러는 numpy 와 keras 정도이고 대부분의 코드를 직접 구현해서 사용하고 있다.

초보자도 볼 수 있는 책이라고 되어있긴 한데 파이썬 문법에 대한 이해가 부족하다면 조금 어려운 책이지 않을까 싶다.

그래서 이 책에서 대상으로 한 초보자를 떠올려보자면 파이썬 기초 문법을 어느정도 이해하고 있고 머신러닝과 딥러닝의 어느정도 기초 지식이 있는 사람이라면 이 책이 더 도움이 될거 같다는 생각이 든다.

공짜점심은 없듯이 어느정도 기본적인 지식이 있는 상태에서 이 책을 보면 딥러닝 라이브러리의 API를 호출해 사용했던 내부가 어떻게 구현되었는지 이해하기에 적당하지 않을까 싶다.

아예 딥러닝이 처음인 사람이 읽으면 조금 어려울 거 같다는 생각이 들고 텐서플로우나 케라스 예제를 몇 번 돌려본 사람이 보면 그 내부 원리를 이해하는데 더 도움이 되겠다는 생각이 든다.

GitHub : iamtrask/Grokking-Deep-Learning: this repository accompanies the book "Grokking Deep Learning"

언제나 프로그래밍 책을 볼 때는 소스코드를 먼저 보는데 이 책도 소스코드가 잘 정리되어 있고 바로 클론 받거나 colab을 통해 실행해 볼 수 있는 형태로 되어 있어서 코드를 실행해 보면서 읽어볼 수 있었다.

코드를 직접 구현한 책들은 보통 두껍거나 너무 어려울 때도 있는데 비교적 적당한 난이도로 되어있고 도식이나 비유가 쉽게 설명하려고 노력한 흔적을 느낄 수 있는 책이었다.

책 제목 : 알기 쉬운 비유와 기초 수학으로 시작하는 그로킹 딥러닝

저자 : 앤드루 트라스크 지음

        박상현 옮김

출판년도 : 2019.12.1

 

 

딥러닝이라는 처음 접하기 위해 입문자용에 맞는 책을 찾고 있다가 발견한 책.

딥러닝이라는 분야 자체가 수학공식, 이론들, 알고리즘들을 동반하는 분야라서

최대한 쉽고 간결하게. 중도에서 포기하지 않도록 재미있는 책을 찾고 있었다.

 

 


책의 표지에 강조하고 있듯이 "알기 쉬운" 을 강조하고 있다.

이 책은 입문자를 위한 책이다.

 

 

이 책은 독자 타겟은 머신러닝에 대한 사전 지식이 없는 이로

고등학생 수준의 수학지식과 파이썬을 을 다루어 본 적이 있는자를 타겟으로 한다.

 

 

 

책의 내용...

이 책은 1~16장으로 나누어져 있다.

 

대부분의 책이 그렇듯. 그리고 정말 거의 모든 기술 입문서가 그렇듯 1장에서는 이 책에서 다루는

기술에 대한 설명이 나온다.

그리고 이 책으로 딥러닝을 공부해야 하는 이유도 나온다.

"대략적으로 적자면 쉽게 시작할 수 있고, 딥러닝 프레임워크의 내부에서 벌어지는 일을

이해할 수 있고 알기쉬운 비유로 수학을 설명하며 후반에는 프로젝트 기반으로 설명하기 때문에

실습을 통해 문제해결능력을 키울 수 있다."

2장에는 딥러닝의 기초 개념에 대해 설명한다.

머신러닝에 대한 설명도 잠깐 나오는데 예전에 컴퓨터 비전관련 일을 했을때 기존 하늘의 구름을

데이터로 하여 미래의 날씨를 예측하는 기상 예측 프로젝트에 참여한 바 있다.

이 책의 설명에 따르면 이 또한 머신러닝작업이라 할 수 있지 않을까?

3장부터 실제적으로 딥러닝 배움의 시작이라 할 수 있다.

신경망의 예측에 관한 개념과 코드로 옮기는 학습을 시작한다.

이 과정에서 벡터수학, 내적, 논리곱, 행렬 등의 기본적인 수학 개념이 나온다.

5장까지 간단한 신경망에 대한 이론과 맛보기를 한 후 6장부터 좀 더 깊이 있는 내용을 설명하며

심층 신경망을 제작한다.

그 이후로는 딥러닝에 사용되는 몇가지 알고리즘과 개념에 대해 설명하고 실제 구축해 보며

실습을 진행한다.

 

 

 

 

책을 읽고나서...

책은 입문서가 맞고 기본적으로 쉽게 쓰여진 책도 맞는것 같다.

미분, 행렬, 내적등 익숙했던 단어도 있었고 텐서같은 익숙하지 않은 단어도 많이 나오는걸 보면

수학에 익숙하지 않은 사람에겐, 그리고 프로그래밍에 익숙하지 않은 사람에겐

무척 힘든 책이 될 것같다.

많은 학문들이 수학과, 과학을 기반으로 하고 그 학문의 표현력이 프로그래밍이 되어가는 

시대인 것 같다.

이 책은 딥러닝에 대한 입문서가 맞게 쉽고 이해하기 쉽게, 그렇지만 핵심적인 내용을

포함해야 하고 이 책을 읽었을때 실습을 통해 이해도를 높여야 한다는 목표를 가지고

쓰여졌다면 대부분에 있어 목표를 달성한것 같다.

책의 구성을 보자면. 각 장의 앞에 해당 장에서 어떤 내용을 이야기 할 건지 간략하게

표시해 둔 부분과 이해를 돕기 위한 그림이 많았던 점이 좋았다.

그리고 각 장마다 글귀가 하나씩 있는데 의외로 그 글귀를 읽는 재미가 있었다.

 

다만 그림이 좀 딱딱하다는 느낌이 있는것 같다.

 

링크

머신러닝 (출판사의 웹 사이트)

github

책소개  (한빛미디어)

주피터 노트북

NumPy

아나콘다 프레임워크

 

 

이번에 리뷰 해볼 책은 2019년 12월에 발행된 <그로킹 딥러닝> 이다. 본 서적은 딥러닝 입문자를 대상으로 한 책으로 딥러닝의 기초부터 시작해서 다음 레벨로 가기전에 알아야할 사항들에 대해 자세한 예제와 함께 설명한다. 기존의 딥러닝 서적들은 딥러닝의 모델별로 챕터를 나누어 진행하는 방식이지만 이 책은 저자가 던지는 질문을 풀어나가면서 필요한 모델을 가져다 사용하는 방식으로, 어떤 문제를 딥러닝으로 해결하고자 할때 할 수 있는 생각들을 하나씩 따라가도록 구성 되어있는것이 특징이다. 

 

 

 

 

입문자에게 어려운 수학에 대한 이해를 강요하지 않고, 발생 가능한 여러 경우를 예시와 적절한 예제를 통해 자연스럽게 쫓아올 수 있도록 걷기 편한 카펫을 깔아주고 있습니다. 이 책을 믿고 뛰어내리면 적당한 스릴과 긴장감을 느낄 수 있지만 머리가 깨지는 일은 없을 겁니다. 

이 책의 목적은 딥러닝을 심층적으로 이해할 수 있도록 도와주는 것 입니다. (중략) <그로킹 딥러닝>은 수학 지식이 많지 않더라도 딥러닝을 이해 할 수 있도록 다양한 그림과 예시를 통해 설명하고 있습니다. 또한 수학 공식을 최대한 언급하지 않고 파이썬 코드로 설명하기 때문에 딥러닝의 원리를 이해하려는 개발자와 비전공자에게 입문서로 좋은 선택이 되리라 믿습니다

- 추천사 중 일부

 

 

딥러닝을 수학적으로 접근하거나 고수준의 라이브러리에 의존하지 않고 동작 원리를 이해하는 것을 목표로 집필된 책이다. 진입 장벽이 낮다는것은 누구나 쉽게 접근 할 수 있는 장점이 있지만 대개 필요한 수준의 전문적인 지식까지 도달 하지 못하는 단점이 함께 존재한다고 생각하는데 이 책은 두가지를 훌륭하게 잡았다.

 

INTRO

'지도학습과 비지도학습' , '모수적방법론과 비모수적방법론' 딥러닝에 관심이 있거나 통계쪽을 들여다 봤다면 말은 이미 너무나 많이 들어서 익숙한 말들이다. 그러나 확실하게 차이를 설명해보라고하면 잠시 망설여 지는 법. 딥러닝, 크게는 머신러닝이 과연 어떤 방법론을 어떨때 적용을 하는가를 가장 큰 틀로부터 설명하면서 독자들로 하여금 막연하게 지식을 전달 받는것이 아닌 각자의 머리속에 밑 그림을 그리고 들어갈 수 있도록 신경을 쓴 것이 보였다.

 

내용을 풀어 나가는 방식 

기존 딥러닝 서적과 비슷하게 하나의 주제마다 예제를 기반으로 설명하는 건 동일하다. 하지만 해당 예제를 구현하기전에 설명하는 방식에서 차이가 있다. 제일 쉽고 작은 개념을 설명하고 이것들을 여러개모아 또 하나의 작은 개념을 만들어 설명한다. 내가 이전에 이해했던 부분들을 가지고 또 다른 개념을 이해할 수 있도록 구성이 되어있다보니 막연히 어렵다는 느낌을 받는 것이 아니라 고민을 하면 이해할 수 있겠다는 느낌을 받는다. 그리고 무엇보다 딥러닝에 필요한 수학적인 배경을 따로 빼서 알려주는 방식이 아니라 해당 챕터에서 다루는 딥러닝 자체에 포커스를 맟춘 후 그 안에서 필요한 수학적인 부분을 말해주다보니  머신러닝 과정을 배우기 위해서 수학을 하고 있다는 느낌이 들지 않고 하나의 과정을 잘 따라가고 있다는 느낌이 들어서 좋았다.

 

이 서적의 매력 포인트

우리가 할 법한 질문과 해야만 하는 질문을 저자가 한 뒤에, 친절하게 설명까지 해주는 자문자답형 이야기 책

책의 제목이 < '알기 쉬운 비유'와 기초 수학으로 시작하는 :: 그로킹 딥러닝 > 인 이유가 있었다. 독자가 갸우뚱 할 만한 부분이 나올때마다 빼놓지 않고 등장 하는 깨알 비유를 보다보면 나를 위해 부지런히 노력하는 선생님을 옆에둔것 같은 기분이 든다. 매장의 끝에서 이번시간에는 이런걸 배웠어요 하며 정리해주는 요약부 역시  깔끔하다. 그리고 이 책의 핵심챕터는 제일 마지막장인 16장이라고 단언 할 수 있다. 이 책을 지금 바로 구매해서 꼭 보라고 말하는 것이 아니다. 그냥 서점에가서 INTRO와 제일 마지막장인 16장을 한번 읽어보길 권한다. 그 정도만으로도 충분히 매력을 느낄 수 있는 서적이기 때문에.


 

그로킹-딥러닝.jpeg

 

 

1. 간략 정리

친절한 딥러닝 안내서

  • 기본 수학으로 딥러닝의 원리를 잘 설명한다.
  • 친절하고 또 친절하게 이해 시키려고 노력한다.
  • 경사하강법이 나온 이유, 순전파와 역전파를 파이썬 코드만으로 설명해서 직관적으로 이해하기 쉽다.
  • 그래도 이 책을 완전히 이해하려면 행렬 연산(내적), 미분에 대한 간단한 개념(미분은 기울기를 나타냄)을 이해 하면 더욱더 쉽게 이해할 수 있다.

 

2. 느낀 점

수포자였던 독자에게 한줄기 단비 같은 책

나는 일종의 수포자(수학포기자) 다.

다양한 호기심으로 구글의 알파고를 기점으로 국내에 머신러닝 붐이 불때 참여하고 싶었으나 너무나도 어려운 수식의 나열, 논문을 혼자 독학하기에는 부족한 영어 실력 및 이해력이 제 발목을 잡았었다.

그렇게 어영부영 시간이 지나고 벌써 텐서플로 2.0 (케라스)이 나오는 시대에 살고 있게 되었는데 이 책을 읽게 되어 감회가 새로웠다.

이 책을 처음 받고 느낀 점은 편안함, 친절이라는 느낌이었다.

아마 작가가 최대한 쉽고 편안하게 설명하려고 했던 것 같다.

그리고 내가 목 말랐던 차근차근 원리를 최소한의 수학으로 설명해서 너무 좋았다.

 

3. 좋았던 점

당신이 딥 러닝 원리를 궁금해 한다면, 이 책은 그걸 설명해 줍니다.

위에서도 얘기했지만 '딥러닝 순전파는 이렇게 하는거에요', '델타는 이런 의미가 있어요' 이런식으로 정말로 친절하게 설명 한다!

어떻게 이렇게 설명할 수 있을까 싶을 정도다.

기존에 다른 딥러닝 책은 수학 공식으로만 쓰고 넘어가서 좌절이었는데, 이책은 그렇지 않다. (수학이 효율적인 의사소통 도구라는 것은 인정하지만, 일반 수포자가 접근하기는 쉽지 않고, 직장인이 시간을 다시 쪼개서 수학을 공부하기에는 야크털을 깎는 느낌이다.)

 

4. 보완할 점

이제 딥러닝 중 하나의 기본 원리를 알았는데 나머지는?

이 책은 입문자에게 상세하고 친절하게 설명한다. 이 책을 다 보고 나서 드는 생각은 머신러닝, 딥러닝은 다양한 기법이 존재한다.

딥러닝에서 지도, 비지도에 대한 설명을 잠깐 하고 넘어가지만, 앙상블 학습, 준지도 학습(지도+비지도)등 다양한 갈래가 더 있음을 알고 있다.

그래서 해당 책을 시리즈물로 기획해 (물론 작가의 의도에 따라서 달라지겠지만) 내주었으면 하는 바램이다.

 

5. 정리

AI는 거스를 수 없는 대세이다. 앞으로 좋든 싫든 AI를 활용하거나 이를 이용해서 일을 하게 될 것이고, 우리는 이를 잘 활용할 수 있는 포지션으로 자리매김 해야 한다고 생각한다.

그래서 수학을 잘 몰라도 설명을 해주는 이런 입문서를 통해서 딥러닝을 이해하고 활용하는 미래에 적응하는 엔지니어가 되길 희망한다.

 

 

 

※ 2020년 한빛미디어 리뷰어로 선정되어 제공 받은 책으로 8년 차 현업 엔지니어 관점으로 리뷰 했습니다.

 

 

 

 

 

서문을 읽으면서 좀 과장된 표현을 한다고 생각을 했다. 다른 딥 러닝 책들도 그렇지만 수학을 몰라도 혹은 기초 수준만 알아도 딥러닝을 이해할 수 있게 한다는 이야기는, 모든 프로그래밍 언어가 배우기 쉽다면서 hello world를 출력하는 데서 시작하는 경우와 마찬가지이다. 예제를 따라하면서 실행을 해볼 때 터미널이나 jupyter notebook에서 숫자가 출력되는 걸 보면 내가 정말로 뭔가를 하는 듯한 느낌을 가지기는 쉽지만, 실제 업무를 하려고 하면 하나부터 열까지 간단한 게 없다.

사실 업무는 둘째치고 책의 예제를 따라하는 거 조차 쉽지 않은 경우도 많다. 머신 러닝, 딥 러닝의 경우 프레임워크가 워낙 많이 발전하고 도커를 비롯한 컨테이너 기술의 발점에 힘입어 예전보다는 확실히 쉬워졌지만, 그래도 종종 커뮤니티에서 따라해보려고 이걸 했는데 오류가 나면서 설치가 안 된다고 문의하는 글을 종종 볼 수 있다.

그런 면에서 이 책은 일단 장점을 갖는다. python과 numpy만 설치하면 예제를 실행할 수 있기 때문에 복잡한 설치 과정으로 시작 전부터 진을 뺄 필요가 없다. 이미 anaconda같은 걸 설치했다면 그냥 시작해도 된다.

1, 2장은 일반적인 설명이고 3장부터 코드와 함께 시작한다. 3~7장까지는 비교적 쉽게 쫓아갈 수 있고 설명도 어느 정도 이해하기 쉽다. 초반부는 정말 지금까지 읽은 책들 중에서 가장 비유를 제대로 사용한 설명이라는 생각이 들었다. 다이얼을 돌리는 그림을 통해 가중치를 변경하는 이야기를 하는데, 간단한 그림을 추가했을 뿐이지만 개인적으로는 꽤 효과가 좋은 방법이었단 생각이 든다. 8장부터는 좀 난이도가 올라간다. 11장부터는 NLP를 통해 여러 가지를 이야기하는데(word embedding, bag of words, LSTM/RNN, …) 아마 저자가 NLP 연구자라서 이렇게 선택을 한 거 같은데 분량에 비해 주제가 커서 후반부는 나 같은 초보자는 사실 그냥 읽는 거도 쉽지 않았다. 15장은 featured learning 소개나 마찬가지이고, 16장은 이 책을 읽은 뒤 할 수 있는 여러가지 학습 방법/자료를 소개한다.

이 책의 장점은 명확하다. 정말로 초보자가 비교적 적은 기반 지식으로도 따라갈 수 있는 설명을 한다는 점이다. 후반부로 가면 어려워지는 건 모든 분야/서적을 막론하고 똑같은 부분이므로 개인적인 노력이 필요하기 때문에 어쩔 수 없다는 생각이다.

Etc.

1장을 보면 저자가 딥 러닝 공부와 함께 이 책을 쓰면서, 옥스퍼드 대학 박사에 진학을 했다고 썼다. 그냥 저자가 똑똑한 놈이라서 그렇다는 편견을 가지고 시작했는데(그런데 이건 편견이 아니라 사실이다. 프로그래밍을 조금 하던 수준에서 18개월 만에 헤지펀드 연구 보조금에 자신의 딥러닝 지식을 적용했다고 썼다) 읽으면서 왠지 저자의 이름이 익숙하단 생각이 들었다. imtrask.github.io와 11줄로 neural network 만들기를 썼던 앤드류 트라스크란 걸 알고 갑자기 믿음이 가고 좀 더 책에 흥미가 가서 더 관심을 갖고 읽었다.

또 하나, amazon.com을 보면 8장의 relu 함수를 잘못 쓰면서 8, 9장의 예제가 모두 문제가 있다는 서평이 있다(https://www.amazon.com/gp/customer-reviews/R16NVHI60Y2F7D/ref=cm_cr_arp_d_rvw_ttl?ie=UTF8&ASIN=1617293709). 8장의 relu나 relu2deriv 함수가 정말 간단하긴 한데, 각 함수의 정의에 비춰볼 때 뭐가 잘못된 건지는 잘 이해가 가지 않는다. tensorflow나 keras source를 봐도 alpha나 max value등의 부가 변수 설정에 관계된 코드를 제외하면 결국 원래 정의대로 따라가는 듯 싶은데, 잘못되었다고 주장하는 부분에 대한 설명이 부족해 어떤 문제가 있다는 건지는 잘 이해할 수 없었다. 하지만 이렇게 평을 하는 사람조차도 7장까지는 매우 좋았다고 쓴 걸 보면 확실히 초반부는 다른 책에 비해 강점이 있다는 생각이 든다.

Ref.

저자가 책이 예제를 jupyter notebook으로 github에 올려뒀다. repository를 clone하면 docker-composer.yml이 있기 때문에 이미 docker를 설치한 경우 다음과 같이 실행해서 jupyter notebook을 시작할 수 있다.

	❯ docker-compose up
Creating network "grokking-deep-learning_default" with the default driver
Pulling jupyter (jupyter/tensorflow-notebook:)...
latest: Pulling from jupyter/tensorflow-notebook
423ae2b273f4: Pull complete
...
701d9053a78b: Pull complete
Digest: sha256:59ccc48a299ed7612f89a172268f6ce849d1d5848db7c48412272fc9e311f3d8
Status: Downloaded newer image for jupyter/tensorflow-notebook:latest
Creating jupyter ... done
Attaching to jupyter
jupyter | Executing the command: jupyter lab --NotebookApp.token=''
jupyter | [I 13:43:09.793 LabApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
jupyter | [W 13:43:10.186 LabApp] All authentication is disabled. Anyone who can connect to this server will be able to run code.
jupyter | [I 13:43:10.680 LabApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
jupyter | [I 13:43:10.680 LabApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
jupyter | [I 13:43:10.683 LabApp] Serving notebooks from local directory: /home/jovyan
jupyter | [I 13:43:10.683 LabApp] The Jupyter Notebook is running at:
jupyter | [I 13:43:10.683 LabApp] http://f7dd26013306:8888/
jupyter | [I 13:43:10.683 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

browser를 열고 localhost:8888에 접속하면 다음과 같이 예제를 실행할 수 있는 jupyter lab을 사용할 수 있다.

다만 예제에서 dataset을 위해 keras 설치가 필요한 경우가 있는데(예를 들어 8장) 어쩐 일인지 docker-compose.yml에서 keras가 설치되지 않은 image를 사용하고 있어서 keras dataset를 사용하는 예제(mnist)를 실행하기 위해서는 결국 keras가 필요하다.

그로킹딥러닝_표지.jpg

 

그로킹딥러닝_컨텐츠.jpg

별 거 아닌 부분이지만 ... 모든 독자가 딥러닝의 동작 원리를 제대로 이해하는 것이 목표라고 하시며 그 생각을 가지고 책을 쓰셨다는 부분이 괜히 와닿았다.

요즘들어 프레임워크를 '잘' 다루는 사람이 되고 싶다는 생각을 많이 한다. 저기 써있는 2번처럼 '내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존'하는 사람이 나인 거 같았다.

내부 동작 과정을 알지 못하니 머리에서 그려지지가 않고 버그를 해결하기가 너무 너무 어려운 요즘이다.

논문도 읽고 책도 읽고 개념을 이해하는 것도 굉장히 중요하지만 이제는 프레임워크를 집중적으로 공부하고 싶다는 생각이 들었다.

각설하고 .. 

이 책은 제목 그대로 알기 쉬운 비유와 기초 수학으로 시작하는 책인 것 같다.

중요한 부분부터 차근 차근 설명해주면서 처음 시작하는 사람이 개념을 받아들이기에 무리가 없어 보인다.

간단한 코드로 예시를 잘 들어주어 초보자도 원리를 잘 이해할 수 있을 것 같은 책이다.

특히 13 CHAPTER에서 자동 최적화를 위한 딥러닝 프레임워크 부분은, 텐서라는 개념을 초보자(나)가 쉽게 받아들일 수 있도록 그림까지 그려주시면서 설명해놓으셔서 읽기가 아주 좋았다.

이 책을 시작으로 프레임워크 공부에 대한 의욕이 올라 다른 책들까지 읽고싶어지는 책이었다.

나는 리뷰어다 서평입니다.1585212170294.jpg

 

요란한 노트북 대신 책표지만 보세요.

 


1. 책소개


 

알기 쉬운 비유와 기초 수학으로 시작하는...

 

 

맨날 딥러닝 블라블라 하는데 딥러닝이 뭔지 찾아보면 이상한 그래프와 수식만 잔뜩 나옵니다.

쉽게 이해할 순 없을까요?

 


저자: 앤드루 트라스크

 

구글 DeepMind 리서치 사이언티스트.

인간의 언어와 연관된 딥러닝을 주로 연구하고 있습니다.

Digital Reasoning에서 연구원으로 있으며 세계최대 인공 신경망을 구축했습니다.

 


목차


 

CHAPTER 1 딥러닝을 소개합니다 : 당신이 딥러닝을 공부해야 하는 이유

 

CHAPTER 2 딥러닝의 기초 개념 : 컴퓨터가 학습하는 원리

 

CHAPTER 3 신경망을 소개합니다 : 순전파

 

CHAPTER 4 딥러닝을 소개합니다 : 경사하강법

 

CHAPTER 5 복수 가중치 동시에 학습하기 : 경사하강법 일반화 하기

 

CHAPTER 6 첫 심층 신경망 만들기 : 역전파를 소개합니다

 

CHAPTER 7 신경망 사진 찍기 : 머릿속과 종이 위에

 

CHAPTER 8 신호 학습과 잡음 제거 : 정규화와 배치 소개

 

CHAPTER 9 확률과 비선형성 모델링하기 : 활성화 함수

 

CHAPTER 10 가장자리와 모서리를 학습하는신경망 : CNN 소개

 

CHAPTER 11 언어를 이해하는 신경망 : 왕-남자+여자 == ?

 

CHAPTER 12 셰익스피어처럼 글쓰기 : 순환 계층으로 가변 데이터 다루기

 

CHAPTER 13 자동 최적화를 소개합니다 : 딥러닝 프레임워크를 만들어봅시다

 

CHAPTER 14 셰익스피어처럼 글쓰기 : LSTM

 

CHAPTER 15 보이지 않는 데이터로 하는딥러닝 : 통합 학습 입문

 

CHAPTER 16 다음 도약을 위한 준비 : 작은 안내서


 

챕터별로 작은 파트가 나와있는데 글 여백 상 생략했습니다.

목차를 통해 이 책의 내용을 요약해 보자면

딥러닝, 머신러닝에 관한 기본 지식

신경망

경사하강법

역전파

mnist 예제

활성화함수

CNN,NLP,autograd, LSTM

등등등 기초부터 설명하고 활용 예제를 통해 원리를 설명해 주고 있습니다.

 


2. 그래서 이 책은 말이죠..




이 책의 독자는


 

책의 소개에서도 알 수 있지만 이 책은 타깃 독자들을 정해놓고 만들어진 책입니다.

 

수학은 자신 없지만, 딥러닝을 배우고 싶은 개발자

딥러닝을 연구에 활용하고 싶은 개발자가 아닌 연구자

라이브러리를 활용해 딥러닝을 구현했지만 동작원리가 궁금한 개발자

 

한마디로 입문자분들이나 저처럼 딥러닝을 서서히 배워가는 분들을 위한 책입니다.

다른 책들을 보면 열심히 활동하던 개발자들이 딥러닝좀 써볼때 참고하는 형식이라 문체도 딱딱하고 "이거알지? ㅇㅇ알지."형식으로 처음 시도하시는 분들이 이해하려면 복잡하고 시간이 오래 걸리는 반면,

이 책은 용어 하나하나 자세히 설명해주어 이해도 측면에선 처음 시작하기 매우 좋은 책입니다.

 

 


이 책의 장점은


 

무언가를 배울때는 글로 가득 차 있거나 지루한 연설만 듣기 보단 설명을 보충해줄 그림등의 시각자료가 있으면훨씬 이해하기 쉽습니다.

딥러닝과 머신러닝 분야는 많은 수학을 바탕으로 만들어진 분야기 때문에 복잡한 수식과 코드가 빠질수 없는데요,

1585212180581.jpg

 

 

하지만 이 책에선 복잡한 수식 대신 크고 간단한 그래프가 대신합니다.

수식에선 알파벳 하나로 생략될 수 있는 것들을 그래프와 코드를 연결지어 설명해서 "이 코드가 뭐하는 부분이다!" 라는걸 한눈에 알수 있습니다.

또한 딥러닝의 처리과정을 쉬운 비유로 설명해 최대한 이해하기 쉽게 쓰려고 노력했다는 것을 느낄 수 있었습니다.

또한 별로 두껍지 않은 책이지만 기본적인 CNN뿐만 아니라 자연어처리, LSTM과 같은 내용도 설명하고 있는 풍부한 책인 것 같습니다.

 


살짝 아쉬운 건요


 

예전에 읽었던 [신경망 첫걸음]책 만큼 이해도 쉽고, 좋은 책이지만 비슷한 단점이 숨어있습니다.

이 책을 통해 딥러닝의 원리를 직접 구현해보며 원리를 이해할 순 있겠지만 바로 실전에 적용하기엔 효율이떨어진다는 것이죠.

물론 그건 이 책의 독자들이 알아서 더 배워서 적용하든 해야하는 거지만,실제로 딥러닝 작업할 때 쓰이는 Tensorflow, Pytorch를 활용한 방법도 일부다뤄줬으면 더 좋지 않았을까 하네요.

물론 그렇게 되면 책의 내용도 더 많아지고 구조가 바뀌면 책의 일부의 내용을 활용 못하는 단점이 있겠지만나중에 그로킹 파이토치 같은 책이 나오길 기대해보겠습니다.

 



3. 정리


 

그냥 딥러닝 처음 배우실거면 이 책 먼저 읽으세요.

그 전에 간단한 수학지식이 있으면 훨씬 쉽게 이해할 수 있으시겠지만 이 책을 읽으면서 직접 찾아보면서 차근차근배워나가는 것도 나쁘지 않은 것 같습니다.

이 책을 읽으신 후에 관련 수학 심화과정을 배우시면서 Pytrch,Tensorflow 사용법도 익히시면 될 것 같네요.

괜찮은 책입니다.

 


 

이상으로 서평을 마칩니다.

 

++ 한빛미디어에서 주관하는 나는 리뷰어다 활동으로제공받은 책을 통해 작성된 서평입니다.

 

 

https://blog.naver.com/aul-_-/221874725539

 

인공지능 분야가 한때 침체기를 걷다가, 기술적 진보를 통해 긴 부진의 터널을 뚫었고 몇년전 알파고를 기점으로 확실히 붐업이 되었다, 오히려 요즘은 딥러닝이 붙어 있으면 살짝 진부할 정도로 정보가 쏟아진다.

 

그동안 IT현업 종사자로서 어디가서 안부끄러울정도 수준의 피상적으로만 알고 있었지만 작년부터 내가 이쪽 일에 본격적으로 뛰어들게 될 줄이야...

그저그런 개발자로 남을 것인가 그것을 넘어선 새로운 가치를 찾는 사람이 될 것 인가? 나는 후자를 원한다, 그래서인지 몰라도 관련한 오픈커뮤니티 활동도 하고 대학원에서 관련된 공부도 하고 나름 열심히 노력해보는 중이다.

 

각설하고... 책은 이렇게 생겼다.

 

KakaoTalk_20200326_174711361_02.jpg

 

KakaoTalk_20200326_174711361_03.jpg

 

표지가 그렇게 세련되진 않지만 캐주얼 하게 입문서 처럼 디자인 되어 있다, 나도 저서가 있다 보니 책의 디자인은 그 책의 성격과 방향성을 내포하는 형태로 과정을 지나왔고 결정되었을꺼라 짐작해본다.

 


딥러닝을 그로킹 한다! Grok이란 단어에 집중을 해보면 저자는 딥러닝을 이해하고 공감하기 위한 여정을 녹여놨을꺼라 예상된다.

딥러닝이라는 것이 일종의 블랙박스라 입력과 출력은 있는데 왜 그렇게 되는지 설명이 안되는 경우가 많다 우리네 윗분들과 고객분들은 설명안되는 걸 되게 싫어하고, 그래서 요즘은 XA(eXplainable AI)라고 해서 새로운 기조가 나오고 있기도 하다.

 

이 책은 제목에서도 알수 있듯이 딥러닝 입문서이다.

'밑바닥부터 시작하는 딥러닝 시리즈', '핸즈온 머신러닝' 등 몇몇 초중급 입문서로 공부해본 사람으로서 이 책은 여타의 입문서들과는 다소 다른 지향성을 가진다.

표지디자인과 책을 소개하는 수식어들처럼 알기 쉬운 비유와 최소한의 수학적 지식을 가지고 단계적으로 이햬하고 구현해보는데 충실하다.

설명이 딱딱하지도 않다.

KakaoTalk_20200326_174711361.jpg

도식을 최대한 활용해서 설명하고, 어렵고 복잡한 설명은 가급적 최소화하고 풀어서 이야기한다.

여타의 입문서에도 중간중간 복잡한 수식과 기호들은 독자로 하여금 무언의 압박을 느끼게 하는데 이 책은 그런 부분에서 맘 편하게 읽을 수 있는 책이다.

 

개인적으로 가장 마음에 들었던 부분은 '13장 자동 최적화를 소개합니다 : 딥러닝 프레임워크를 만들어봅시다' 였다.

엔지니어로서 다른 좋은 프레임워크의 속내가 궁금하기도 하고 다양한 오픈소스들을 접해보면서 나도 새로운 인사이트를 발견하고 경험해서 하나의 좋은 프레임워크를 만들어 github에 올려놓고 싶은 꿈과 희망을 가지고 있다보니 입문서에 이런 부분도 담겨있는 것이 신선했다.

 

개인적으로는 이쪽 분야의 몸담고자 하는 분들의 입문서로는 제격이지 않나 생각한다.

이 책을 기반으로 '밑바닥부터 시작하는 딥러닝 시리즈', '핸즈온 머신러닝' 과 같은 초중급 서적으로 공부하면 탄탄한 기초를 다질 수 있지 않을까 생각이 들었다.

오랜만에 딥러닝 책 무겁지 않게 살펴볼 수 있는 재미난 시간이었던 것 같다.

 

※ 2020년 한빛미디어  리뷰어로 선정되어 제공 받은 책으로 IT현업 엔지니어 관점에서 리뷰한 글입니다.

KakaoTalk_20200325_174146737.jpg

 

 

그로킹이 뭔가 싶어서 검색부터 해보았다.

 

1. grok - (심정적으로)이해하다, 공감하다

2. 그록 - '이해하다'라는 의미의 이 단어는 정통하고 철저한 지식을 뜻한다.

3. 검색 프로세스에서 '그로킹'이란 어떤 검색에 대한 답을 만들어내기 위한 정보 풀(Pool)을 분석하는 것을 뜻한다.

 

 

정리하자면 딥러닝에 관해서 완벽하게 이해하고 구현할 수 있게끔 정리한 책이라는 것이다.

그러나 제목이 거창할 뿐 여느 딥러닝책과 똑같다고 생각한다.

 

 

머신러닝에 대해 처음 접하면서 공부를 시작했을 때 항상 드는 의문이다.

도대체 컴퓨터가 어떻게 예측을 한다는 말인가. 단순히 계산 결과에 따른 확률값이 아닌가?!

두 번째로 컴퓨터가 어떻게 학습을 한다는 말인가. 단순히 계산 결과에 따른 오차가 작은 결과값이 아닌가?!

학습이라는 표현보다는 optimization(최적화)가 더 맞지 않은가 라는 의문이 들지만 중요하지 않으니 넘어가기로 한다.

 

책에서는 알기 쉬운 비유와 기초 수학으로 시작한다고 하고, 수포자도 할 수 있다고 말하지만

개인적으로는 수포자는 하기 힘든게 딥러닝이라고 본다. 

게다가 이 책에서 말하는 기초 수학은 최소한 고등학교 수준의 수학이다.

 

더 좋은 점은 구현해볼 수 있는 샘플 코드로 자세하게 알려주어서 이해하기 편하다는 것이다.

추가로 그림으로 설명해주니 이해하기가 더 쉬운 부분은 있다.

 

KakaoTalk_20200326_162813040.jpg

 

이런 식으로 데이터를 시각화 시켜주는 것만으로도 이해하기가 훨씬 편해진다

 

대부분의 딥러닝 관련 책들이 특정 주제에 집중하여 서술하거나 내용을 깊게 설명하고 있다면,

이 책은 딥러닝에 관한 전반적인 내용을 간단하게 설명해준다.

따라서 딥러닝이 어떤 것인지 가볍게 보고 싶다면 읽어볼만 하다.

 

이 책은 딥러닝에 대해서 관심이 있거나 흥미가 있는 사람에게 많은 수식없이, 쉽게 이해할 수 있도록 책이 구성되어 있다. 평소 딥러닝에 대해 관심은 많지만 시간이 나질 않아서 공부할 수 있는 시간이 없었는데 이 책을 받으면서 공부했는데, 정말 약간의 기본지식만 가지고 있으면 책 자체가 설명이 이해하기 쉽게 되어있어 술술 읽히는 책이였다.

 

 

그렇다고 책이 깊이 있는 주제를 다루지 않은 것은 절대 아니다. 딥러닝을 배우게 되면 여러가지 이론들이 줄줄이 나오게 되는데 중요하게 다뤄지는 이론들을 모두 잡고가기는 한다. Gradient(경사하강법)에 대한 내용도 포함되어있어 빠짐은 없어 좋았다.

 

 

옆에서 누군가 강의해주듯이 책이 설명을 해준다. 정말 딥러닝에 대한 길잡이가 내 옆에서 강의를 하듯 책이 서술이 되어있기 때문에, 책이 술술 읽힌다. 딥러닝에 대해 관심이 조금 있고, 딥러닝에 대해 입문하고 싶다면 매우 추천한다.

 

 

이해하기 쉬운 비유 및 책 중간 중간 정말 많은 자료들을 제시한다. 이러한 자료들은 모두 순수하게 독자들을 이해하기 쉽게 하려고 있는 것들인데, 정말로 친절함까지 느껴진다. 이러한 자료들이 너무 과하지도 않고, 너무 덜 하지도 않아서 책 읽기에 부담도 없다.

 

 

책 단원마다 끝 부분에는 복습부분이 들어가게 된다. 내가 이해하고 있는 이론들이 잘 정리가 되어있는지 확인하기에 좋은 챕터이다. 또한 잘못 이해하고 있는 부분을 제대로 교정할 수 있다.

 

 

책 후반부에는 딥러닝을 총 정리하고 이를 활용할 수 있는 예제에 대해 다룬다. 생각보다 고민할 문제가 많은 편이고, 딥러닝이 아니라 일반적인 컴퓨팅으로는 어떻게 해결하는지도 고민해보면 좋을 것 같다.

 

 

이 책이 담고 있는 내용에 비해서는 책 값은 확실히 저렴한 편이다. 내가 만약에 딥러닝에 관심이 있고, 딥러닝에 대해 입문하려면 이 책을 적극 추천한다.

 

* 이 도서는 한빛미디어 나는 리뷰어다 이벤트로 제공받은 도서입니다.

대학교에서 빅데이터를 전공하고 있는 나에게 "딥러닝"은 뗄레야 뗄 수 없는 학문이다.

하지만 아직 배워보지 않은 나는 막연한 두려움이 있었다. 왠지 어려울 거 같고 이해하기 힘들 거 같고..

그래서 이번 리뷰 책으로 '그로킹 딥러닝' 책을 신청했다.

이 책은 딱 나처럼 딥러닝을 멀게 생각하는 사람들을 위해 쓴 책이다.

<그로킹 딥러닝> 책은 구글 DeepMind 리서치 사이언티스트인 앤드루 트라스크가 지었다.

 

그가 딥러닝이라는 학문을 처음 접하는 사람들을 위해 얼마나 애썼는지 눈에 보였다.

저자는 야구경기, 육아 등 우리가 실생활에서 접할 수 있는 다양한 예시로 설명하고 있다.

그 덕분에 어려운 개념도 이해하기 쉬웠다. 또 다음 챕터로 넘어가면 생판 모르는 내용이 시작되는 것이 아니고 그 전 챕터를 복습하면서 거기에 추가로 개념을 얹으면서 설명하고있다. 그래서 앞에 내용을 복습을 같이 하면서 새로운 개념을 배운다는 게 큰 매력으로 다가왔다.

 

딥러닝이라는 분야의 특성 상 수학과 코딩을 빼놓을 수가 없다. 그래서 기초수학이지만 수학을 놓은지 한참된 사람들에겐 조금 이해하기 어려울 것 같았다. 또 코드가 굉장히 많은데 코드에 대한 설명이 자세하지 않아서 살짝 아쉬웠다. 하지만 남의 코드를 주석없이 보는 연습도 필요하고, 그래야 진정 내가 코드를 잘 이해할 수 있기 때문에 코딩에 익숙하신 분들이라면 충분히 따라갈 수 있다고 생각한다.

이 책을 공부하면서 딥러닝의 전반적인 내용과 딥러닝의 학습과정을 어렵지 않게 간단한 수학과 파이썬으로 배울 수 있다는 게 큰 장점이라고 느껴졌다. 딥러닝에 관심은 있지만 두려움으로 다가가지 못하는 사람들이 있다면, 추천하고 싶은 책이다. 내용이 부실하지 않으면서 분량도 버겁지 않아 초심자들에게 적당하다고 느껴진다.

 

그로킹 딥러닝은 알기 쉬운 비유와 기초 수학으로 시작하는~ 이라고 시작한 것처럼 수학을 많이 쉰 사람이라도 책을 집중해서 읽는다면(이 말은 천천히 읽어라는 말이죠.), 수학적 배경지식을 필요가 없다는 이야기죠.

 

저는 문과라서 데이터 분석을 처음 접했을 때, 미적분-행렬을 고등학교 때 맞보기로 접했다는 느낌에서 [프로그래머를 위한 기초해석학] 같은 책이나 선형 대수책들을 찾아 읽어 보곤 했습니다.

 

특히 머신러닝 관련 책에서 나오는 주성분 분석은 아직까지 트라우마가 되어 있습니다. 

 

그래서 딥러닝을 공부하기 전에 수학을 배우고 와야하나 고민을 하고 실제로 했습니다.....

딥러닝=최신 기술= 수학의 결정체? 라는 이미지가 컸기 때문기도 했죠.

 

그 후 작년 여름부터 딥러닝 책을 읽기 시작했는데 어디서 수학적 개념이 필요한 거지라는 생각을 가졌습니다. 

 

비유를 하자면, 이종격투기를 하는 사람이 모든 무술 검은 띠를 하고 시합에 참여하는 것은 아닌 것처럼 필요한 개념만 알아도 큰 문제는 없겠구나라는 생각이 들었죠.

 

돌아가서, 그로킹 딥러닝은 수학 공포증이 있는 사람들에게 좋은 책입니다.

 

그러면서도 다른 책을 읽을 때, 끊임없이 왜 활성화함수로 Relu가 좋다고 그냥 쓰라고 하는 거지? 한 신경망으로 여러 문제에 대한 답을 찾을 수 있지 않을까?같은 호기심이 들은 사람들에게도 좋은 책입니다.

 

그런 질문이 들어올 것을 알았던 것처럼  이미 성실하게 설명해놓았거든요. 

 

또한 더 좋은 점은 코드치기가 편하다는 거라고 생각해요.

과거에 읽었던 책들 중 이미 텐서플로가 2.0으로 버전이 바뀌어서 1.x버전의 책을 사용할 때, 뭣도 모르고 쳤다가 하나도 실행이 안되서 힘들었던 적이 있는데 이 책은 왠만해서 Numpy를 사용한 거라서 아나콘다만 설치해도 된다는 점과 안좋은 습관이지만 저는 컴퓨터가 맛이 가서 코드를 눈으로 만 읽었는 데ㅡ   어떤 일이 일어나고 있는 지 쉽게 알수 있었습니다.... 

 

결론은 수학 지식이 없는, 처음으로 딥러닝을 배워보고 싶은 사람에게 추천하고 싶은 책입니다.. 

 

 

  

 

IMG_4678.jpg

 

 

이 책의 원서 출판사인 Manning에서 Grokking Reinforcement Learning이란 책을 본 적이 있습니다.

 

다른 책들의 구성과는 다른 형태로 필요한 부분에 대해 핵심적인 수식에 대한 설명과 알고리즘과 코. 그리고 개념에 대해 쉽게 이해할 수 있도록 설명되어 있어서 매료 되었습니다.

 

그로킹 시리즈에 대해 좋은 기억이 있어 이 책도 스스럼 없이 선택을 했습니다.

 

 

이 책의 부제는 "알기 쉬운 비유와 기초 수학으로 시작하는", "단계별로 이해하고, 구현할 수 있다."입니다. 한마디로 그로킹 시리즈의 특징을 잘 설명하고 있다고 볼 수 있습니다.

 

이 책의 구성은 딥러닝을 공부해야 하는 이유와 기초 개념부터 설명을 합니다. 그리고나서 순전파, 경사하강법, 역전파를 설명합니다. 즉 흐름대로 설명을 하고 있습니다. 

 

사실 시중에는 딥러닝에 관한 책들이 많이 나오고 있지만, 이런 개념들을 쉽게 설명한 책은 많이 없습니다.  기본 개념을 건너 뛰거나 높은 수학적 지식을 바탕으로 설명하는 책들이 많지만, 이책은 적절한 그림과 간단한 코드로 그 개념을 설명하고 있습니다.

 

그리고 나서, 모델을 최적화 하는데 필요한 오버피팅, 조기 종료 및 드롭아웃 등의 개념을 몇개의 문장으로 핵심만 찝어서 설명을 하고 있습니다.

 

개념 설명 중간 중간에 등장하는 코드들은 개념을 이해하는데 도움을 주고 있습니다.

 

특히, 일반적으로  프레임워크에서 많이 사용하는 autograd와 같은 개념을 코드와 함께 설명하는 "Chapter 13 자동 최적화를 소개합니다. 딥러닝 프레임워크를 만들어봅시다." 부분은 끌리는 챕터였습니다. 

이 장을 통해서 오히려 많이 사용하는 텐서플로우나 파이토치와 같은 프레임워크의 동작 원리를 쉽게 이해할 수 있었습니다.

 

마지막으로 이책은 다음 레벨로 업그레이드하기 위해 How를 설명하고 있습니다. 제가 생각했을 때 지식을 넓혀나가기 위해서는 반드시 필요한 부분인 것 같습니다.

 

 

이 책은 딥러닝을 처음 접근하는 개발자들이 다음 단계로 넘어가기 위해 필요한 디딤돌 같은 역할을 하는 책이라 생각됩니다.

이 책은 딥러닝에는 관심이 많이만, 선형대수, 미적분학, 컨벡스 최적화, 머신러닝에 대한 사전 지식이 없는 독자를 위한 책이다. 하지만, 파이썬에 대한 문법, 지식은 조금 알아두는 것이 좋을 듯 하다.

이 책은 총 Chatper 16으로 구성되어 있다.

Chapter 1,2에서는 딥러닝을 배워야 하는 이유, 딥러닝을 시작하기 위해 필요한 것들, 딥러닝이 무엇인지에 대해 소개하고 있다.

Chapter 3에서는 신경망의 개념을 소개하고, Chapter 4,5는 딥러닝의 경사하강법을 소개한다. 이 책의 장점은 그림이 많아 어려운 개념들도 이해하기 쉽고, 그림 바로 옆에 보면 그림에 관련된 파이썬 코드들이 있어서 더욱 쉽게 다가갈 수 있다.

 

Chapter 6에서부터는 여러가지 신경망 아키텍처를 실제로 구축해 볼 수 있는 내용들을 다룬다. Chapter 13에서는 딥러닝 프레임워크를 다루고, Chapter 14에서는 언어 모델링을 다룬다.

Chapter 1부터 15까지 인공지능 이면의 기본 동작 원리에 대해 잘 이해할 수 있고, 학습한 부분으로 인공지능을 누군가에게 자신있게 설명할 수 있다. 이 책은 인공지능의 기초적인 부분을 쉽게 다가갈 수 있는데, 이 책을 모두 학습하고, 더욱 발전하기 위해 어떻게 해야할 지를 Chapter 16에서 10단계로 나누어 소개하고 있다.

딥러닝을 처음 접해보려는 학습자, 딥러닝의 개념들을 실제 파이썬 코드로 적용해 보고 싶은 학습자들에게 이 책을 권한다.

안녕하세요! 2020년 3월부터 한빛미디어에서 진행하는 <나는 리뷰어다> 프로그램에 참여하게 되어 글을 작성하게 되었습니다.

그로킹 딥러닝 책 표지

제가 이번 3월에 받은 책의 이름은 '그로킹 딥러닝'이라는 책입니다. 
본 책은 한빛 미디어 측에서 프로그램에 참여하는 리뷰어들에게 사전에 설문조사를 통해 3권의 책을 선택하고, 그중 한 권의 책을 보내주게 됩니다.

우선 이책을 약 3주 동안 시간이 쪼개어 틈틈이 읽어본 소감을 중심으로 글을 작성하려고 합니다.

목차

책의 목차는 크게 16개의 Chapter로 구성되어 있고, 각 Chapter별로 4-15개의 파트로 구성되어 있습니다.
가장 먼저 1장부터 딥러닝이란 무엇인가에 대해 설명을 시작으로 딥러닝 신경망, CNN, LSTM등 이제 막 딥러닝을 공부하려는 입문자를 위해 간단하게 이해할 수 있도록 구성되어 있습니다.

CHAPTER 1 딥러닝을 소개합니다 : 당신이 딥러닝을 공부해야 하는 이유
__딥러닝의 세계에 어서 오세요 
__왜 딥러닝을 공부해야 할까요? 
__딥러닝을 시작하기가 어렵진 않을까요? 
__이 책으로 딥러닝을 공부해야 하는 이유 
__시작에 앞서 필요한 지식과 실습 환경은? 
__파이썬 지식이 조금 필요합니다 
__요약 
 
CHAPTER 2 딥러닝의 기초 개념 : 컴퓨터가 학습하는 원리
__딥러닝이란? 
__머신러닝이란? 
__지도 학습 
__비지도 학습 
__모수적 학습 vs 비모수적 학습 
__모수적 지도 학습 
__모수적 비지도 학습 
__비모수적 학습 
__요약 
 
CHAPTER 3 신경망을 소개합니다 : 순전파
__신경망이 처음으로 할 일 : 예측 
__예측을 수행하는 신경망 
__신경망이 뭔가요? 
__신경망이 하는 일이 궁금합니다 
__복수 입력을 받아 예측하기 
__신경망은 복수 입력을 어떻게 다루나요? 
__복수 입력 코드 : 실행 가능한 완성 버전 코드 
__복수 출력을 하는 예측하기 
__복수 입력을 받아 복수 출력을 하는 예측 
__복수 입력과 복수 출력 : 동작 원리 
__예측에 관한 예측 
__NumPy 빠르게 입문하기 
__요약 
 
CHAPTER 4 딥러닝을 소개합니다 : 경사하강법
__예측하고 비교하고 학습하라 
__비교 
__학습 
__비교 : 여러분의 신경망은 예측을 잘하고 있습니까? 
__오차를 측정하는 이유 
__신경망 학습의 가장 간단한 형태는 어떤 걸까요? 
__온냉 학습 
__온냉 학습의 특징 
__오차를 이용하여 이동 방향과 거리 계산하기 
__경사하강법 1회 반복 
__학습이란 오차를 줄이는 것 
__학습의 여러 단계를 관찰해보세요 
__왜 이게 작동하죠? weight_delta는 뭔가요? 
__한 가지 개념에 집중하기 
__툭 튀어나오는 막대기가 있는 상자 
__미분계수 : 두 번째 이야기 
__이건 몰라도 괜찮습니다 
__미분계수를 학습에 이용하는 방법 
__익숙한가요? 
__경사하강법 망가뜨리기 
__과잉 교정 시각화하기 
__발산 
__알파를 소개합니다 
__코드 속의 알파 
__외우기 
 
CHAPTER 5 복수 가중치 동시에 학습하기 : 경사하강법 일반화 하기
__복수 입력을 받는 경사하강법 
__복수 입력을 받는 경사하강법 이해하기 
__학습의 각 단계를 관찰해보세요 
__가중치 한 개 동결시키기 
__복수 출력을 하는 경사하강법 
__복수 입력을 받아 복수 출력을 하는 경사하강법 
__가중치가 학습하는 것은 무엇일까요? 
__가중치 시각화하기 
__내적(가중합) 시각화하기 
__요약 
 
CHAPTER 6 첫 심층 신경망 만들기 : 역전파를 소개합니다
__신호등 문제 
__데이터 준비하기 
__행렬과 행렬 관계 
__파이썬으로 행렬 만들기 
__신경망 구축하기 
__전체 데이터셋 학습하기 
__전체, 배치, 확률적 경사하강법 
__신경망은 상관관계를 학습합니다 
__상향 압력과 하향 압력 
__경계 조건 : 과적합 
__경계 조건 : 서로 충돌하는 압력 
__간접 상관관계 학습 
__신경망 적층하기 : 복습 
__역전파 : 장거리 오차 귀착법 
__역전파는 왜 효과가 있는 걸까요? 
__선형 vs 비선형 
__아직 신경망이 동작하지 않는 이유 
__간헐적 상관관계의 비밀 
__짧은 휴식 
__첫 심층 신경망 만들기 
__코드로 만나는 역전파 
__역전파의 한살이 
__모두 합치기 
__심층 신경망이 왜 중요한가요? 
 
CHAPTER 7 신경망 사진 찍기 : 머릿속과 종이 위에
__이제 단순하게 만들어야 합니다 
__상관관계 요약 
__미리 너무 복잡해져 버린 시각화 
__단순화한 시각화 
__더 단순하게 
__이 신경망이 예측하는 모습을 관찰해봅시다 
__그림 대신 문자로 시각화하기 
__변수 연결하기 
__모두 나란히 
__시각화 도구의 중요성 
 
CHAPTER 8 신호 학습과 잡음 제거 : 정규화와 배치 소개
__3계층 신경망으로 MNIST 도전하기 
__흠, 쉬운데요 
__암기 vs 일반화 
__신경망에서의 과적합 
__오버피팅의 원인 
__가장 단순한 정규화 : 조기 종료 
__산업 표준 정규화 : 드롭아웃 
__드롭아웃은 왜 효과가 있을까요 : 앙상블 
__코드 속의 드롭아웃 
__배치 경사하강법 
__요약 
 
CHAPTER 9 확률과 비선형성 모델링하기 : 활성화 함수
__활성화 함수란 무엇일까요? 
__표준 은닉 계층 활성화 함수 
__표준 출력 계층 활성화 함수 
__핵심 사안 : 입력에 유사성이 있는 경우 
__softmax 계산하기 
__신경망 계층에 활성화 함수 추가하기 
__delta에 기울기 곱하기 
__출력을 기울기로 변환하기(미분계수) 
__MNIST 신경망 업그레이드하기 
 
CHAPTER 10 가장자리와 모서리를 학습하는 신경망 : CNN 소개
__여러 장소에서 가중치 재사용하기 
__합성곱 계층 
__NumPy로 간단하게 구현하기 
__요약 
 
CHAPTER 11 언어를 이해하는 신경망 : 왕-남자+여자 == ?
__언어를 이해한다는 것은 무엇을 의미할까요? 
__NLP : 자연어 처리 
__지도 NLP 
__IMDB 영화 리뷰 데이터셋 
__입력 데이터 안에서 단어 상관관계 포착하기 
__영화 리뷰 예측하기 
__임베딩 계층 기초 
__출력 해석하기 
__신경 아키텍처 
__단어 임베딩 비교하기 
__뉴런이 가지는 의미는 뭘까요? 
__공란 채우기 
__King - Man + Woman ~= Queen 
__단어 유추 
__요약 
 
CHAPTER 12 셰익스피어처럼 글쓰기 : 순환 계층으로 가변 데이터 다루기
__임의의 길이를 향한 도전 
__비교가 정말 중요할까요? 
__평균 단어 벡터의 놀라운 힘 
__임베딩은 어떻게 정보를 저장할까요? 
__신경망은 임베딩을 어떻게 활용할까요? 
__단어주머니 벡터의 한계 
__단위행렬을 이용해서 단어 임베딩 총합하기 
__정말 아무것도 바꾸지 않는 행렬 
__전이행렬 
__유용한 문장 벡터 생성하는 법 학습하기 
__파이썬으로 순전파 하기 
__어떻게 여기에 역전파를 넣을까요? 
__학습시켜 봅시다! 
__준비하기 
__임의 길이로 순전파 하기 
__임의의 길이로 역전파 하기 
__임의의 길이로 가중치 갱신하기 
__실행과 출력 분석 
__요약 
 
CHAPTER 13 자동 최적화를 소개합니다 : 딥러닝 프레임워크를 만들어봅시다
__딥러닝 프레임워크란? 
__텐서를 소개합니다 
__자동 미분, autograd를 소개합니다 
__간단히 점검해보기 
__여러 번 재사용되는 텐서 
__텐서 재사용을 위한 자동 미분 업그레이드 
__덧셈 역전파는 어떻게 이루어질까요? 
__부정 연산 지원하기 
__몇 가지 함수 더 지원하기 
__자동 미분을 이용해서 신경망 학습하기 
__자동 최적화 추가하기 
__계층 형식 지원하기 
__계층을 포함하는 계층 
__손실 함수 계층 
__프레임워크 배우기 
__비선형 계층 
__임베딩 계층 
__자동 미분에 색인화 추가하기 
__임베딩 계층 다시 생각하기 
__교차 엔트로피 계층 
__순환 신경망 계층 
__요약 
 
CHAPTER 14 셰익스피어처럼 글쓰기 : LSTM
__문자 언어 모델링 
__부분 역전파의 필요성 
__부분 역전파 
__출력의 샘플 
__소멸하는 기울기, 폭발하는 기울기 
__RNN 역전파의 장난감 예제 
__LSTM 셀 
__LSTM 게이트에 관한 몇 가지 직관 
__LSTM 계층 
__문자 언어 모델 업그레이드하기 
__LSTM 문자 언어 모델 학습하기 
__LSTM 문자 언어 모델 튜닝하기 
__요약 
 
CHAPTER 15 보이지 않는 데이터로 하는 딥러닝 : 통합 학습 입문
__딥러닝의 개인정보 문제 
__통합 학습 
__스팸 탐지 학습 
__통합해봅시다 
__통합 학습 해킹하기 
__보안 통합 
__동형 암호화 
__동형 암호화 통합 학습 
__요약 
 
CHAPTER 16 다음 도약을 위한 준비 : 작은 안내서
__축하합니다! 
__1단계 : 파이토치를 배우세요 
__2단계 : 새 딥러닝 수업을 수강하세요 
__3단계 : 수학적으로 접근하는 딥러닝 교과서를 구하세요 
__4단계 : 블로그를 개설해서 딥러닝을 가르치세요 
__5단계 : 트위터 
__6단계 : 학술 논문의 내용을 구현하세요 
__7단계 : GPU를 사용할 수 있는 환경을 확보하세요 
__8단계 : 급여를 받으면서 일하세요 
__9단계 : 오픈소스 프로젝트에 참여하세요 
__10단계 : 지역 커뮤니티를 발전시키세요 

또한 Chapter가 끝나는 지점에서 요약본으로 다시 한번 설명을 해주기 때문에 일정 시간 후에 읽는 경우에도 다시 한번 내용을 생각하는 계기가 됩니다.

다른 책과의 차이점

우선 다른 딥러닝 프레임워크를 사용하여 설명하는 책과는 달리 이 책의 경우 이미지와 코드 등을 사용하여 입문자도 쉽게 이해할 수 있도록 설명을 하고 있습니다.

책에 나오는 코드는 python을 이용하여 코드 설명이 되어 있고, 아래 사진과 같이 그림과 코드를 같이 나타내어 한번에 볼 수 있도록 하고 있습니다. 따라서 간단하게 코드를 이해하기 쉽습니다.

그로킹 딥러닝 책 中

 

예상 독자

저도 딥러닝을 공부해본 입장에서 이 책은 프레임워크를 이용하여 공부하기 전 간단하게 딥러닝에 대한 기본 지식을 공부하기 좋은 책이라고 느꼈습니다.

저는 딥러닝 분야에선 선형대 수학 지식이 많이 필요하고, 사전 지식이 많이 부족하면 입문하기 어려운 분야라고 생각하고 있습니다.

물론, 다른 분야 역시 많은 수학적 지식이 필요로 하지만 딥러닝을 공부하려는 입문자의 경우 이 책을 읽고 딥러닝 프레임워크를 선정하여 공부하다 보면 많은 도움이 될 거라고 생각합니다.

 

<본 글은 한빛미디어 측의 "나는 리뷰어다" 프로그램을 통해 무상으로 제공받아 작성한 글입니다.> 

 

KakaoTalk_20200320_151642037.jpg

 

 

내용

책의 내용은 전반적으로 옆에서 기초부터 하나하나 알려주려는 듯한 느낌을 잘 받습니다.

처음엔 주피터 노트북이나 아나콘다 프레임워크를 설치 & 사용하는 방법에 대해서 기술이 되어 있지 않아 인터넷을 찾아보는 수 밖에 없었습니다.

그러나 프레임워크 사용법을 알려주지 않는다고 포기해 버리면 개발자라고 할 수 없죠. 자바를 배운다고 해서 이클립스나 STS의 사용법을 책에 담지 않는 것 처럼. 도구를 사용하는 법은 누가 알려주는게 제일 빠르지만 기억에 제일 오래 남는 것은 스스로 익히는 것 이라 생각 합니다.

글이 좀 많습니다. 누군가를 이해 시킨다는게 참 어려운 일이니 설명이 길어 질 수 밖에 없을 것 같습니다.

그러나 그에 따른 코드들과 그림들이 함께 하고 있어 보는데 크게 지장은 없습니다.

챕터의 첫 장마다 목차가 기술되어 있어 책의 앞부분으로 다시 돌아가지 않고 어떤 내용을 배울지 간략하게 나마 알 수 있어서 좋습니다.

책에 등장하는 코드를 모두 외우려면 따로 정리를 해 두거나 반복적으로 보는 수 밖에 없을 것 같습니다.

마무리

일반 개발서적(C, JAVA, Python...)은 Hello World! 를 표시하는 코드를 작성 후 콘솔로 그 결과를 보는 것 부터 시작 합니다.

그런 개발 서적을 생각하고 읽게되면 무척 지루한 책이 될 수 있을 것 같습니다.

저도 처음 접하는 분야이니 만큼 한번 읽은 시점에서 이해가 되지 않을 뿐더러 무슨 말 인지도 모르겠습니다.

그러나 포기하지 않고 여러번 보다 보면 반드시 이해할 수 있다고 생각이 됩니다.

 

KakaoTalk_20200315_002703668.jpg

 


 


대학원에 진학하기 직전부터 데이터 분석에 대하여 끊임없는 인터넷 강의, 도서관책(빌린책)와 사서 본 책들은 정말 거의 거짓말치지 않고 수도 없이 많았습니다. 하지만 대학 이후로 직장을 다니면서 수학을 복습하거나 따로 집중하여 공부를 못하여서 데이터 분석 및 머신러닝,딥러닝에 대한 이해도가 많이 부족했습니다.

 

 

KakaoTalk_20200315_002705021.jpg

 

 

다행이도 이번에 한빛미디어에서 새로 출시한 그로킹 딥러닝 책을 리뷰어 이벤트를 통하여 읽어볼 수 있는 기회가 생겼습니다. 먼저 저는 밑바닥부터 시작하는 딥러닝 책으로 기초 개념을 다졌는데, 초심자의 입장에서는 쉽지 않은 책이였습니다. 하지만 그로킹 딥러닝 책은 친절한 예제와 비유를 통해 단계적으로 세심하게 빠른 이해를 도운 점이 차별점이라고 생각합니다.

 

 

 

KakaoTalk_20200315_002705392.jpg

 

 

 

전에 스탠포드 231n강좌를 듣고 컴퓨터 비전 및 간단한 딥러닝 개념들에 관하여 공부를 하였는데 이해가지 않는 부분이 한,두개가 아니였는데 그로킹 딥러닝 책을 읽고 이해가지 않았던 부분을 새롭게 다시 이해했습니다

 

또한 그림에 있는 RGB 채널에 대한 개념을 행렬로 쉽게 풀어 설명해주는 것이 기존에는 내가 생각해보지도 못했던 부분이라 아마 처음 딥러닝을 접하는 분들께 직관적인 이해를 하는데 도움이 될 것 같다는 생각이 듭니다.

 

총평을 정리하자면 여태까지 많은 한빛미디어에서 IT 전문서를 구매하여 읽어봤지만, 딥러닝에 관련 책을 하나 추천하라면 그로킹 딥러닝을 추천하고 싶습니다. 이유는 위에서 언급한것과 같이 탄탄한 구성내용과 그림을 통한 자세한 설명을 통해 초심자에게도 알맞는 책이기 때문입니다.

친절한 그림과 코드가 훌륭하다.

벌써 봄날씨가 가득합니다. 올해도 여김없이 서평단 기회를 가져다준 한빛미디어 관계자분들께 감사드립니다.

항상 많은 도움이 되는 리뷰가 되도록 노력하겠습니다.


오늘 책은 알기쉬운 비유와 기초 수학으로 시작하는 그로킹 딥러닝이라는 도서입니다. 

구글 딥마인트 리서치 사이언티스트인 앤드루 트라스크가 저술했고, 박상현 역자가 옮겼다. 인공신경망을 연구하는 저자로서 이번 도서 역시 제목에서 알수있듯이 딥러닝에 관한 도서이다. 딥러닝을 처음 접하는 입문자에게 필요한 이론 도서인 셈이다. 파이썬을 기본으로 코드가 구성되지만 코드의 양은 그렇게 많지 않다. 


2장은 머신러닝에 관련된 내용으로 파라미터릭 모델과 넌파라미터릭 모델 및 지도, 비지도 학습의 패러다임에 대해 소개한다. 딥러닝에 대해 본격적으로 공부하기 전 컴퓨터가 어떻게 학습하는지 알아보는 것이다. 3장부터 본격적인 순전파 신경망에 대해 알아본다. 결국 딥러닝의 최종목표는 예측이다. 미래에 어떤 일이 일어날지 과거의 데이터를 기반으로 확률적으로 알아보는 것이다. 이 때 여러 입력이 있을 수 있으며, 출력도 한 개 또는 그 이상일 수 있다. 이러한 다양한 문제를 모델로 구축하는 것이 딥러닝의 핵심이다. 


수포자도 이해할 수 있는 딥러닝 입문

이러한 확률을 계산하는데 있어 다양한 수학적 기법이 사용되는데 그 중 모델의 최소값, 즉 미분해서 0이 되는 지점을 찾기위해서는 경사하강법 등이 필요하다. 4장은 이러한 기법을 코드를 통해 살펴볼 수 있는데, 넘어가 5장에서 이를 좀 더 일반화시키고 있다. 


정규화와 함께 오버피팅의 원인등을 알아보는 8장,9장에서는 활성화 함수에 대해서도 알아보는데, 대표적인 sigmoid와 tanh의 차이와 함께 언제 무엇을 사용해야 하는지도 보여준다. 나아가 10장부터는 딥러닝의 대표적인 모델인 CNN과 RNN에 대해 살펴본다. RNN의 비중이 좀 더 많은 단어주머니 모델 및 임베딩 등의 내용을 다루며 연속적인 언어 모델링에서 딥러닝이 어떻게 사용되는지 알 수 있다. 


13장부터는 딥러닝 프레임워크에 대해 알아본다. 우리가 잘 알고 있는 텐서플로, 파이토치, 케라스 모두 딥러닝 프레임워크 중 하나이다. 결국 코드를 좀 더 간단하게 하여 딥러닝 구축을 손쉽고 빠르게 하며 성능도 높여주는 것이 목적이다. 복잡한 모델을 디버깅하거나 내부적인 동작을 좀 더 깊이 알고싶을 때 어떻게 사용되는지도 알 수 있다. 


처음에 이 책에서는 수포자도 이해할 수 있다고 했다. 결국 복잡한 수식이 나오지 않았다는 뜻인데, 실제로 수식을 거의 없애고 도식과 간단한 코드로 나타냈다. 이공계열을 전공하지 않았지만 딥러닝을 배워야하는 독자에게 필요한 책이다. 비유와 그림이 이 책의 내용을 잘 안내하고 있으며, 딥러닝, 머신러닝, 신경망 구현, 모델링 등에 대해 잘 설명하고 있으며 번역도 훌륭하게 이뤄진 도서이다. 많은 독자들에게 추천하는 바이다.

 

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 상품명 :
그로킹 딥러닝 : 알기 쉬운 비유와 기초 수학으로 시작하는
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
그로킹 딥러닝 : 알기 쉬운 비유와 기초 수학으로 시작하는
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
그로킹 딥러닝 : 알기 쉬운 비유와 기초 수학으로 시작하는
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실

최근 본 상품1