도서 IT전문서/IT입문서 데이터베이스/데이터분석

누구나 쉽게 이해할 수 있는 실용적인 딥러닝 입문서

누구나 쉽게 이해할 수 있는 실용적인 딥러닝 입문서


비전공자 출신으로 오랜 기간 딥러닝 연구를 해온 저자는 자신이 겪어온 오류들을 겪지 않고, 가장 빠른 길로 딥러닝을 접할 수 있도록 하는 데 중점을 두고 이 책을 집필했다. 누구나 이해할 수 있는 쉽고 편안한 설명을 바탕으로, 딥러닝 이론뿐만 아니라 실제 응용이 가능한 라이브러리 중심으로 설명한다. 특히 현업과 연구에 바로 적용 가능한 최신 모델까지 다룬다는 점이 이 책의 특징이다. 이 외에도 딥러닝을 학습하는 데 필요한 최소한의 수학, 캐글, 역전파와 신경망 심화 학습도 빠트리지 않고 설명한다.

 

3판에서는 설치 없이 실습이 가능한 코랩을 기준으로 코드를 최신 버전으로 수정했고, 좀 더 쉽게 설명할 수 있는 방법이 있다면 설명 방식을 과감히 바꾸는 등 많은 내용을 수정하고 추가했다. 또한, XAI(설명 가능한 딥러닝), 어텐션, 캐글 등 최신 경향을 반영했고, 바로 보고 바로 써먹을 수 있는 '가장 많이 사용하는 머신 러닝 알고리즘 TOP 10'과 '데이터 분석을 위한 판다스 92개 치트키'를 얇은 책 한 권 분량의 별책 부록으로 제공한다. 마지막으로 혼자 학습하기 어려운 독자분들을 위해 책 전체에 대한 무료 동영상 강의도 제공한다. 딥러닝을 학습하다가 좌절했거나 이제 막 딥러닝 학습을 시작하려 한다면 이 책으로 시작해 보자.

· 유튜브 강의: https://bit.ly/taehojo

· 예제 실행하기: https://github.com/taehojo/deeplearning

· 도서 내용 및 오류 문의: tae.h.jo@gmail.com (저자 이메일)

목차

첫째 마당 딥러닝 시작을 위한 준비 운동

1장. 해 보자! 딥러닝

1 | 인공지능? 머신 러닝? 딥러닝?

2 | 딥러닝 실행을 위해 필요한 세 가지

3 | 구글 코랩 실행하기

 

2장. 딥러닝의 핵심 미리 보기

1 | 미지의 일을 예측하는 원리

2 | 딥러닝 코드 실행해 보기

3 | 딥러닝 개괄하기

4 | 이제부터가 진짜 딥러닝?

 

3장. 딥러닝을 위한 기초 수학

1 | 일차 함수, 기울기와 y 절편

2 | 이차 함수와 최솟값

3 | 미분, 순간 변화율과 기울기

4 | 편미분

5 | 지수와 지수 함수

6 | 시그모이드 함수

7 | 로그와 로그 함수

 

둘째 마당 예측 모델의 기본 원리

4장. 가장 훌륭한 예측선

1 | 선형 회귀의 정의

2 | 가장 훌륭한 예측선이란?

3 | 최소 제곱법

4 | 파이썬 코딩으로 확인하는 최소 제곱

5 | 평균 제곱 오차

6 | 파이썬 코딩으로 확인하는 평균 제곱 오차

 

5장. 선형 회귀 모델: 먼저 긋고 수정하기

1 | 경사 하강법의 개요

2 | 파이썬 코딩으로 확인하는 선형 회귀

3 | 다중 선형 회귀의 개요

4 | 파이썬 코딩으로 확인하는 다중 선형 회귀

5 | 텐서플로에서 실행하는 선형 회귀, 다중 선형 회귀 모델

 

6장. 로지스틱 회귀 모델: 참 거짓 판단하기

1 | 로지스틱 회귀의 정의

2 | 시그모이드 함수

3 | 오차 공식

4 | 로그 함수

