-
-
파이썬 기반 금융 인공지능 - 파이썬과 케라스를 활용한 금융 시계열 데이터 기반 알고리즘 트레이딩 전략
이브스 힐피쉬 지음, 김도형 옮김 / 한빛미디어 / 2022년 9월
평점 :
마침 모 강의사이트에서 모모 금융데이터분석 강의를 한참 듣고 있던 중이었다. 금융이라기 보다는 정확히는 주식데이터 강의였는데, 주식 자체에 대한 정보 보다는 '데이터 분석 과정을 설명하되 데이터를 주식데이로 한다'는 측면이 더 커서 매 차수 중복되는 내용들도 많이 있었다. 그래서 혹시 이 책에서는 다른 지식과 인사이트를 주지 않을까 해서 이 책을 선택하게 되었다. 그런데 파이썬 코딩만으로 주식으로 돈을 벌 수 있다면 누가 돈을 못 벌겠으며, 진짜라면 그 비법을 왜 공개할까 싶기도 하다. 그래서 마음을 비우고 책을 펼쳤다.
옮긴이의 말을 조금 옮겨보면 "유독 금융 분야에서 머신러닝과 인공지능이 이렇다 할 뚜렷한 성과를 보이지 못하고 있는 것이 현실이다. 이는 금융 분야에 특화된 머신러닝이나 인공지능 방법론이 나오지 않았다는 점보다는, 효율적 시장 구조 등 금융 분야의 문제들이 가지고 있는 보다 근본적인 특성에 기반한다. 이 책은 금융 분야의 다양한 기반 이론과 현업 실무에 최신 머신러닝 및 인공지능 기술을 적용하는 것이 실제로 어느 정도의 가능성을 가지는지를 폭넓은 관점에서 고찰한다."고 되어 있다.
1부에서는 지도학습, 신경망, 초지능, 2부에서는 전통적이고 규범적인 금융이론, 데이터 기반 금융 등에 대한 기본적인 내용을 다루고, 3부에서는 딥러닝, 신경망, 강화학습을 적용해서 금융시장의 '통계적 비효율성'을 발견하고, 이것을 전제조건으로 4부에서 알고리즘 트레이딩을 통해 통계적 비효율성이 어떻게 활용되는지를 다루는 순서로 되어 있다. 5부에서는 금융 산업에서 인공지능이 가져올 결과와 금융적 특이점에 대해서 살펴본다. 6부에서는 파이썬 코드로 구현하는 법과 예제가 있다.
특히 '통계적 비효율성'이라는 표현이 눈에 와 닿았다. Statistical Inefficiency.
앞부분은 대충 아는 내용들이라 이 통계적 비효율성을 다루는 부분(3부)으로 가보았다. 7장에서 Dense한 신경망의 클래스의 불균형과 과적합을 막기 위한 방법, 그리고 최적화 방법을 소개한다. 과적합을 막기 위한 데이터 정규화, 드롭아웃, 규제, 배깅 과정을 코드와 함께 설명하고 있었다. 한 권의 책에서 많은 내용을 다루다 보니 간단하게 설명된 면도 없진 않다. 8장에서는 재귀 신경망 예제를 보여주는데 금융 가격 시계열, 금융 수익률 시계열 데이터에 이동 모멘텀 특징과 이동 변동성 특징이라는 '금융 특징'을 추가하는 방법을 보여준다. 9장에서는 강화학습의 기본 개념에 대해 설명하고 카트폴 문제(좌우로 움직이는 카트 위에 있는 막대기가 쓰러지지 않고 균형을 잡을 수 있도록 학습하는 문제)를 OpenAI Gym, 몬테카를로 에이전트, 신경망 에이전트, DQL 에이전트를 통해 해결하는 방법들을 코드와 함께 보여준다. 그리고 이것을 금융 분야에 초점을 맞춰 구현해 본다. 그런데 여기까지 따라왔지만 나는 '통계적 비효율성'이라는 용어가 의미하는 것이 무엇인지 정확히 찾아내지는 못했다. 아직 공부해야 하는 것이 많구나. 기초적인 용어조차도 검색을 해야하다니...
전체 코드는 https://aiif.pqp.io 에서 쉽게 실행해볼 수 있고, 상업화나 재배포는 허락을 받아야 하지만 프로그램에 포함시키거나 문서에 넣는 것은 상관이 없다고 한다. 파라미터에 대한 설명이나 앞의 코드에서 추가해 실행한 부분들에 대해서는 번호를 달아 설명을 붙여놨기 때문에 이해하기가 따라가기가 쉬웠다.
5부의 내용이 나에게 특히 도움이 되었는데, 금융에 대해서는 잘 모르는 컴공쟁이라서 타인의 관점으로 분석을 하거나 내가 미처 생각할 수 없었던 부분에 대해서 의견을 내주는 것은 언제든지 반갑다. 반대로 금융 쪽을 잘 알지만 프로그래밍을 모르는 분들에게 오히려 더 도움이 될 수 있는 책일 수도 있겠다는 생각이 들었다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.