본문 바로가기

도서 소개

줄리아 머신러닝, 딥러닝, 강화학습

 

파이썬 너머의 AI 세상, 프로덕션 줄리아 준비 끝

 

강력한 줄리아 언어와 생태계를 활용해 전문가답게 인공지능 실무를 처리해보자. 이 책은 줄리아의 타입 시스템이나 메서드 특화 등 언어적 특성을 자세히 살펴보고, 이어서 데이터 분석, 머신러닝, 딥러닝, 강화학습 영역에서의 일반적인 작업들과 최신 알고리즘들을 줄리아로 우아하게 실습해본다. 줄리아를 프로덕션 레벨로 익히고 활용하고 싶다면, 이 책이 유일무이한 선택이다.

 

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

  [교보문고]  [구글북스]  [리디북스]  [알라딘]  [예스이십사]

 

출판사 제이펍
저작권사 제이펍
원서명 (없음)
도서명 줄리아 머신러닝, 딥러닝, 강화학습
부제 빠르고 우아하게 데이터 분석부터 강화학습까지 인공지능 실무 스킬업
지은이 김태훈
옮긴이 (없음)
감수자 (없음)
시리즈 I♥A.I. 43
출판일 2023. 10. 06
페이지 396쪽
판 형 46배판변형(188*245*19.4)
제 본 무선(soft cover)
정 가 32,000원
ISBN 979-11-92987-40-8 (93000)
키워드 julia, 데이터분석, 데이터과학, 시각화, 메타프로그래밍, 병렬, 전처리, 플럭스, NLP, 알고리즘
분 야 인공지능 / 딥러닝 / 파이썬

 

관련 사이트
깃허브 저장소

 

관련 시리즈

I♥A.I.

 

관련 포스트

■ 2023.09.21 - [출간 전 책 소식] - 경축 줄리아 TIOBE 인덱스 20위 진입

 

관련 도서

■ (없음)

 

관련 파일 다운로드

■ (없음)

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)
■ 본문의 그림과 표

 

미리보기(베타리더 후기, 이 책에 대하여, 1장 일부)

 

정오표 페이지
https://jpub.tistory.com/1472

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

  [교보문고]  [구글북스]  [리디북스]  [알라딘]  [예스이십사]

 

도서 소개

가장 빠르고 우아한 데이터 과학 최고의 언어를 만날 시간

 

줄리아는 파이썬 상위호환 언어로 평가받으면서 사용이 늘고 있다. 파이썬과 같이 동적 언어이면서도 C와 같은 정적 언어에 가까운 실행 속도를 보이며, 대부분의 라이브러리 역시 줄리아 코드로 작성되어 라이브러리의 코드를 수정하거나 디버깅하기가 매우 쉽다는 장점도 있다.

 

이 책은 줄리아의 우아한 언어 특성과 강력한 라이브러리 생태계를 활용해 전문가답게 인공지능 실무를 처리하는 방법을 알려준다. 언어 문법을 매뉴얼 형식으로 설명하는 대신, 타입 시스템, 다중 디스패치, 메서드 특화, 메타프로그래밍, 다차원 배열, 병렬 연산 등 실무 관점에서 알아야 할 줄리아의 코딩 스타일을 자세히 다룬다. 이어서 데이터 분석과 시각화에 쓰이는 라이브러리들(Tables.jl, DataFrames.jl, Query.jl, Plots.jl 등)과 환경 구성법을 살펴보고, 간단한 전처리 실습도 해본다. 특히 책 앞부분은 파이썬과 비교하는 예시로 파이썬 사용자의 줄리아 적응을 돕는다.

 

이후는 머신러닝, 딥러닝, 강화학습 영역의 일반적인 작업들에 대해 최신 알고리즘을 활용해 줄리아로 우아하게 실습해보는 시간이다. 줄리아의 과학적 타입이나 MLJ의 모델 합성을 활용하면 머신러닝 워크플로 자체가 얼마나 깔끔해지는지 체감할 수 있다. 플럭스를 사용하는 딥러닝 파트에서는 자동 미분과 함자를 설명한 다음, 컴퓨터 비전, 객체 탐지, NLP 등의 딥러닝 작업들을 실습한다. 파이토치나 텐서플로에 익숙한 독자가 쉽게 따라올 수 있게 구성했다. 끝으로 DQN, DDPG, SAC, A2C, PPO 등 강화학습 알고리즘을 줄리아로 구현해 카트폴 환경에서 결과를 확인해본다.

 

