물리학과 금융의 만남: AI를 활용한 블랙-숄즈 방정식 풀기

파이썬을 사용하여 물리학 기반 신경망을 사용하여 금융 모델을 해결하는 방법은 다음과 같습니다.

부인 성명이것은 재정적인 조언이 아닙니다. 저는 항공우주공학 박사 학위를 가지고 있으며, 머신러닝 분야에 집중하고 있습니다. 나는 아니다 재무 자문. 본 글은 재무적 맥락에서 물리 기반 신경망(PINN)의 잠재력을 보여주는 데에만 목적이 있습니다.

16살 때 저는 물리학에 푹 빠졌습니다. 그 이유는 간단하지만 강력했습니다. 저는 물리학이 공정한.

빛의 속도가 하룻밤 사이에 바뀌거나 갑자기 가능해져서 연습에서 실수를 한 적이 없습니다.x 부정적입니다. 저는 물리학 논문을 읽을 때마다 이렇게 생각했습니다. “이건 말이 안 돼요.” 그것은 밝혀졌다 이해하지 못한 사람은 나였습니다.

그래서 물리학은 항상 공평하고 그래서 항상 완벽한물리학은 이러한 완벽함과 정의를 일련의 규칙을 통해 보여줍니다. 미분 방정식.

내가 아는 가장 간단한 미분 방정식은 다음과 같습니다.

매우 간단합니다. 여기서 시작합니다. x0=0, 시간 t=0에서 우리는 5m/s의 일정한 속도로 움직이고 있습니다. 즉, 5초 후에는 원점에서 10미터(또는 마일이라고 하셔도 됩니다) 떨어진 곳에 있고, 43128초 후에는 원점에서 XNUMX미터 떨어진 곳에 있으며, XNUMX초 후에는... 대충 이해하셨겠죠?

앞서 말씀드렸듯이, 이것은 돌에 새겨진 명제입니다. 이상적이고, 완벽하며, 의심할 여지가 없습니다. 하지만 현실에서 이 상황을 상상해 보세요. 산책을 하거나 운전을 한다고 상상해 보세요. 목표 속도로 달리려고 최선을 다하더라도, 그 속도를 일관되게 유지할 수는 없습니다. 어떤 지점에서는 정신이 딴 데 팔려 정신이 산만해질 수도 있고, 신호등에서 멈출 수도 있으며, 아마도 위의 여러 가지가 복합적으로 작용할 것입니다. 따라서 앞서 언급한 간단한 미분 방정식만으로는 충분하지 않을 수 있습니다. 우리가 할 수 있는 것은 미분 방정식을 통해 당신의 위치를 ​​예측하는 것입니다. 그러나 도움으로 인공 지능이 개념은 복잡한 시스템을 모델링하는 데 매우 중요합니다.

이 아이디어는 다음에 적용됩니다. 물리학 기반 신경망 (PINN). 나중에 자세히 설명하겠지만, 우리가 시도하는 아이디어는 일치시키려는 것입니다. 누구나 현상을 설명하는 미분 방정식에서 얻은 데이터와 우리가 아는 것. 즉, 우리는 물리학에서 기대하는 바를 일반적으로 충족하도록 해답을 강제로 도출합니다. 이게 마치 흑마법처럼 들린다는 건 알지만, 이 글을 읽으면서 점점 더 명확해질 거라고 약속합니다.

이제 중요한 질문은 다음과 같습니다.

 

금융은 물리학과 물리학 기반 신경망과 어떤 관련이 있나요?

글쎄요, 미분 방정식은 자연 우주의 법칙에 관심이 있는 사람들에게만 유용한 것이 아니라 다음과 같은 경우에도 유용할 수 있습니다. النماذج المالية예를 들어, 모델은 다음을 사용합니다. 블랙숄즈 특정 엄격한 가정을 통해 콜 옵션 가격을 결정하기 위한 미분 방정식 무위험 포트폴리오.

이 매우 복잡한 소개의 목적은 두 가지였습니다.

  • 조금 혼란스러우시겠지만, 계속 읽어주세요 :)
  • 이 모든 일이 어디로 향하는지 궁금해하세요.

