머신 러닝에서 과적합(Overfitting)이란 훈련 데이터를 과하게 학습한 경우를 말한다. 머신 러닝 모델이 학습에 사용하는 훈련 데이터는 극히 일부의 데이터이다. 그런데 이 훈련 데이터만 너무 과하게 학습한 나머지 테스트 데이터, 그리고 실제 서비스에 적용해 보았을 때 정확도가 현저히 떨어지는 것이다. 마치 수학문제집 한 권을 여러번 풀어 마스터 했더라도, 실제 수학시험에서 전혀 다른 문제가 나오면 대응하지 못하는 경우를 생각하면 쉽다.

과적합 상황에서는 훈련 데이터에 대해서는 오차가 낮지만(높은 정확도를 보이지만), 테스트 데이터에 대해서는 오차가 커진다.(정확도가 낮아진다). 아래의 그래프는 과적합 상황에서 발생할 수 있는 훈련 데이터에 대한 훈련 횟수에 따른 훈련 데이터의 오차와 테스트 데이터의 오차(또는 손실)의 변화를 보여준다.


출처: https://wikidocs.net/32012

위 그래프는 뒤의 RNN을 이용한 텍스트 분류 챕터의 스팸 메일 분류하기 실습에서 훈련 데이터에 대한 훈련 횟수를 30 에포크로 주어서 의도적으로 과적합을 발생시킨 그래프인데, y축은 오차(loss), X축의 에포크(epoch)는 전체 훈련 데이터에 대한 훈련 횟수를 의미하며, 사람으로 비유하면 동일한 문제(훈련 데이터)를 반복해서 푼 횟수와 같다. 에포크가 지나치게 크면 훈련 데이터에 과적합이 발생한다.

스팸 메일 분류하기 실습은 에포크가 3~4에서 테스트 데이터에 대한 정확도가 가장 높고, 에포크가 그 이상을 넘어가면 과적합이 발생한다. 위의 그래프는 에포크가 증가할수록 테스트 데이터에 대한 오차가 점차 증가하는 양상을 보여준다. 과적합은 다르게 설명하면 훈련 데이터에 대한 정확도는 높지만, 테스트 데이터는 정확도가 떨어진다. 이런 상황을 방지하기 위해서는 테스트 데이터의 오차가 증가하기 전이나, 정확도가 감소하기 전에 훈련을 멈추는 것이 바람직하다.

반면, 테스트 데이터의 성능이 올라갈 여지가 있음에도 훈련을 덜 한 상태를 과소적합(Underfitting) 이라고 한다. 과소 적합은 훈련 자체가 부족한 상태이므로 훈련 횟수인 에포크가 지나치게 적으면 발생할 수 있습니다. 과대 적합과는 달리 과소 적합은 훈련 자체를 너무 적게한 상태이므로 훈련 데이터에 대해서도 정확도가 낮다는 특징이 있다. 이는 훈련 횟수를 늘려주는 방식으로 해결할 수 있다.

이러한 두 가지 현상을 과적합과 과소 적합이라고 부르는 이유는 머신 러닝에서 학습 또는 훈련이라고 하는 과정을 적합(fitting)이라고도 부르기 때문이라고 한다.. 모델이 주어진 데이터에 대해서 적합해져가는 과정이므로, 케라스에서는 기계를 학습시킬 때 fit()을 호출한다.

딥 러닝을 할 때는 과적합을 막을 수 있는 드롭 아웃(Dropout), 조기 종료(Early Stopping) 등의 방법도 존재하는데, 나중에 딥러닝 챕터에서 소개해도 좋을 것 같고, 에포크에 대한 설명이 부실한 듯 하여 나중에 딥러닝 챕터에서 보완해야겠다.

'인공지능(ML)' 카테고리의 다른 글

AI 관련 용어 정리  (0) 2024.01.04
머신러닝의 5단계  (0) 2023.09.16
혼동 행렬의 개념  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16

