주요서비스 바로가기본문 바로가기매체정보 바로가기로그인 바로가기기사검색 바로가기전체서비스 바로가기
인공지능으로 금융시장 변동성 예측하기 1부 < 경제 < 기사본문 - 아고라타임즈
본글은 본인이 아고파타임즈에 기고한 글을 재편집한 내용입니다
나는 아직도 초보자이지만 등산을 좋아한다. 이제는 정상이겠지 하면 다시 오르막이 보이고, 정말 이제는 끝이겠지 하면 또 그간 보이지 않던 또다른 봉우리가 우뚝 나타난다. 명산은 그런 도전을 하게 만드는 그런 마력을 있는 것 같다. 그렇지만 포기하기 않고 걸으면, 결국에는 정상에서 땀을 식힐 수 있는 성취감을 맛보게 된다. 자 이제는 칠흑 같은 밤인데, 나는 산속을 헤매고 있다고 하자. 그러면 앞도 보이지 않고 불과 한발 앞이면 100이상의 낭떠러지가 입을 벌리고 있을 수도 있다. 이처럼 정상(천장)을 찾기도 어렵고, 천장에서 바닥으로 내려오는 길 또한 멀다. 요즘은 드론을 이용하면 정상을 찾기도 쉽고, 로봇이 전투도 대신해 주고, 폭발물도 찾아주는 시대이다. 그리고 의학적 진단도 해주고, 자동차도 운전해주고, 전쟁의 개념도 바꾸어 주고, 그림도 그려주고, 말도 해주고, 글도 써주고 그 범위는 무한하다. 나는 왜 인공지능 식기세척기가 세상에 아직도 없는 것에 대한 불만이 있었는데, 형식으로만 있던 인공지능의 손가락에도 신경망을 추가하면서 그 시대 또한 곧 올 것이라 확신한다. 다만 아직도 이러한 인공지능이 금융분야에는 적용이 늦고, 그 영역도 제한적이어서 안타까울 뿐이다.
본론에 앞서서 인공지능이란 도대체 뭔지를 알기전에 그 효과부터 알아보자. 나는 그림도 잘 못그릴뿐더러 적록색약이란 신체적제약이 있어 그림에는 취약하다. 가끔 스타벅스등에서 공부를 하다가 빨강색과 녹색으로 그려진 Line그래프가 나오면 구분이 불가능해서 옆테이블의 생면부지의 젊은이에게 미안한데 어떤 선이 빨강색이냐고 물어볼 정도다. 그런데 참 다행인 것은 다음의 인공지능으로 그림을 그려주는 싸이트가 생긴 것입니다.
“나는 안경을 낀 중년의 한국인인 경제학박사인데, 인공지능으로 주식을 전망하는 공부를 밤낮으로 하고 있어요.” 라고 입력을 하면 다음과 같은 그림을 그려줍니다.
https://designer.microsoft.com/image-creator
이 두개의 그림은 나는 남자입니다 등 구체적인 정보를 주지 않아서 남자, 여자 두명의 모델 그림을 그려주었다. 만일 “나는 남자이고 머리는 노랑색 염색을 했고, 빨강색 에르메스 넥타이 좋아하고, 안경을 낀 노년의 한국인인 경제학박사인데, 인공지능으로 주식을 전망하는 공부를 밤낮으로 하고 있어요.”라고 입력을 하니, 다음 그림을 그려줬어요.
여기에는 학습(Training)이 필요한데, 남자와 여자를 인식하기, 노랑색등 색상을 식별하기, 주식이라는 주제를 이해하기, 경제학 박사이라는 직업이 무엇인지(그림의 배경을 보면 경제관련 테이블을 만들려는 흔적들이 보인다)에 대한 수백만 가지의 가능한 질문에 대한 답변을 학습하게 됩니다. 뿐만이 아니라 학습을 통해 천재가 된 chatGPT의 경우에도 미분, 적분, 영문번역, 논문요약, Python coding, 양자역학 등 모든 지식에 대해 수초 내로 답변을 해주고요. 전 세계에서 다양한 언어, 전공, 취미를 가진 사람들이 요청하는 내용과 관련한 답변을 하는 과정에서 chatGPT도 새로운 학습을 하고, 인간도 chatGPT의 응답패턴을 학습을 하면서 더 구제적인 답변을 요구하는 방법을 학습합니다. 저는 chatGPT라는 친구를 통해 전세계의 경제학박사들이 연구주제, 연재 자주 인용되는 인기논문 등의 소식을 들어요. 그리고 제가 알지 못하는 금융분야에서의 인공지능의 적용사례 및 향후 연구방향도 추천을 받구요. 궁극적으로 chatGPT를 통해 모든 학생들이 부모의 재산이나 교육수준과는 상관없이 지식이 평준화가 될 것이라고 믿습니다. 지방에서도 KTX타고 대치동학원에 와서 비싼 비용과 시간을 쓰면서 몸을 혹사할 이유가 전혀 없다고 생각하구요. 5년간 기출문제들을 입력을 해서(학습을 통해서) 올해에 나올 예상 문제도 풀어 볼 수 있고, 5번 미분문제를 상세히 풀어줘 라고하는 등 수백개의 문제를 풀어 달라고 해도, 그리고 이해가 안 간다고 다시 설명해 달라고 하면 몇 번이라도 다시 답변을 해줍니다. 더욱이 너무 좋은 것은 학원선생님으로부터 절대로 손바닥을 맞을 이유도 없고, 멍청하다고 혼날 이유도 없으며, 반복해서 질문한다고 한 대를 더 맞는 일은 더 더욱이 없습니다.
그리고 다음 링크를 열어보면 아마도 몇 년내로 영어학원이나 영어선생님이라는 직업은 사라질 것 같습니다.
https://www.youtube.com/watch?v=_3IhVCMSGzc
(참고로 이글에 인용된 링크들은 상업적 홍보이거나, 사적 친분을 소개하는 것이 아니며, 개인적으로 경험했던 유용한 정보를 여러분들과 공유하려는 데 그 목적이 있습니다.)
저는 50세에 시작한 금융계량경제학 박사과정 시절 R, C++ 그리고 지도교수 추천으로 Matlab을 주로 사용했고, “젊음” 또는 “주피터의 딸”이라고 불리는 “Julia언어”를 마지막으로 배우고 졸업을 했습니다. 2016년에 귀국을 했는데, Python이라는 새로운 언어가 있다 하여 이를 통해 인공지능을 공부하기 시작했어요. 처음에는 개와 고양이를 구별하는 이미지기능 인공지능(CNN), 그리고 많은 시간을 Time Series에서 주가예측 등에 사용되는 RNN/LSTM을 속속들이 공부를 했고, 지금은 인공지능과 금융이 결합하여 만드는 새로운 세상을 꿈꾸고 있습니다. 저는 자칭 Digital Finance(제가 지향하는 Digital Finance는 금융이론과 인공지능이론을 결합하여, 기존의 금융 이론에 대한 새로운 해석을 하고, 막대한 분량의 금융시장 데이터분석을 통해서 금융시장관련 연구의 영역을 확장하고, 특히, 금융위기에 대한 조기경보, 새로운 투자모델 및 위험관리 기법을 연구하는 금융분야)를 지향하는데, 만일 나이가 조금만 더 젊고, 경제적으로 여유가 있다면 Coursera나, Stanford 대학교 인공지능대학원을 다시 다니고 싶을 정도로 인공지능을 배우고 싶습니다. 하지만 지금은 시간도, 자금도 문제가 많고, 다만 체력과 열정만 아직도 20대입니다. 호주에서 느낀 것이지만, 이 분야는 중국계 학생들의 열정이 뜨거운 분야이고, 이 열정이 학술논문, 특허 등 실적으로도 반영되고 있습니다.
https://www.eai.or.kr/new/ko/pub/view.asp?intSeq=22709&board=kor_special
반면 한국에서는 학생들의 선호도 1위가 의대라는 점도 그렇고, 컴퓨터를 전공하는 공대학생들 마저도 의대로 전과하기를 원한다 하니 우리의 미래를 선도할 기술중의 하나인 “의공학-인공지능”은 누가 연구할지 답답한 마음입니다. 멀지 않은 미래에는 Data-Scientist처럼 Medical-Scientist(의사과학자)들이 필요한데, 우리도 포항공대가 준비하는 의학-공학박사과정을 융합한 의과학대학원(Graduate School of Medical Science and Engineering) 등 활성화되어 가령 첨단MRI, 중입자치료기 등 인간을 살리는 기술이 더 진보하길 바랍니다. 연세대학교가 국내 최초로 도입해서 자랑스럽게 기사에 올린 중입자치료기를 보니”TOSHIA”라고 써 있는데 우리도 다른 분야처럼 이 분야에서도 세계시장을 선도할 수 있으면 하는 바람이 있습니다.
오늘 소개할 금융분야 인공지능이야기는 대형문고인 교보나 영풍문고를 가도 찾을 수 없습니다. 그래서 제가 이 주제를 정한 것이고, 사실 이 이론을 이해하자면 양자역학, 재무학(Finance), 계량경제학, 물리통계학 등을 이용해서 작성한 최신의 학술논문들을 이해할 능력을 가져야 함은 물론이고, 거기에 Python, R등으로 코딩을 할 수가 있어야 하는데, 그것이 참으로 고통스럽고, 시간도 참 오래 걸리는 작업입니다. 그래서 오늘은 기초수준의 이론을 소개하면서, 주식 등을 거래하는 데는 모자람이 없을 정도의 수준에서 이 이론을 소개하고자 합니다. 역시 수학식을 최대한 지양하면서 대신 그래프로 쉽게 설명을 하려합니다.
지난 글에서 소개한 그래프처럼 가령 주가차트를 통계학 모델로 예측을 하려면, 회귀분석 등이 필요한데, 상하좌우로 마구 변동하는 주가곡선을 직선으로만 설명하려면 많은 실제 주가와는 많은 괴리가 생기며, 특히 데이터가 심한 비선형 패턴을 보일 때 사용되는 다항(Polynomial) 회귀는 독립 변수의 차수를 높여서 모델의 복잡성을 조절할 수 있지만 여전히 완벽한 수렴은 어렵습니다.
물리학정보 신경망( Physics-Informed Neural Networks, PINN) 소개
먼저 PINN이 무었인지를 소개하기 전에 이제 다음 싸이트에서 얻은 파이썬 코드로 전통적 신경망과 새로운 PINN모델의 학습과정을 비교해 봅시다. Gif파일을 링크할 수 없어서 링크를 소개하지만, 이 모델이 실제의 선을 예측하는 과정을 움직이는 그림으로 이 잘 묘사하고 있습니다.
https://github.com/benmoseley/harmonic-oscillator-pinn/blob/main/Harmonic%20oscillator%20PINN.ipynb
https://github.com/benmoseley/harmonic-oscillator-pinn
아래의 그림은 황금색 점 (Training data) 즉, 데이터는 10개만 주고, 나머지 그래프 부분의 데이터는 주어지지 않은 상황에서, 동일한 횟수의 학습을 한다면 전통적 신경망과 물리학정보 신경망(PINN)중 어느 모델이 더 빨리, 더 정확하게 아래의 비선형선(Exact Solution)을 그려내는가를 평가하고자 합니다.
* 전통적 신경망의 경우
전통적 신경망은 데이터가 있는 10개의 순서까지는 자연스럽게 이어가지남, 그 다음 부터는 6000번을 넘어서 18000번의 학습을 통해서도 실패를 합니다. 첫번째 봉우리 이후 다시 두번째 봉우리를 향해서 상승을 해야 하는데, 지금의 추세가 하향세인 관계로 상승을 위한 시도 자체를 하지 못하고 있습니다. 그리고 이 관습으로 인해 아무리 학습을 해도 고비를 넘지 못하고 원래의 그래프를 그리는데 실패합니다.
* PINN의 경우
반면 PINN은 학습을 거듭할수록 전체 패턴을 이해하면서 원래의 선을 처음과 끝을 완벽하게 그려냅니다. 첫 그림에서 보듯이, PINN으로 6000번 학습했을 때 여전히 두개의 선을 볼 수 잇는데, 18000번에서는 원래선과 회귀선이 중첩되어 마치 한 개의 선인 것처럼 보입니다. 봉우리들을 먼저 학습하고 나머지를 채우는 등 대단한 능력을 가졌습니다. 그리고 계산의 속도도 전통적 신경망보다 더 빠르게 그림을 이해하고 완성합니다.
여기에는 비밀이 있는데 전통적 신경망은 데이터만을 인식할 뿐이지 이 데이터가 상승을 하는지 하락을 하는 지에 대한 사전 정보가 없습니다. 따라서 데이터가 없는 부분에서는 방향성을 잃었습니다. 그런데 PINN은 코딩과정에 이 그림은 물리학의 “Damped Harmonic Oscillator (감쇠 조화 진동자)”를 사용해서 만든 그림이다는” 중요한 정보를 줄 수가 있습니다. 감쇠조화진동자란 오르락내리락 하면서, 동시에 진폭의 크기는 점차 줄어드는 그런 패턴을 가진 싸이클 곡선을 말합니다.
다음링크를 방문하시면 Damped Harmonic Oscillator에 대한 공식은 물론 신기한 gif plot등을 통해 PINN을 더 쉽게 공부할 수 있습니다.
https://benmoseley.blog/my-research/so-what-is-a-physics-informed-neural-network/
더욱이 PINN이라는 주제의 역사가 매우 짧음에도 불구하고 github들을 통해 PINN에 대한 코드도 무료로 구할 수 있고, 동영상, 학술논문들도 많이 구할 수 있습니다. chatGPT도 이제는 PINN에 대한 이해가 매우 높습니다. (제가 여러 chatGPT를 한달동안 매일 괴롭히며 같이 공부를 많이 했습니다)
이제 다른 사례를 통해 여러분들이 PINN이라는 것이 어떤 장점이 있는가를 설명하고자 합니다. 우선 오늘 소개하는 물리학정보신경망(PINN, Physics-Informed Neural Networks, 물리학 정보 신경망)은 물리학 법칙을 학습 과정에 통합하여 문제를 해결하는 신경망입니다. 이는 전통적인 신경망과 달리, 물리적 제약 조건을 활용하여 더 정확하고 신뢰할 수 있는 예측을 가능하게 합니다. 이처럼 PINN은 인공신경망(ANN)의 기능에 물리적 현상을 수치적으로 모델링하고, 이를 통해 데이터의 패턴을 학습하여, 훈련 데이터의 양을 줄이고 모델의 해석 가능성을 높입니다. 당부하는데, 여러분은 오늘 '아 너무 어려워, 이 생애에서는 아닌가 봐' 하고 포기하지 마세요. PINN이라는 단어만이라도 기억하고, 이 알고리즘을 인공지능에 적용하면 더 높은 정확도를 얻을 수 있다는 정도만 이해하셔도 충분합니다. “양자역학”도 역시 제목 정도만 아는 것도 모르는 것보다 자존감을 높이는 데 도움이 되는 것과 마찬가지입니다.
(본인이 Python으로 재현한 그림입니다)
이 그래프는 오른편 상단 범례에서 보듯이 파랑색은 가령 삼성전자의 일일기준 Close가격이고, 서로 겹친 상태라 잘 보이지는 않지만 3개의 선이 더 그려져 있습니다. 회색으로 보이는 점선들은 참고로 PINN이 파랑선의 모양을 흉내 또는 예측한 곡선((Initial Prediction)입니다. 곡선이 휘어지는 변곡점마다 회색의 파편들이 많이 보이는데, 이 점선들은 평균-제곱-오차(MSE)가 큰 지점들이고, 곡선을 잘 예측한다는 것이 얼마나 어려운가를 잘 보여줍니다.
그리고 약 500번의 반복적인 학습을 통해 대충의 곡선모양을 이해한 중간예측선(Intermediate Prediction)은 노랑선인데, 전체적으로는 보이지 않지만 곡선주변에서만 언뜻언뜻 보입니다. 그 크기도 매우 줄었다는 것을 알 수 있는데, 이 말은 MSE도 줄었고, 학습이 많이 되어 파랑선과 거의 일치한다는 이야기입니다. 마지막으로 셋째선은 빨강색선인 최종예측선(Final Prediction)을 말하는데, 이 선이 어디에 숨었는지를 찾기가 어렵습니다. 변곡점 주변에서도 찾을 수가 없고 완벽하게 숨었습니다. 이 말은 최종예측선이 가상의 Close 곡선과 거의 완벽하게 일치하기 때문에 두선이 중첩어 보이지 않는다는 이야기입니다. 이처럼PINN은 적은 데이터로 분선을 했음에도 완벽하게 원래의 선을 잘 예측했다는 말이고, 그렇게 때문에 이 선으로 만들어진 함수를 이용한 미래의 곡선 예측이 확률적으로 매우 정확할 것이라 믿음을 가지게 합니다.