성공했으면 좋겠네요 😁. 만약 성공한다면, 이 글의 나머지 부분은 다음 단계를 따르겠습니다.

  1. 우리는 논의할 것이다 블랙-숄즈 모델, 그 가정 및 미분 방정식
  2. 우리는 ~에 대해 이야기 할 것이다 물리 기반 신경망(PINN), 그것이 어디서 왔는지, 그리고 그것이 왜 유용한지
  3. 우리는 Black-Scholes를 사용하여 PINN을 훈련하는 자체 알고리즘을 개발할 것입니다. Python 그리고 토치 그리고 OOP.
  4. 우리는 알고리즘의 결과를 보여드리겠습니다.

신난다! 연구실로 가자! 🧪

1. 블랙-숄즈 모델: 심층 분석

 

블랙-숄즈 모델에 대한 원본 연구 논문을 읽고 싶으시다면 여기에서 확인하실 수 있습니다. 여기. 꼭 읽어볼 만한 책이에요 :)

좋아요, 이제 세상을 이해해야 합니다. 재원 현재 우리가 어디에 있는지, 변수는 무엇인지, 그리고 어떤 법칙이 적용되는지. 금융의 기본 원리와 블랙-숄즈 법칙과의 관계를 이해하는 것이 매우 중요합니다.

첫째, 금융에는 강력한 도구가 있습니다. 오이 콜 옵션. 콜 옵션은 특정 미래(예: 1년 후)에 특정 가격으로 주식을 살 수 있는 권리(의무는 아님)를 부여하는데, 이 가격을 행사가격이라고 합니다. 가격).

자, 잠깐 생각해 볼까요? 오늘 주가가 100달러라고 가정해 봅시다. 그리고 행사가가 100달러인 콜옵션을 보유하고 있다고 가정해 봅시다. 150년 후 주가가 150달러로 오른다고 가정해 봅시다. 정말 멋지죠! 그 콜옵션을 사용해서 주식을 매수하고 바로 되팔 수 있습니다! 방금 100달러 - 50달러 = 80달러의 이익을 냈습니다. 반면에 주가가 XNUMX년 후 XNUMX달러로 떨어진다면 그렇게 할 수 없습니다. 오히려 콜옵션을 행사하지 않는 편이 손해를 보지 않을 것입니다.

그래서 이제 생각해보면, 그 아이디어는 다음과 같습니다. 주식을 사다 그리고 옵션 매도 바라보다 완전히 통합됨내가 말하고자 하는 것은 주가의 무작위성(상승과 하락의 사실)이 실제로 가능하다는 것입니다. 완화 올바른 옵션 수를 유지함으로써. 이것을 델타 헤징. 이는 위험 관리의 기본 전략입니다.

일련의 가정을 기반으로 우리는 다음을 도출할 수 있습니다. 공정 옵션 가격 지갑을 얻으려면 위험 없음이 개념은 블랙-숄즈 모델의 기본입니다.

유도과정의 모든 세부 사항으로 여러분을 지루하게 하고 싶지는 않습니다(솔직히 말해서 원본 논문에서는 따라가기 어렵지 않습니다). 하지만 무위험 포트폴리오의 미분 방정식은 다음과 같습니다.

어디:

  • C t 시점의 옵션 가격입니다
  • sigma 이는 주식의 변동성입니다.
  • r 이는 무위험 금리입니다.
  • t 시간입니다(현재 t=0이고 종료일은 T입니다)
  • S 현재 주가입니다

이 방정식을 통해 무위험 포트폴리오의 콜 옵션의 공정 가격을 도출할 수 있습니다. 이 방정식은 폐쇄형이고 분석적이며 다음과 같습니다.

와 함께:

여기서 N(x)는 표준 정규 분포의 누적 분포 함수(CDF)이고, K는 행사 가격이며, T는 만기일입니다.

예를 들어, 이건 차트예요. 주가(x) 반대말 콜 옵션(y)블랙-숄즈 모델에 따르면.