5 | 텐서플로에서 실행하는 로지스틱 회귀 모델

 

셋째 마당 딥러닝의 시작, 신경망

7장. 퍼셉트론과 인공지능의 시작

1 | 인공지능의 시작을 알린 퍼셉트론

2 | 퍼셉트론의 과제

3 | XOR 문제

 

8장. 다층 퍼셉트론

1 | 다층 퍼셉트론의 등장

2 | 다층 퍼셉트론의 설계

3 | XOR 문제의 해결

4 | 코딩으로 XOR 문제 해결하기

 

9장. 오차 역전파에서 딥러닝으로

1 | 딥러닝의 태동, 오차 역전파

2 | 활성화 함수와 고급 경사 하강법

3 | 속도와 정확도 문제를 해결하는 고급 경사 하강법

 

넷째 마당 딥러닝 기본기 다지기

10장. 딥러닝 모델 설계하기

1 | 모델의 정의

2 | 입력층, 은닉층, 출력층

3 | 모델 컴파일

4 | 모델 실행하기

 

11장. 데이터 다루기

1 | 딥러닝과 데이터

2 | 피마 인디언 데이터 분석하기

3 | 판다스를 활용한 데이터 조사

4 | 중요한 데이터 추출하기

5 | 피마 인디언의 당뇨병 예측 실행

 

12장. 다중 분류 문제 해결하기

1 | 다중 분류 문제

2 | 상관도 그래프

3 | 원‐핫 인코딩

4 | 소프트맥스

5 | 아이리스 품종 예측의 실행

 

13장. 모델 성능 검증하기

1 | 데이터의 확인과 예측 실행

2 | 과적합 이해하기

3 | 학습셋과 테스트셋

4 | 모델 저장과 재사용

5 | k겹 교차 검증

 

14장. 모델 성능 향상시키기

1 | 데이터의 확인과 검증셋

2 | 모델 업데이트하기

3 | 그래프로 과적합 확인하기

4 | 학습의 자동 중단

 

15장. 실제 데이터로 만들어 보는 모델

1 | 데이터 파악하기

2 | 결측치, 카테고리 변수 처리하기

3 | 속성별 관련도 추출하기

4 | 주택 가격 예측 모델

 

다섯째 마당 딥러닝 활용하기

16장. 이미지 인식의 꽃, 컨볼루션 신경망(CNN)

1 | 이미지를 인식하는 원리

2 | 딥러닝 기본 프레임 만들기

3 | 컨볼루션 신경망(CNN)

4 | 맥스 풀링, 드롭아웃, 플래튼

5 | 컨볼루션 신경망 실행하기

 

17장. 딥러닝을 이용한 자연어 처리

1 | 텍스트의 토큰화

2 | 단어의 원‐핫 인코딩

3 | 단어 임베딩

4 | 텍스트를 읽고 긍정, 부정 예측하기

 

18장. 시퀀스 배열로 다루는 순환 신경망(RNN)

1 | LSTM을 이용한 로이터 뉴스 카테고리 분류하기

2 | LSTM과 CNN의 조합을 이용한 영화 리뷰 분류하기

3 | 어텐션을 사용한 신경망

 

19장. 세상에 없는 얼굴 GAN, 오토인코더

1 | 가짜 제조 공장, 생성자

2 | 진위를 가려내는 장치, 판별자

3 | 적대적 신경망 실행하기

4 | 이미지의 특징을 추출하는 오토인코더

 

20장. 전이 학습을 통해 딥러닝의 성능 극대화하기

1 | 소규모 데이터셋으로 만드는 강력한 학습 모델

2 | 전이 학습으로 모델 성능 극대화하기

 

21장. 설명 가능한 딥러닝 모델 만들기

1 | 딥러닝의 결과를 설명하는 방법

2 | 설명 가능한 딥러닝의 실행

 

22장. 캐글로 시작하는 새로운 도전

1 | 캐글 가입 및 대회 선택하기

2 | 데이터 획득하기

3 | 학습하기

4 | 결과 제출하기

5 | 최종 예측 값 제출하기

 

