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

한빛출판네트워크

처음 시작하는 딥러닝

수학 이론과 알고리즘부터 CNN, RNN 구현까지 한 권으로 해결하기

한빛미디어

번역서

판매중

  • 저자 : 세스 와이드먼
  • 번역 : 심효섭
  • 출간 : 2020-08-20
  • 페이지 : 292 쪽
  • ISBN : 9791162243343
  • 물류코드 :10334
  • 초급 초중급 중급 중고급 고급
4.7점 (28명)
좋아요 : 8

수식 튼튼! 코드 탄탄! 내 손으로 만드는 딥러닝 모델 

 

2010년 신경망 기술이 딥러닝이라는 이름으로 부활하면서 머신러닝 실무자는 물론, 소프트웨어 엔지니어에게도 딥러닝은 필수 소양이 되었습니다. 이 책은 머신러닝을 처음 접하는 데이터 과학자와 소프트웨어 엔지니어에게 실용적인 정보를 제공합니다. 딥러닝의 기초부터 고급 신경망 구조까지 폭넓게 배우고, 딥러닝 모델을 직접 구현하며 빠르게 개념을 익혀봅니다. 

 

이 책은 먼저 그림으로 개념을 설명하고, 코드의 밑바탕이 되는 수학적 원리를 설명합니다. 그다음 파이썬 코드로 신경망을 구현하며 동작하는 방법을 이해해봅니다. 다층 신경망, 합성곱 신경망, 순환 신경망의 간단한 구조부터 복잡한 구조까지 확장해보며 딥러닝 프로젝트에 준비된 개발자로 성장할 수 있습니다. 

 

 

출판사 리뷰

 

신경망을 확실하게 이해할 수 있는 최고의 딥러닝 입문서

 

넘쳐나는 딥러닝 학습 자료 속에서 어떤 것부터 살펴봐야 할지 모르겠다고요? 대부분의 딥러닝 학습 자료는 크게 두 가지 유형으로 나뉩니다. 수많은 화살표로 나타낸 도표로 딥러닝의 개념을 설명하거나 혹은 빽빽한 코드로 학습 과정을 설명하고 결과를 확인합니다. 이런 유형의 학습 자료는 코드를 구성하는 수학적 원리와 신경망의 개념적 구조, 이들이 서로 동작하는 방법을 제대로 설명하지 못합니다. 이 책에서는 앞선 학습 자료의 맹점을 보완하기 위해 세 가지 관점(수식, 코드, 다이어그램)으로 개념을 설명합니다. 

 

먼저 신경망 개념에 사용하는 수식을 살펴보고, 이 연산 과정을 다이어그램으로 나타냅니다. 개념의 원리를 이해한 후, 파이썬으로 밑바닥부터 구현합니다. 간단한 딥러닝 모델부터 합성곱 신경망, 순환 신경망까지 구현해보고 이 신경망을 파이토치로 다시 한번 구현하며 프레임워크 사용법을 익힙니다. 이 책의 목표는 신경망에 대한 정확하고 확실한 이해입니다. 일단 이 책을 읽고 나면 신경망과 관련된 개념과 프로젝트를 한결 쉽게 이해하고 자신감 있게 응용할 수 있을 것입니다.

 

 

주요 내용

  • 신경망 이해에 필요한 명확한 멘탈 모델과 수학적 원리 설명
  • 객체지향으로 설계한 다층 신경망 프레임워크 구현 방법
  • 수식과 예제로 배우는 합성곱 신경망과 순환 신경망
  • 파이토치를 이용한 신경망 구현 방법

 

 

장별 요약

 

1장_신경망 기초 1

함수의 연산 과정을 다이어그램으로 이해하고, 미적분의 연쇄법칙으로 도함수를 구하는 방법을 알아봅니다. 

 

2장_신경망 기초 2

선형회귀와 신경망 모델을 적용해 데이터 집합에서 주택 가격의 추이를 예측하는 학습 모델을 구현합니다.

 

3장_밑바닥부터 만들어보는 딥러닝

Layer, Model, Optimizer와 같은 구성 요소를 만들고 이를 조합해 전체 딥러닝 모델을 구현합니다. 

 

4장_프레임워크 확장하기

신경망 모델의 성공 확률을 높이는 주요 학습 방법을 소개합니다.

 

5장_합성곱 신경망

이미지를 다루는 데 특화된 신경망인 합성곱 신경망(CNN)을 소개하고, 합성곱층을 직접 구현하며 동작 원리를 파악합니다.

 

6장_순환 신경망

자동 미분의 동작 과정을 살펴보고, 순환 신경망(RNN)에 이를 적용해봅니다. RNN의 변형 구조인 GRU와 LSTM도 함께 소개합니다.

 

7장_파이토치

1~6장까지 구현한 내용을 고성능 오픈소스 신경망 라이브러리인 파이토치로 구현합니다. 마지막으로 비지도 학습에서 신경망을 활용하는 방법을 간단히 살펴봅니다.

 

상세이미지_처음 시작하는 딥러닝_700.jpg

세스 와이드먼 저자

세스 와이드먼

여러 해 동안 머신러닝을 이용한 문제 해결과 머신러닝 강의를 했다. 개인 의류 맞춤 서비스로 유명한 트렁크 클럽(Trunk Club)에서 데이터 과학자로 근무하며 추천 시스템 개발 업무를 담당했다. 메티스(Metis)에서 데이터 과학과 머신러닝 부트캠프 프로그램을 진행하기도 했다. 현재 페이스북 인프라팀에서 머신러닝 모델을 구축한다. 복잡한 개념을 간단하게 설명하는 것을 좋아한다.

심효섭 역자

심효섭

연세대학교 문헌정보학과를 졸업하고 모교 중앙도서관과의 인연으로 도서관 솔루션 업체에서 일하면서 개발을 시작했다. 네이버에서 웹 서비스 개발 업무를 맡았으며, 웹 서비스 외에 머신러닝 공부도 꾸준히 하고 있다. 최근 관심사는 회사에 속하지 않고 지속 가능한 삶이다. 옮긴 책으로는 『돈 되는 파이썬 인공지능 프로그래밍』(위키북스, 2021), 『처음 시작하는 딥러닝』(한빛미디어, 2020), 『파이썬으로 시작하는 컴퓨터 과학 입문』(인사이트, 2017), 『도메인 주도 설계 철저 입문』(위키북스, 2020) 등이 있다.

 

chapter 1 신경망 기초 1

1.1 함수

1.2 도함수

1.3 합성함수

1.4 연쇄법칙

1.5 조금 더 복잡한 예제

1.6 입력이 두 개 이상인 함수의 합성함수

1.7 입력이 여러 개인 함수의 도함수

1.8 여러 개의 벡터 입력을 갖는 함수

1.9 기존 특징으로 새로운 특징 만들기

1.10 여러 개의 벡터 입력을 갖는 함수의 도함수

1.11 벡터 함수와 도함수

1.12 두 개의 2차원 행렬을 입력받는 계산 그래프

1.13 역방향 계산

1.14 마치며

 

chapter 2 신경망 기초 2

2.1 지도 학습

2.2 지도 학습 모델

2.3 선형회귀

2.4 모델 학습하기

2.5 학습 데이터와 테스트 데이터

2.6 모델 성능을 평가하는 코드

2.7 밑바닥부터 만드는 신경망

2.8 첫 번째 신경망 모델의 학습과 성능 평가

2.9 마치며

 

chapter 3 밑바닥부터 만들어보는 딥러닝

3.1 딥러닝 정의하기

3.2 신경망의 구성 요소: 연산

3.3 신경망의 구성 요소: 층

3.4 모델의 구성 요소 조립하기

3.5 NeuralNetwork 클래스와 그 외 클래스

3.6 딥러닝 구현하기

3.7 Optimizer와 Trainer 클래스

3.8 모든 구성 요소 조합하기

3.9 마치며

 

chapter 4 프레임워크 확장하기

4.1 신경망에 대한 직관

4.2 소프트맥스 교차 엔트로피 손실함수

4.3 실험 

4.4 모멘텀

4.5 학습률 감쇠

4.6 초기 가중치 설정

4.7 드롭아웃

4.8 마치며

 

chapter 5 합성곱 신경망

5.1 신경망과 표현 학습

5.2 합성곱층

5.3 다채널 합성곱 연산 구현하기

5.4 Conv2DOperation 연산으로 합성곱 신경망 학습하기

5.5 마치며

 

chapter 6 순환 신경망

6.1 근본적인 한계: 분기 처리하기

6.2 자동 미분

6.3 순환 신경망이 필요한 이유

6.4 순환 신경망이란

6.5 RNN 코드

6.6 마치며

 

chapter 7 파이토치

7.1 텐서

7.2 파이토치로 딥러닝 구현하기

7.3 합성곱 신경망 구현하기

7.4 오토인코더를 활용한 비지도 학습

7.5 마치며

 

부록 A 더 알아보기

A.1 행렬 미분의 연쇄법칙

A.2 편향 항에 대한 손실의 기울기

A.3 행렬곱으로 합성곱 구현하기

그러나, 3장 이후의 내용은 가혹하리만큼 배경 지식없이는 볼 수 없을 정도의 난이도가 높은 내용입니다. 아무래도 딥러닝에 대한 방대한 지식 영역을 300 페이지가 되지 않는 분량에 담아내기는 불가능할 것입니다. 하지만, 이 책을 읽기 전에 선행으로 알고 있어야 하는 지식이나, 책을 순탄하게 읽어 나가기 위한 지침 등의 내용이 없는 점은 좀 아쉬운 부분이라고 생각합니다.

확실히 딥러닝이라는 분야는 많은 관련 지식이 필요합니다. 선형 대수, 미분, 확률, 통계 등의 수학적 지식 뿐만 아니라 신경망에 대한 기본 개념과 이를 컴퓨터 사이언스에 적용해서 문제를 풀어내기 위한 최적화 과정에 발견하거나 고안해 낸 개념 등, 제대로 활용하기 위해서는 많은 공부와 경험이 필요한 분야라 확신합니다. 이 책이 세세한 내용은 담고 있지 않지만, 딥러닝 문제를 풀어내기 위한 큰 블럭 단위의 개념에 대해서 이해도를 높여주고, 통찰력을 줄 수 있는 책이라는 점은 동의할 수 있습니다.

책의 뒷부분은 이해력과 배경 지식의 부족이라는 한계 때문에 훑어 읽어가는 수 밖에 없었지만, 앞으로 좀 더 시간을 투자해서 구멍이 난 부분을 메꿔 가고 싶다는 생각을 했습니다. 반복해서 학습을 할수록 진가를 발휘할 것이라는 믿음을 줄 것이라 말할 수 있는 책입니다.

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

 

 

 

 