머신러닝에서는 맞춘 문제/전체 문제=정확도 라고 하는데, 이 정확도만 가지고는 맞춘 문제와 틀린 문제의 세부사항을 알 수가 없다. 세부 사항을 알아야 틀린 문제의 원인을 파악하고 수정을 할 수 있는데, 정확도만 갖고는 판단을 할 수 없으니 혼동 행렬이라는 개념을 사용한다.

True Positive(TP) : 실제 True인 정답을 True라고 예측 (정답)
False Positive(FP) : 실제 False인 정답을 True라고 예측 (오답)
False Negative(FN) : 실제 True인 정답을 False라고 예측 (오답)
True Negative(TN) : 실제 False인 정답을 False라고 예측 (정답)

 

1) 정밀도(Precision)
정밀도란 모델이 True라고 분류한 것 중에서 실제 True인 것의 비율을 뜻한다.

 

2) 재현율(Recall), 위 표에서는 민감도에 해당

재현율이란 실제 True인 것 중에서 모델이 True라고 예측한 것의 비율을 뜻한다.

Precision이나 Recall은 모두 실제 True인 정답을 모델이 True라고 예측한 경우. 즉, TP에 관심이 있다는 것을 알 수 있다.

 

3) 정확도(Accuracy)
정확도는 우리가 일반적으로 실생활에서도 가장 많이 사용하는 지표로서 전체 예측한 데이터 중에서 정답을 맞춘 것에 대한 비율을 뜻한다.

 

4)특이도(Specificity)
특이도란 실제 False인 것 중에서 False라고 예측한 것의 비율로서 위키독스에 언급하지 않은 것을 보아하니 머신러닝에선 그다지 중요한 요소는 아닌 듯 하다.

'인공지능(ML)' 카테고리의 다른 글

머신러닝의 5단계  (0) 2023.09.16
과대적합(Overfitting)과 과소적합(Underfitting)  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16
머신러닝이란?  (0) 2023.09.16


출처:https://wikidocs.net/32012

머신러닝은 무작정 데이터를 넣고 학습시키고 평가하는 것이 아니라, 준비된 데이터 셋을 우선 훈련(Training)용과 평가(Testing)용으로 나누는데, 이때 훈련용 데이터 셋의 비중을 더 크게 두고, 훈련용 데이터 셋은 또 훈련용과 검증(Validation)용 데이터 셋으로 또 분류를 한다.
여기서 훈련용 데이터는 기계에게 학습을 시키기 위해 넣어주는 데이터, 검증용 데이터는 모델의 성능을 조절하는 데이터, 즉 과적합(Overfitting)의 여부를 가리거나 하이퍼파라미터의 조정을 위한 데이터이다.
여기서 하이퍼파라미터란, 초매개변수를 뜻하는데, 모델의 성능에 영향을 주는 사람이 값을 지정하는 변수라고 한다. 매개변수(가중치와 편향. 학습을 하는 동안 값이 계속해서 변하는 수)와 달리 사람이 직접 값을 저장할 수 있으며 경사 하강법에서 학습률(learning rate)이나, 딥 러닝에서 뉴런의 수나 층의 수와 같은 것들이 대표적인 하이퍼파라미터라고 한다.

반면, 가중치와 편향과 같은 매개변수는 사용자가 결정해주는 값이 아니라 모델이 학습하는 과정에서 얻어지는 값이다. 훈련용 데이터로 훈련을 모두 시킨 모델은 검증용 데이터를 사용하여 정확도를 검증하며 하이퍼파라미터를 튜닝(tuning,검증용 데이터에 대해서 높은 정확도를 얻도록 하이퍼파라미터의 값을 바꿔보는 것)을 한다. 이렇게 튜닝하는 과정에서 모델은 검증용 데이터의 정확도를 높이는 방향으로 점차적으로 수정되는 값이다. 즉, 사람은 가중치와 편향값을 조절하는 것이 아니라 하이퍼파라미터의 값을 조절하는 것이다.****