아주 좋은 말 같지만, 이게 물리학과 PINN과 무슨 상관이 있죠? 방정식이 분석적인 것 같은데, 왜 PINN인가요? 왜 AI인가요? 제가 이 글을 읽고 있는 이유가 뭘까요? 정답은 아래와 같습니다. 👇:

 

2. 물리학 기반 신경망

 

물리학 정보 기반 신경망(PINN)에 관심이 있다면 원본 논문을 확인해 보세요. 여기. 다시 한번 읽어볼 만한 글입니다. 🙂

이제 위의 방정식은 조정하지만 다시 말씀드리지만, 이는 이상적인 상황에서의 적정 가격을 나타내는 방정식입니다. 잠시 이 방정식을 무시하고 주가와 시간을 기반으로 옵션 가격을 추측해 보면 어떻게 될까요? 예를 들어, 피드포워드 신경망을 사용하여 역전파 학습을 통해 학습시킬 수 있습니다. 이러한 접근 방식은 옵션 가격 결정에 신경망을 사용하는 기반을 마련합니다.

이 훈련 메커니즘에서는 오류를 최소화합니다.

L = |Estimated C - Real C|:

이건 좋은 방법이고, 가장 간단한 신경망 접근법입니다. 문제는 블랙-숄즈 방정식을 완전히 무시하고 있다는 것입니다. 다른 방법이 있을까요? 이 방정식을 적용할 수 있을까요?

물론, 오류를 다음과 같이 설정하면 가능합니다.

L = |Estimated C - Real C|+ PDE(C,S,t)

여기서 PDE(C,S,t)는 다음과 같습니다.

가능한 한 0에 가까워야 합니다.

하지만 여전히 의문이 남습니다. 왜 이것이 단순한 블랙-숄즈 방정식보다 "더 나은" 것일까요? 왜 그냥 미분 방정식을 사용하지 않을까요? 왜냐하면 인생에서 미분 방정식을 푸는 것이 "진정한" 해답을 보장하지 못하는 경우가 있기 때문입니다. 물리학은 종종 사물을 근사화하는데, 그 과정에서 우리가 예상하는 것과 실제로 보는 것 사이에 불일치가 발생할 수 있습니다. 바로 이러한 이유로 물리 정보 기반 신경망(PINN)이 놀랍고 뛰어난 도구인 것입니다. 물리 법칙에 맞춰 계산하려고 노력하지만, 그 결과가 데이터셋에서 "보는" 것과 일치해야 한다는 엄격한 기준을 적용합니다. 물리적 모델과 실험 데이터의 통합이 바로 이 접근법을 독보적으로 만듭니다.

우리의 경우, 무위험 포트폴리오를 얻기 위해 이론적 블랙-숄즈 모델이 우리가 관찰하는 잡음이 많고 편향되었거나 불완전한 시장 데이터와 완벽하게 일치하지 않는다는 것을 발견했을 수 있습니다. 아마도 변동성이 일정하지 않을 수도 있고, 시장이 효율적이지 않을 수도 있으며, 방정식의 기본 가정이 유효하지 않을 수도 있습니다. 바로 이 부분에서 PINN과 같은 접근법이 유용할 수 있습니다. 블랙-숄즈 방정식을 충족하는 해법을 찾을 뿐만 아니라, 데이터에서 확인된 내용을 "신뢰"하기 때문입니다. 이를 통해 실제 시장 상황에 더욱 유연하고 적응력 있는 모델을 구축할 수 있습니다.

좋아요, 이론은 이제 그만하고 코딩을 시작해 볼까요? 👨‍💻

 

3. Python을 활용한 실제 응용

전체 코드와 훌륭한 README.md 파일, 우수한 노트북, 매우 명확한 보일러플레이트 코드를 찾을 수 있습니다. 여기이 코드는 금융 모델링 분야의 고급 방법인 PINN 신경망을 사용하여 블랙-숄즈 방정식을 풀기 위해 특별히 설계되었습니다.