불과 몇 년 만에, 딥러닝을 모르는 사람이 없어진 시대가 도래했습니다. 한때 인공신경망 기법이 천시받던 시대가 존재했다는 것이 무색하게, 현재 딥러닝은 분야를 막론하고 많은 이들의 지대한 관심을 받고 있습니다. 

 

일정 수준 이상의 코딩 능력이 필요하다는 특징 때문에, 딥러닝에 관심을 가지는 개발자들이 굉장히 많아졌으며, 컴퓨터공학과의 학부과정에 딥러닝 전공 수업이 개설되기도 합니다. 일단 배워봐도 나쁠게 없다는 생각에, 접근하는 학생들도 많은데요. 문제는, 학습을 위한 콘텐츠가 굉장히 많지만, 어떻게 학습을 해야할지 감을 잡기 어렵다는 것입니다.

 

시중에는 이미 수많은 책이 존재합니다. 수학을 기반에 두고, 이론적 설명을 통해 딥러닝을 풀어가는 책, 수학이 일절 등장하지 않는다며 문과생도 할 수 있다는 식의 카피를 내걸고 있는 책, 머신러닝과 딥러닝을 동시에 다루고 있는 책, 일단 코드부터 따라 쳐보라는 책 등... 신경망과 딥러닝에 대해 기초부터 배워보려는 독자에게, 난감한 상황이 아닐 수 없습니다. 이러한 상황에서, 처음 시작하는 딥러닝은 분명 강력한 안내서입니다.

 

저자는 대량의 수식을 기반으로 한 이론서, 신경망의 학습 과정을 보여주는 코드 위주의 실습서의 특징을 한데 모은, 수학적 원리에 기반한 코드의 원리를 설명하는 책으로 본 도서를 설명합니다. 즉, 코드 슬쩍 돌려보고 끝나는 책이 아니며, 처음부터 끝까지 공식과 이론으로 점철된 책 역시 아닌 것입니다.

 

리뷰를 위해 본 도서를 보며 느낀 가장 중요한 점은, 독자 스스로 본인이 대상 독자에 해당하는지 점검해 볼 필요가 있다는 점입니다. 혹시 서점에 갈 기회가 있다면, 이를 위해 1장의 신경망 기초 1 파트를 잠시 살펴보시길 추천드립니다. 만약 없다면, 온라인 서점 사이트에서 제공되는 약 30페이지의 미리보기를 살펴보시기를 추천 드립니다.

책과 저자는 친절하지만, 딥러닝은 그리 친절하지 않습니다. Python으로 작성된 코드의 의미가 이해 되는지(최소한, 코드가 본문 내용을 기반으로 작성된 것이 추상적으로라도 이해가 되는지) 살펴보고, 수식과 다이어그램을 소화하는데 무리가 없는지 훑어보는 것을 추천 드립니다.

 

사실 기존에도 딥러닝 학습서를 학습한 경험이 있었지만, '처음 시작하는 딥러닝'은 조금 다른 점이 있었습니다. 저자의 코드에서 스스로 이론을 조합하여 직접 이해를 시도하는 것보다, 조금 더 친절한 설명을 통해 찬찬히 이해해볼 수 있는 기회가 주어진다는 점인데요. 하지만 이것은, 책의 콘텐츠가 결코 만만하지 않다는 의미이기도 합니다. 만약 딥러닝 학습에 앞선 약간의 기반 지식이 부족하다고 느껴지시는 분들은, 조금 더 실습을 통해 딥러닝을 체화시킬 수 있는 난이도의 교재를 함께 겸하는 것을 추천드립니다.   

 


본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2021> 프로그램의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.

3100.jpg

 

딥러닝 공부를 위해 관련 서적을 몇 권 읽었지만, 아직 딥러닝에 대한 이해와 기초가 부족하다는 개인적인 판단이다. 그래서 처음부터 다시 시작하고자 '처음 시작하는 딥러닝'이라는 책을 만났다.

 

이 책은 딥러닝에 대한 배경지식이 없는 소프트웨어 개발자를 위한 책이다. 딥러닝에 대한 전체적인 큰 그림을 제공하는 것이 이 책을 쓴 목적이었다고 저자는 얘기한다. 독자의 이해를 돕기 위해 먼저 다이어그램으로 개념을 설명한 후, 이를 수식으로 옮겨 보고(설명하는 개념에 따라 순서가 바뀌기도 한다.) 그 수식에 기초한 코드를 작성하는 방법으로 한 가지 개념을 설명한다. 이러한 절차로 설명된 이 책의 내용을 따라가다 보면 마지막에는 실제로 동작하는 간단한 딥러닝 프레임워크를 갖추게 된다. 4장은 다이어그램-수식-코드 모델의 설명이 아닌 직관을 사용해 각 기법을 소개하고 있다.

딥러닝을 처음 접하는 입문자와 업무에 활용하려는 현업 엔지니어에게 모두 적합한 책이라 할 수 있겠다. 이 책에서 사용된 예제 코드들은 신경망의 개념을 정확하고 확실하게 이해하기 위한 목적으로 쓰였고, 실제 사용되는 신경망 라이브러리를 구현하기 위한 목적은 아니다.

 

이 책은 총 7개의 Chaper로 나뉘어있는데, 1장은 신경망의 기초인 도함수를 구하는 방법, 행렬의 곱셈이 어떻게 활용되는지 알아본다. 2장은 선형회귀와 신경망 모델을 적용해 제1원칙 접근법을 통해 신경망의 동작 원리를 학습한다. 3장은 Layer, Model, Optimizer 등 추상화된 구성 요소를 만들고 이를 통해 전체 딥러닝 모델을 구성한다. 4장에서는 신경망이 쓸만한 해답을 구하는 과정을 돕는 주요 학습 과정을 소개한다. 5장은 합성곱 신경망(CNN), 6장은 순환 신경망(RNN)에 대해 다루고 있다. 마지막 7장은 앞장에서 학습한 내용을 파이토치를 통해 다시 구현하는 것으로 마무리 하고 있다.

 

딥러닝에 대한 설명이 쉽고 체계적으로 되어 있고, 명확한 멘탈 모델과 수학적 원리가 이해하기 쉽게 잘 설명되어 있다. 이론적인 내용 뿐 아니라 파이썬 코드로 구현을 통해 독자들이 이해하는데 많은 도움을 준다.

 

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

 

#처음시작하는딥러닝 #수학이론 #알고리즘 #신경망 #세스와이드먼 #한빛미디어

KakaoTalk_20210817_095754775.jpg

 

이 책의  구성은 총 7개 장으로 되어 있습니다.

 

1장 신경망 기초 1

2장 신경망 기초 2

3장 밑바닥부터 만들어보는 딥러닝

4장 프레임워크 확장하기

5장 합성곱 신경망

6장 순환 신경망

7장 파이토치

 

===========================================================================================

1장 신경망 기초 1입니다. 이번 장에서는 신경망의 동작 원리를 이해하는데 필요한 기초적인 멘탈 모델을 주로 설명하고 있습니다. 합성함수와 합성함수의 도함수를 주로 다루고 있습니다. 


이 책은 수식, 코드, 다이어그램 이 세가지 관점에서 설명을 합니다.


신경망을 공부하기 위하여 각 개념에 대해서 설명을 하고 있습니다. 함수는 무엇인지 부터 시작하고 있습니다. 


수식에 대해 간단하게 설명하고 이어 다이어그램을 통한 함수를 표현하는 방법을 설명합니다. 이 부분이 다른 책하고 차별화가 되는 듯 합니다. 막연하게 수식만으로 설명을 하게되면 어렵고 지루할 수 있는데 이 책은 수식을 풀어 다이어그램을 보여 줌으로써 흥미를 유발합니다. 그리고 코드를 보여줍니다.  간단한 실행 가능한 코드를 보여주고 왜 이렇게 동작하게 되는지도 어렵지 않게 설명해줍니다. 이러한 방식으로 이 책은 처음부터 끝까지 이어집니다.


다음으로 도함수입니다. 도함수는 딥러닝을 이해하는 데 반드시 필요하고 중요한 함수라고 합니다. 중요한 도함수에 대하여 수식, 다이어그램을 통하여 수식을 적용한 풀이를 설명하고 실행 가능한 코드를 통하여 학습을 마무리합니다.


그리고 합성함수는 신경망을 이해하기 위한 기본적인 개념이라고 합니다. 합성함수 설명을 위한 다이어그램과 수식 실행 가능한 코드를 통하여 학습을 마무리 합니다.


딥러닝 모델을 학습하기 위한 연쇄법칙과 조금더 복잡하고 어려운 예제를 보여주고 다양한 방법으로 쉽게 이해 할 수 있도록 설명해 주고 있습니다. 


이번장을 유심히 읽어 보고나면 복잡한 합성함수의 동작 원리를 이해하는데 무리가 없을 듯 하다. 다양한 다이어그램을 통하여 코드 설명이 아닌 부분도 확실히 이해하기 좋았다.



===========================================================================================

2장 신경망 기초 2입니다. 이번 장에서는 1장에서 배운 개념으로 실제 문제를 어떻게 해석할 수 있는 알아보는 장입니다.


1. 이전 장에서 배운 개념으로 선형회귀를 표현해본다.

2. 도함수와 연쇄법칙으로 선형회귀 모형을 학습하는 방법

3. 개인 신경망 모델로 확장하는 방법

에 대하여 설명합니다.


지도학습은 데이터의 속성 간의 관계를 반결하는 것으로 이를 구체화하면 특징을 숫자로 나타내고 이를 학습해서 목표 속성의 관계를 발견하게 된다.


지도 학습 모델의 개념을 설명한다. 그리고 이 모델의 실체가 바로 수학적 합성함수인 것이다.


이제 선형회귀를 통하여 모델을 구축하는 방법에 대하여 설명한다. 다이어그램으로 선형회귀를 나타내어 설명한다. 코드로 선형회귀를 살펴보고 마무리하고 있다. 


학습한 모델이 데이터 간의 관계를 제대로 포착하는지 알아보기 위한 개념과 용어에 대한 설명 충실하다. 


그리고 모델 성능을 평가하는 코드와 다양한 분석 그래프도 보여준다.


이번장은 비교적 간단한 모델을 정의하고 학습시키는 과정을 배우게 되었다.


===========================================================================================

3장  이번 장에서는 일반적으로 볼 수 있는 딥러닝 모델에 대한 설명을 합니다. 딥러닝 모델에 대하여 정의하고, 신경망의 구성 요소 중 연산에 대한 설명하고 연산을 위한 다이어그램과 코드를 활용한 설명으로 이해하기 쉽다.