심화 학습 1. 오차 역전파의 계산법

1 | 출력층의 오차 업데이트

2 | 오차 공식

3 | 체인 룰

4 | 체인 룰 계산하기

5 | 가중치 수정하기

6 | 은닉층의 오차 수정하기

7 | 은닉층의 오차 계산법

8 | 델타식

 

심화 학습 2. 파이썬 코딩으로 짜 보는 신경망

1 | 환경 변수 설정하기

2 | 파이썬 코드로 실행하는 신경망

 

부록 A 내 컴퓨터에서 아나콘다로 딥러닝 실행하기

 

별책 부록

1장. 가장 많이 사용하는 머신 러닝 알고리즘 TOP 10

1 | 세상의 거의 모든 머신 러닝 알고리즘

2 | 실습을 위한 준비 사항

3 | 결정 트리

4 | 랜덤 포레스트

5 | 가우시안 나이브 베이즈

6 | k‐최근접 이웃

7 | 에이다 부스트

8 | 이차 판별 분석

9 | 서포트 벡터 머신

10 | 서포트 벡터 머신 ‐ RBF 커널

11 | 보팅

12 | 배깅

13 | 여러 알고리즘의 성능을 한눈에 비교하기

 

2장. 데이터 분석을 위한 판다스: 92개의 예제 모음

A | 데이터 만들기

__1. 판다스 라이브러리 불러오기

__2. 데이터 프레임 만들기

__3. 데이터 프레임 출력하기

__4. 데이터의 열 이름을 따로 지정해서 만들기

__5. 인덱스가 두 개인 데이터 프레임 만들기

B | 데이터 정렬하기

__6. 특정 열 값을 기준으로 정렬하기

__7. 열 이름 변경하기

__8. 인덱스 값 초기화하기

__9. 인덱스 순서대로 정렬하기

__10. 특정 열 제거하기

C | 행 추출하기

__11. 맨 위의 행 출력하기

__12. 맨 아래 행 출력하기

__13. 특정 열의 값을 추출하기

__14. 특정 열에 특정 값이 있을 경우 추출하기

__15. 특정 열에 특정 값이 없을 경우 추출하기

__16. 특정 열에 특정 숫자가 있는지 확인하기

__17. 특정 비율로 데이터 샘플링하기

__18. 특정 개수만큼 데이터 샘플링하기

__19. 특정 열에서 큰 순서대로 불러오기

__20. 특정 열에서 작은 순서대로 불러오기

D | 열 추출하기

__21. 인덱스의 범위로 불러오기

__22. 첫 인덱스를 지정해 불러오기

__23. 마지막 인덱스를 지정해 불러오기

__24. 모든 인덱스 불러오기

__25. 특정 열을 지정해 가져오기

__26. 조건을 만족하는 열 가져오기

__27. 특정 문자가 포함되지 않는 열 가져오기

E | 행과 열 추출하기

__28. 특정 행과 열을 지정해 가져오기

__29. 인덱스로 특정 행과 열 가져오기

__30. 특정 열에서 조건을 만족하는 행과 열 가져오기

__31. 인덱스를 이용해 특정 조건을 만족하는 값 불러오기

F | 중복 데이터 다루기

__32. 특정 열에 어떤 값이 몇 개 들어 있는지 알아보기

__33. 데이터 프레임의 행이 몇 개인지 세어 보기

__34. 데이터 프레임의 행과 열이 몇 개인지 세어 보기

__35. 특정 열에 유니크한 값이 몇 개인지 세어 보기

__36. 데이터 프레임의 형태 한눈에 보기

__37. 중복된 값 제거하기

G | 데이터 파악하기

__38. 각 열의 합 보기

__39. 각 열의 값이 모두 몇 개인지 보기

__40. 각 열의 중간 값 보기

__41. 특정 열의 평균값 보기

__42. 각 열의 25%, 75%에 해당하는 수 보기

__43. 각 열의 최솟값 보기

__44. 각 열의 최댓값 보기

__45. 각 열의 표준편차 보기

__46. 데이터 프레임 각 값에 일괄 함수 적용하기