줄리아 문법 또는 인공지능 이론을 기초부터 하나씩 설명하는 책은 아니다. 그런 입문서들은 이미 시중에 있지만, 줄리아를 실제로 인공지능 실무에 활용해본 저자가 노하우를 담아 집필한 활용서는 이 책이 유일하다. 인공지능 실무에서 생산성을 높이고 싶다면 이 책이 가장 우아한 선택이 될 것이다.

 

주요 내용

  • 타입 시스템, 다중 디스패치, 메서드 특화, 메타프로그래밍, 병렬 연산 등 줄리아의 강력한 언어 특성
  • Tables.jl, DataFrames.jl, Query.jl, Plots.jl 등 줄리아 패키지를 활용한 데이터 분석 및 시각화
  • 과학적 타입을 이용한 머신러닝 전처리, 학습, 예측, 평가, 튜닝 및 모델 합성 실무
  • 플럭스를 사용한 컴퓨터 비전, 객체 탐지, NLP 등 딥러닝 작업 실습
  • DQN, DDPG, SAC, A2C, PPO 강화학습 알고리즘 구현

지은이 소개

김태훈

서울대학교에서 경영학과 통계학을 전공했다. 상품선물을 거래하는 미국 헤지펀드에서 6년간 파이썬으로 데이터 분석을 했다. 2012년부터 국내 대표 사모운용사인 타임폴리오자산운용에서 전산 본부를 이끌고 있다. 주로 하는 업무는 주문 처리 자동화, 위험 관리 시스템 구축, 시장 데이터 분석 등이다. 서비스 구현 시에는 C#을 주로 사용하고, 데이터 분석 시에는 줄리아를 즐겨 사용한다. 러스트, F# 등 다양한 프로그래밍 언어를 업무에 도입해보는 것을 좋아하고, 여러 언어 중에서 줄리아로 작업할 때 가장 우아함을 느꼈다. 새벽에 일어나서 맑은 정신으로 코딩할 때 행복함을 많이 느낀다.

 

차례

베타리더 후기 xii

이 책에 대하여 xvi

 

PART I 줄리아 언어

 

CHAPTER 1 기본 문법 3

1.1 변수 3

1.2 수치 타입 4

__정수 4 / 부동소수점 수 5

1.3 자료구조 6

__배열 6 / 튜플 6 / 명명된 튜플 7 / 딕셔너리 7

1.4 문자열 타입 7

1.5 복합 타입 9

1.6 기본 연산 10

1.7 함수 11

__함수 정의 및 호출 11 / 인수 기본값 12 / 가변 인수와 키워드 인수 12 / 익명 함수와 do 블록 13 / 함수 합성과 파이핑 14 / 벡터화용 dot 연산자 14 / 인수 전달 방식 14 / 객체 호출 함수 15

1.8 제어 흐름 15

__복합식 15 / 조건식 16 / 반복문 16 / 예외 처리 17

1.9 모듈 17

더보기

1.10 변수 영역 19

__전역 변수 19 / 함수의 지역 변수 19 / for, while, try 문의 지역 변수 20

 

CHAPTER 2 타입 시스템 23

2.1 동적 타입 23

2.2 추상 타입과 구체 타입 25

__줄리아 수 체계 25 / 추상 타입 27 / 원시 타입 27 / 복합 타입 28 / 변경 불가능성 30 / 행위의 상속 31

2.3 매개변수 타입 32

__UnionAll 타입 34 / 무공변성 34 / 매개변수 추상 타입 36

2.4 그 외 타입들 36

__싱글턴 타입 36 / Nothing 타입 37 / 함수 타입 37 / 튜플 타입 37 / 유니언 타입 38

2.5 타입 변환과 승격 38

__타입 변환 39 / 승격 40 / 사용자 정의 수 타입 41

 

CHAPTER 3 함수와 메서드 45

3.1 다중 디스패치 46