다음으로 신경망의 구성 요소의 층에 대한 설명과 뇌와 신경망 모델의 유사점에 대하여 설명하고 모델의 구성 요소를 조립하는 방법에 대하여 학습하게 된다. 좀더 상세한 클래스 설계방법과 밀집층 구현하기와 다양한 클래스에 대하여 알 수 있다.


이어 딥러닝 구현하기다 이 장에서는 배치 학습에 대한 내용과 함께 다양한 클래스에 대하여 학습하고 이해할 수 있도록 하고 있다.


===========================================================================================

4장 이번 장에서는 신경망 모델 학습에서 가장 널리 사용되는 기법을 소개하고 있다. 신경망에 대한 직관 즉 가중치를 이해하고 소프트맥스 교차 엔트로피 손실함수에 대하여 이야기한다. 


다음으로 실험이라는 장에서는 손실함수가 널리 사용되는 이유에 대하여 알수 있다. 이때 전처리, 모델, 실험을 통하여 설명한다.


이어 모멘텀에 대하여 설명한 후 직관적으로 이해하기 쉽게 모멘텀을 구현하고 경사 하강법을 통한 실험을 해본다. 이외에 다양한 실험 기법을 소개하고 이해하기 쉽게 설명해 준다.


===========================================================================================

5장 이번 장에서는 합성곱 신경망이라는 주재로 이야기를 한다. 신경망과 표현 학습에 대하여 설명한 후 합성곱층에 구현에 필요한 정보와 전결합층과 합성곱층의 차이가 무엇인지 이미지를 통하여 쉽게 설명해 준다.


그리고 다채널 합성공 연산을 구현하기 위한 다양한 계산법에 대하여 설명한다. 다양한 예제를 보여준다.


합성곱 신경망이 무엇인지 알게 되고 다양한 예제를 통한 이해도를 높여 주고 있어 합성곱 신경망을  응용하거나 배울 때 도움이 될 듯 하다.


===========================================================================================

6장 이번 장에서는 연속열 데이터를 다루데는 특화된 신경망인 순환 신경망에 대하여 설명한다.


분기처리, 자동 미분, 필요한 이유에 대해서 각 코드와 예시를 통하여 이해도를 높이고자 하고 있다.


순환 신경망이 무엇인지도 쉽게 설명한다. 순환 신경망의 각 클래스와 함께 계산법을 다양한 이미지를 통하여 설명해준다.


이번 장을 통하여 순환 신경망의 층 구조가 어떤 식으로 계산이 되는지 층의 내부 상태를 알 수 있게 된다.


===========================================================================================

7장 이번장에서는 실제 문제를 통하여 문제 해결을 해보는 장이다.


파이토치를 소개하는 장이기도 하다. 파이토의 핵심인 텐서에 대하여 설명한다. 


그리고 파이토치를 이용하여 딥러닝을 구현하는 방법에 대하여 설명하는데 구성요소는 어떻게 이루어져 있는지 설명하고 클래스에 대하여 설명한다.


다양한 모델과 클래스를 만들어 보는것으로 이해도를 높이고자 하고 있다.


마지막으로 비지도 학습에 대하여 설명하고 마무리가 된다.


====================================================================
 

이렇게 다양한 딥러닝 구조의 동작 원리와 함께 고성능 프레임워크로 구현하는 방법까지 다양한 예제를 통하여 학습해 보았다.


이제는 독자 개개인이 더 많은 연습을 하여 모든 내용을 자신의 것으로 만드는 일만 남은 듯 하다.


이번 책을 통하여 막연하게 느껴졌던 딥러닝 모델과 다양한 지식을 통하여 인공지능을 위한 딥러닝 모델을 아주 많이 알게 된 듯 하다. 이 책을 한번만 보는 것이 아닌 곁에 두고 필요할때 마다 자주 들여다 보아야겠다.

 

 

이책은 설명 방식이 독특하다. 

수학 이론과 알고리즘부터 CNN(합성곱 신경망, Convolution Neutral, Network), RNN(순환신경망, Recurrent Neural Network) 모델 구현까지 한권으로 해결하기 안성맞춤이다.

첫번째로 수식 형태로 설명한다. 

두번째로 다이아그램을 통해 코팅 인터뷰에서  사용할 법한 다이아그램으로 구조나 과정을 설명한다.

세번째로 코드를 통해 가능한 간단한 문법만 사용해(파이썬이 이상적) 설명한다.

 

이 책을 우리가 편하게 읽을 수 있게 옮긴 심효섭님은 도서관 솔루션 업체에서 개발을 시작으로 네이버레서 웹 서비스 개발 업무를 맡았으며, 웹 서비스 외에 머신러닝 공부도 꾸준히 하고 있다. 최근 관심사는 회사에 속하지 않고도 지속 가능한 삶이다.

 

주요 내용
● 신경망 이해에 필요한 명확한 멘탈 모델과 수학적 원리 설명
● 객체지향으로 설계한 다층 신경망 프레임워크 구현 방법
● 수식과 예제로 배우는 합성곱 신경망과 순환 신경망
● 파이토치를 이용한 신경망 구현 방법

1장과 2장은 신경망 기초에 다루며, 함수의 연산 과정을 다이어그램으로 이해하고, 미적분의 연쇄법칙으로 도함수를 구하는 방법을 알아본다. 선형회귀와 신경망 모델을 적용해 데이터 집합에서 주택 가격의 추이를 예측하는 학습 모델을 구현한다.
3장은 밑바닥부터 만들어보는 딥러닝으로,  Layer, Model, Optimizer와 같은 구성 요소를 만들고 이를 조합해 전체 딥러닝 모델을 구현한다.  4장은 프레임워크 확장하기를 통해 신경망 모델의 성공 확률을 높이는 주요 학습 방법을 소개한다. 
5장은 합성곱 신경망으로, 이미지를 다루는 데 특화된 신경망인 합성곱 신경망(CNN)을 소개하고, 합성곱층을 직접 구현하며 동작 원리를 파악한다. 6장은 순환 신경망으로, 자동 미분의 동작 과정을 살펴보고, 순환 신경망(RNN)에 이를 적용해 본다. RNN의 변형 구조인 GRU와 LSTM도 함께 소개합한다. 7장은 파이토치로, 1~6장까지 구현한 내용을 고성능 오픈소스 신경망 라이브러리인 파이토치로 구현한다. 마지막으로 비지도 학습에서 신경망을 활용하는 방법을 간단히 살펴본다.

 

 

처음 시작하는 딥러닝 서평맵 

한장의 맵으로 정리하였다.  서평맵은 독서 스터디맵으로 상세내용을 요약하여 >> 모양을 누르면 상세 내용이 나오고 한번더 누르면 요약된 내용이 표시된다. 서평맵의 목적은 이책을 누가,왜, 이떤 특징이 있는지 알아보는 요약본이자, 나만의 데이터 댐이다. 

추천하는 분의 멘트 대로, 이책은 딥러닝 배경지식이 없더라도 이책을 읽기만 하면 자연스럽게 신경망을 이해하고 구현할 수 있을 것이다.

 

 

처음 시작하는 딥러닝 서평맵 (by 류용효)



출처: https://plmis.tistory.com/1253 [맵으로 풀어가는 디지털혁신스토리텔링]

 



[주요 내용]

- 신경망 이해에 필요한 명확한 멘탈 모델과 수학적 원리 설명

- 객체지향으로 설계한 다층 신경망 프레임워크 구현 방법

- 수식과 예제로 배우는 합성곱 신경망과 순환 신경망

- 파이토치를 이용한 신경망 구현 방법


[대상독자]

- 딥러닝에 대한 배경지식이 없는 소프트웨어 개발자

- 딥러닝 입문자와 업무에 활용하려는 현업 엔지니어


[책의 구성]


1장_신경망 기초 1

함수를 표현하기 위해 일련의 연산으로 이루어진 계산 그래프를 구성하는 방법을 설명하고, 그다음 미적분의 연쇄법칙을 이용해 이 표현 방법에서 해당 함수의 특정 입력에 대한 도함수를 구하는 방법에 대해서 다룹니다. 행렬의 곱셈을 설명하고 함수의 도함수를 구하는데 행렬의 곱셈이 어떻게 활용되는지 그리고 딥러닝에서 어떤 역할을 하는지를 다루고 있습니다.


2장_신경망 기초 2

선형회귀와 신경망 모델을 적용해 데이터 집합에서 주택 가격의 추이를 예측하는 학습 모델을 구현합니다.


3장_밑바닥부터 만들어보는 딥러닝

Layer, Model, Optimizer와 같은 구성 요소를 만들고 이를 조합해 전체 딥러닝 모델을 구현합니다.


4장_프레임워크 확장하기

신경망 모델의 성공 확률을 높이는 주요 학습 방법을 소개합니다.


5장_합성곱 신경망

이미지를 다루는 데 특화된 신경망인 합성곱 신경망(CNN)을 소개하고, 합성곱층을 직접 구현하며 동작 원리를 파악합니다.


6장_순환 신경망

자동 미분의 동작 과정을 살펴보고, 순환 신경망(RNN)에 이를 적용해봅니다. RNN의 변형 구조인 GRU와 LSTM도 함께 소개합니다.


7장_파이토치

1~6장까지 구현한 내용을 고성능 오픈소스 신경망 라이브러리인 파이토치로 구현합니다. 프레임워크 사용 방법을 익히는 것 또한 딥러닝 학습에서 빼놓을 수없습니다. 그러나 신경망의 동작 원리에 대한 확실한 이해 없이 무턱대고 프레임워크 사용 방법부터 익히게 되면 장기적인 관점에서 프레임워크에 대한 활용도가 역시 크게 제한이 될것입니다. 그래서 이책에서는 파이토치를 소개하기 전까지의 내용으로 신경망을 확실히 이해하고, 파이토치 사용법을 소개하며 매우 효율적인 신경망 구현 능력을 익힐수 있을 것입니다.


[서평]

이 책의 구성을 말 하자면 크게 세부분으로 나눌수 있습니다. 전반부 1~4장은 기본적인 신경망 내용을 다룹니다. 합성함수의 도함수를 구하는 과정부터 역전파 알고리즘을 유도하는 과정까지 쉽게 설명하고 있습니다. 특히 역전파 알고리즘이 어렵게 생각하는 독자라면 많은 도움이 될것입니다. 후반부는 합성곱 신경망과 순환 신경망이 중심인 고급 신경망 구조를 다루고 있습니다. 고급 신경망 구조를 간단한 사례부터 복잡한 사례로 확장하면서 어렵지 않게 구현할 수 있도록 설명하고 있습니다. 마지막으로 가장 널리 쓰이는 딥러닝 라이브러리인 파이토치를 소개하며 책에서 배운 내용을 파이토치 라이브러리로 마이그레이션하면서 구현합니다. 딥러닝을 처음 시작할때 어려운 알고리즘에 대해서 좀더 쉽게 설명하고 있어 딥러닝 기초 개념에 대해서 공부 하기에 좋은 책으로 추천 드립니다.

 

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