H | 결측치 다루기

__47. %00; 값인지 확인하기

__48. %00; 값이 아닌지 확인하기

__49. %00; 값이 있는 행 삭제하기

__50. %00; 값을 특정 값으로 대체하기

__51. %00; 값을 특정 계산 결과로 대체하기

I | 새로운 열 만들기

__52. 조건에 맞는 새 열 만들기

__53. assign( )을 이용해 조건에 맞는 새 열 만들기

__54. 숫자형 데이터를 구간으로 나누기

__55. 기준 값 이하와 이상을 모두 통일시키기

__56. 최댓값 불러오기

__57. 최솟값 불러오기

J | 행과 열 변환하기

__58. 모든 열을 행으로 변환하기

__59. 하나의 열만 행으로 이동시키기

__60. 여러 개의 열을 행으로 이동시키기

__61. 특정 열의 값을 기준으로 새로운 열 만들기

__62. 원래 데이터 형태로 되돌리기

K | 시리즈 데이터 연결하기

__63. 시리즈 데이터 합치기

__64. 데이터를 병합할 때 새로운 인덱스 만들기

__65. 계층적 인덱스를 추가하고 열 이름 지정하기

L | 데이터 프레임 연결하기

__66. 데이터 프레임 합치기

__67. 열의 수가 다른 두 데이터 프레임 합치기

__68. 함께 공유하는 열만 합치기

__69. 열 이름이 서로 다른 데이터 합치기

M | 데이터 병합하기

__70. 왼쪽 열을 축으로 병합하기

__71. 오른쪽 열을 축으로 병합하기

__72. 공통 값만 병합하기

__73. 모든 값을 병합하기

__74. 특정한 열을 비교해서 공통 값이 존재하는 경우만 가져오기

__75. 공통 값이 존재하는 경우 해당 값을 제외하고 병합하기

__76. 공통 값이 있는 것만 병합하기

__77. 모두 병합하기

__78. 어디서 병합되었는지 표시하기

__79. 원하는 병합만 남기기

__80. merge 칼럼 없애기

N | 데이터 가공하기

__81. 행 전체를 한 칸 아래로 이동하기

__82. 행 전체를 한 칸 위로 이동하기

__83. 첫 행부터 누적해서 더하기

__84. 새 행과 이전 행을 비교하면서 최댓값 출력하기

__85. 새 행과 이전 행을 비교하면서 최솟값 출력하기

__86. 첫 행부터 누적해서 곱하기

O | 그룹별로 집계하기

__87. 그룹 지정 및 그룹별 데이터 수 표시

__88. 그룹 지정 후 원하는 칼럼 표시하기

__89. 밀집도 기준으로 순위 부여하기

__90. 최젓값을 기준으로 순위 부여하기

__91. 순위를 비율로 표시하기

__92. 동일 순위에 대한 처리 방법 정하기

 

더보기접기

저자&기여자

ㆍ지은이 조태호

소개
머신 러닝, 딥러닝을 이용해 알츠하이머 질병을 연구하며 틈틈이 책을 쓰고 번역하는 학자이자 작가이다. 일본 도쿄의과치과대학에서 단백질 구조 예측으로 박사학위를 받았고, 미국으로 이주해 단백질 구조 예측에 딥러닝을 도입하는 연구를 했다. 2018년부터 미국 인디애나 대학교 의과대학에 재직하며 딥러닝을 이용한 알츠하이머 진단(2019), 딥러닝을 이용한 알츠하이머 원인 단백질 추적(2020), 딥러닝을 이용한 유전자 변이 예측(2021) 등을 연구하고 진행했다. 저서로는 제7회 브런치북 대상 수상작 『당신의 이유는 무엇입니까』, 역서로는 『딥러닝 워크북』, 『쉽게 시작하는 캐글 데이터 분석』, 『그림으로 이해하는 인지과학』 등이 있다. · 유튜브 강의: https://bit.ly/taehojo· 깃 페이지: https://taehojo.github.io · 조태호 브런치 brunch.co.kr/@tjo

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.