참고: 이 부분은 다소 복잡할 수 있습니다(코드가 많기 때문에). 프로그래밍에 관심이 없으시다면 다음 장으로 넘어가셔도 됩니다. 결과를 좀 더 직관적으로 보여드리겠습니다 :)

여기까지 읽어주셔서 정말 감사합니다 ❤️
어떻게 할 수 있는지 살펴보겠습니다. 이제 이 기법을 블랙-숄즈 방정식을 푸는 데 적용하는 방법을 살펴보겠습니다. 실용적이고 세부적인 측면에 초점을 맞추겠습니다.

3.1 Config.json 파일

전체 코드는 내가 명명한 매우 간단한 구성 파일을 사용하여 실행할 수 있습니다. config.json.

나중에 살펴보겠지만, 원하는 곳 어디든 배치할 수 있습니다.

이 파일은 시뮬레이션, 데이터 생성, 그리고 모델 학습을 제어하는 ​​모든 매개변수를 정의하기 때문에 필수적입니다. 각 값이 무엇을 나타내는지 간단히 설명해 드리겠습니다.

  • K: 실행 가격 – 미래에 주식을 매수할 수 있는 권리를 부여하는 가격입니다.
  • T: 예정일까지 남은 시간, 년 단위로. 그래서 T = 1.0 이는 해당 옵션이 지금부터 1단위(예: 1년) 후에 만료된다는 것을 의미합니다.
  • r: 무위험 이자율 미래 가치를 할인하는 데 사용되는 이자율입니다. 이는 시뮬레이션에서 지정하는 이자율입니다.
  • sigma: 파동 주식은 주가 예측의 어려움 또는 "위험성"을 결정합니다. 다시 말하지만, 이는 시뮬레이션 매개변수입니다.
  • N_data: 숫자 합성 데이터 포인트 학습을 위해 생성하려는 모델입니다. 이는 모델의 크기도 결정합니다.
  • min_S 그리고 max_S: 주가 범위 합성 데이터를 생성할 때 샘플링하려는 것. 우리가 가지고 있는 최소 및 최대 주가.
  • bias: 옵션 가격에 추가된 선택적 오프셋데이터의 체계적인 변화를 시뮬레이션합니다. 이는 실제 세계와 블랙-숄즈 데이터 간의 대비를 생성하기 위해 수행됩니다.
  • noise_variance: 소음 수준 측정이나 시장 노이즈를 시뮬레이션하기 위해 옵션 가격에 추가됩니다. 이 매개변수는 이전과 같은 이유로 추가되었습니다.
  • epochs: 숫자 반복 모델이 학습될 기준입니다.
  • lr: 학습률 옵티마이저의 경우, 학습 중 모델이 얼마나 빨리 업데이트되는지 제어합니다.
  • log_interval:우리가 원하는 횟수(연령별) 기록 인쇄 훈련 진행 상황을 모니터링합니다.

각 매개변수는 특정 역할을 하며, 일부는 시뮬레이션하는 금융 세계를 형성하고, 다른 매개변수는 신경망이 해당 세계와 상호 작용하는 방식을 제어합니다. 이 부분을 조금만 수정해도 완전히 다른 동작이 나타날 수 있으며, 이는 이 파일을 견고하면서도 민감하게 만듭니다. 이 JSON 파일의 값을 변경하면 코드 출력이 크게 달라집니다.

3.2 main.py (main.py 파일)

이제 나머지 코드가 실제로 이 구성을 어떻게 사용하는지 살펴보겠습니다.

우리 코드의 주요 부분은 다음에서 나옵니다. 메인.파이Torch를 사용하여 PINN 네트워크를 훈련하려면 블랙_숄스.py.

main.py 파일은 다음과 같습니다.

그렇다면 당신이 할 수 있는 일은 다음과 같습니다.

  1. 나만의 config.json 파일을 만드세요
  2. 명령을 실행 python main.py --config config.json

main.py 파일은 다른 많은 파일에서도 사용됩니다.

3.3 black_scholes.py 및 해당 헬퍼