"처음 시작하는 딥러닝"


# 책소개

빠르게 발전하는 이 분야에서 수학이론과과 알고리즘을 함께 설명하면서 기초를 다지기 위한 기본서이다.

이론의 기본이 되는 수학공식을 얘기하고 그에 맞는 다이어그램을 통해 1차 이해를 도우며 간단한 코드를 구현함으로써 2차 이해를 돕는 방식으로 기술되어 있다.

코드는 파이썬 개면으로 넘파이등을 이용하여 행렬곱, 다차원행렬, 방정식 등의 내용을 하나씩 구현하고 있으며 딥러닝 내부가 어떤 방법으로 수행되는지를 이해할 수 있게 핵심 코드만을 기술하고 있다.


 

1장은 딥러닝의 기본적인 개념을 다루고 그 이후 점점 확대해서 신경망 개념을 설명하고 있으며 파이토치로 딥러닝을 간단하게 구현하고 있다.

기본 개념서이므로 파이토치에 대한 상세한 내용은 제외되어 있으므로 더 자세히 파이토치를 공부하기 위해선 별도의 전문서를 봐야 한다.


 

# 총평이라 하기엔 민망한 느낌점

내 입장에서는 20년 넘게 수학을 접하지 않고 개발자로 관리자로 지내면서 몇몇 딥러닝 동영상을 찾아보고 개념만을 이해한 상태에서 접한 이 책은 조금 어려웠다.

행렬곱, 미적분 개념, 도함수, 다차원행렬의 수식은 너무 어려운 머리 아픈 그림이나 다름 없었다.

이 책도 수학, 공식에 기초를 맞춘 책이므로 처음 읽을 때는 너무 어려웠다.

하지만 딥러닝의 기본은 수학이니까 천천히 하나 하나 곱씹으며 읽어 갔다.

수식은 그냥 눈으로 보고 알고리즘과 구현코드로 이해하면서 읽을 수 있었다.

※ 딥러닝을 제대로 공부하는 분들은 수식도 내용도 모두 이해 하시겠지만 개발자인 분이 보신다면

알고리즘과 코드 위주로 이해하시면 더 편할 거라 생각된다.

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



저자: 세스 와이드먼

얘 비둘기인줄 알았는데..

꿩이란닼ㅋㅋㅋ

 

 

#책소개

 

수식 튼튼! 코드 탄탄! 내 손으로 만드는 딥러닝 모델

2010년 신경망 기술이 딥러닝이라는 이름으로 부활하면서 머신러닝 실무자는 물론, 소프트웨어 엔지니어에게도 딥러닝은 필수 소양이 되었다. 머신러닝을 처음 접하는 데이터 과학자와 소프트웨어 엔지니어에게 실용적인 정보를 제공한다. 딥러닝의 기초부터 고급 신경망 구조까지 폭넓게 배우고, 딥러닝 모델을 직접 구현하며 빠르게 개념을 익혀보자. 먼저 그림으로 개념을 설명하고, 코드의 밑바탕이 되는 수학적 원리를 설명한다. 그다음 파이썬 코드로 신경망을 구현하며 동작하는 방법을 이해한다. 다층 신경망, 합성곱 신경망, 순환 신경망의 간단한 구조부터 복잡한 구조까지 확장해보며 딥러닝 프로젝트에 준비된 개발자로 성장할 수 있다.

라고 YES24가 소개하더이다.

 


 

 

# 이 책의 특징

 

1. 완벽한 기승전결

딥러닝이 무엇인지 ,왜 사용하는지부터 프레임워크, 파이토치의 사용까지

처음 접하더라도 이 책을 충실히 본다면 딥러닝이 무엇인지에 대한 감이 올 수 있게 구성해놓았다.

책 여러 권을 읽는 것도 좋지만 처음 접하는 학습자에겐 이 책을 추천한다.

나는 다 까먹어서 이 책으로 한다.

 

2. 책의 확장성

솔직히 내가 처음 배울 때는 구글링이 전부였다.

단편적으로 내가 딥러닝을 배웠다면 이 친구는 책을 읽고나서 내가 무엇을 다음에 해야할 지 알려준다.

내가 이전에 배운 딥러닝이란 문제해결을 위해 배웠다면 이 책은 딥러닝 자체를 배운다고할까?

해당 문제에 대해서 딥러닝으로 해야지 하고 접근하는 것이 아니라

딥러닝이 이것인데 무엇을 적용할 수 있을까? 라는 개념을 장착하게 된다.

 

 

 

 


 

#후기

 

솔직히 나 반년동안 딥러닝 다 까먹었다.

파이토치?, 텐서플로우? 다 까먹었다. 

이 책으로 다시 뇌 어딘가에 잠들어 있는 기억들을 깨어보려했으나

가물가물하다. 이것은 다 내 배움이 얕은 탓이다. 

이 책으로 개념부터 잘근잘근 씹어먹어보려고한다.

이 책이 현 시점 내게 온 것은 운명이 아닐까?

잘근 잘근 씹어먹어보겠다.

 

 

 


 

 

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

 

 


서평 및 발제

인공지능 헬스케어 과정을 공부할 계획이다. 예전에는 인공지능 딥러닝을 컴퓨터 공학 관점에서 보려고 했었지만, 진로를 약간 특허어 바이오 관점에서 인공지능을 활용할 계획이다. 대학때부터 코딩을 해오던 사람들과 차별성을 두기 위한 약간의 전략이랄까? 

 

바이오 전공인 나로서는 어찌보면 적합한 선택이라고 할 수 있다. 이와 비슷하게 많이 주목을 받아온 분야는 생물정보학(Bioinformatics) 분야이다. 이 분야는 인간의 유전체 정보를 분석하여 질병과의 연관성을 보고, 다양한 변이정보를 찾아보면서 유전질환, 희귀성 질환, 암 등을 예측하는데 활용할 수 있다. 하지만 이 분야도 이미 우리나라에선 약 20년 가량 발전해왔고, 이 분야의 역사에 대해서는 브런치 초기글에 정리를 해본바 있다.

 

바이오 관점에서 인공지능을 공부한다는 이야기는 생물정보학과는 또 다른 관점이다. 이 분야는 인간의 유전체 정보에 국한되지 않고 (포함할 수 도 있다), 여러가지 바이오 빅데이터를 활용하여 헬스케어 정보로 활용한다는 의미이다. 디지털 헬스케어, 디지털 치료제, 메타버스, 원격 의료 등이 이 분야에 해당 될 수 있다.

 

해당 분야를 깊이 있게 공부하기 위해서 이번 가을학기부터 본격적으로 시작을 한다. 언제 끝날지 모를 긴 과정이지만 잘 수료하고, 의미있는 졸업 논문을 한편 쓰고 싶다.

 

해당 분야에 필요한 기본 도서로 오늘 이 책을 간략하게 소개하고자 한다.

 

 

차례 및 요약

1장_신경망 기초 1

함수의 연산 과정을 다이어그램으로 이해하고, 미적분의 연쇄법칙으로 도함수를 구하는 방법을 알아봅니다.

2장_신경망 기초 2

선형회귀와 신경망 모델을 적용해 데이터 집합에서 주택 가격의 추이를 예측하는 학습 모델을 구현합니다.

3장_밑바닥부터 만들어보는 딥러닝

Layer, Model, Optimizer와 같은 구성 요소를 만들고 이를 조합해 전체 딥러닝 모델을 구현합니다.

4장_프레임워크 확장하기

신경망 모델의 성공 확률을 높이는 주요 학습 방법을 소개합니다.

5장_합성곱 신경망

이미지를 다루는 데 특화된 신경망인 합성곱 신경망(CNN)을 소개하고, 합성곱층을 직접 구현하며 동작 원리를 파악합니다.

6장_순환 신경망

자동 미분의 동작 과정을 살펴보고, 순환 신경망(RNN)에 이를 적용해봅니다. RNN의 변형 구조인 GRU와 LSTM도 함께 소개합니다.

7장_파이토치

 

차례 및 요약

인공지능을 이해하기 위해서 필요한 수학에 관한 이론을 설명하고, 함수를 다이어그램으로 시각화해서 설명해준다.

 

 

그리고 해당 함수를 활용하는 코드에 대한 예시를 볼 수 있고, 이에 해당하는 예제 코드를 활용하여 실습을 해볼 수 있고, 깃허브에 소스도 정리되어 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

다양한 예제들에 대해서도 실습해볼 수 있어서 처음 인공지능을 시작하는 사람들에게 이론부터 실습 예제와 이해를 할 수 있는 좋은 책이라고 말할 수 있다.


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

수식-다이어그램-코드

3단계로 이해하고 복잡한 수식을 간략화 하여 프로래밍을 하는 구성으로 딥러닝을 처음 접하는 사람도 쉽게 이해되는 구조이다.

책 두께는 얇지만, 결코 내용은 얇거나 가볍지만은 않은책이다.

처음 접하는 사람에겐 어느정도의 끈기가 필요할듯하지만,

어느정도 개발 경험이 있다면 1,2장은 쉽게 하지만, 몇몇부분은 심도있게 공부할수 있다.

인공지능이 화두다 되다 보니 시중엔 여러 딥러닝 도서가 등장한다. 물론 그와중에도 굳건히 명맥을 이어가는 밑시딥 시리즈나 모두의 딥러닝 같은 도서들도 있지만, 이에 질세라 여러 새로운 도서들이 우후죽순 쏟아나오는 시기이기도 하다. 이번에 읽은 <처음시작하는 딥러닝>도 이런 흐름에 맞춰 나온 책이라 예상되는데, 기존의 책과 어떤점이 다르며, 어떤 부분에서 강조를 하였고, 무엇이 장점인지를 살펴보면서 책을 읽어보겠다.

 

 

1. 딥러닝의 기본은 수학, 공식에 기초를 맞춘 책

 

이 책에 가장 눈에띄는 점이라면 자세히 설명한 이론이라고 생각한다. 아무래도 인공지능이 인기있고, 비전공자들 사이에서도 관심을 끌다보니 최근 비전공자도 이해하기 쉬운 인공지능 또는 실생활 프로젝트와 접목시킨 도서들이 많이 나오는데, 이 책은 그런 흐름과는 상관없이 이론을 자세히 설명하려는게 눈에 띈다. 

 

