0 • 0 • 2024-02-02 13:23:12.0
주식 AI모델 개발 과정
2023.10.23
1. 진행상황
l 9월 27일 이후 Fnguide의 도움을 받아 중요팩터에 대한 data를 추출하였음
l 데이터가 누락된 부분을 처리하고, 인공지능망과 연결시키는 과정까지 진행하였음
l 실행하는과정에서
① 데이터의 수집(시스템의 정보수집 테스트 과정도 포함): 1개월
②신경망의수립: 1주일
③신경망학습과 수정: 1개월정도로 예상하고 진행하였음
l 최초에 200개 대상 종목에 대해 5년치 데이터로 AI모델을 개발하려는 계획에서 실제로는 200개 대상종목에 대한 20년치 데이터로 데이터를 확대하였음
l 애초에 하나의통합 모델과 분기별 4개의 모델을 별도로 개발하려는 기획안을 가지고 있었으나, 안준환 이사의 조언(실제로 데이터 날짜가 입력되기 때문에, 모델에 계절성을 반영할 수 있다는 의견)과 신팀장의 의견(별도의 모델을 만들 경우, 데이터의 부족으로 인해 분기별 모델의 완성도가떨어질 것이라는 의견)을 반영하여, 하나의 모델을 개발하는것을 우선순위로 하였음
l 주식시스템을위한 별도의 컴퓨터를 구매하여 모델학습에 사용하였음
l 구글 텐서플로우를통해서 문제를 해결할 계획인데, 텐서플로우의 특징은 다음과 같음
① 순위예측 알고리즘이 존재함. (SoftMax Layer 등)
② 복잡한미분계산에서 해방될 것
③무료임
④ 대학교에서연구용으로 쓸 정도라고 하니, 복잡한 수정도 가능하다는 점
l 데이터를관리하는 과정에서 적자 지속, 흑자전환, 적자전환 등의 데이터표시에 대해서 수치로 읽어 들이고, 기준을 잡는 과정이 있었음
2. 딥러닝 트레이닝시 과적합 방지 방법
l 과적합: 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태를 말함
l 해소방법
① 데이터의양을 늘이기: 데이터 양이 적을 경우, 해당 데이터의 특정패턴이나 노이즈까지 쉽게 암기하기 때문에 과적합 현상이 발생할 가능성이 늘어남. 데이터 양이 늘어날수록일반적인 패턴을 학습하여 과적합을 방지 가능
② 모델의복잡도 줄이기: 인공신경망의 복잡도는 은닉층(hidden layer)의수나 매개변수의 수 등으로 결정됨. 과적합 현상이 포착되었을 때, 인공신경망 모델에 대해서 할 수 있는 한가지 조치는 인공신경망의 복잡도는 줄이는 것
③ 가중치규제(Regulation)적용하기: 복잡한 모델이 간단한모델보다 과적합될 가능성이 높음. 간단한 모델은 적은 수의 매개변수를 가진 모델을 말함
-L1규제: 가중치 w들의절대값 합계를 비용함수에 추가함. L1 Norm이라고 함
-L2규제: 모든 가중치w들의제곱합을 비용함수에 추가함
-인공신경망에서는 L2규제는 가중치 감쇠(weight decay)라고 부름
⑤ Early Stopping(조기학습종료) : 일정횟수 이상 validation loss가 증가하는 시점부터 overfitting이발생했다고 판단하고, 이에 학습을 종료시킴
⑥ Batch Normalization(배치 정규화): 데이터 분포를 통일시켜서과적합 방지
3. 지연요인
l 텐서플로우설치 오류: 일부 잘못 설치되어서, 처음부터 다시 설치(10월 16일)
l 프로젝트일부 변경
① Net Framework 닷넷 프레임워크: 많은 기능들 중에서 윈도우 대화상자를 쉽게 편집하는 기능이 있음
② TensorFlow 텐서플로우: 신경망 기능이 많은 라이브러리
③ 1~2번이 같은 프로그램에서 구동이 되지 않아서, 닷넷 프레임워크를삭제한 새 프로젝트로 진행하였음
④ 첫작품은 콘솔로 나올 것을 기대함. 버튼이 있는 보기 편한 디자인은 일단 이것이 나온 뒤에 닷넷 프레임워크가아닌 다른 방법으로 짜면 될 것임
⑤ 데이터를입력할 수 있는 입력층을 완성하였음
⑥ 실제사용할 신경망에 대해서는 아직 마무리되지 않은 상황임