Black-Scholes 모델 응용 프로그램은 파일 내에 있습니다. black_scholes.py:

이 파일은 모델을 빌드하고, 학습시키고, 내보내고, 예측하는 데 사용할 수 있습니다.
이 함수는 또한 data.py, loss.py, model.py와 같은 몇 가지 도우미 파일을 사용합니다.
파일 내부에 Torch 템플릿이 있습니다. 모델.py:

데이터 생성기(구성 파일 기준)는 파일 내부에 있습니다. 데이터.파이:

비대칭 값을 포함하는 통합 손실 함수는 다음과 같습니다. 손실.py이 기능은 모델의 정확도를 높이는 데 필요합니다.

4. 결과

main.py를 실행하면 피드포워드 신경망(FFNN)이 훈련되고 다음과 같은 결과를 얻습니다.

보시다시피, 모델의 오차가 정확히 0은 아니지만, 모델의 편미분방정식(PDE)이 데이터보다 훨씬 작습니다. 이는 모델이 (자연스럽게) 미분 방정식을 만족시키기 위해 예측치를 초과하는 성능을 보인다는 것을 의미합니다. 이는 앞서 말씀드린 바와 같습니다. 데이터와 블랙-숄즈 모델 모두에서 성능이 향상되고 있습니다.

우리는 노이즈가 많고 편향된(상당히 현실적인) 실제 데이터 세트와 PINN 네트워크 사이에 높은 일치도를 정성적으로 관찰할 수 있습니다.

t = 0이고, t 값이 고정된 콜 옵션에 따라 주가가 변할 때의 결과입니다. 멋지지 않나요? 하지만 아직 끝나지 않았습니다! 위 코드를 사용하여 두 가지 방법으로 결과를 살펴볼 수 있습니다.

  1. 많은 사람들과 놀다 매개변수 config.json에 위치함
  2. 예측 보기 t>0

즐기다! :)

5. 결론

여기까지 읽어주셔서 정말 감사합니다. 정말 긴 여정이었네요 😅
이 기사에서 다룬 내용은 다음과 같습니다.

  1. 우리는 물리학부터 시작했습니다.그리고 그 법칙이 미분 방정식으로 작성되면 공정하고, 아름답고, (보통은) 예측 가능하다는 것입니다.
  2. 우리는 금융으로 옮겼습니다그리고 우리는 블랙-숄즈 모델을 만났습니다. 이는 위험 없는 방식으로 옵션 가격을 책정하는 것을 목표로 하는 미분 방정식입니다.
  3. 우리는 물리학 기반 신경망(PINN)을 탐구했습니다.데이터 매칭을 수행할 뿐만 아니라 기본 미분 방정식까지 고려하는 신경망의 한 유형입니다. PINN은 복잡한 시스템을 모델링하는 데 강력한 도구입니다.
  4. 우리는 모든 것을 파이썬으로 했습니다.PyTorch와 매개변수를 조정하고, 합성 데이터를 생성하고, 자체 PINN을 훈련하여 Black-Scholes 방정식을 풀 수 있는 깔끔한 벤치마크 데이터베이스를 사용합니다.
  5. 우리는 그 결과를 사진으로 찍었습니다. 우리는 네트워크가 노이즈가 많은 데이터뿐만 아니라 블랙-숄즈 방정식에서 예상되는 동작도 일치시키는 법을 어떻게 학습하는지 살펴보았습니다.

이 모든 것을 한꺼번에 받아들이는 것이 쉽지 않다는 것을 알고 있습니다. 어떤 부분에서는 제가 너무 짧게, 어쩌면 필요 이상으로 짧게 글을 썼을 수도 있습니다. 하지만 더 명확하게 보고 싶으시다면, 다시 한번 확인해 보세요. GitHub 폴더. 소프트웨어에 관심이 없더라도 명확한 README.md 파일과 간단한 템플릿이 있습니다. 예제/BlackScholesModel.ipynb 이 프로젝트는 단계별로 설명되어 있습니다.

 

댓글이 닫혔습니다.