__다중 디스패치 작동 방식 47 / 다중 디스패치 내부 구현 49 / 인수 타입별로 최적화된 메서드 정의 50

3.2 메서드 특화 51

__컴파일 단계 52 / 복합 타입 인수 메서드의 특화 55 / 타입 시스템과 메서드 특화 57

3.3 성능 좋은 코드를 작성하는 법 57

__스크립트 대신 함수 작성 57 / 타입 명시된 전역 변수 활용 58 / 배열의 원소 타입은 구체 타입으로 58 / 복합 타입의 필드 타입은 구체 타입으로 59 / 타입 안정성 지키기 59

 

CHAPTER 4 메타프로그래밍 63

4.1 코드의 데이터 표현 63

__표현식 63 / 심벌 64 / 평가(실행) 65 / 내삽 65

4.2 코드 생성 65

4.3 매크로 68

__매크로 예제 68 / 이스케이핑 69 / 다시 가위바위보 70 / 유용한 매크로 72

 

CHAPTER 5 다차원 배열 75

5.1 다차원 배열의 특징 75

__열 우선 75 / 벡터화 불필요 78

5.2 다차원 배열의 사용법 80

__배열 리터럴 및 생성 80 / 인덱싱 및 할당 82 / 브로드캐스팅 83 / 뷰 84

5.3 사용자 정의 배열 타입 84

 

CHAPTER 6 병렬 연산 87

6.1 멀티스레딩 87

6.2 멀티프로세싱 90

6.3 분산 컴퓨팅 92

6.4 CUDA GPU 활용 96

 

PART II 데이터 분석 도구

 

CHAPTER 7 재현 가능 환경 103

7.1 패키지 관리자 103

7.2 프로젝트 환경 관리 106

7.3 환경 재현 108

 

CHAPTER 8 상호작용 환경 111

8.1 IJulia.jl 111

8.2 Pluto.jl 113

8.3 구글 코랩 114

8.4 비주얼 스튜디오 코드 116

 

CHAPTER 9 데이터 처리 도구 117

9.1 Tables.jl 117

9.2 DataFrames.jl 118

__데이터프레임 생성 118 / 인덱싱 120 / 열 선택 및 변환 122 / 분할, 적용, 결합 123 / 팬더스와의 비교 124

9.3 Query.jl 126

 

CHAPTER 10 시각화 도구 129

10.1 Plots.jl 129

__기본 사용법 129 / 백엔드 변경 132 / StatsPlots.jl 133

10.2 Makie.jl 134

 

CHAPTER 11 데이터 처리 실습 139

11.1 변수명 정정 140

11.2 결측치 채우기 141

11.3 분포 변환 145

 

PART III MLJ를 이용한 머신러닝

 

CHAPTER 12 워크플로 151

12.1 데이터 준비 152

__과학적 타입 153 / 데이터셋 분할 155 / 전처리 156

12.2 모델 준비 157

__모델 검색 157 / 모델 코드 로딩 159 / 모델 타입 체계 160

12.3 학습, 예측, 평가 161

__학습 161 / 예측 164 / 평가 측도 165 / 교차검증 166

12.4 하이퍼파라미터 튜닝 167

__튜닝 예제 168 / 조기 종료 171

 

CHAPTER 13 모델 합성 173

13.1 데이터셋 준비 173

13.2 파이프라인(합성 모델) 175

__파이프라인 튜닝 176 / 셀프튜닝 모델들의 파이프라인 178 / 타깃 변환 179

13.3 파이프라인(학습 네트워크) 180

__프로토타이핑 180 / 학습 네트워크 내보내기 183

13.4 배깅 186

__EnsembleModel 187 / 학습 네트워크 188 / RandomForest 189

13.5 스태킹 190

__스태킹 과정 191 / 학습 네트워크 194

 

CHAPTER 14 비정형 데이터 197

14.1 이미지 분류 197

__데이터 정형화 198 / 다양한 모델 적용 199

14.2 텍스트 분석 205

__텍스트 전처리 206 / 텍스트 데이터의 특성 추출 208 / 학습 및 예측 211

 

PART IV 플럭스를 이용한 딥러닝

 

CHAPTER 15 자동 미분 217

