금융 전문가를 위한 머신러닝 알고리즘

파이썬으로 배우는 금융 머신러닝 알고리즘의 원리와 활용

파이썬 코드를 사용해 금융 전문가용 인공지능(머신러닝과 딥러닝 포함) 영역으로 나아가기 위한 안내서!

《금융 전문가를 위한 머신러닝 알고리즘》에서는 새롭게 발전한 머신러닝 기술을 탐구하고, 보험 처리나 이체 및 대출 관리를 비롯하여 다양한 금융 업무에 이 기술을 어떤 식으로 적용할 수 있을지를 보여준다. 핵심 머신러닝 기술에 필요한 개념과 알고리즘을 설명하고, 파이썬 코드로 작성한 예제를 제시해 모델을 직접 구현해 볼 수 있게 한다.

이 책은 저자가 금융 전문가 대상 머신러닝 교육 과정을 운영해 본 경험을 바탕으로 하여 저술하였다. 기존에 쓰이던 금융 알고리즘을 제공하기보다는, 다양한 방법으로 응용해 볼 수 있는 고등 머신러닝 개념들과 발상들에 초점을 맞추고 있다.

 

★ 이 책에서 다루는 내용 ★

  • 정형 데이터, 자연어, 사진, 문서에 적힌 글 등을 가지고 머신러닝을 하기
  • 머신러닝 방식으로 부정거래(즉, 사기)를 감지하고, 재무적 추세를 예측하고, 고객정서를 분석하기
  • 파이썬·사이킷·케라스·텐서플로를 사용해 휴리스틱 기반 방식, 시계열 처리 방식, 생성적 모델 구현 방식, 강화학습 방식을 구현하기
  • 신경망이라는 주제를 깊이 파고 들어 생성적 적대 방식 신경망이나 강화학습 방식 신경망의 용례들을 조사하기
  • 머신러닝 애플리케이션에 내재된 문제를 고치고 현업에서 쓸 수 있게 준비하기
  • 머신러닝 과정에 끼어 들 수 있는 사람에 대한 편견을 머신러닝 모델이 극복하게 하고, 개인정보보호 문제를 해결하기

얀네스 클라스 (Jannes Klaas)

얀네스 클라스는 경제학 및 금융 분야 배경을 지닌 정량분석 연구원이다. 현재 옥스퍼드 대학교의 대학원생인 그는 이전에 두 차례에 걸쳐 머신러닝 부트 캠프를 이끌었고 여러 금융 회사와 함께 데이터 중심 애플리케이션 및 거래 전략을 연구했다. 그의 활발한 연구 관심사에는 시스템 리스크뿐만 아니라 대규모 자동 지식 발견도 포함된다.

박진수