물론 최대한 쉽게 풀이해서 설명하곤 있지만, 수학적인 내용을 허투루 버리지 않고, 가감없이 거의 다 집어넣으려는 모습을 보여주고 있는게 무척 눈에 띈다. 그렇기에 어느정도의 수학적인 베이스가 요구되고 이해하는데 많은 시간이 소모되지만, 탄탄한 이론을 뒷받침하고 있어 모델에 대한 이해도는 확실히 높을 수 있다는 장점이 크게 느껴졌다.

 

2. 이론, 공식, 구현 3박자의 어우러짐

 

또한 코드를 만드는 것도 앞서 설명한 이론과 공식을 바탕으로 하고 있다. 행렬이나 방정식 등의 내용을 변수와 연산자를 활용해 하나씩 구현하면서 시험해보도록 하면서 인공지능 내부가 어떤식으로 동작하는지를 이해하는 모습을 보여주고 있었다. 물론 기존에 잘 만들어진 모델을 라이브러리에 쓴 그대로 들고와서 활용하는 방법도 있겠지만, 이 책은 좀 더 근본적인 인공지능의 흐름을 탐구하는 부분이 무척 많았다고 느껴진다.

 

​개인적으로는 공식을 이해하기 어려워 특정 모델에 대해서도 완전히 알고있다는 느낌이 적었는데, 공식에 대한 이해를 코드로 구현하는 걸 보고 나니 각 모델이 어떤식으로 동작하는지 이해하기도 좋았고, 그 덕에 이후에 그 모델이 어떨때 필요한지도 일일이 검색하지 않고도 어느정도 머릿속으로 정리할 수 있어 좋았다는 부분이 많았다. 배우는 것은 힘들지만, 그만큼 남는것이 많았다는 얘기다.

 

3. 총평

 

사실 책 자체의 난이도는 다소 있는 편이라 완전 노베이스의 사람이 집기에는 어느정도 힘들다는 생각이 든다. 하지만 인공지능을 전공으로 막 들어왔고, 수학에 대한 끈기와 자신감이 어느정도 있으며, 나는 인공지능이 어떻게 움직이는지를 직접 알고싶다하는 분한테는 더없을 최적의 선택이란 생각이 든다. 처음 시작하는 딥러닝을 공식부터 베이스를 꽉꽉 채울수 있는 책은 이만한게 없다고 느껴지기에 만약 위 사항에 해당되는 분이라면 한번 읽어보시기를 추천드리고 싶다.

 

오늘 리뷰할 책은 한빛미디어 뜨끈뜨끈한 신작 '처음 시작하는 딥러닝'입니다.

수학 이론과 알고리즘부터 CNN, RNN 구현까지 한 권으로 해결할 수 있다고 합니다.

현재 재직중인 회사에서 딥러닝 관련 사업을 키워가는 중이라 관심이 있어 읽어보기로 하였습니다!

 

 

신경망 기초부터 나오고, 여러 예제의 수식과 다이어그램, 코드 순으로 구성되어있네요!

 

 

수식, 코드는 이런식으로 나와있습니다. 초보자의 입장에선 코드 전 수식부터 알려줘서 좋았습니다. 

언어는 파이썬을 사용하고 있습니다.

 

 

정말 이 한권만 읽어서 딥러닝을 깊게 알긴 어렵겠지만,

빠르게 훑어보고싶다하는 분들이 읽으면 좋을 것 같습니다~

 

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

IMG_2168.jpg

 

본 리뷰는 한빛미디어 주최의 나는 리뷰어다 이벤트의 진행 지원을 받아 작성합니다.

 

저는 한빛미디어의 "믿바닥부터 시작하는 딥러닝" 1, 2 와

인사이트 출판사의 "밑바닥부터 시작하는 데이터 과학" 책의 도움을 많이 받고 있습니다.

 

현재, ML, AI 개발분야는 Tensorflow, Pytorch 등 프레임워크의 도움을 받아 알고리즘과 모델링에 집중할 수 있는 환경입니다.

 

하지만 알고리즘의 원리를 모르고 프레임워크들이 제공하는 특혜 중 하나인 자동미분 기능과 같이 프레임워크의 도움만 받으면 

언제나 프레임워크가 제공하는 기능 안에서만 가능한 부분을 만들 뿐이라고 생각하고 있습니다.

 

그래서 알고리즘을 이루는, 프레임워크를 구성하는 

핵심 원리를 항상 이해하려고 노력합니다.

 

이는 수식을 이해하는 것도, 코딩으로 구현해보는 것도, 

자신만의 도식으로 재구성하는 것도 어떻게든 스스로의 이해를 높이기위해 여러가지 접근을 해보고 결국 이해하는 것이 목적인 것 입니다.

 

앞서 예를 들었던 "밑바닥부터" 책들도 최대한 "밑바닥부터" 한발한발 단계를 나아가며 이론적인 설명과 구현코드를 제공하면서 독자를 이해시키기위한 장치들이 있습니다.

 

"처음 시작하는 딥러닝" 도 마찬가지 입니다.

이 책은 저자가 독자들에게 핵심원리를 이해시키기위해 고심한 접근방식들을 모두 쏟아낸 느낌입니다.

 

수식/코드/다이어그램을 모두 제공하면서 각 절차를  하나씩 상세히 짚어 나갑니다.

 

마치, 밑바닥부터 시작하는 딥러닝 1, 2권을 한 곳에  모아놓은 느낌입니다.

 

chapter 1장의 첫 구절에서 저의 바램을 잘 나타내고있어 인용을 하면서 리뷰를 마칩니다.

 

"수식을 외우지 말라. 개념만 제대로 이해하면 나만의 수식을 만들 수 있다. - 존 로크런 - "

딥러닝은 무엇일까요?


영어로는 deep learning으로 씁니다.


심층학습으로 볼 수 있습니다.


사람의 사고방식을 컴퓨터에 가르치는 기계학습의 한 분야입니다.


데이터 과학자, 머신러닝 실무자, 소프트웨어 엔지니어에게 딥러닝은 필수과목이 됐습니다.


딥러닝 공부는 어디서부터 해야 될지 모르는 분들에게 좋은 책이 나왔습니다.


책 제목은 ‘처음 시작하는 딥러닝’입니다.


이 책을 통해 딥러닝 기초부터 고급 신경망 구조까지 배울 수 있습니다.


책 내용은 그림 설명이 있어서 개념 익히기에 좋습니다.


딥러닝을 알려줄 때 수학적 원리도 같이 알려줍니다.


딥러닝의 코드는 수학적 원리가 밑바탕이기 때문입니다.


 

deep1.jpeg

 

 

 

◆ 딥러닝 학습

딥러닝 모델 학습은 어떻게 할까요?


학습 데이터와 테스트 데이터가 있어야 합니다.


학습 데이터로 딥러닝을 학습시킵니다.


다음에 테스트 데이터를 넣어 정확도를 확인할 수 있습니다.


정확도가 높을수록 오류율은 낮아집니다.


또한 모델 성능을 평가하는 코드도 있어서 성능평가도 가능합니다.

딥러닝에는 중요한 개념 중 도함수가 있습니다.


도함수는 함수 형태의 식이라 생각하시면 됩니다.


 

deep2.jpeg

 

 

 

◆ 처음시작하는 분에게 추천

처음 시작하는 분들에게 이 책을 추천합니다.


AI가 급부상하면서 딥러닝도 같이 떠올랐습니다.


그림으로 개념을 설명해줍니다.


그 후에 개념을 바탕으로 수식으로 구현합니다.


마지막으로 수식을 코드로 전환하는 형태로 배우게 됩니다.


딥러닝에 대한 기본 개념이 있어야 자신감을 가질 수 있습니다.


수학에 대한 지식도 있으면 도움 될 겁니다.


오픈소스 신경망 라이브러리인 파이토치도 써 보실 수 있습니다.


 

deep3.png

 

 

 

끝으로 신경망 기초부터 파이토치 사용법을 익히는 시간이 되셨을 겁니다.


처음 시작할 때 이 책으로 딥러닝을 배우시면 모델 이해에 도움 될 것입니다.


프로그래밍 언어는 파이썬을 알고 있어야 쉽게 다가갈 수 있습니다.


수학적인 지식도 필요하므로 수학 원리를 살펴보는 것도 좋습니다.


코로나로 모두들 힘드실 겁니다.


힘든 상황 속에서도 공부를 해서 지식을 얻어가시길 바랍니다.



deep4.png

 

'첫 술에 배부를 순 없다.'

처음 시작하는 딥러닝.jpg

는 말이 있습니다. 그렇더라고 첫 술이 맛있으면 나머지도 더 잘 먹을 수 있지 않을까요?

 

이 책을 통해 딥러닝에 가까워지는 시간을 만날 수 있다고 생각합니다.

'딥러닝을 씹어먹고 말리라' 같은 결연한 의지는 잠시 접어두시고, 딥러닝이 어떻게 생겼는지 안내하는 저자를 따라가는 것만으로 충분히 좋은 시간이 될 수 있을 것입니다.

 

그림을 보여주며 설명하고, 수식으로 표현한 뒤, 코드로 구현해 보는 방식을 취하고 있습니다.

딥러닝이 처음인데 그림 몇 개로 이루어진 설명, 설명을 표현한 수식, 수식을 실행하기 위한 코드를 보는 것만으로 모두 이해할 수 있으면 천재이지 않을까요?

그러니 너무 부담 갖지 않고 읽으셨으면 하는 마음입니다.

 

책에 있는 수식을 보며 겁먹을 것도, 모두 이해할 필요도 없다고 생각합니다. 우선은 그냥 좀 특이한 표현 방식이라는 생각과 함께 큰 의미를 두지 않고 읽어가도 괜찮을 듯합니다.

이쪽 동네에서는 뭔가 하고 싶은 얘기를 이렇게 표현하는구나 조금 낯설긴 하네, 뭐 보다 보면 눈에 익숙해지겠지 하고 넘어가도 되지 않을까요? 한번 보고 말 것도 아니고 차차 눈에 들어오겠지 하고요.

 

딥러닝 안에는 뭐가 들어있는지 보여주고, 딥러닝이 사용하는 용어들에 익숙해질 수 있는 책이 아닐까 합니다.

신경망, 말만 들어도 뭔가 머리가 복잡해지는 느낌입니다.

조금 부담스럽긴 하지만, 책에서 언급한 용어를 나열해 보겠습니다.