튜닝 과정을 모두 끝내고 모델의 최종 평가를 하고자 한다면, 훈련용과 검증용 데이터로 모델을 평가하는 것이 아닌, 아직 한번도 사용되지 않은 최종 데이터 셋인 평가용 데이터 셋을 이용해야 한다. 모델은 검증용 데이터의 정확도를 높이기 위해서 수정되어져 온 모델이기 때문이다. 수학능력시험을 준비하는 수험생으로 비유하자면 훈련 데이터는 실제 공부를 위한 문제지, 검증 데이터는 모의고사, 테스트 데이터는 실력을 최종적으로 평가하는 수능 시험이라고 이해하기 쉬운 비유를 들어 주었다.

'인공지능(ML)' 카테고리의 다른 글

과대적합(Overfitting)과 과소적합(Underfitting)  (0) 2023.09.16
혼동 행렬의 개념  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16
머신러닝이란?  (0) 2023.09.16
Deep Q-Network  (0) 2022.11.06

지도학습(Supervised Learning)

이미 정해진(인간이 컴퓨터에게 학습시킨) 레이블이 있는 데이터를 학습하는 것으로, 대표적으로 분류 문제와 회귀 문제가 있다.

  • 분류: 로지스틱 회귀법(선형 회귀 방식을 분류 모델에 적용하므로 회귀가 아니다), KNN, 서포트 벡터 머신(SVM), 의사 결정 트리 등이 있다.
    여기서 kNN과 SVM는 나무위키에 이렇게 설명되어 있었다.
    5.4.2. k-Nearest Neighbors (k-NN)[편집]
    지도학습 모델이다. 레이블 되어 있는 학습 데이터가 있어야 한다. 입력된 특징 벡터 X에 가장 가까운 점 k개를 뽑아 이들의 레이블을 사용하는 분류기이다. 점들이 서로 다른 레이블들을 가질 경우 가장 많은 레이블을 선택한다.(다수결). 다수결에서 결과가 특정되도록 만들기 위해 k는 홀수로 선정한다.
    5.4.3. Support Vector Machine (SVM)[편집]
    서포트 벡터 머신 참조

Support vector란 특징 공간에서 주어진 두 분류의 데이터를 구분 지을 수 있는 최적(optimal)의 초평면(hyperplane)을 의미한다. SVM은 그러한 support vector를 찾는 알고리즘으로 두 분류에서 가장 가까운 데이터를 하나씩 찾아서 그 거리를 계산했을 때 가장 멀어질 수 있는 초평면을 찾는 것을 목표로 한다.

이것만 하면 단순한 linear classifier이어서 XOR과 같이 직선으로 나눌 수 없는 함수는 학습을 진행하지 못하지만, SVM은 여기에 kernel function이란 개념을 도입하여 특징 공간을 접어버리거나 꼬아버려 선형으로 분류할 수 있게 만들어버린다.

기하 기반의 기계학습의 끝판왕으로 이것으로 필기인식, 사진 안에 있는 물체 인식, 영화 리뷰 분석 등 온갖 문제를 해결한다.

또한, 분류 문제는 그 중에서도 이진 분류(Binary Classification)과 다중 클래스 분류(Multi-Class Classification)로 나뉜다.

1) 이진 분류 문제(Binary Classification)**
이진 분류는 주어진 입력에 대해서 두 개의 선택지 중 하나의 답을 선택해야 하는 경우를 말합니다. 종합 시험 성적표를 보고 최종적으로 합격, 불합격인지 판단하는 문제, 메일을 보고나서 정상 메일, 스팸 메일인지를 판단하는 문제 등이 이에 속합니다.

