상세정보
미리보기
파이썬을 이용한 딥러닝/강화학습 주식투자(개정2판) : 파이토치와 케라스를 활용한 인공지능 퀀트 투자 시스템
- 저자
- 퀀티랩 저
- 출판사
- 위키북스
- 출판일
- 2022-07-06
- 등록일
- 2023-08-02
- 파일포맷
- PDF
- 파일크기
- 13MB
- 공급사
- 예스이십사
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
강화학습은 스스로 학습하는 머신러닝 기법으로서 주식 데이터 학습에 잘 적용되는 기법이다. 이 책에서는 파이썬을 이용한 강화학습 기반의 주식투자 시뮬레이션 프로그램을 개발하는 방법을 살펴보고, 이를 실전에 활용해 볼 수 있도록 이론과 코드 수준에서 상세한 설명을 덧붙였다. 이 책을 통해 딥러닝과 강화학습을 이해하고 이를 바탕으로 주식투자를 비롯한 다양한 도메인에 활용할 수 있을 것이다.
저자소개
금융 데이터 분석 그룹. 머신러닝, 딥러닝, 강화학습 등의 다양한 기술을 연구하고 금융 데이터를 분석하여 금융 투자에 도움이 될 의미 있는 정보를 만들어 내기 위한 일을 하고 있다. 최근에는 이 책에서 다루고 있는 「파이썬 기반의 강화학습 주식투자 프로젝트」와 더불어 「딥러닝 주식 포트폴리오 관리 프로젝트」, 「자동 주식투자 시스템 개발 프로젝트」등을 진행하고 있다. 관련 프로젝트 일부를 퀀티랩 Github에서 공유하고 금융 데이터 분석 결과를 퀀티랩 웹사이트와 퀀티랩 블로그에서 제공하고 있다.
목차
01장: 배경 이론 1 - 금융 데이터 분석 1.1 금융 데이터란? 1.2 금융 데이터 분석의 필요성 1.3 금융 데이터 분석 방법 ___1.3.1 기본적 분석 ___1.3.2 기술적 분석 ___1.3.3 정서 분석___1.3.4 종합 분석1.4 전통적인 퀀트 투자 방법 ___1.4.1 퀀트 투자 역사___1.4.2 저 PER+저 PBR+저 PCR 전략___1.4.3 조셉 피오트로스키 F-Score1.5 퀀트 투자 트렌드1.6 포트폴리오 평가1.7 이번 장의 요점 02장: 배경 이론 2 - 딥러닝이란?2.1 딥러닝 개요___2.1.1 딥러닝의 정의와 역사___2.1.2 딥러닝이 최근에 주목받는 이유___2.1.3 딥러닝으로 풀고자 하는 문제2.2 딥러닝 발전 과정___2.2.1 퍼셉트론___2.2.2 인공 신경망___2.2.3 다양한 활성화 함수 출현___2.2.4 출력층에서 활성화 함수를 사용___2.2.5 심층 신경망2.3 딥러닝에 필요한 핵심 기술___2.3.1 오차 역전파 기법 ___2.3.2 최적해 탐색 기법___2.3.3 과적합 해결 기법2.4 고급 인공 신경망 구조___2.4.1 순환 신경망___2.4.2 LSTM 신경망___2.4.3 합성곱 신경망2.5 딥러닝 적용 사례___2.5.1 기계 번역 ___2.5.2 음성 인식___2.5.3 이미지 인식2.6 이번 장의 요점 03장: 배경 이론 3 - 강화학습이란?3.1 강화학습의 기초가 된 마르코프 의사 결정 과정___3.1.1 마르코프 가정___3.1.2 마르코프 과정___3.1.3 마르코프 의사 결정과정3.2 상태 가치 함수와 상태-행동 가치 함수___3.2.1 상태 가치 함수(state-value function)___3.2.2 상태-행동 가치 함수(action-value function)3.3 벨만 방정식___3.3.1 벨만 기대 방정식(Bellman expectation equation)___3.3.2 벨만 최적 방정식(Bellman optimality equation)3.4 MDP를 위한 동적 프로그래밍___3.4.1 정책 반복(policy iteration)___3.4.2 가치 반복(value iteration)___3.4.3 동적 프로그래밍의 한계와 강화학습이 필요한 이유3.5 주요 강화학습 개념___3.5.1 강화학습 표기법(notation)___3.5.2 Model-based vs. Model-free___3.5.3 예측(prediction)과 제어(control)___3.5.4 부트스트랩(bootstrap)___3.5.5 On-policy vs. Off-policy___3.5.6 이용(exploitation)과 탐험(exploration)3.6 주요 강화학습 기법___3.6.1 몬테카를로 학습(Monte-Carlo learning, MC)___3.6.2 시간차 학습(temporal-difference learning, TD)___3.6.3 Q-러닝(Q-learning, QL)과 DQN(deep Q-network)___3.6.4 정책 경사(policy gradient, PG)___3.6.5 액터-크리틱 ___3.6.6 A2C(advantage actor-critic)___3.6.7 A3C(asynchronous advantage actor-critic) ___3.6.8 주요 강화학습 기법 정리3.7 강화학습 적용 사례___3.7.1 벽돌 깨기___3.7.2 알파고(AlphaGo)3.8 이번 장의 요점 04장: 배경 이론 4 - 강화학습을 이용한 주식투자란?4.1 직관적으로 강화학습 전략 알아보기___4.1.1 강화학습을 이용한 주식투자 구조___4.1.2 차트 데이터 이해하기___4.1.3 차트 데이터를 바탕으로 강화학습을 하는 방식___4.1.4 거래 수수료와 거래세 ___4.1.5 무작위 행동 결정(탐험)과 무작위 행동 결정 비율(엡실론)4.2 강화학습 효과를 차별화하는 요인들___4.2.1 차별화 요인 1: 학습 데이터 구성___4.2.2 차별화 요인 2: 에이전트 상태 종류___4.2.3 차별화 요인 3: 에이전트 행동 종류___4.2.4 차별화 요인 4: 신경망___4.2.5 차별화 요인 5: 강화학습 기법4.3 차트 데이터와 학습 데이터 살펴보기___4.3.1 차트 데이터___4.3.2 학습 데이터4.4 주식투자 강화학습 절차___4.4.1 주식투자 강화학습 순서도___4.4.2 행동 결정___4.4.3 결정된 행동 수행___4.4.4 배치 학습 데이터 생성 및 신경망 업데이트4.5 주식투자 강화학습 과정 및 결과 확인 방법___4.5.1 강화학습 과정 확인의 필요성___4.5.2 강화학습 과정을 로그로 남기기 ___4.5.3 강화학습 과정을 이미지로 가시화하기4.6 이번 장의 요점 05장: 모듈 개발 - 강화학습 기반 주식투자 시스템 개발5.1 RLTrader 개발에 필요한 환경___5.1.1 아나콘다 설치 ___5.1.2 PyTorch 설치___5.1.3 텐서플로 설치___5.1.4 plaidML 설치5.2 RLTrader의 설계___5.2.1 모듈 구조___5.2.2 디렉터리 구조___5.2.3 클래스 다이어그램___5.2.4 환경 모듈 개요___5.2.5 에이전트 모듈 개요___5.2.6 신경망 모듈개요___5.2.7 학습기 모듈 개요___5.2.8 데이터 관리 모듈 개요___5.2.9 가시화 모듈개요___5.2.10 실행 모듈 개요5.2.11 기타 모듈 5.3 환경 모듈 개발___5.3.1 환경 모듈의 주요 속성과 함수___5.3.2 코드 조각: 환경 클래스5.4 에이전트 모듈 개발___5.4.1 에이전트 모듈의 주요 속성과 함수___5.4.2 코드 조각 1: 에이전트 클래스의 상수 선언___5.4.3 코드 조각 2: 에이전트 클래스의 생성자___5.4.4 코드 조각 3: 에이전트 클래스의 함수5.5 신경망 패키지 개발___5.5.1 딥러닝 프레임워크 선정___5.5.2 신경망 구조___5.5.3 신경망 모듈의 주요 속성과 함수 ___5.5.4 코드 조각: 딥러닝 프레임워크에 따라 신경망 모듈 구현체 선택5.6 PyTorch를 이용한 신경망 모듈 개발 ___5.6.1 코드 조각 1: PyTorch 등의 의존성 임포트___5.6.2 코드 조각 2: PyTorch를 이용한 Network 클래스___5.6.3 코드 조각 3: PyTorch를 이용한 DNN 클래스___5.6.4 코드 조각 4: PyTorch를 이용한 LSTMNetwork 클래스___5.6.5 코드 조각 5: PyTorch를 이용한 CNN 클래스 5.7 Keras를 이용한 신경망 모듈 개발___5.7.1 코드 조각 1: Keras를 이용한 Network 클래스 ___5.7.2 코드 조각 2: Keras를 이용한 DNN 클래스___5.7.3 코드 조각 3: Keras를 이용한 LSTMNetwork 클래스___5.7.4 코드 조각 4: Keras를 이용한 CNN 클래스5.8 가시화 모듈 개발___5.8.1 가시화 모듈의 주요 속성과 함수 ___5.8.2 가시화 모듈이 만들어 내는 정보___5.8.3 코드 조각 1: 가시화기 클래스의 생성자___5.8.4 코드 조각 2: 가시화 준비 함수___5.8.5 코드 조각 3: 가시화 함수___5.8.6 코드 조각 4: 가시화 정보 초기화 및 결과 저장 함수5.9 학습기 모듈 개발___5.9.1 학습기 모듈의 주요 속성과 함수___5.9.2 코드 조각 1: 학습기 모듈의 의존성 임포트 ___5.9.3 코드 조각 2: 학습기 클래스의 생성자___5.9.4 코드 조각 3: 가치 신경망 생성 함수___5.9.5 코드 조각 4: 정책 신경망 생성 함수___5.9.6 코드 조각 5: 에포크 초기화 함수___5.9.7 코드 조각 6: 가치 신경망 및 정책 신경망 학습___5.9.8 코드 조각 7: 에포크 결과 가시화___5.9.9 코드 조각 8: 강화학습 실행 함수___5.9.10 코드 조각 9: DQN 강화학습 클래스___5.9.11 코드 조각 10: 정책 경사 강화학습 클래스___5.9.12 코드 조각 11: Actor-Critic 강화학습 클래스___5.9.13 코드 조각 12: A2C 강화학습 클래스___5.9.14 코드 조각 13: A3C 강화학습 클래스5.10 데이터 관리 모듈 개발___5.10.1 코드 조각 1: 자질 벡터 정의___5.10.2 코드 조각 2: 데이터 전처리 함수___5.10.3 코드 조각 3: 차트 데이터 및 학습 데이터 로드 함수 5.11 강화학습 주식투자 실행 모듈 개발___5.11.1 코드 조각 1: 프로그램 인자 설정___5.11.2 코드 조각 2: 파라미터 설정___5.11.3 코드 조각 3: 강화학습 설정___5.11.4 코드 조각 4: 강화학습 실행5.12 기타 모듈 개발___5.12.1 코드 조각 1: 설정 모듈___5.12.2 코드 조각 2: 유틸리티 모듈5.13 개발 참여5.14 이번 장의 요점 06장: 데이터 준비 - 주식 데이터 획득6.1 방법 1. 증권사 HTS 사용___6.1.1 증권사 HTS 다운로드___6.1.2 증권 계좌 개설___6.1.3 종목 차트 데이터 확인___6.1.4 엑셀에서 일별 데이터 CSV 파일 저장6.2 방법 2. 증권사 API 사용___6.2.1 증권사 API 설치___6.2.2 대신증권 크레온 API 사용 환경 준비___6.2.3 대신증권 크레온 HTS 실행___6.2.4 대신증권 크레온 API를 이용한 차트 데이터 획득 프로그램 작성6.3 방법 3. 웹 크롤링___6.3.1 pandas-datareader로 주식 데이터 획득하기___6.3.2 금융 포털 크롤링으로 주식 데이터 획득하기6.4 방법 4. 퀀티랩 데이터베이스 사용6.5 이번 장의 요점 07장: 강화학습 실행7.1 RLTrader 실행 방법___7.1.1 학습 모드 실행 방법___7.1.2 테스트 모드 실행 방법___7.1.3 업데이트 모드 실행 방법___7.1.4 예측 모드 실행 방법___7.1.5 강화학습 과정 및 결과 확인___7.1.6 학습이 잘 되지 않을 때의 체크리스트7.2 학습 모드 예시___7.2.1 학습 모드 결과 1: 삼성전자(005930)___7.2.2 학습 모드 결과 2: 현대차(005380)___7.2.3 학습 모드 결과 3: 카카오(035720)___7.2.4 학습 모드 결과 정리 및 원숭이 투자와의 비교7.3 테스트 모드 예시 ___7.3.1 테스트 모드의 특징___7.3.2 테스트 모드 결과 1: 삼성전자(005930)___7.3.3 테스트 모드 결과 2: 현대차(005380)___7.3.4 테스트 모드 결과 3: 카카오(035720) ___7.3.5 테스트 모드 결과 정리 및 원숭이 투자와의 비교7.4 업데이트 모드 예시___7.4.1 업데이트 모드의 특징___7.4.2 업데이트 모드 결과 1: 삼성전자(005930)___7.4.3 업데이트 모드 결과 2: 현대차(005380)___7.4.4 업데이트 모드 결과 3: 카카오(035720)___7.4.5 업데이트 모드 결과 정리 및 원숭이 투자와의 비교7.5 예측 모드 예시___7.5.1 예측 모드의 특징___7.5.2 예측 모드 결과 1: 삼성전자(005930)___7.5.3 예측 모드 결과 2: 현대차(005380)___7.5.4 예측 모드 결과 3: 카카오(035720)7.6 이번 장의 요점 08장: RLTrader 커스터마이징 8.1 에이전트 모듈 커스터마이징___8.1.1 코드 조각 1: 매매 수수료 및 세금 커스터마이징 사례___8.1.2 코드 조각 2: 행동 결정 로직 커스터마이징 사례8.2 신경망 모듈 커스터마이징___8.2.1 코드 조각 1: 신경망 커스터마이징 사례___8.2.2 코드 조각 2: 최적화 방법 커스터마이징 사례___8.2.3 코드 조각 3: 공유 신경망 적용 커스터마이징 사례8.3 강화학습 학습기 커스터마이징___8.3.1 코드 조각 1: 배치 학습 데이터 생성 커스터마이징 사례___8.3.2 코드 조각 2: 가시화 파일 생성 수 조절8.4 학습 데이터 커스터마이징___8.4.1 ‘기관 순매수’ 및 ‘외국인 순매수’ 데이터 획득 사례___8.4.2 코드 조각 1: 주식 데이터 전처리 커스터마이징 사례___8.4.3 코드 조각 2: 학습 데이터 자질 구성 커스터마이징 사례 부록A: 프로그래밍, 머신러닝, 주식투자 용어A.1 파이썬 프로그래밍 기본 용어 정리A.2 머신러닝 기본 용어 정리A.3 주식 기본 용어 정리 부록B: 딥러닝에서 TensorFlow+GPU 사용하기B.1 GPU 사용을 위한 하드웨어 준비___B.1.1 그래픽카드 인식 확인___B.1.2 호환되는 그래픽카드 확인B.2 GPU 사용을 위한 소프트웨어 준비___B.1.1 CUDA 툴킷 설치___B.2.2 cuDNN 라이브러리 설치___B.2.3 TensorFlow의 GPU 사용 최종 확인 부록C: 딥러닝에서 plaidML+GPU 사용하기C.1 plaidML 사용을 위한 Visual C++ 2015 설치C.2 plaidML 설치 및 확인 부록D: RLTrader의 딥러닝 프레임워크 적용기 부록E: RLTrader 학습 데이터 명세E.1 RLTrader 학습 데이터 v1 E.2 RLTrader 학습 데이터 v1.1E.3 RLTrader 학습 데이터 v2E.4 RLTrader 학습 데이터 v3E.5 RLTrader 학습 데이터 v4