멘탈 모델, 구현, 개념, 지도 학습, 비지도 학습, 합성곱 신경망(CNN), 순환 신경망(RNN), 자동 미분, 합성 함수, 도함수, 벡터, 회귀, 모델, 레이어, 모델, 옵티마이저, 트레이너, 채널, 로스, 파라미터, 모멘텀, 학습률, 드롭아웃 등

 

그렇다면 이런 용어는 어떠신가요?

마더보드, 소켓, 칩셋, 파워, ATX, 대기전력, CPU, 인텔, AMD, 듀얼코어, 쿼드코어, 라이젠, 펜티엄, 램, DDR3, DDR4, 대역폭, m.2, 그래픽 카드, GTX, 라데온, SSD, HDD, 쿨러 등

컴퓨터 본체를 열면 만나게 되는 각종 부품과 그에 관련된 용어입니다.

 

이렇게 나열해 놓으면 모르는 사람에게는 딥러닝이나 컴퓨터나 알 수 없기는 매한가지라는 생각이 듭니다.

조금씩 익숙해지고 여기저기서 주워들으며 역할이나 명칭을 알아가는 것과 비슷합니다.

그렇기에 설명과 그림을 보며 무슨 얘기를 하는지 어렴풋이 이해하며 개념을 잡아가는 것부터 시작하면 되지 않을까요.

 

 

최솟값을 찾아가는 여정에 함께 하신 것을 환영합니다.

