3월, 2023의 게시물 표시

토이 프로젝트 일지 5 : 주가 예측 신경망 만들기

이미지
1. 시작 계기 필자는 대학교 2학년 때쯤부터 프로그램을 이용한 자동화된 퀀트 투자에 관한 관심이 매우 많았었다. 인공지능을 공부하게 된 계기도 퀀트 투자에 인공지능 기술을 사용하면 더 잘 예측할 수 있지 않을까 하는 생각으로 시작했을 만큼 이쪽 종류에 있어서는 관심이 많았는데 이번에는 CNN과 RNN을 결합해서 예측할 경우 좋은 결과가 나오는지 확인해보려는 목적으로 시작하게 되었다. 참고로 이 프로젝트는 기술적인 구현에 초점이 맞춰져 있으며, 특성 데이터 부족 등의 이유로 실용성은 없음을 밝힌다. 2. 프로젝트 개요 가. 프로젝트 소개 1. 프로젝트 유형: 개인 토이 프로젝트 2. 구현 신경망 : 다음 일주일 주가 데이터의 변화율을 예측하는 신경망 3. 개발 환경 : Colab(WEB IDE) 4. 활용 기술      - 퀀트 투자 관련 지식      - 신경망 관련 라이브러리 : Pytorch, Pytorch Lightning      - 활용한 신경망 구조 : CRNN, ResNet, Self-Attention 5. 사용한 데이터 출처 : Kaggle - Huge Stock Market Datase 6. 개발 기간: 2023.3.4 ~ 2023.3.18 나. 프로젝트 목표 주가 데이터를 전처리하고 특성을 추출하는 방식을 학습하고, CRNN을 주가 데이터 예측에 활용할 수 있도록 변형시켜본다. 예측된 결과를 이용해서 실제 투자 시뮬레이션을 위한 코드를 작성해본다. 3. 프로젝트 구현 가. 주가 데이터 예측에 대한 주요 중점 사항들 가-1. 학습에 사용할 봉 차트 단위 시간 결정 봉 차트의 단위시간에는 틱봉, 분봉, 시봉, 일봉 등이 있는데, 어떤 단위시간을 사용해야 할까? 필자가 경험한 바에 의하면 단위시간의 길이마다 각각의 장단점이 확실히 있고, 절대적인 기준은 없었다. A. 짧은 단위 시간을 결정했을 경우 * 장점     - 기술적 분석의 예측 결과가 맞을 ...

토이 프로젝트 일지 4 : 디시인사이드 캡차 인식 신경망 만들기

이미지
그림 1. 프로그램 동작 화면 1. 시작 계기 DC 인사이드에서는 갤러리 관리자가 원하는 경우, 자동 입력 방지 문자(Captcha)를 댓글, 추천 버튼, 글쓰기 전에 입력하도록 만들 수 있다. 그런데, 필자가 생각하기에는 현대의 인공지능 기술로는 이러한 자동 입력 방지 문자를 사용하는데 별로 쓸모가 없다는 생각이 들어서 이러한 캡차 문자를 자동으로 인식하고, 통과시키는데 얼마나 유효한지 알아보기 위해서 본 프로젝트를 시작하게 되었다. 2. 프로젝트 개요 가. 프로젝트 소개 1. 프로젝트 유형: 개인 토이 프로젝트 2. 구현 신경망 : DC 인사이드의 캡차 이미지에 대한 정답을 생성하는 신경망 3. 개발 환경 : Colab(WEB IDE) 4. 활용 기술     - 리버스 엔지니어링           디시 캡차 이미지 데이터 얻는 과정을 자동화하기 위해서 DC 서버와의 네트워크 통신 과정을 이해하고, 구현할 수 있어야 한다.     - 신경망 관련 라이브러리 : Pytorch, Pytorch Lightning          현재 신경망 관련 논문들이 주로 즐겨 사용하는 Pytorch 라이브러리를 사용했다.     - 활용한 신경망 구조 : CRNN, ResNet, Self-Attention          OCR 인식의 기반이 되는 CRNN 신경망 구조에 대한 이해가 필요하다.          성능을 향상하기 위해서 ResNet, Self-Attention에서 사용하는 기반 기술들을 알아야 한다. 5. 개발 기간: 2023.2.22 ~ 2023.3.10 나. 프로젝트 목표 필자는 주로 Tensorflow를 사용했기 때문에 Pytorch 관련 라이브러리 사용에 익숙해지고, 복잡한 신경망을 어떻게 하면 효율적으로 구축할 수 있...

토이 프로젝트 일지 3 : 클라우드 스토리지 서비스를 제공하는 Nodejs 서버 만들기

이미지
그림 1. 프로그램 동작 화면 1. 시작 계기 이번 프로젝트는 앞선 프로젝트들보다 큰 규모의 복잡한 프로그램들을 어떻게 체계적으로 설계할 수 있는지를 학습하는 것을 목표로 시작하게 되었다. 필자는 Dropbox 를 주로 애용하고 있어서, 이쪽 서비스에 대해서 자세히 알고 있어서 Dropbox의 필수 기능들을 구현해보는 방향으로 프로젝트를 시작하게 되었다.  개발 기간은 약 3달 정도로 잡았으며, 다른 분과 협업을 통해서 제작했다. 협업에 참여해주신 lucky6030님 에게는 깊은 감사의 말씀을 드린다. 2. 프로젝트 개요 가. 프로젝트 소개 1. 프로젝트 유형: 팀 토이 프로젝트(총 2명) 2. 구현 서비스 : 클라우드 스토리지 서비스 3. 개발 환경 : replit(WEB IDE) 4. 구동 환경 : linux 5. 활용 기술     - 프론트 엔드 : bootstrap 4     - 백엔드 : Nodejs-Express, Firebase         > Firebase의 인증 서비스, 데이터베이스 서비스, 스토리지 서비스를 이용했다. 6. 개발 기간: 2023.1.11 ~ 2023.3.2 7. 담당 역할: 팀장(일정 관리, 작업 분배, 백엔드 및 프론트엔드 개발, 코드 평가 및 통합 작업) 나. 프로젝트 목표 큰 규모의 프로그램을 어떻게 체계적으로 설계할 수 있는지 이해하고, 다른 분들과 협업할 경우 어떻게 하면 충돌 없이 업무를 효율적으로 분배할 수 있는지 학습하는 것을 목표로 했다. 3. 프로젝트 구현 가. 사이트 구조 그림 2. 사이트 맵 그림 3. 사이트 이미지 맵 사이트들은 Main을 중심으로 총 5개의 사이트로 나눠서 작업했다. - Main : 클라우드 서비스에서 가장 핵심적인 기능들인 파일 업로드 & 다운로드 & 공유 기능들을 제공 - Sign In : 일반 로그인 & 구글 로그인 기능을 제공 - Sign Up : 회원가입 기능을 제공 -...