다양한 개발, 저술, 번역 경험을 바탕으로 다양한 IT 융복합 사업을 전개하기를 바라며 1인 기업으로 발판을 다지고 있다. 번역한 책으로 《사물인터넷을 위한 인공지능》 《실전! GAN 프로젝트》 《실전 예제로 배우는 GAN》 《전문가를 위한 머신러닝 솔루션》 《딥러닝 모델 설계를 떠받치는 기술》 《따라 하면서 배우는 유니티 ML-Agents》가 있다.

  • ▣ 01장: 신경망과 경사도 기반 최적화
    • 이 책에서 할 여행
    • 머신러닝이란?
    • 지도학습
    • 비지도학습
    • 강화학습
      • 데이터의 비합리적인 효과
      • 모든 모델이 잘못되었다
    • 작업 환경 구성
    • 캐글 커널 사용
      • 노트북을 로컬에서 실행하기
    • AWS의 딥러닝 AMI 사용
    • 함수를 근사하기
    • 전방 전달
    • 로지스틱 회귀기
      • 선형 회귀기를 파이썬으로 구현하기
    • 모델 파라미터 최적화
    • 모델 손실 측정
      • 경사 하강법
      • 역전파
      • 파라미터 갱신
      • 종합
    • 더 깊은 망
    • 케라스에 대한 간략한 소개
      • 케라스 가져오기
      • 케라스 내의 2개 계층 모델
      • 케라스와 텐서플로
    • 텐서와 계산 그래프
    • 연습문제
    • 요약
    •  
  • ▣ 02장: 정형 데이터에 머신러닝을 적용하기
    • 데이터
    • 휴리스틱, 특징 기반, 단대단 모델들
    • 머신러닝 소프트웨어 스택
    • 휴리스틱 접근 방식
      • 휴리스틱 모델을 사용해 예측하기
      • F1 점수
      • 혼동행렬을 사용해 평가하기
    • 특징 공학적 접근
      • 직관에서 비롯된 특징: 사기꾼은 잠들지 않는다
      • 전문가의 통찰력: 이체 후 즉시 현금 인출
      • 통계적 문제: 잔액 오류
    • 케라스 라이브러리에서 쓸 수 있게 데이터를 준비하기
      • 원핫 인코딩
      • 엔터티 임베딩
    • 케라스를 사용해 예측 모델들을 만들기
      • 표적 추출
      • 훈련용 집합을 만들기
      • 검증용 집합을 만들기
      • 훈련용 데이터를 과다표집하기
      • 모델 구축
    • 트리 기반 방법에 대한 간단한 입문서
      • 간단한 결정 트리
      • 랜덤포레스트
      • 엑스지부스트
    • 단대단 모델링
    • 연습문제
    • 요약
    •  
  • ▣ 03장: 컴퓨터 비전을 활용하기
    • 합성곱 신경망
      • MNIST에 쓰이는 필터들
      • 두 번째 필터 추가
    • 컬러 이미지 처리에 쓰이는 필터
    • 케라스 안에 합성곱 신경망을 쌓기 위한 블록들
      • Conv2D
      • MaxPooling2D
      • 평탄화
      • 조밀
      • MNIST 훈련
    • 우리의 신경망을 더 도드라지게 하는 부분
      • 모멘텀
      • Adam 최적화기
      • 정칙화
      • 드롭아웃
      • 배치 정규화
    • 큰 이미지 데이터셋을 사용해 작업하기
    • 사전훈련 모델을 사용해 작업하기
      • VGG-16 수정
      • 임의 이미지 확장
    • 모듈성 상반관계
    • 분류를 넘어서는 컴퓨터 비전
      • 얼굴 인식
      • 경계 상자 예측
    • 연습문제
    • 요약
    •  
  • ▣ 04장: 시계열을 이해하기
    • 판다스로 데이터를 가시화하고 준비하기
      • 전역 특징 통계량 집계
      • 표본 시계열 검사
      • 정상성 종류
      • 정상성이 중요한 이유
      • 시계열이 정상성을 띠게 하기
      • 정상성 문제를 무시해도 될 때
    • 고속 푸리에 변환
    • 자기상관
    • 훈련 요법 및 테스트 요법 구축
    • 사후검정에 대한 참고 사항
    • 중앙값 예측
    • ARIMA
    • 칼만 필터
    • 신경망을 이용해 예측하기
      • 데이터 준비
    • Conv1D
    • 확대된 합성곱과 인과적 합성곱
    • 단순 RNN
    • LSTM
      • 캐리
    • 재귀 드롭아웃
    • 베이즈 딥러닝
    • 연습문제
    • 요약
    •  
  • ▣ 05장: 자연어 처리 기법 기반 텍스트 분석
    • spaCy 입문 과정 안내
    • 개체명 인식
      • NER 미세 조정
    • 품사 태깅
    • 규칙 기반 일치
      • 사용자 정의 함수들을 정합기에 추가하기
      • 파이프라인에 정합기를 추가하기
      • 규칙 기반 시스템과 학습 기반 시스템을 조합하기
    • 정규 표현식
      • 파이썬의 정규식 모듈을 사용하기
      • 판다스의 정규식
      • 정규식을 사용해야 할 때와 사용하지 말아야 할 때
    • 텍스트 분류 작업
    • 데이터 준비
      • 문자 정리
    • 표제어 추출
      • 표적치 준비
      • 훈련 집합과 테스트 집합을 준비하기
    • 단어 주머니
    • TF-IDF
    • 토픽 모델링
    • 단어 임베딩
      • 단어 벡터를 사용해 훈련할 준비하기
      • 사전 훈련 단어 벡터 적재
      • 단어 벡터 사용 시계열 모델
    • 단어 임베딩으로 문서 유사도를 계산하기
    • 케라스의 함수형 API 둘러보기
    • 주의
    • seq2seq 모델
      • seq2seq 아키텍처 개관
      • 데이터
      • 인코딩 문자들
      • 추론 모델 생성
      • 번역하기
    • 연습문제
    • 요약
    •  
  • ▣ 06장: 생성 모델 사용
    • 오토인코더를 이해하기
      • MNIST용 오토인코더
      • 신용카드용 오토인코더
    • t-SNE를 이용한 잠재공간 시각화
    • 변분 오토인코더
      • MNIST 예제
      • 람다 계층 사용
      • 쿨백-라이블러 발산
      • 사용자 지정 손실 만들기
      • VAE로 데이터를 생성하기
      • 단대단 부정사용 탐지 시스템을 위한 VAE
    • 시계열을 위한 VAE
    • GAN
      • MNIST용 GAN
      • GAN 잠재벡터 이해
      • GAN 훈련 기법
    • 적은 데이터 사용 – 능동학습
      • 레이블 처리 비용을 절약하기
      • 레이블을 다는 사람을 기계가 크게 돕게 하기
      • 레이블이 없는 데이터에 유사 레이블을 달기
      • 생성 모델 사용
    • 부정사용 탐지용 SGAN
    • 연습문제
    • 요약
    •  
  • ▣ 07장: 금융시장을 위한 강화학습
    • 캐치 – 강화학습에 대한 빠른 안내서
      • 강화학습을 지도학습으로 바꾸는 Q 학습
      • Q 학습 모델 정의
      • 캐치를 플레이하기 위한 훈련
    • 마르코프 과정 및 벨만 방
    • 강화학습에 대한 공식적인 소개
      • 경제학 분야의 벨만 방정식
    • 우위 연기자-비평가 모델들
      • 균형을 향한 학습
      • 거래를 학습하게 하기
    • 진화전략과 유전알고리즘
    • 강화학습이라는 기초공학을 위한 실용적인 요령
      • 우수한 보상 함수를 설계하기
      • 강건한 강화학습
    • 최첨단 강화학습
      • 다중 에이전트 강화학습
      • 학습하는 방법을 학습하게 하기
      • 강화학습을 통해 두뇌를 이해하기
    • 연습문제
    • 요약
    •  
  • ▣ 08장: 프라이버시, 디버깅, 런칭
    • 데이터 디버깅
      • 작업용으로 쓰기에 데이터가 적절한지를 확인하는 방법
      • 데이터가 충분하지 않은 경우에 수행할 작업
      • 데이터 단위 테스트
      • 데이터를 비공개로 하고 법규를 준수하기
      • 훈련용 데이터 준비
    • 어떤 입력이 어떤 예측으로 이어지는지를 이해하기
    • 모델 디버깅
      • 하이페라스를 이용한 하이퍼파라미터 탐색
      • 효율적인 학습속도를 알아내기
      • 학습속도 스케쥴링
      • 텐서보드를 사용해 훈련 과정을 살펴보기
      • 경사도 폭증 및 소실
    • 배포
      • 신속한 출시
      • 계량을 이해하고 관찰하기
      • 데이터의 출처를 이해하기
    • 성능을 높이기 위한 묘책
      • 문제에 알맞은 하드웨어를 사용하기
      • 텐서플로의 추정기들을 분산 훈련에 사용하기
      • CuDNNLSTM 같은 최적화 계층을 사용하기
      • 파이프라인 최적화
      • Cython으로 코드 실행 속도를 높이기
      • 빈번한 요청을 캐싱하기
    • 연습문제
    • 요약
    •  
  • ▣ 09장: 편향과 싸우기
    • 머신러닝 시에 불공정성이 생기는 이유
    • 법적 관점
    • 관찰 가능 공정성
    • 공정성을 띠게 하기 위한 훈련
    • 인과적 학습
      • 인과 모델 획득
      • 도구변수
      • 비선형 인과적 모델
    • 공정성을 보장하기 위한 모델 해석
    • 복잡계 실패로 인한 불공정성
    • 공정성을 띠는 모델을 개발하기 위한 점검표
    • 연습문제
    • 요약
    •  
  • ▣ 10장: 베이즈 추론 및 확률계획법
    • 베이즈 추론에 대한 직관적인 안내
      • 평탄 사전분포
      • 50% 이하 사전분포
      • 사전분포와 사후분포
      • 마르코프 연쇄 몬테칼로
      • 메트로폴리스-헤이스팅스 MCMC
      • 얕은 확률 계획법부터 깊은 확률적 계획법까지
    • 요약