2) 다중 클래스 분류(Multi-class Classification)**
다중 클래스 분류는 주어진 입력에 대해서 세 개 이상의 선택지 중에서 답을 선택해야 하는 경우를 말합니다. 예를 들어 서점 직원이 일을 하는데 과학, 영어, IT, 학습지, 만화라는 레이블이 붙어있는 5개의 책장이 있다고 합시다. 새 책이 입고되면, 이 책은 다섯 개의 책장 중에서 분야에 맞는 적절한 책장에 책을 넣어야 합니다. 이 경우는 현실에서의 다중 클래스 분류 문제라고 할 수 있겠습니다.

  • 회귀(Regression): 회귀 문제는 분류 문제처럼 둘 중 하나를 선택해야 한다거나, 책이 입고되었을 때 5개의 책장 중 하나의 책장을 골라야하는 경우처럼 정답이 몇 개의 정해진 선택지 중에서 정해져 있는 경우가 아니라 어떠한 연속적인 값의 범위 내에서 예측값이 나오는 경우를 말합니다.

예를 들어서 역과의 거리, 인구 밀도, 방의 개수 등을 입력하면 부동산 가격을 예측하는 머신 러닝 모델이 있다고 해봅시다. 머신 러닝 모델이 부동산 가격을 7억 8,456만 3,450원으로 예측하는 경우도 있을 것이고, 8억 1257만 300원으로 예측하는 경우도 있을 수 있습니다. 특정 값의 범위 내에서는 어떤 숫자도 나올 수 있습니다. 기존의 분류 문제와 같이 분리된(비연속적인) 답이 결과가 아니라 연속된 값을 결과로 가지는 이러한 문제를 회귀 문제라고 부릅니다. 회귀 문제의 예시로 시계열 데이터(Time Series Data)를 이용한 주가 예측, 생산량 예측, 지수 예측 등이 있습니다.

출처: 위키독스https://wikidocs.net/32012

비지도학습(Unsupervised Leaning)

사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것. 즉 y 없이 x만 이용해서 학습하는 것이다. 통계학의 군집화와 분포 추정 등의 분야와 밀접한 관련이 있다.
최근에는 레이블을 사람이 직접 레이블하는 것이 아닌, 컴퓨터가 임의로 직접 레이블을 지정할 수 있어 레이블이 없는 데이터셋으로 학습할 수 있는 일부 문제(레이블이 주어지지 않은 데이터를 사용한 비지도 학습이지만 실제 학습은 직접 주어진 레이블을 사용하는 지도 학습으로 이루어짐)는 자가지도 학습(Self-supervised Learning)이라는 용어로 따로 분류하고 있다(대표적으로 노이즈 제거, 오토인코더)

  • 군집화(Clustering): 데이터가 쭉 뿌려져 있을 때 레이블이 없다고 해도 데이터 간 거리에 따라 데이터를 몇 개의 군집으로 나눌 수 있다. 이렇게 x만 가지고 군집을 학습하는 것이 군집화이다.
  • 분포 추정(Underlying Probability Density Estimation): 군집화에서 더 나아가서, 데이터들이 쭉 뿌려져 있을 때 얘네들이 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제이다. 예를 들어 GPT-2 같이 데이터 일부를 가지고 나머지를 추측하는 방식으로 데이터를 이해하고자 하는 연구가 많이 진행중이다.
  • 자기지도 학습(Self-Supervised Learning, SSL)**
    레이블이 없는 데이터가 주어지면, 모델이 학습을 위해서 스스로 데이터로부터 레이블을 만들어서 학습하는 경우를 자기지도 학습이라고 합니다. 대표적인 예시로는 Word2Vec과 같은 워드 임베딩 알고리즘이나, BERT와 같은 언어 모델의 학습 방법을 들 수 있습니다. 이들이 어떻게 레이블을 만들어 학습하는지에 대한 설명은 Word2Vec과 BERT를 설명하는 페이지를 참고바랍니다.

강화학습(Reinforcement Learning)