Deep Learning from Scratch 처음 시작하는 딥러닝 (한빛미디어, O'RELLY)

 

 들어가기에 앞서... 

O'RELLY 시리즈에서 가장 중요한 것은 역시 표지 동물이 아닐까 싶다. 

책 표지의 새는 닭목 꿩과의 바바리반시 (Alectoris Barbara) 라는 동물이라고 한다. 국내에서는 보기 힘들 것 같다.

(전체 다 보지는 않았었지만) 원서로 먼저 접한 적이 있었던 책이기도하고, 딥러닝의 기본서 쪽에 속하는 책이라서 그런지 읽기도 쉽다. 몇년 전에는 인공지능을 처음 공부할 때, 코딩하기도 전에 수학 공식들 먼저 보고 기겁하고 피하는 경우를 많이 봤는데 최근에는 이런 종류의 책들이 많이 나와서 쉽게 시작할 수 있는 것 같다는 생각이 많이 든다.

 

 

딥러닝에 필요한 기초, 기본적인 수학적 내용들을 간단하게 설명하고, 코드로도 구현해보는 내용이 들어있다.

 

인공지능의 기본이 되는 수학적 요소들을 공식을 나열하거나 마치 수학책을 보는 듯한 기분이 들게 서술해놓은 책들이 많은데 (안타깝게도 학교 교재로 쓰기 위해 나온 책들이나 과거 인공지능개론으로부터 출발된 책들이 그런 경우가 많다...) 이 책은 필요한 부분만 쏙쏙 적고 코드로 보여줌으로써 좀 더 개발자에게 맞게 쓰려고 노력한 흔적이 보인다. 모든 챕터에 수식에 대응하는 코드가 붙어 있는 것이 읽어가는데 정말 큰 도움을 준다.

 

 

소스코드의 주석도 충분히 달려있다.

 

신경망 기초 1, 2 챕터를 지나면 대충 필요한 기본적인 수학적 내용은 다 파악할 수 있는데, 약 100페이지 정도라서 많지도 않지만 입문자에게는 적은 분량은 아닌 듯 하기도.. 다만 이 내용들을 뒤에서 지지고 볶고 추가하고 하면서 모델을 만들어나가기 때문에 귀찮다고 넘어가버리면 어짜피 다시 돌아오게 되어 있으니 초심자는 꼭 한번은 보고 가면 좋을 듯.

 학교를 졸업하고 난 후로 인공지능, 딥러닝은 처다볼 시간조차 없었는데 오랜만에 기본서를 훑어보니 또 한번 건들여보고 싶다는 생각이 든다. GTX 3000 시리즈도 나왔는데, 한번 질러서 가지고 놀아볼까....?

scratch 로 들어가는 책들은 대부분 밑바닥부터 코드를 작성해서 설명하고 두껍지도 않아서 읽기에 부담도 적은 편이다. 이 책의 제목에 “밑바닥부터~”가 들어갈 것 같았지만 이 책의 제목은 “처음 시작하는 딥러닝”이다.

천리길도 한 걸음부터 시작하듯이 이 책은 딥러닝을 시작하는 초심자를 위해 파이썬의 간단한 코드를 통해 딥러닝 알고리즘과 원리를 설명하고 있다. 기본적인 파이썬 지식을 익히고 있고 넘파이의 행렬연산을 이해하고 있다는 가정하에 비교적 간단하게 코드를 구현해 가며 딥러닝 알고리즘을 이해할 수 있게 설계되어 있다.

그리고 대부분의 설명을 수식 > 그림 > 코드의 순으로 설명하고 있다. 그래서 수식이 어렵더라도 그림을 보고 이해하고 코드를 보고 활용할 수 있도록 되어있다.

추상화가 잘 된 딥러닝 모델을 가져다 사용하다보면 사용하기는 편리하지만 내부 원리가 잘 이해되지 않았던 적이 있는데 그런면에서 이 책은 딥러닝을 처음 시작하는 사람에게도 이미 추상화가 된 모델을 가져다 잘 사용하는 사람들에게도 도움이 될거 같다.

주석도 친절하게 번역이 되었고 이렇게 번역된 github 저장소도 제공하고 있다.

https://github.com/flourscent/DLFS_code

여전히 딥러닝 수학공식은 어렵지만 코드에 적혀있는 주석의 도움을 받아 하나씩 실행해 볼 수 있었다. 또, 마지막 부분에서는 파이토치를 활용해서 주택가격, mnist 등의 데이터를 통해 신경망을 설명하고 있다.

Code.ipynb - Colaboratory

딥러닝에 필요한 핵심내용을 이 책을 통해 다시 정리해 볼 수 있었다.

최근 몇년 사이에 국내외를 막론하고 딥러닝과 관련된 책들이 쏟아져 나오고 있다. 과히 딥러닝 책 홍수를 불사할 만큼 아주 간단한 딥러닝 개념을 다루는 책에서부터 다양한 분야에서 활용가능한 상당히 깊이 있는 주제를 다루는 책까지 딥러닝 책 봇물터진 것 같다.

딥러닝도 다른 분야와 크게 다르지 않다. 일단 기본이 중요하다. 아무리 고급 주제에 엄청난 수학적 깊이가 요구되는 수식들이 가득하더라도 기본이 튼튼하면 그리 어렵지 않게 따라갈 수 있다. 지금 막 입문한 딥러닝 초보자들도 마찬가지다. 기초가 튼튼하면 본인이 다루고 싶은 분야에 집중할 수 있다. 하지만 기초가 부실하면 아무리 쉬운 예제를 설명해도 그냥 책은 책일 뿐이다. 

이 책은 다른 책과 달리 그림으로 시작한다. 그림으로 개념을 잡고, 이것을 수식으로 또 한번 설명하고 마지막으로 그 수식을 바탕으로 코드를 작성하는 독특한 방법을 사용한다. 따라서 딥러닝을 시작한 초보자들은 같은 개념을 3번 다루면서 딥러닝 기초를 매우 튼튼하게 구성하게 한다. 개인적으로 좋았던 부분은, 얼마전부터 관심을 갖게 된 파이토치로 마무리한다는 것이다.이 책을 통해 간단한 개념에서 실제 적용가능한 코드까지 다뤄서 이 책을 각 챕터를 따라가다보면 어느새 나도 딥러닝 입문이라는 단계를 벗어나 당면한 문제를 해결할 수 있는 도약의 경험하게 될 것이다. 

처음시작하는딥러닝.jpg

 

책 리뷰 정말 오랜만인듯 하다. 먼저 이 책은 8월 20일날 한빛미디어에서 출간된 따끈따끈한 책이다. 제목에서도 알 수 있듯 딥러닝을 처음 접하는 사람들을 위해 만들어진 책이고, 기본적인 수학 이론 및 알고리즘, 가장 흔한 CNN, RNN 구현까지 한번에 해결 할 수 있는 책이다.

 

사실 딥러닝을 처음 입문하는 사람들은 "및바닥 부터 시작하는 딥러닝"이라는 책을 많이 접했을텐데, 그 책 못지않게 이 "처음 시작하는 딥러닝" 책도 입문서로 제격이다. 입문서 인 만큼 코드를 따라 하기 쉽도록 github 에서 예제 코드를 제공하고 있다. 

 

이 책이 좋았던게 진짜 기본서 답게 첫 목차부터는 신경망 기초라고 해서, 함수 및 도함수 개념부터 설명하고 있었다 ^^ 그리고 요즘 텐서플로우보다 많이 사용하고 있는 듯 한 파이토치를 통해 딥러닝 구현을 설명하고 있었다. 사실 딥러닝 동작 원리를 이해하는 것도 어려운데, 이걸 직접 구현하고, 원하는 솔루션을 만들기 위해 모델을 구현하는 일은 쉽지 않다. 하지만 파이토치 같은 프레임워크가 복잡한 라이브러리 구현들을 제공해주고 있으므로, AI 개발자 입장에서는 논리에 맞게 알맞은 라이브러리를 어떻게 쓸지 선택을 해보고, 잘 학습되도록 사용하면 된다. 

 

그리고 또 좋았던 점은 개념을 그림으로 설명한 후, 이를 수식으로 옮겨보고 다시 그 수식에 기초한 코드를 작성하는 방식으로 설명하고 있었다. 그렇다고 내용을 얕게 설명하는 것도 아니라서, 딥러닝에 관심 있는 고등학생들도 잘 이해할 수 있을 것 같았다. 

 

이 책을 기반으로 한 강의가 있으면 입문 자료로 대박이 날 것 같은 느낌이다.

 

 

딥러닝과 딥러닝 프레임워크 구현을 이해하기 위한 간결한 학습서이다. 

 

[장점]

 

내용 구성이 일관되게 다이어그램 -> 수학 수식 -> 코드 구현 순으로 진행된다. 도식을 보고 전체 개념을 이해한 후, 그 내용을 수식으로 구현하고 이를 코드로 옮기는 형태이다. 저자의 많은 교육 경험으로 완성한 설명 방식으로 보이며, 기초적인 수학 수식에 익숙한 학습자라면 더없이 깔끔한 전개방식일 것이다. 

 

딥러닝 입문부터 차근차근 완성해나가다가 마지막 장에서는 흔히 쓰는 텐서플로 프레임워크가 아닌, 파이토치로 기능을 구현해본다. 파이토치를 사용하는 딥러닝 입문서라는 점은 재미있다. 물론 저자가 페이스북에 재직중이라 그렇게 작성했겠지만 말이다. 

 

이 책은 코드 가독성에 꽤나 신경을 쓴 느낌이다. IT개발서가 아닌데 시작부터 파이썬 타입 힌팅이 들어가는 머신러닝/딥러닝 도서는 처음 봤다.

 

[단점]

 

이 책은 독자가 이미 파이썬은 잘 안다고 가정한다. 설치, 환경설정, 파이썬 기초 등의 내용은 전혀 나오지 않고, 1장부터 바로 numpy의 array부터 설명한다. 

 

내용이 아주 친절하지는 않다. 수학적 소양이 상당히 있으면서도 파이썬도 꽤 하는 입문자(?)가 읽어야 하는 책인데, 우리나라에서는 아직 해당 모집단이 많을 것 같지는 않다. 

 

[편집] 

 

사실 이 책의 원서가 온라인으로 출간되었을 때부터 PDF 파일로 보고 있었다. 원서는 컬러로, 저자가 강조하고 싶은 부분을 상당히 신경써서 색깔이 입혀져 있었는데, 번역서는 흑백이어서 약간 당황했다. 

 

[결론]

 

이 책은 도서로 공부하는 사람을 위해서라기 보다는, 강의시간에 사용하는 교재에 가까운 느낌이다. 저자는 정말 핵심이 되는 부분에 집중하고, 나머지는 학습자가 알아서 찾아서 해야한다. 한동안 한국인/일본인 저자가 쓴 거의 떠먹여주다시피하는 내용에 익숙해졌다가 이 도서를 읽으니 부분 부분 걸리는 점이 적지 않다. 

 

그래도 아직 딥러닝을 깊게 이해하고 이를 딥러닝 프레임워크로 구현하는 방식을 설명한 책이 그리 많지는 않다. 딥러닝의 구조와 동작에 대한 이해를 탄탄히 하고, 앞으로 딥러닝 프레임워크의 내부를 조금 더 깊이 알아가고 싶은 사람들이 읽으면 딱 좋을만한 책이다. 

 

이번 포스트에서는 처음부터 시작하는 딥러닝: 수학이론과 알고리즘부터 CNN, RNN 구현까지 한 권으로 해결하기 책을 리뷰해보려 한다. 예전에 대부분의 딥러닝 책들을 보면, 이론에 대한 설명만 엄청 하드하거나 아니면 이론과 기본 연산부분의 구현은 굉장히 간단하게 보여주고 바로 딥러닝 프레임워크로 넘어가는 책들이 많았다. 하지만 최근에 파이토치나 텐서플로우 같은 딥러닝 프레임워크를 사용하지 않고, 어느정도 딥뉴럴 네트워크 를 구현하면서 이해를 돕는 책들이 많이 나오는 것 같다 (처음부터 시작하는 딥러닝, 밑바닥부터 시작하는 딥러닝, 파이썬 날코딩으로 알고 짜는 딥러닝 등). 아무래도 이러한 흐름은, 최근에 연구 분야로도 큰 관심을 끌고 있는 Interpretable Machine Learning 과 어느정도의 연관은 있다고 생각한다. 사실 딥러닝은 Non-linearity가 첨가된 거대한 연산 수식이지만, 그 연산의 규모가 굉장히 크고 복잡하기 때문에 검증이 쉽지 않고 초기화 단계 등에서 Randomness 도 들어가기 때문에 (딥러닝 Optimizer나, 다른 모델을 수렴시는 알고리즘 논문들을 읽어보면 초기화 단계에서의 중요성도 어느정도 언급되고 있다), 그 결과를 해석하는 것이 쉽지 않다. 이런 세부적인 이해부터, 대중들 역시 단순히 프레임워크를 가져다가 딥러닝 모델들을 구현하다보면, 그 프레임 워크의 내부가 궁금해지기 마련이고 이런 책들이 그러한 수요에 따라 나온 것이 아닐까 싶다.

아무튼, 서론이 길었는데 이런 백그라운드를 가지고 이 책이 어떠한 가치들을 독자에게 줄 수 있을지를 천천히 리뷰해 보자. 이 책의 목차를 보면, Chapter 1, 2 는 뉴럴넷의 기초가 되는 연산들에 대해 다루고 이후 Chapter 3, 4 에서 앞에서 다룬 뉴럴넷을 딥러닝으로 확장시키기는 것을 다룬다. 이렇게 나름대로 작은 DIY 딥러닝 프레임워크를 만들고 거기에 Chapter 5, 6 에서 CNN과 RNN 을 추가하면서 독자들의 딥러닝에 대한 이해를 돕는다. 마지막 Chapter 7 에서는 지금까지 DIY 딥러닝 프레임워크에서 구현한 것들이 파이토치에서 어떻게 제공되고 있는지 설명한다. 이 책의 가장 큰 장점은, 이전의 딥러닝 책들에서 Chapter 1, 2 를 설명하고 바로 Chapter 7 로 뛰어넘어서 CNN과 RNN,  그리고 더 다양한 딥러닝 모델들에 다루는 것과 다르게, 두 간극 사이를 설명하고 구현하면서 머신러닝 프레임워크의 기능들이 정확히 무엇인지 설명하는 것이라고 생각한다. 물론 딥러닝 프레임워크 (PyTorch, Tensorflow, MXNet 등) 마다 작게는 Imperative/Declarative API 부터, 단순히 단일 노드의 머신러닝 기능 제공부터 스케일업을 위한 기능들, 모델 서빙 등에서 큰 차이들이 있지만, 이 책의 범위가 그 부분까지는 커버하지 않으니 그러한 부분들은 각 프레임워크의 논문 및 공식문서를 참조하면 될 것 같다. 이 책은 딥러닝 프레임워크에서, 그중에서 특히 딥러닝에서 매우 많이 쓰이는 코어 연산들이 어떻게 구현되었고, 어떻게 그런 기초 블럭들이 딥러닝으로 조립될 수 있는지에 대해서 설명하는 책이다. 그러므로, 딥러닝을 프레임워크로 시작하여 그 내부의 이해가 부족한 독자들에게 특히 도움이 많이 될 수 있을 거라 생각한다. 또한, 이러한 기본 이해는 시간이 날때마다 챙겨두면 단기적으로는 큰 차이가 없어보이지만, 롱런하기에 그 중요성을 계속 강조해도 부족하기 때문에, 딥러닝을 공부하는 학생들에게도 정말 좋은 책이라고 생각된다.

마지막으로 간단히 이 책을 다른 비슷한 책과 비교를 해보자면, 난도에서는 파이썬 날코딩으로 알고 짜는 딥러닝: 프레임워크 없이 단층 퍼셉트론에서 GAN까지 책보다 쉽고, 다루는 범위도 더 적다. 그러므로 본인이 이미 딥러닝 프레임워크 내부에 대해 어느정도 이해와 최신 딥러닝 모델들을 충분히 이해하고 있다면 파이썬 날코딩으로 알고짜는 딥러닝 책이 더 잘 맞을 것이라 생각된다. 반면, 최신 딥러닝 모델들과 프레임워크에 대한 이해가 부족하여 위의 책이 부담스럽게 느껴진다면 이 책 '처음부터 시작하는 딥러닝'을 먼저 읽고, 다른 딥러닝 책들 (딥러닝 기초를 간단히 설명하고 많은 모델들을 다룬 책)을 읽고, 위의 책을 읽는다면 보다 더 깊은 이해를 가질 수 있을 거라 생각한다. 아무튼, 이전에 딥러닝 프레임워크에 대해 설명한 엔트리급 책이 많이 없었는데, 이런 책들이 기반이 되어 더 많은 사람들이 관심을 가지게 된다면 좋을 것 같다.

 

Screenshot_20200926-102648_KakaoTalk.jpg

 

Screenshot_20200926-102702_KakaoTalk.jpg

 

Screenshot_20200926-102716_KakaoTalk.jpg

 

책 소개

  • 책 제목 : Deep Learning from Scratch 처음 시작하는 딥러닝
    글쓴이 : 세스 와이드먼
    출판사 : 한빛미디어
    초판 1쇄 : 2020년 08월 20일

KakaoTalk_Photo_2020-09-26-00-33-06.jpeg

 



책의 특징

  • 초점 : 이 책은 딥러닝의 기초 함수부터 기본에 충실해 잇다.

  • 설명 방식 : 수학, 알고리즘, 신경망, 순환 신경망 처럼 걸음마부터 찬찬히 기술하고 있다.

    • 처음 코딩을 접하거나 수학을 처음 접하는 사람이라면 이해할 수는 없다. 위 책은 딥러닝을 기본적이면서 함축적으로 다루고 있기 때문이다.
    • 예제한번 개념 한번 되짚기 한번 차근차근히 나아간다.
    • 마지막에 파이토치를 이용한 실습을 제공한다. 개념을 설명 했던 것과 같이 단계별로 다가가기 때문에 따라가는데 어려움은 없을 것으로 보인다.
  • 제공하는 사이트 : 이 책에서 사용하는 코드들에 대한 깃허브를 제공한다.


추천 대상

해당 책은 딥러닝을 처음 접하는 사람이면서 정확히 필요한 기본 개념부터 익히고 싶은 사람에게 적합하다.

그러나, 수학, 파이썬, 코딩에 익숙하지 않은 사람은 이해하기 힘들 수 있다. 딥러닝의 특성상 불가피하기 때문에 해당 책은 그 방면에서는 제공할 수 있는 최대한의 친절한 설명을 한 것으로 느껴졌다.

최대한 기본으로 압축하였기 때문에 여러 프로젝트나 예제는 부족할지 몰라도, 한권에 딥러닝이 무엇인지 충분히 이해할 수 있을 것이다.

딥러닝이 무엇인지 가볍게 한권으로 익혀보고 싶은 사람에게 추천하고 싶다.

책의 한줄평

딥러닝 강의를 듣는다면 이것이 교재로 쓰였을 것이다.

 

 

저자는 딥러닝을 잘 설명하기 위해 일반적인 문장으로 설명을 하고, 시각화를 통해 동작 과정을 보여주고, 수식으로 원리를 나타내고, 의사코드로 알고리즘 구현과정을 보여줘야 한다고 생각해서 이 책에 이런 방식을 썼다고 한다. 이걸 주요한 강점으로 내세우는 듯 싶은데, 수식은 저자의 방향성에 따라 싣는 경우도 있고 아닌 경우도 있지만, 네트워크 시각화와 의사코드 혹은 소스코드(일반적으로 당연히 파이썬)는 당연히 모든 딥러닝 책이 갖고 있는 부분이다.

그럼 이 책이 다른 책과 다른 점은 무엇일까? 우선 다이어그램이 다르다. 일반적으로 딥러닝 책에서 사용하는 다이어그램은 여러 개의 원이 빽빽하게 연결되어 여러 개의 층으로 레이어를 이루는 모습을 표현한다. 저자는 이런 다이어그램이 신경망의 일반적인 구분을 하는 데는 도움이 되지만, 어떤 연산이 일어나는지 등 신경망 자체를 이해하는 데는 아무 도움이 되지 않는다고 생각해서, 1장에서 하나의 함수의 입출력을 표현하는 하나의 상자로 시작해 합성함수를 거쳐 딥러닝을 이루는 여러 함수의 레이어별 입출력을 표현한다.

두 번째로는 시각화 수식 코드 3가지 설명을 계속 반복하면서 발전시킨다는 점이다. 간단한 1차 함수를 통해 자신의 설명 방법을 소개하고 각 장을 거치면서 이걸 조금씩 덧붙여서 최종 설명을 향해 나아가기 때문에, 같은 방법 속에서 내용을 심화해 나가는 점이 개인적으로는 마음에 들었고 독자가 이해하는 데 도움이 될거란 생각이 들었다.

마지막으로 자체적인 파이썬 라이브러리를 구축하는데, 여기 사용된 소스 코드 내용이 파이썬 기초를 익히기에 좋다. 많은 사람들이 딥러닝에 관심을 갖고 시작을 하면서 파이썬은 정말 빠르게 훑고만 지나가는 경우가 많아, 딥러닝 커뮤니티에 올라오는 질문을 보면 파이썬 자체에 관련된 부분은 전혀 이해하지 못해 문제를 해결하지 못하는 경우도 종종 봤다. 이런 사람들에겐 여기 나온 라이브러리 코드를 따라가며 설명하는 부분이 초급을 벗어나는 데 도움이 될 만하다.

1장부터 모든 내용이 연결되며 앞의 내용이 이해가 되지 않으면 뒤쪽은 읽기가 힘들어 각 장마다 독립성이 떨어진다는 점이 있긴 하지만 이건 독자의 스타일에 따라 꼭 단점이라고 보기는 힘들고, 그냥 참고만 하면 될 거 같다. 전체적으로 기초를 쌓기에 좋은 책이란 생각이다.

Etc

Colab

예제 코드를 따라하기 위해서 아무 것도 설치하지 않고 간단하게 colab에서 모든 걸 이용할 수 있다. 예를 들어 예제 코드 중 마지막인 https://github.com/flourscent/DLFS_code/blob/master/07_PyTorch/Code.ipynb를 colab에서 실행한다면 우선 https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/07_PyTorch/Code.ipynb 이런 식으로 주소를 변경해서 colab에서 파일을 연다. 그 후 필요한 라이브러리를 설치해줘야 하는데, 다음과 같이 pip로 pytorch 설치를 하고, 이 책에서 제공하는 별도의 라이브러리 lincoln을 사용하기 위해 github repo도 받은 후

file을 여는 두 곳의 경로만 수정하면 된다.

여기까지 수정하면 전체를 실행할 수 있으며, 실행 결과 마지막 셀은 다음과 같다.

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/01_foundations/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/02_fundamentals/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/03_dlfs/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/04_extensions/Code.ipynb (repository clone, lincoln 경로 수정 및 최초 실행 시 주석 해제 필요)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/05_convolutions/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/05_convolutions/Numpy_Convolution_Demos.ipynb (repository clone, lincoln 경로 수정 및 최초 실행 시 주석 해제 필요)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/06_rnns/Autograd_Simple.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/06_rnns/RNN_DLFS.ipynb (repository clone, lincoln 및 input.txt 경로 수정 필요)

Ref.

 

일단 나는 딥러닝을 정말 배우고 싶었다. 그래서 몇 권의 책을 읽었다.
그런데... 알듯말듯 한.. 그 느낌... 딱 그런 상태이다.
 
그런 상태에서 이 책을 만났고... 그리고 내가 딥러닝에 눈을 뜨게 만들었다.
Regression, CNN, RNN을 이론에서 부터  NumPi로 low level의 코드까지 작성하며 자세히 설명해 주고 있다.
 
뒷장에서는 앞장에서 만큼의 자세한 설명이 조금 부족한 듯 하지만...
그래도 처음부분에서 개념을 워낙 잘 설명해 주기 때문에 아쉼움은 들지 않는다..
 
다만 코딩을 실제 구현하는 부분에 대한 설명이 조금 부족하긴 한데..
그런 부붑은 독자의 노력이 필요한 부분이 아닐까..
 
책을 일고 바로 딥러닝을 시작하기는 어려울 수 있어도 딥러닝의 기초 개념을 잡고 다음단계를 넘어 가기에는 정말 최고의 책이 아닌가 싶다.
 

같은 출판사의 밑바닥부터 시작하는 딥러닝과 이름이 유사한 것 처럼 느낌도 비슷합니다


처음 시작한다= 여태까지 관심이 아예 없는 완전 생초보자를 위한 것이라기 보다는, 수학적 기초가 잡혀 있은 사람(이런 사람을 이과에서는 초보라고 할 수 있겠습니다만)을 대상으로 한다는 것을 의미하는 것 같습니다.

이 책은 텐서플로,파이토치를 사용하지 않고 딥러닝을 구현한다는 점에서 아무것도 없는 바닥 상태에서 시작한다는 취지로 보이며
 그렇기 때문에 딥러닝 입문에서 1~2p정도로 끝내는 부분을 10p이상으로 상세하게 설명합니다. 

 

RNN구현.jpg

 

 

 한 번  보는 거로는 충분하지 않고, 앞에 부분이 뒤와 연결되기 때문에 이런 류의 책들이 그렇듯 이해가 안되면 다시 돌아가는 순간이 상당히 많습니다.

좋은 부분: '처음 시작하는' 수식어 답게 파이썬으로 대부분의 요소를 직접 구현하면서 설명하기에, 작가가 생각하는 머신러닝,딥러닝에 대한 관점을 이해하기 쉽다는 점입니다.

처음부터 미분을 설명하면서 딥러닝에서 왜 미분을 사용하는 지로 자연스럽게 확장된다.

이는 cookbook이나 입문서에서는 할애할 시간이 부족해서 생략되는 부분인데. 그렇다고 이해를 하지 않으면, 결국 변수만 바꾸는 모델이 될 수 있기 때문에, 딥러닝에 대한 기초적인 작동 방식을 확실히 배우고 가고 싶은 분에게 추천하는 책입니다.

굳이 좀 심하다고 생각한 부분:보통 사람들이 생각하는 미분 표기방식인데(수학과 그리 친하지 않아서 낯설어서 이런 표기가 익숙하신 분에게는 죄송합니다). 처음은 괜찮지만 복잡해지는 순간부터 읽는 내내 고생했네요.

비선형적.jpg

(왜 은닉층을 사용해야하는가....)

 

 

미분.jpg

 

 

 

딥러닝이란걸 배워볼려고 '처음 시작하는 딥러닝'을 읽고 있다. 가볍게 읽기에 좋아보였다. 책도 얇고 그림도 많이 들어가 있었다. 그런데 만만치 않다. 일단 수학 배운지 너무 오래돼서 기억이 가물가물하네. 함수, 벡터, 기울기, 행렬 기타등등 주옥같은 단어들의 향연에 옛기억들이 떠올른다. 어떤면에서는 책 읽는 맛(?)이 있다. 모르는거 공부하면서 읽다보니 다른책 보다 배는 느리게 읽어지지만 말이지. 그럼에도 아주 못 오를만큼 높은 산이 아니라서 도전할만하다는게.... 여튼 처음 딥러닝을 배우는데 수학적 기초가 많이 부족하다면 천천히 읽길 권한다. 물론 빨리 읽어봐야 머릿속에 남지도 않지만.

한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

1

머신러닝도 아니고 딥러닝을 Numpy 정도만 사용해서 자신만의 프레임워크를 만들 수 있다면 굉장히 신나는 일이라 할 수 있다. 그럼에도 불구하고, 뭔가 하나씩 만들기 위해선 꽤나 많은 것을 알아야 되고, 더 나아가서 그 과정 하나 하나를 이해하기에 쉽지 않다. 나도 CNN과 RNN을 Numpy 정도만 사용해서 만들 수 있다는 생각에 책을 시작했다.

2

이 책을 읽고 실습을 병행하면서 좋았던 점은 1) 신경망 기초 부분의 수학적인 부분을 간단한 다이어그램을 통해서 설명하고 다이어그램과 코드를 연결해서 설명하고 있기 때문에 코드를 작성하는 과정에서 굉장히 명쾌하고 할 수 있다. 2) 코드가 단순히 스크립트 형태로 되어있지 않고, 객체지향 방식을 도입해서 하나의 프레임워크로 만들 수 있기 때문에 파이썬의 사용방법에 대해서 폭 넓은 시점을 제공한다.