15.1 미분 구하는 방법 217

15.2 미분 구현 실습 220

__구현 1: 손 미분 220 / 구현 2: 수치 미분 220 / 구현 3: 기호 미분 221 / 구현 4: 자동 미분 222 / 15.3 플럭스의 자동 미분 227

__자이곳 사용법 227 / 소스 코드 변환 방식 229

 

CHAPTER 16 플럭스 사용법 235

16.1 데이터 준비 236

16.2 모델 생성 237

__가중치 초기화 238 / 사용자 정의 타입과 함자 238

16.3 학습 및 테스트 240

__모델 학습 함수 240 / 모델 테스트 함수 242

16.4 전체 실행 242

__손실 함수 및 옵티마이저 지정 243 / 에폭별 실행 243 / 모델 저장 및 로딩 245

16.5 관련 패키지 246

 

CHAPTER 17 컴퓨터 비전 249

17.1 합성곱 신경망 249

__패션 아이템 분류 249 / 숫자 손글씨 분류 253

17.2 전이 학습 253

__데이터셋 준비 254 / 학습 및 테스트 함수 255 / 모델 정의 255 / 학습 및 테스트 256

17.3 가짜 이미지 생성 258

__사용자 정의 데이터셋 258 / 생성자와 판별자 261 / 훈련 262

17.4 객체 탐지 265

__객체 탐지 266 / 탐지 결과 그리기 267

 

CHAPTER 18 자연어 처리 271

18.1 순환 신경망 271

__셀과 래퍼 271 / 계층 273 / 손실 함수 정의 274

18.2 문자열 생성 275

__데이터셋 생성 276 / 모델 및 손실 함수 278 / 학습 및 문자열 생성 279

18.3 텍스트 분류 280

__데이터셋 준비 281 / 학습 및 테스트 함수 282 / 임베딩층 283 / 어텐션층 283 / 모델 정의 284 / 사전 학습된 임베딩 286 / 최종 결과 286

18.4 트랜스포머 288

__데이터셋 준비 및 학습, 텍스트 함수 288 / 모델 정의 288 / 학습 결과 290 / 정규화 순서 바꾸기 291

18.5 BERT 292

__텍스트 토큰화 292 / 특성 추출 294 / 분류 모델 정의 및 학습 295

18.6 허깅페이스 296

__BERT 기반의 모델 298 / GPT-2 299 / BART 300

 

PART V 심층 강화학습

CHAPTER 19 강화학습 환경 305

19.1 환경 사용법 305

19.2 카트폴 환경 307

19.3 사용자 정의 환경 309

 

CHAPTER 20 가치 기반 알고리즘 313

20.1 기본 개념 313

__정책, 궤적, 이득 313 / 기대이득, 최적정책 314 / 가치 함수: (최적) 상태, (최적) 행동 314 / 어드밴티지 함수 315 / 시간차 학습 315 / 활성 정책 vs 비활성 정책 317 / 탐험과 활용 317 / 타깃 네트워크 318 / 행동자-비평자 318

20.2 DQN 318

__경험 재현 버퍼 319 / 하이퍼파라미터 321 / 모델 정의 323 / 전체 실행 함수 325 / 행동 선택 함수 328 / 모델 훈련 함수 328 / 손실 함수 반환 함수 330 / 카트폴 결과 331

20.3 DDPG 333

__코드 구현 334 / 카트폴 결과 336

20.4 SAC 337

__코드 구현 338 / 카트폴 결과 342

 

CHAPTER 21 정책 기반 알고리즘 343

21.1 기본 개념 343

__정책 경사 343 / GAE 345

21.2 A2C 346

__롤아웃 버퍼 346 / 이득 및 GAE 계산 349 / 하이퍼파라미터 350 / 모델 정의 352 / 전체 실행 함수 354 / 행동 선택 함수 356 / 모델 훈련 함수 359 / 손실 함수 반환 함수 360 / 카트폴 결과 361

21.3 PPO 364

__코드 구현 366 / 카트폴 결과 367

21.4 가치 기반과 정책 기반 알고리즘 비교 368

 

맺음말 370

찾아보기 373

 

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  포스트  유튜브  인스타그램  트위터  페이스북