내가 수강했던 과목이다(유일ㅋ)
위의 두 문제의 분류는 지도의 여부에 따른 것이었는데, 강화학습은 조금 다르다. 강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화하는 방향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다(지연된 보상). 이 때문에 문제의 난이도가 앞의 두 개에 비해 대폭 상승하며, 시스템을 제대로 보상하는 것과 관련된 신뢰 할당 문제라는 난제가 여전히 연구원들을 괴롭히고 있다. 대표적으로 게임 인공지능을 만드는 것을 생각해 볼 수 있다. 체스에서 현재 나와 적의 말의 배치가 State가 되고 여기서 어떤 말을 어떻게 움직일지가 Action이 된다. 상대 말을 잡게 되면 보상이 주어지는데, 상대 말이 멀리 떨어져 이동할 때까지의 시간이 필요할 수 있으므로, 상대 말을 잡는 보상은 당장 주어지지 않는 경우도 생길 수 있다. 심지어는 그 말을 잡은 것이 전술적으로는 이익이지만 판세로는 불이익이라 다 끝났을 때 게임을 질 수도 있다. (지연된 보상). 따라서 강화학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총합이 최대화되도록 Action을 선택해야 하며, 게다가 행동하는 플레이어는 어떤 행동을 해야 저 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하면서 가장 좋은 선택이 뭔지 Action을 여러 방식으로 수행하며 고민해야 한다. 좋은 선택이 뭔지 Action을 찾는 것을 탐색, 지금까지 나온 지식을 기반으로 가장 좋은 Action을 찾아 그것을 수행하는 것을 활용한다고 하여, 강화학습을 푸는 알고리즘은 이 둘 사이의 균형을 어떻게 잡아야 할지에 초점을 맞춘다. 위 방법들과는 다르게 실시간으로 학습을 진행하는 게 일반적이다.

 

출처: 나무위키
본 게시글은 위키에 있는 글을 보기 쉽게 한꺼번에 정리한 것

'인공지능(ML)' 카테고리의 다른 글

혼동 행렬의 개념  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝이란?  (0) 2023.09.16
Deep Q-Network  (0) 2022.11.06
가치함수 근사  (0) 2022.11.06

사실 머신러닝과 딥러닝은 별개의 개념이 아니라 머신 러닝 속에 딥러닝이 있는 상위-하위 개념이다. 그리고 머신러닝과 딥러닝은 AI의 하위 개념이다. 정리해보면 AI>ML>DL인 것이다.
GDSC에서 DL의 멤버가 되었기 때문에 DL을 공부하려고 봤더니 ML에서 쓰이는 요소들, 즉 ML에 대한 전반적인 공부가 선행되어야 함을 알았다. 그야 ML가 더 상위 개념이니 그럴만도 하다. 따라서 ML을 먼저 하고 DL공부를 시작해야겠다는 생각이 들었다.

 

그렇다면 ML은 무엇인가?

출처:https://hongong.hanbit.co.kr/ai-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC/

위 글에도 잘 나와 있듯이, 규칙기반 인공지능은 바나나의 특성을 인간이 스스로 컴퓨터에게 학습시켜주어야 하는데, 머신러닝은 처음부터 바나나 이미지 = 바나나 라는 것을 컴퓨터에게 알려주면, 컴퓨터가 그 이미지로 하여금 바나나의 특성을 학습하고 비슷한 바나나 이미지를 주었을때 바나나라는 것을 바로 캐치해 내는 것이다.

 

썰어놓은 바나나는 어떨까? 노란색, 길다, 약간 휘었다 라는 기존의 바나나와 달리 썰어놓은 바나나는 특성이 전혀 달라진다. 규칙기반 인공지능이라면 인간이 썰어놓은 바나나의 특성까지 추가로 학습을 시켜줘야 하는데, 머신러닝 방식이라면 썰어놓은 바나나 이미지 = 바나나라는 것만 학습을 시킨다면, 안 썬 바나나나 썬 바나나나 모두 똑같이 바나나로 인식할 수 있게 되는 것이다.

DL은 ML과 어떤 차이?

딥러닝은 ML의 하위 개념이지만 아예 인간의 뇌를 모방함으로써 훨씬 더 정교한 학습 방식이다. 메커니즘도 서로 다른데, 딥러닝은 인간이 학습하는 메커니즘을 그대로 모방하여 학습이 이루어지기 때문에, 학습 과정에서 인간의 개입이 전혀 이루어지지 않는다. 그 이유는 인공 신경망(ANN)을 이용하기 때문이다. 물론 인공 신경망을 만드는 알고리즘을 작성하여 그것을 코드로 구현하고, 데이터를 부여하는 것은 인간 몫이다.