다이어그램!

반면, 1) 이 책은 다이어그램이 매우 중요한데, 다이어그램과 수식에 약간의 표기 차이를 보이는 부분이 있어서 다이어그램이 나올 때 마다 수식과 표기를 자세히 봐야 합니다. 해당 문제가 오탈자인지 아닌지 정확히 알 수 없지만, 결론적으로 말해서 수식과 다이어그램 그리고 코드를 비교하면서 조금 유심하게 봐야한다. 2) 교재에서 코드 전체를 소개하고 있지 않기 때문에 교재의 github 코드를 참고해야 한다는 점이다. 문제는 교재에 있는 코드와 github에서 제공하는 코드를 제대로 활용하기 위해선 몇가지 설치를 진행해야 하는데, 해당 모듈을 설치하는게 쉽진 않았다.

책 내용!

3

이 책은 이론과 실습이 잘 정리되어 있어서, 딥러닝에 대한 처음 접한 분들이나 머신러닝등을 공부하는 분들에게 좋은 교재다. 참고로 Jupyter Notebook이나 Python의 모듈 설치등에 어려움이 있다면 실습이 조금 힘들 수 있다. 따라서 github에 나온 설치 방법 등을 참고해서 코드를 실행해본 후에 책을 읽고 실습을 진행해보면 좋을 듯 싶다.

서적은 컬러가 아닌 것 같은데요. 혹시 ebook은 컬러인가요?

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
처음 시작하는 딥러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
처음 시작하는 딥러닝
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
처음 시작하는 딥러닝
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실

최근 본 책0