더 세부적인 내용은 https://velog.io/@huttzza/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-2를 보고 학습하였다.

 

'인공지능(ML)' 카테고리의 다른 글

혼동 행렬의 개념  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16
Deep Q-Network  (0) 2022.11.06
가치함수 근사  (0) 2022.11.06

x = 신호(입력값)이라 하고, 영어로는 input이라고 함
w = 가중치라 하고, 영어로는 Weight라고 함(약자)
b = 편향이라 하고, 영어로 Bias라고 함(약자)
f = 활성화 함수라 하고, 영어로 Activation Function이라고 함

 

뉴런(노드)으로부터 전달받은 신호 x가, 시냅스에서 가중치 w가 곱해져서, 이것이 cell body로 들어간다. cell body에서 가중치가 곱해진다고 하는 글을 봐서 헷갈렸는데, 전자가 맞는 것이다. 이렇게 각기 뉴런과 시냅스를 거쳐 들어온 x*w의 값들이 cell body에 모여 전부 합쳐지고(가중합,sum), 이 합쳐진 값에 편향인 b값이 더해진다.
이렇게 더해진 값들은 활성화 함수를 거쳐 출력값(output)이 되어 나간다.

 

라는 것이 퍼셉트론의 기본 이론이라는 것은 알았는데, 왜 굳이 가중치와 편향 값을 더하는 것인지? 의문이 들어, 열심히 구글링 해 본 결과 https://jh2021.tistory.com/3 이 분의 글이 정말 명확하고 알기 쉽게 설명해 주고 있다. 데이터들마다 중요도가 모두 같을 리 없기 때문에, 중요도의 정도에 따라 w를 달리 해주어야 하고, 데이터들마다 각기 성향 또한 다르기 때문에 b값을 달리 해주어야 한다.

 

또한, 활성화 함수를 사용하는 이유에 대해서는 https://syj9700.tistory.com/37 이 분의 글이 도움이 되었다.
활성화 함수에 대한 자세한 내용은 다음 글에 작성하는 걸로.

퀀트의 재료 과거 수익률을 측정하는 3가지 측면

자산 수익률 - 주식, 채권, 원자재 등의 수익률, 주식을 사서 보유하고만 있어도 얻는 수익률

투자 전략 수익률 - 어떤 특정한 날에 주식을 사고 또 어떤 특정한 날에 판다는 결정을 하면 상황에 따라 수익률은 변함

팩터의 수익률 - 팩터는 수익률을 결정하는 밑바닥에 있는 요소로서, 주식의 수익률에 영향을 주는 팩터 중 하나가 경제성장이라 한다면, 이때 경제성장이라는 팩터가 가져다주는 수익률은 그 주식의 수익률의 일부.

필드(현업)용어

알파: 팩터에 노출되어 얻는 수익률 외에 노출되지 않고 얻는 수익률. 만약 팩터가 시장지수 중 하나라면 시장지수에 노출되어 얻는 수익률 이외의 나머지를 뜻함.

베타: 팩터에 노출된 정도

시그널: 특정 형태로 가공한 각각의 팩터, 예상수익률을 예측

샤프지수: 위험률에 대한 수익률

변칙(Anomly): 효율적인 시장에 나타나는 것에서 벗어난 모든 것을 변칙이라 함.

정보지수: 벤치마크 수익률에 대한 수익률

계수 정보(ㅊ/IC): 시그널이 예측하는 예상수익률과 실제 수익률의 상관관계

변동성(Volatility): 전략의 수익률 표준편차

마켓 임팩트: 매수, 매도 행위로 시장가격 자체가 오르거나 내리도록 영향을 주는 것

슬리피지: 거래하려 한 가격과 실제로 거래가 이루어진 가격의 차이

거래 비용: 거래할 때마다 생기는 비용

백테스팅: 개발한 퀀트 전략을 시뮬레이션 상황에 접목해 어떤 결과를 낼 지 확인하는 과정

머신러닝이란?

과정을 통해 모델 정하기 → 모델 수식화 하기 → 모델 학습하기 → 모델 평가하기

  1. 손실함수: 모델의 수식화된 학습 목표 - 모델이 실제로 데이터를 바르게 표현했는지 혹은 얼마나 예측이 정확한지 수학적으로 표현한 것. 손실함수가 작을수록 모델이 정확하게 학습된 것. 손실함수의 결과값을 에러라고 함.
  • 산술 손실함수: 모델로 산술값을 예측할 때 데이터에 대한 예측값과 실제 관측값을 비교(최소제곱법)
  • 확률 손실함수: 모델로 항목이나 값에 대한 확률을 예측하는 경우에 사용(최대 가능도)
  • 랭킹 손실함수: 모델로 순서를 결정할 때 사용(모델이 예측해낸 결과값의 순서가 맞는지 판단)

모델 평가: 모델이 얼마나 좋은 성능을 보일지 평가하는 방법

일반화 - 학습 데이터뿐만 아니라 새로운 데이터가 들어왔을 때도 잘 작동하는지 측정

교차 검증: k겹 교차검증

Training과 validation의 차이 :

Training set의 목적

Training set(훈련 데이터)은 모델을 학습하는데 사용된다.

Training set으로 모델을 만든 뒤 동일한 데이터로 성능을 평가해보기도 하지만, 이는 cheating이 되기 때문에 유효한 평가는 아니다. 마치 모의고사와 동일한 수능 문제지를 만들어 대입 점수를 매기는 것과 같다.

Training set은 Test set이 아닌 나머지 데이터 set을 의미하기도 하며, Training set 내에서 또 다시 쪼갠 Validation set이 아닌 나머지 데이터 set을 의미하기도 한다. 문맥상 Test set과 구분하기 위해 사용되는지, Validation과 구분하기 위해 사용되는지를 확인해야 한다.

!https://blog.kakaocdn.net/dn/dVfds2/btqLkhbs7T4/U97igLNa0nSfvmBPn5BnbK/img.png

Training, validation and test set split

Validation set의 목적

Validation set(검정 데이터)은 training set으로 만들어진 모델의 성능을 측정하기 위해 사용된다. 일반적으로 어떤 모델이 가장 데이터에 적합한지 찾아내기 위해서 다양한 파라미터와 모델을 사용해보게 되며, 그 중 validation set으로 가장 성능이 좋았던 모델을 선택한다.

정확도: 모델이 데이터를 얼마나 정확하게 분류했는지에 대한 지표

정확도= 맞게 분류한 데이터 숫자/평가하는데 쓴 총 데이터 숫자

단점: 사막에 비가 올 확률

정밀도: 모델이 양성으로 평가한 데이터 중에서 실제로 양성인 것

정밀도= 참 양성(양성)/참 양성(양성)+거짓 양성(음성)

포괄성: 실제로 양성인 데이터 중에서 모델이 양성으로 평가한 것

포괄성= 참 양성(양성)/참 양성+거짓 음성(양성)

F(1)은 포괄성과 정밀도를 조합해서 사용

F(1)= 2 X 정밀도 X 포괄성/정밀도 + 포괄성

'인공지능(ML) > 금융공학(퀀트)' 카테고리의 다른 글

금융 알고리즘(Pandas)  (0) 2023.09.15
퀀트 코드  (0) 2023.09.15

일반화
• 기능 근사를 사용하여 정말 큰 영역에서 의사 결정을 내리도록 확장

 

심층 강화 학습
• 심층 신경망을 사용하여 표현
 가치, Q 함수
 정책
 모델
• SGD(stochastic gradient descent)로 손실 함수 최적화

 

심층 Q-네트워크(DQN)
• 가중치 w를 갖는 Q-네트워크에 의한 상태-동작 값 함수 표현

 

DQN(Deep Q-Networks)에서 재생 경험
• DQN은 경험 재생 및 고정 Q 타겟을 사용합니다.
• 탐욕스러운 정책에 따라 조치를 취하십시오.
• 리플레이 메모리 D에 트랜지션 저장(st,at,rt+1,st+1)
• D에서 전환(s,a,r,s')의 무작위 미니 배치 샘플
• Q-학습 목표 w.r.t를 계산합니다. 오래된 고정 매개변수 w−
• Q-network와 Q-learning 타겟 간의 MSE 최적화
• 확률적 경사하강법 변형 사용

 

아타리의 DQN
• 픽셀 s에서 값 Q(s,a)에 대한 종단 간 학습
• 입력 상태 s는 마지막 4개 프레임의 원시 픽셀 스택입니다.
• 출력은 18개의 조이스틱/버튼 위치에 대해 Q(s,a)입니다.
• 보상은 해당 단계의 점수 변화입니다.
• 모든 게임에서 수정된 네트워크 아키텍처 및 하이퍼파라미터

 

DQN을 사용하여 Atari 게임하기 
• 게임 화면 전처리
 원시 게임 화면 이미지를 직접 공급하는 것은 비효율적입니다.
 이를 방지하기 위해 게임 화면을 전처리한 후 DQN에 전처리된 게임 화면을 피드합니다.
 이제 게임 상태(게임 화면의 이미지)를 다음과 같이 취하는 preprocess_state라는 함수를 정의합시다.
입력하고 전처리된 게임 상태(게임 화면 이미지)를 반환합니다.

 

DQN을 사용하여 아타리 게임하기
• DQN 구축
 우리는 아타리 게임을 하기 위해 합성곱 신경망을 DQN으로 사용한다는 것을 배웠습니다.
게임 화면의 이미지를 입력으로 입력하고 Q 값을 반환합니다.
 3개의 컨볼루션 레이어로 DQN을 정의합니다.

 

DQN을 사용하여 아타리 게임하기
• 네트워크 교육
 에피소드 수 설정:
 시간 단계 수 정의:
 배치 크기 정의:
 우리가 고려하고 싶은 과거 게임 화면의 수를 설정합니다:
 DQN 클래스 인스턴스화:

 

더블 DQN
• 이 아이디어를 DQN으로 확장
• 현재 Q-network w는 동작을 선택하는 데 사용됩니다.
• 이전 Q-네트워크 w−는 작업을 평가하는 데 사용됩니다.

 

듀얼 DQN
• 직관: 가치를 정확하게 표현하는 데 필요한 기능은 특정 값을 지정하는 데 필요한 기능과 다를 수 있습니다.
행동의 차이
• 예시
 게임 점수는 V(s)를 정확하게 예측하는 데 도움이 될 수 있습니다.
 그러나 반드시 상대 행동 값을 나타내는 것은 아님 Q(s,a1) 대 Q(s,a2)
• 장점 함수(Baird 1993)

 

Atari의 DQN을 위한 실용적인 팁
• DQN은 일부 Atari 작업에서 다른 작업보다 더 안정적입니다. Pong은 신뢰할 수 있는 작업입니다. 달성하지 못하면
좋은 점수, 뭔가 잘못되었습니다
• 큰 재생 버퍼는 DQN의 견고성을 향상시키며 메모리 효율성이 핵심입니다.
 uint8 이미지 사용, 데이터 복제 금지
• 인내심을 가지십시오. DQN은 천천히 수렴됩니다. ATARI의 경우 10-40M 프레임을 기다려야 하는 경우가 많습니다.
(GPU에서 몇 시간에서 하루 교육) 무작위 정책보다 훨씬 더 나은 결과를 볼 수 있습니다.

 

 

 

 

'인공지능(ML)' 카테고리의 다른 글

혼동 행렬의 개념  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16
머신러닝이란?  (0) 2023.09.16
가치함수 근사  (0) 2022.11.06

+ Recent posts