반응형

훈련 집합으로 상태, 행동->보상을 학습하여 입력 상태에 따라 최대의 보상이 기대되는 행동을 선택한다.

정책 : 현재 상태에서 최대의 가치를 주는 상태로 가는 행동을 선택하는 것

가치 : 상태 최대 기대 보상 값

최대한 넓게 깊게(많은 샘플링) 탐색한다.

(행동선택) 정책 모델로 넓게를 효율적으로

(가치 예측) 가치 모델로 깊게를 효율적으로

동적 프로그래밍 vs. 몬테카를로 방법

동적 프로그래밍에서는 r(z)를 직접 추정할 수 없어서 순환식을 사용했지만,

몬테카를로 방법은 샘플을 만들어 이를 직접 계산합니다.

또한 몬테카를로 방법에서는 어떤 상태가 자신에 속한 샘플만 가지고 자신의 값을 결정할 수 있으므로, 특정 상태만 골라 가치 함수를 계산하여 시간을 줄일 수 있는 장점이 있습니다.

훈련 데이터 수집 방식

1. 현장 샘플링 -> 훈련 집합

2. 시뮬레이션(환경, 에이전트(정책)) -> 에피소드 -> 샘플링 -> 훈련 집합

3. 불완전 모델 정보 -> 샘플 생성 -> 훈련 집합

훈련 데이터 형식

1. Z(s) 집합 = 상태 샘플

2. Z(s, a) 집합 = 상태-행동 샘플

정책 π 평가(policy evalutation)

정책 π 평가 = 가치 함수(π) = vπ = 샘플의 평균

Z(s)를 이용한 상태 가치 함수

Z(s, a)를 이용하여 상태-행동 가치 함수

정책 반복

for 정책

for 가치

for 정책

가치 반복

for 가치

for 상태

최적 정책 탐색

- 모델(MDP, P(s',r|s,a))이 있는 경우: max가 되는 행동을 찾아 정책으로 변환합니다.

- 모델이 없는 경우: Z(s, a)를 사용하여 탐험, 탐사 조절

탐험과 탐사 조절

- 오프라인(offline) 방식

- 충분히 큰 훈련 집합 Z를 한꺼번에 수집합니다.

- 지역 최적점을 구하는 것을 걱정할 필요가 없습니다.

- 온라인(online) 방식

- 알고리즘 수행하면서 에피소드를 발생시킵니다.

- 어떤 상태에 우연히 열등한 행동이 먼저 발생했다면 이후 그 행동만 선택할 가능성이 커져

지역 최적점으로 조기 수렴(premature convergence) 현상이 나타날 수 있습니다.

이에 따라 온라인 방식에서는 탐험을 강제할 기법이 추가되어야 합니다.

​ 1) 탐험형 시작(exploring starts) : 에피소드 생성 시 모든 상태-행동 쌍이 골고루 발생하도록 배려

​ 2) ϵ-soft : 주류에서 벗어난 상태-행동에 일정한 확률을 배정하여 선택될 가능성 열기

Monte-Carlo method 특성

1) 환경 모델이 없어도 됩니다. (샘플링)

2) bootstrap 방식이 아니므로 관심 있는 상태만으로 구성된 부분집합으로 최적 가치와 최적 정책을 추정할 수 있습니다.

3) Markov property에서 크게 벗어나는 상황에서도 성능 저하가 적습니다. 시작부터 종료까지 정보를 포함하여 에피소드를 충분히 많이 사용하여 학습하기 때문입니다.


https://wordbe.tistory.com/entry/RL-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-part2-Dynamic-programming-Monte-Carlo-Method?category=1080129

[RL] 강화학습 part2 - Dynamic programming, Monte Carlo Method

3. 동적프로그래밍

Dynamic programming 강화학습에서 사용하는 고전적인 방법입니다.

MDP 확률분포가 주어지고, 상태, 행동 개수가 적어 계산 시간과 메모리 요구량이 현실적이어야 구현이 가능합니다.

알고리즘 교과서에서 배우는 동적 프로그래밍은 결정론 문제를 풀도록 설계되어 있으므로, 강화학습에 적용할 수 없습니다.

강화학습은 스토캐스틱 동적 프로그래밍을 사용합니다.

1) 정책 반복 알고리즘

평가 : 현재 정책에서 가치함수 계산

개선 : 가치함수를 이용해 정책을 갱신

정책 반복 알고리즘(policy iteration)은 평가 개선 사이클을 최적 정책을 찾을 때까지 반복합니다.

이때 평가단계는 여러 번 반복하여 개선된 가치함수가 이전보다 좋아야 하므로 많은 시간이 소요 됩니다. 따라서 상태의 개수가 많은 현실 문제에는 적용할 수 없는 단점이 있습니다.

2) 가치 반복 알고리즘

value iteration

입력인 MDP를 보고 최적 가치함수를 찾은 후, 그로부터 최적 정책을 찾습니다.

line 6에서 계산한 가치함수는 장기 이득을 내포하고 있으므로, 순간 이득에 머물지 않습니다.

위 알고리즘은 반복할 때마다 가치함수를 저장하는 메모리를 별도로 사용합니다. 따라서 그대로 구현하면 메모리 사용이 과다해집니다. 하지만 알고리즘은 현재 - 다음 단계의 2개의 배열만 정의하고 이것을 번갈아 사용함으로써 이 문제를 조금 줄이는 효과가 있습니다.

line 13에서 확률을 배분할 때는 A(s) 안의 원소 개수 n 만큼 나누어 1/n씩 공정하게 해도 좋고, 또는 다른 방식으로 모든 합이 1이 되게 배분하면 됩니다. 이 행동 중 어느 것을 취하든 최적을 보장하기 때문입니다.

정책 반복과 가치 반복 알고리즘은 다른 상태 값을 보고 자신의 값을 갱신하는 부트스트랩(bootstrap) 방식입니다.

수렴하기 이전까지는 모든 상태가 불완전한 상황입니다.

추측 과정에서 MDP는 정확한 보상 값을 제공하고, 보상이 점점 정확한 추측 값에 근접하여 최적점에 도달합니다.

부트스트랩 방식은 모든 상태가 이전 값을 이용해 현재 값을 계산하여야 공평하므로, 하나의 배열만 가지고 갱신하는 제자리(in-place) 연산이 불가능하고, 2개의 배열을 필요로 합니다.

하지만, 제자리 연산으로 구현해볼 수도 있습니다. 이는 비록 공평성은 무시하지만 최적으로 수렴만 할 수 있다면 문제 될 것이 없습니다. 또한 실제 여러 실험에 따르면 제자리 연산을 통해 수렴 속도가 빨라지는 장점이 있는 것으로 밝혀졌습니다.

위 가치 반복 알고리즘에서 v(t+1)(s)를 하나의 v(s)로 표현하고 각 상태를 계산하자마자 대치해 주면 됩니다.

정책 반복

for 정책

​ for 가치

​ for 정책

3중 for 문 구조이지만,

가치 반복

for 가치

​ for 상태

2중 for 문 구조로 가치 반복이 더 빠릅니다.

하지만 상태공간이 방대한 백가몬(backammon)과 같은 응용에서 여전히 계산이 불가능합니다.


4. 몬테카를로 방법

MDP에 대한 완벽한 지식은 없지만, 불완전한 모델 정보로부터 샘플을 생성할 수 있거나, 에이전트와 환경에서 직접 샘플을 수집할 수 있다면 샘플을 훈련 집합으로 하여 최적 정책을 찾아낼 수 있습니다.

훈련 집합(train set)을 사용하여 학습에 기반을 둔 몬테카를로(Monte Carlo)방법을 설명합니다.

1) 훈련집합 수집과 정책 평가

적절한 방법으로 에피소드를 수집했다고 가정합니다.

예를 들어 바둑에서는 게임 시작부터 종료까지 기록, 즉 기보 하나를 에피소드로 사용할 수 있습니다.

에피소드 e를 다음 식으로 표현합니다.

e = [s0,r0]a0 [s1,r1]a1 ⋯[st,rt]at ⋯[sT,rT]

한 에피소드로부터 샘플을 여러 개 수집할 수 있습니다.

방법은 두 가지가 있습니다.

첫 방문(first visit): 상탯값이 여러 번 발생하면 최초 발생만 인정

모든 방문(every visit): 전부 인정

예제를 들어봅시다.

e = [10,0]동[11,0]북[7,0]남[11,0]서[10,0]서[9,0]북[5,0]북[1,5]

상태 10은 t=0, t=4 두곳에서 나오므로

first visit에서는 t=0만 인정하여 수집하므로

Z(10) = [10,0]동[11,0]북[7,0]남[11,0]서[10,0]서[9,0]북[5,0]북[1,5]

입니다.

every visit에서는 t=0, t=4 둘다 모두 수집하여

Z(10) = [10,0]동[11,0]북[7,0]남[11,0]서[10,0]서[9,0]북[5,0]북[1,5] , [10,0]서[9,0]북[5,0]북[1,5]

가 됩니다.

샘플은 몬테카를로 방법을 사용하기 위해 Z(s)에 추가됩니다.

몬테카를로 방법은 주로 환경 모델에 대한 완벽한 확률분포 없이 수행되는데,

상태만으로 최적 정책을 추정할 수 없어 상태-행동 정보가 필요합니다.

따라서 상태-행동 샘플을 수집하여 Z(s, a) 집합을 구해야 합니다.

에피소드는 실제 현장 수집 또는 시뮬레이션으로 생성합니다.

알파고를 만든 DeepMind는 KGS 바둑 서버에서 16만 개의 기보에서 3천만 개의 샘플을 수집해 알파고를 학습하였습니다. (Silver, 2016)

경기당 평균 184수까지 둔 꼴이며, T=184인 셈입니다. 알파고는 자신 복제 프로그램 2개를 대결하게 하여 샘플을 수집하기도 했습니다.

시뮬레이션은 환경 모델을 활용합니다. 모델의 확률분포 P(s', r | s, a)가 주어진 경우 확률분포에 따른 난수를 이용하여 쉽게 생성할 수 있습니다.


정책 평가(policy evalutation)

정책 π를 평가, 즉 π에 해당하는 가치함수를 추정하는 일은 아주 쉽습니다.

샘플의 평균으로 vπ를 추정합니다.

위 식은 Z(s)를 이용하여 상태 가치함수를 추정,

아래 식은 Z(s, a)를 이용하여 상태-행동 가치함수를 추정합니다.

동적프로그래밍 vs. 몬테카를로 방법

동적 프로그래밍에서는 r(z)를 직접 추정할 수 없어서 순환식을 사용했지만,

몬테카를로 방법은 샘플을 만들어 이를 직접 계산합니다.

또한 몬테카를로 방법에서는 어떤 상태가 자신에 속한 샘플만 가지고 자신의 값을 결정할 수 있으므로, 특정 상태만 골라 가치함수를 계산하여 시간을 줄일 수 있는 장점이 있습니다.

2) 최적 정책 탐색

모델(MDP, P(s',r|s,a))이 있는 경우: max가 되는 행동을 찾아 정책으로 변환합니다.

모델이 없는 경우: Z(s, a)를 사용하여 탐험, 탐사 조절합니다.


탐험과 탐사 조절

오프라인(offline) 방식 : 충분히 큰 훈련집합 Z를 한꺼번에 수집합니다. 지역 최적점을 구하는 것을 걱정할 필요가 없습니다.

온라인(online) 방식 : 알고리즘 수행하면서 에피소드를 발생시킵니다. 어떤 상태에 우연히 열등한 행동이 먼저 발생했다면 이후 그 행동만 선택할 가능성이 커져 지역 최적점으로 조기 수렴(premature convergence) 현상이 나타날 수 있습니다.

이에 따라 온라인 방식에서는 탐험을 강제할 기법이 추가되어야 합니다.

​ 1) 탐험형 시작(exploring starts) : 에피소드 생성 시 모든 상태-행동 쌍이 골고루 발생하도록 배려

​ 2) ϵ-soft : 주류에서 벗어난 상태-행동에 일정한 확률을 배정하여 선택될 가능성 열기


Exploring starts

여기서의 예는 상태-행동 데이터 Z(s, a)를 훈련집합으로 사용하는 버전입니다.

탐험형 시작은 상태가 가질 수 있는 값과 행동이, 가질 수 있는 값의 모든 조합이 0보다 큰 발생 확률을 갖게 하여 한 번도 시도되지 않은 조합을 배제하는 전략입니다.


ϵ−soft

가능한 모든 상태-행동 쌍이 골고루 발생하도록 배려하는 방침이 반영되었습니다.

line 12가 핵심인데, 최적행동으로 선택되지 못한 나머지 행동에 작은 확률을 배분하여 현재 최적이 아니더라도 선택될 가능성을 열어 정책 개선에 공헌을 할 수 있도록 합니다.

Monte-Carlo method 특성

1) 환경 모델이 없어도 됩니다. (샘플링)

2) bootstrap 방식이 아니므로 관심 있는 상태만으로 구성된 부분집합으로 최적 가치와 최적 정책을 추정할 수 있습니다.

3) Markov property에서 크게 벗어나는 상황에서도 성능 저하가 적습니다. 시작부터 종료까지 정보를 포함하여 에피소드를 충분히 많이 사용하여 학습하기 때문입니다.


Reference

기계학습, 오일석, 2017, 09. 강화학습


 

반응형
반응형

 

환경(environment)

에이전트(agent)

 

상태(state)

행동(action)

보상(reward)

 

탐험과 탐사 갈등(Exploration and exploitation conflict)

마르코프 결정 프로세스(MDP) Markov Decision Process

 

정책(policy)

가치(value)

 

상태 가치 함수(State value function)

벨만 수식(Bellman equation)

상태-행동 가치함수(state-action value function)

 

할인 누적 보상액(discounted accumulating reward)

MDP(Markov Decision Process) 확률분포

 

상태 -> 상태 가치 함수 -> 상태-행동 가치함수 -> 행동

상태 -> 가치 -> 정책 -> 행동


https://wordbe.tistory.com/entry/RL-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-part1-policy-value-function

[RL] 강화학습 part1 - policy, value function

[RL] 강화학습 part1 - policy, value function Reinforcement Learning 1. 강화학습 원리와 성질 state, action을 번갈아 가면서 목표를 달성합니다. 강화학습 교과서(Sutton, 2017) 참고 1) 계산 모형 상태, 행..

wordbe.tistory.com

 

강화학습의 목표는 '누적' 보상액을 최대화하는 것입니다.

에이전트가 행동을 선택하는 데 사용하는 규칙을 정책(policy)이라고 하며, 강화 학습 알고리즘은 최적의 정책을 찾아야 합니다.

 

탐험과 탐사 갈등(Exploration and exploitation conflict) :

k-손잡이 밴딧(k-am bandit) 문제

이 둘의 방식을 보완하기 위해 균형 방식을 사용합니다.

2번에서 잭팟이 나온 이후로 2번 기계를 더 자주 선택하는 대신 다른 기계에게도 계속 기회를 주며 잭팟이 또 터지면 새로운 정보를 고려하여 확률을 배분하고 수정하는 것입니다.

 

마르코프 결정 프로세스(MDP) Markov Decision Process

현재 상태에서 행동을 결정할 때 이전 이력은 중요하지 않고, 현재 상황이 중요한 조건을 마르코프 성질(Markov Property)을 지녔다고 합니다. 예를 들면 바둑이 있습니다.

강화학습은 마르코프 성질을 만족한다는 전제하에 동작합니다.

따라서 Markov property를 근사하게라도 만족하는 문제에 국한하거나, 근사하게 만족할 수 있도록 상태 표현을 설계해서 적용합니다.

결정론적(Deterministic) MDP :​ 딱 한가지 상태와 보상이 있는 경우, 나머지 보상은 전부 0

확률론적(Stochastic) MDP :​ 다음 상태와 보상이 확률적으로 결정되는 경우

 

정책과 가치함수

강화 학습의 핵심은 좋은 정책을 찾아내는 것입니다.

좋은 정책이 있으면 누적 보상을 최대로 만들 최적 행동을 매 순간 선택할 수 있습니다.

정책 공간은 너무 방대해서 최적 정책을 찾는 접근 방법은 무모하며,

최적 정책을 찾아가는 길잡이 역할을 하는 가치함수를 소개합니다.

 

1) 정책(policy)

정책이란 상태 s에서 행동 a를 취할 확률을 모든 상태와 행동에 대해 명시한 것입니다.

최적 정책 찾기

goodness(π)가 정책 π의 품질을 측정해주는 함수라고 합시다.

학습 알고리즘은 위를 만족하는 정책 π^를 알아내어야 합니다.

바둑 같은 문제 에서는 상태공간(state space)이 방대합니다.

정책 공간(policy space)은 서로 다른 정책 집합을 뜻하며, 상태 공간보다 훨씬 방대합니다.

따라서 강화학습에서는 정책공간을 일일이 직접 탐색하는 대신 '가치함수'를 이용합니다.

최적 가치함수를 찾으면 최적 정책을 찾는 것은 사소한(trivial) 문제가 됩니다.

 

2) 가치함수(Value function)

가치함수는 특정 정책의 좋은 정도(상태 s로부터 종료 상태 이르기까지 누적 보상치의 추정치)를 평가합니다.

정책 π에서 추정하며 상태 s의 함수이므로 vπ(s)로 표기합니다.

즉, 위에서 쓰인 goodness는 곧 가치함수로 바뀝니다.

P(z)는 경로 z의 발생확률, r(z)는 경로 z의 누적 보상액입니다.

 

강화학습에서 유한 경로를 가진 과업을 에피소드 과업(episode task)이라고 합니다.

반면, 무한경로를 가진 과업을 영구과업(continuing task)이라고 합니다.

 

특별히 영구과업은 무한대 보상을 막기 위해 할인 누적 보상액(discounted accumulating reward)을 사용합니다.

γ를 할인율(discounting rate)이라고 하며, 0≤γ≤1입니다.

0이면 rt+1만 남으므로 순간의 이득을 최대화하는 탐욕 방법인 근시안적 보상액이 되며,

1이면 맨 위의 식처럼 된다.

따라서 할인 누적 보상액은 현재에서 멀어질수록 보상을 할인하여 공헌도를 낮추는 전략을 사용합니다.

 

가치함수 추정을 위한 순환식

마치 점화식처럼, 다음 상태에서의 가치함수를 표현하여, 가치함수를 간단히 쓸 수 있습니다.

 

스토캐스틱 프로세스에서 가치함수 추정

지금 까지 수식은 결정론적 프로세스(deterministic process)였습니다.

결정론적 프로세스는 많은 응용을 설명하지 못하지만,

현실에서 모든 요인을 상태 변수에 반영하는 대신 주요 요인만 반영하고 나머지는 무시한 상황서의 상태, 행동, 보상을 스토캐스틱 프로세스(stochastic process)라고 합니다.

스토캐스틱한 성질은 P(s', r|s,a) 확률로 표현됩니다. 이는 MDP 확률분포입니다. 즉, 상태 s에서 행동 a를 취했을 때 상태 s'로 전환하고 보상 r을 받을 확률입니다. 스토캐스틱은 이 값이 여러개일 수 있으므로, 모두 더해줍니다.

가치함수는 MDP 확률분포가 제공하는 정보와 정책 π가 제공하는 정보를 모두 활용하여 정책을 평가합니다.

무한 경로를 가진 응용문제에는 할인율을 적용한식을 사용하면 됩니다.

위 두식은 상태 가치 함수(State value function)라고 합니다.

위 두식의 순환식을 가치함수를 위한 벨만 수식(Bellman equation)이라고 하며, 현재 상태의 가치는 다음 상태의 가치의 관계를 간결하게 표현합니다.

 

 

이와는 다르게 상태와 행동에 대한 가치함수는 상태-행동 가치함수(state-action value function)라고 하며 식은 아래와 같습니다.

 

3) 최적 가치 함수

최적 가치함수를 알아 최적 정책을 쉽게 결정할 수 있습니다.

상태 가치함수는 mean 연산을 통해 구하는 반면, 최적 가치함수는 max 연산을 통해 구합니다.

 

1) 처음에는 임의값으로 정책을 설정하고 출발합니다.

2) 정책에 따라 가치함수를 계산합니다.(정책의 품질 평가)

3) 얻은 가치함수로 더 나은 정책으로 개선합니다.

​ 정책의 평가와 개선은 MDP 확률분포를 기초로 이루어집니다.

4) 정책 개선 싸이클이 없을 때까지 반복합니다.

​ 동적 프로그래밍, 몬테카를로 방법, 시간차 학습 알고리즘은 모두 이 아이디어에 근거합니다.

 

 

반응형
반응형

 

 

 

YOLO(You Only Look Once)

https://www.youtube.com/watch?v=8DjIJc7xH5U

 

YOLOv3: An Incremetal Improvement

https://www.youtube.com/watch?v=HMgcvgRrDcA

 

End-to-End Object Detection with Transformers(DETR)

https://www.youtube.com/watch?v=lXpBcW_I54U

 


 

End to End Object Detection with Transformers:DETR | Kaggle

https://www.kaggle.com/tanulsingh077/end-to-end-object-detection-with-transformers-detr

 

Object Detection with DETR Demo - Google Colab

https://colab.research.google.com/github/facebookresearch/detr/blob/colab/notebooks/detr_demo.ipynb

 


 

 

반응형
반응형

실전(Kaggle, Dacon)으로 배우는 머신러닝

- Python, 머신러닝 초보 책이나 강좌에서 너무 많이 시간을 보내지 마세요. 바로 실전에서 배우세요.

- 좋은 강좌나 코드를 보면서 따라 해보세요.(따라 하는데도 문제가 발생합니다. 좌절하지 마세요.)

- Python, Tensorflow, Torch 등은 도구입니다. 간단한 사용법을 아신다면 많이 사용해보세요. 저절로 익혀집니다.

- 빨리 익숙해지고 배워야 할 것은 언제나 문제가 발생한다는 것과 그 문제에 좌절하지 않고 해결책을 찾아내는 방법입니다.

아무리 많이 준비를 하고 시작해도 실전에서는 문제가 발생합니다.

물론 많이 준비하시면 오류와 시행착오를 줄일 수 있겠죠.

배우는 동안은 별로 문제가 없겠죠?

실전에 어떤 문제가 발생하지도 모르면서 언제까지나 준비만 하실 건가요?

- 우린 답을 찾을 것이다.(인터스텔라)

구글 Colab 소개 및 기본 사용법 꿀팁 정리

캐글 (Kaggle) 소개 - 데이터 과학 (머신러닝) 실전 예제 / 캐글 - 타이타닉 생존자 예측하기

듣기 좋은 여성분 목소리에 깔끔하고 따라 하기 쉬운 강의 (단점은 유료 강좌로 옮기신 뒤 삭제된 동영상이 많네요..)

데이콘 Playlist


구글 Colab 소개 및 기본 사용법 꿀팁 정리

https://youtu.be/v19SzGMOd2c

 

캐글 (Kaggle) 소개 - 데이터 과학 (머신러닝) 실전 예제

https://www.youtube.com/watch?v=9GWb9yNcsvc&list=PLVNY1HnUlO25B-8Gwn1mS35SD0yMHh147

 

듣기 좋은 여성분 목소리에 깔끔하고 따라 하기 쉬운 강의(단점은 유료 강좌로 옮기신 뒤 삭제된 동영상이 많네요..)

https://www.youtube.com/c/todaycode/playlists

 

todaycode오늘코드

공공데이터 분석 데이터 시각화 캐글을 통한 머신러닝/딥러닝 튜토리얼 Pandas, Numpy, Scipy, scikit-learn, TensorFlow, Keras, Jupyter, Colaboratory

www.youtube.com

 

데이콘 Playlist

https://www.youtube.com/channel/UCo1vJRg2ANyaVHV1A98MQNA/playlists

 

데이콘

© 2020 Google LLC CEO: 선다 피차이 주소: 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA. 전화: 080-822-1450(무료)

www.youtube.com

 

반응형
반응형

추천 시스템이란?

추천 시스템이 어떻게 활용되나?

추천 시스템 새로운 응용

 


 

추천 시스템(Recommendation System) 이란

https://medium.com/@john_analyst/%EC%B6%94%EC%B2%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C-recommendation-system-%EC%9D%B4%EB%9E%80-111e315f8256

 

추천 시스템의 전반적인 내용

https://yamalab.tistory.com/68

 


추천 시스템 - 위키백과

https://ko.wikipedia.org/wiki/%EC%B6%94%EC%B2%9C_%EC%8B%9C%EC%8A%A4%ED%85%9C

 

접근법

Collaborative filtering

Collaborate filtering은 사용자 행동, 활동 또는 선호도에 대한 많은 정보를 분석하고 모으고 다른 사용자와의 비슷함에 기초를 두고 사용자들이 무엇을 좋아할지를 예측하는 것에 기초를 두고 있다. Collaborative Filtering 접근법의 한 중요한 장점은 machine analyzable content에 의존하고 있지 않다는 것이다. 그래서 정확하게 아이템 그 자체를 이해하지 않고도 영화와 같은 복잡한 아이템들을 추천할 수 있다. 많은 알고리즘은 추천 시스템에서 사용자나 아이템의 비슷함(similarity)을 측정하는 데 사용되고 있다. 예를 들어, KNN[1]과 Pearson correlation이 있다.

KNN

분류할 때, 분류 대상과 가까운 k 개를 뽑아 그중 가장 많은 비율을 차지 한 쪽으로 분류

Pearson correlation

연속형 두 변수 간의 선형 관계(관련성)를 구하기 위해 사용된다. -1에서 +1사이의 범위 값

Collaborate filtering은 과거에 동의한 사람들이 미래에도 동의하고 그들이 그들이 과거에 좋아했던 것들을 좋아할 것이라는 가정에 기초를 두고 있다.

사용자의 행동으로부터 모델을 만들 때, 특징(차이점)은 종종 data collection의 뚜렷하기도 하고 암시적이도 한 형태 사이에서 만들어진다.

Explicit data collection의 예

사용자에게 item을 평가하게 하기, 검색하게 하기, 가장 선호하는 것과 가장 덜 선호하는 것을 순위 매기게 하기 등

implicit data collection의 예

사용자가 본 item을 관찰하고 분석하기, 사용자가 구매한 item을 기록하기, 사용자의 SNS를 분석하고 비슷한 likes와 dislikes를 찾아내기

이 추천 시스템은 모아진 데이터를 다른 사람들로부터 모아진 비슷하고 안 비슷한 데이터와 비교하고, 사용자의 추천된 items 목록을 계산한다.

Linkedin, facebook과 같은 SNS는 collaboprative filtering을 친구 추천 등에 사용한다.

Content-based filtering

또 다른 잘 알려진 접근법은 content-based filtering이다. 이는 item에 대한 설명(description)과 사용자 선호에 대한 profile을 기반으로 한다.

Content-based 추천 시스템에서, 키워드는 item을 설명(describe) 하는데 사용되고 사용자의 프로필은 이 사용자가 좋아하는 류(type)의 item을 가리키게(indicate) 만들어진다. 다른 말로 하면, 이런 알고리즘들은 과거에 사용자가 좋아했던 것들(또는 현재 보고 있는 것들)과 비슷한 items을 추천하려고 한다. 구체적으로 말하면, 다양한 후보 items은 사용자에 의해 현재 평가되는 (rated) items과 비교되고 best-matching items은 추천된다. 이 접근법은 information retrieval과 information filtering에 뿌리를 두고 있다.

Information retrieval

집합적 정보로부터 원하는 내용이나 관련되는 내용을 가져오는 것

Information filtering

필요 없는 정보를 제거하는 것

Items의 특징을 끌어내기 위해, tf-idf 알고리즘이 많이 사용된다.

Tf-idf: Term frequency-inverse document frequency

여러 문서로 이루어진 문서 군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다.

TF(term-frequency 단어 빈도)가 높을수록 문서에서 중요하다고 생각될 수도 있지만 단순히 흔하게 등장하는 것일 수도 있음. 이를 DF(document frequency 문서 빈도)라고 하며, 이 값의 역수를 IDF(inverse)라고 한다. TF-IDF는 TF와 IDF를 곱한 값이다.

사용자의 profile을 만들기 위해서, 그 시스템은 대게 두 가지 정보에 집중한다:

1. 사용자의 선호의 model

2. 추천 시스템과 사용자의 상호작용 정보(history)

기본적으로 이런 방법들은 시스템 안에서 item에 특성을 부여하면서 item profile(이산적 features와 attributes)을 사용한다. 그 시스템은 item 특성의 weighted vector을 기반으로 한 사용자의 content-based profile을 만든다. Weights는 사용자에게 각각의 feature의 중요도를 나타내고 개별적으로 점수 매겨진(rated) content vectors로부터 다양한 방법으로 계산될 수 있다. 사용자가 좋아할 것 같은 확률(probability)을 계산하기 위해 다른 복잡한 방법 들해 베이지란 분류, 클러스터 분석, 결정 트리 그리고 인공 신경망 네트워크와 같은 머신러닝 기술을 사용하는 반면에, 간단한 접근법들은 그 점수 매겨진 item vector의 평균 값을 사용한다.

보통 ‘좋아요’와 ‘싫어요’와 같은 형태로 사용자로부터 직접적인 피드백은 특정한 속성(attribute)의 중요도에 대한 더 높거나 낮은 weight를 할당하는데 사용될 수 있다.

Content-based filtering의 중요한 문제점은, 한 content source에 관련된 사용자들 행동으로부터 사용자 선호도를 배울 수 있고 다른 content 종류(type)을 넘어서 그것들을 사용할 수 있을지 아닌 지이다. 그 시스템이 사용자가 이미 사용한 것과 같은 종류의 content를 추천하는 것에 한정돼 있을 때, 다른 서비스의 다른 종류의 content가 추천될 수 있을 때보다 추천 시스템의 가치는 상당히 낮다. 예를 들어, news browsing에 기반한 추천 뉴스 기사는 유용하지만, news browsing에 기반해 추천될 수 있는 다른 서비스의 음악, 비디오, 제품 토론에서 더 유용하다.

Pandora Radio는 첫 seed와 같이 사용자에 의해 제공된 노래와 비슷한 특징의 음악을 재생해 주는 content-based 추천 시스템의 한 예이다.

Hybrid recommender systems

최근 연구는 collaborate 과 content-based filtering을 섞은 hybrid 접근법이 몇몇의 상황에서 더 효과적일 수 있다고 설명한다. Hybrid 접근법은 여러 가지 방법으로 사용(implement) 될 수 있다: 한 접근법을 다른 접근법에 더하거나, 하나의 model로 만들거나. 몇몇의 연구들은 두 가지 접근법을 hybrid와 경험에 기인해서 비교하고 hybrid가 두 접근법들보다 훨씬 더 정확한 추천을 제공한다고 말한다. 이런 방법들은 cold start와 sparsity 문제와 같은 추천 시스템에서 공통적인 문제의 몇몇을 극복할 수 있다고 한다.

Cold start: 충분한 정보가 없어서 필요한 정보를 얻지 못하는 것

Netflix는 hybrid 추천 시스템의 좋은 예이다. 이 웹사이트는 사용자가 높게 평가했던(content-based) 영화와 비슷한 특성을 띄는 영화를 추천하고, 비슷한 사용자(collaborate)들의 검색 습관과 시청을 비교함으로써 추천을 한다.

다양한 기술들은 추천 시스템의 기초로 제안되어 왔다: collaborative, content-based, knowledge-based 그리고 demographic 기술. 이 기술들은, 몇 개의 평가(rating)을 한 새로운 사용자를 어떻게 하지와 같이 collaborative와 content-based의 유명한 cold-start 문제와 knowledge-based 접근법의 the knowledge engineering bottleneck(병목현상)과 같은 단점을 가지고 있다. Hybrid 추천 시스템은 그들 사이의 시너지를 얻기 위해서 여러 기술들을 합치는 것이다

Collaborative

이 시스템은 다른 사용자들과 items에 대한 profiles을 평가하는 정보만 사용하면서 추천을 한다. 이 시스템은 현재의 사용자나 items과 비슷한 평가 기록(history)와 함께 비슷한(peer) 사용자 또는 items을 배치하고, 이 근접 이웃(neighborhood)를 이요 해서 추천을 만든다. 사용자 기반과 item 기반의 가장 가까운 이웃 알고리즘은 cold-start 문제를 해결하기 위해 합쳐질 수 있고 추천 결과를 향상시킬 수 있다.

Content-based

이 시스템은 사용자가 그들에게 준 평가와 제품들과 관련된 특징이라는 두 가지 Sources로부터 추천을 만든다. Content-based 추천자는 추천을 user-specific 분류 문제처럼 다루고 제품의 특징에 기반한 사용자의 좋아요 와 싫어요의 분류자를 학습한다.

Demographic

Demographic(인구 통계학적) 추천은 사용자의 인구통계학적 정보(profile)를 기반으로 추천을 제공한다. 추천된 제품은 그 영역의 사용자들의 평가들을 합침으로써 다른 인구통계학적 영역을 위해 만들어질 수 있다.

Knowledge-based

이 추천자는 사용자의 선호와 요구(needs)에 대한 추론을 기반으로 한 제품을 제안한다. 이 지식(knowledge)는 때때로 얼마나 특정한 제품 특징이 사용자의 요구를 충족시키는지에 대한 뚜렷한 기능적(functional) 지식을 포함한다.

Hybrid 추천 시스템이란 용어는 여기서 결과를 만들어 내기 위해 다중의 추천 기술을 함께 섞는 어떠한 추천 시스템을 설명하는데 사용된다. 같은 유형의 몇몇의 다른 기술들이 함께 되지(be hybridzed) 못하는지에 대한 이유는 없다. 예를 들어, 두 개의 다른 content-based 추천은 함께 효과를 낼 수 있고 많은 프로젝트들이 이런 종류의 조합에 투자해 왔다: naïve bayes와 knn을 함께 사용한 NewsDude는 한 예다. 7개의 hybridization 기술들:

1. Weighted: 다른 추천 요소들의 점수는 수학적으로 합쳐진다.

2. Switching: 그 시스템은 추천 요소들 안에서 선택하고 고른 것을 적용한다.

3. Mixed: 다른 추천자로부터의 추천들은 추천을 주기 위해 함께 보인다.

4. Feature Combination: 다른 지식 sources로부터 나온 특징들은 함께 합쳐지고 하나의 추천 알고리즘에 쓰인다.

5. Feature Augmentation: 하나의 추천 기술은 하나의 특징이나 다음 기술의 입력의 한 부분이 될 특징들의 세트에 사용된다.

6. Cascade: 추천자는 더 낮은 우선순위들이 더 높은 것들의 점수를 매기는 것이 단절되면서 엄격한 우선순위를 가진다.

7. Meta-level: 한 추천 기술은 적용되고 다음 기술의 입력으로 사용되는 몇몇의 model을 만든다.

정확도를 넘어서

전형적으로, 추천 시스템에 대한 연구는 가장 정확한 추천 알고리즘을 찾는 것에 관심을 둔다. 하지만, 많은 중요한 요소들이 있다.

· Diversity – 사용자들은 다른 아티스트의 items와 같은 더 높은 intra-list 다양성이 있을 때 추천 시스템에 더 만족하는 경향을 보인다.

· Recommender persistence – 어떤 상황에서, 추천을 다시 보여주거나 사용자가 다시 items을 평가하게 하는 것이 더 효과적이다.

· Privacy – 추천 시스템은 대게 privacy 문제를 해결해야 한다. 왜냐하면 사용자들은 민감한 정보를 공개해야 하기 때문이다. · Collaborative filtering을 사용해 사용자의 profiles을 만드는 것은 privacy의 관점에서 문제가 될 수 있다. 많은 유럽 국가들은 data privacy에 대한 강한 문화를 가지고 있고, 사용자의 profile을 만드는 어떠한 단계를 소개하려는 모든 시도는 부정적인 사용자 반응을 초래할 수 있다. Netflix Prize competition을 위해 Netflix에서 제공한 데이터 셋에 관련해서 많은 privacy 문제가 발생했었다. 그 데이터 셋이 고객의 개인 정보를 지키기 위해 익명화됐음에도 불구하고, 2007에 텍사스 대학의 두 연구자는 Internet Movie Database에 영화 평가 데이터 셋을 매치함으로써 사용자 개개인을 식별할 수 있었다. 결과적으로, 2009년 12월, 한 익명의 Netflix 사용자는 Netflix를 고소했다. 이건 2010의 두 번째 Netflix Prize competition을 취소하는 데 부분적으로 영향을 끼쳤다. 많은 연구들은 이 영역의 진행 중인 개인 정보 문제를 행하고 있다. Ramakrishnan 은 개인화와 정보보호 사이에서 교환의 확장적인 개요에 대해 행동했고, 다른 데이터 소스(sources)와 약한 연결들(우연히 발견한 추천을 제공하는 예상치 못한 연결)의 조합이 익명화된 데이터 셋에서 사용자의 정체를 발견하는데 사용될 수 있다는 것을 찾았다.

· User demographics- Beel 은 사용자 인구학이 얼마나 사용자가 추천에 만족해하는지에 대해 영향을 줄지도 모른다는 것을 발견했다. 그들의 연구에서, 그들은 나이가 많은 사용자들이 어린 사용자들보다 추천에 더 관심을 보이는 경향이 있다는 것을 증명했다.

· Robustness – 사용자가 추천 시스템에 참여할 수 있을 때, 속이는 문제(the issue of fraud)는 반드시 다뤄진다.

· Serendipity – Serendipity(우연히 발생, 발견됨)는 얼마나 추천 시스템이 놀라운가에 대한 측정이다. 예를 들어, 마트에서 고객에게 우유를 추천하는 한 추천 시스템은 완벽하게 정확할지라도, 이건 좋은 추천 시스템이 아니다. 왜냐하면 그 고객이 살 품목이 너무 명백하기 때문이다. 하지만, 뜻밖의 serendipity는 정확도에 부정적인 영향을 줄지도 모른다.

· Trust – 추천 시스템은 사용자가 시스템을 신뢰하지 않으면 사용자에게 가치가 없다. 신뢰는 어떻게 추천을 만들어 내는지와 왜 이 item을 추천했는지를 설명함으로써 쌓을 수 있다.

· Labelling – 추천 시스템에 대한 사용자의 만족은 추천의 labeling(그룹 짓기, 이름 짓기)에 따라 영향을 받을지도 모른다. 예를 들어, 한 인용된 연구에서, sponsored로 묶인 추천에 대한 Click Through Rate(CTR)은 Organic으로 묶인 동일한 추천에 대한 CTR보다 낮다. 그 연구에서 Label이 없는 추천이 가장 좋은 성능을 보였다.


추천 시스템 만들기

https://www.slideshare.net/kwnam4u/02-41434707

 

넷플릭스 추천 시스템

https://m.post.naver.com/viewer/postView.nhn?volumeNo=28425732&memberNo=41516152&vType=VERTICAL

BLENDING

물론 넷플릭스는 단순히 하나의 알고리즘만을 사용하지 않고 많은 알고리즘을 블렌딩하여 사용합니다.

원두를 섞어서 향을 다양하게 만들듯이 여러 알고리즘을 블렌딩하면 정확도가 상승한다는 사실을

Netflix Prize 대회를 통해 알아냈기 때문입니다.

추천 시스템 정리 자료

https://m.blog.naver.com/eqfq1/221551267898

 

(머신러닝을 이용한 토익 문제 추천 시스템)

https://www.youtube.com/watch?v=v_wnkwuoHew

 


[교육 분야 추천 시스템 활용]

수학 문제 과외 선생님 콴다 프로젝트

https://youtu.be/55We_uNaJ20

 

[콴다 프로젝트 추가자료]

https://brunch.co.kr/@mathpresso/9


[인공지능 교육 플랫폼 산타인사이드]

https://santainside.riiid.app/ko/main

 

산타인사이드

https://www.riiid.co/ko/tech

 


 

반응형
반응형

배울 점이 많은 강의가 있어서 추천드리며, 시리즈로 글을 쓰고자 합니다.

비정형 데이터 분석 11/11 GPT

https://youtu.be/ZgIH1RoFZaA

 


[GPT 추가 자료]

https://www.quantumdl.com/entry/12%EC%A3%BC%EC%B0%A81-Improving-Language-Understanding-by-Generative-Pre-Training

요약하자면 Unsupervised Learning을 통한 Pretrained-LM의 구축과

Supervised Learning을 통한 Task prediction구조를 통해

여러 종류의 NLP downstream task에 대해 'Generative'한 방법을 통한 text representation을 학습 모델을 제안한다.

Model Architecture

Unsupervised Learning

이 단계에서는 Unsupervised Learning을 통한 Language Model을 구성한다. 여기서는 Transformer block을 사용해서 Language Model을 구성하는 것으로 나오는데, 토큰화 된 문장을 Token Embedding matrix로 구성하는 과정에서 Transformer의 decoder부분만 사용하게 된다. 대신 기존의 Transformer가 Encoder/Decoder 6쌍으로 구성되었다고 하면 여기서는 Decoder만 12개(Multi-head)로 구성한다는 점을 특징으로 잡을 수 있다.

간단히 요약하자면, 일단 문장단위로 Encoding(BPE)하고 Transformer Decoder를 거쳐 Context-level Embedding을 하는 과정을 통해 Unsupervised Learning을 사용한 LM을 학습한다.

 

Supervised Learning

Supervised Learning부분은 크게 두 부분으로 나눠볼 수 있다. Text/Position Embedding부터 12개의 Decoder가 있는 부분인 Pretrained Model, 그리고 Task Prediction/Classification 부분까지 두 부분으로 나눠보자.

 

Pretrained Model에서는 Global한 NLP feature를 학습하도록 구성되어있다. 여기서 각 Embed는 Unsupervised에서도 언급했듯이 BytePair Encoding으로 구성되어있다. 이렇게 학습된 representation은 Context에 대해 소실되는 정보가 거의 없이 학습된다고 가정하고, 이를 Decoder를 통해 Task에 맞는 정답 Feature를 추출하고자 한다.

 

두번째로 Task prediction/classification부분이다. 여기서 기억해야 할 점은, Task Classifier 또는 Task Prediction과 같이 하나의 예상만 출력하지 않는다는 점이다. 논문에서도 이러한 구조를 Auxiliary Task라는 용어로 표현하고 있다. 쉽게 풀어 말하자면, 하나의 Task objective에 대해서만 학습하는 것 보다 Auxiliary objective(sub-task)를 같이 학습하는 것이 주요 task에 대한 정확도를 높여주는 것이다.

How to use (in different tasks)

GPT-1의 전체적인 구조

Input transformations for fine-tuning on different tasks

사실 GPT가 pretrained model을 제시한다고 해서 모든 task에 대해 사용법이 전부 동일한 것은 아니다. 위 그림에서 보이듯이 Classification은 True/False 또는 category를 예측하기 위해 하나의 구조만 가지고 있지만, Similarity나 Multiple Choice의 경우 Context/Text를 비교하기 위해 각 부분마다 모델을 적용시킨 후, 이를 취합하는 구조를 보인다. 이와 같이 GPT 모델을 사용할 때는, 하고자 하는 Task에 맞춰 모델을 알맞게 구성해 줄 필요가 있다.

 

Result & Conclusion

Result

왼쪽 그래프는 Transformer Decoder의 갯수에 따른 정확도(accuracy)의 변화를 나타낸다. RACE(https://arxiv.org/abs/1704.04683)와 MultiNLI(https://arxiv.org/abs/1704.05426)는 각각 데이터셋이며, RACE의 경우 Question Answering(QA)를 목적으로 하며, MultiNLI의 경우 textual entailment 또는 NLI(Natural Language Inference)를 목적으로 한다. 결과에서도 보이듯, 두 데이터셋 모두 Layer의 갯수가 많아질수록 정확도가 비약적으로 상승하는 것을 볼 수 있다. (다만 12개 정도에서 정확도가 Converge하는 듯하다)

 

오른쪽 그래프는 점선(Transformer대신 LSTM 사용)과 실선(Transformer사용)을 통해 Transformer를 사용할때와 사용하지 않을 때의 차이를 보여주고 있다. 각 색상은 특정 Task를 나타낸다. 모든 Task에 대해 증가율의 차이는 있지만 모두 상대적으로 performance가 증가한 것을 볼 수 있다.

 

위 표에서는 Auxiliary Objective(sub-task)가 있을때와 없을때, 그리고 pre-training이 없을때의 성능을 보여준다.

 

위 결과중 왼쪽의 4가지 Task와 오른쪽 4가지 Task의 결과가 다른데, 이는 데이터셋의 크기가 다르기 때문이다. 즉, 데이터셋이 클수록(QQP, MNLI, QNLI, RTE) auxiliary task가 성능 개선에 영향이 더 크며, 작을수록(CoLA, SST2, MRPC, STSB) auxiliary task없이 학습하는 것이 오히려 성능에 도움이 되는 것을 확인할 수 있다.

 

Transformer의 사용 여부에 대해서도 성능을 측정하고 있는데, 모든 경우에 대해 LSTM 대신 Transformer를 사용하는 것이 성능 개선에 도움이 되는 것을 확인할 수 있다.

 

또한 pre-training의 유무에 대해서도 성능을 측정하는데, full모델에 비해 pre-training이 없을 경우 전체적으로 성능이 매우 감소하는 것을 확인할 수 있다. (여기서 pre-training을 사용하지 않는다는 것은 unsupervised pre-training에 사용되는 구조를 모두 넘겨버리는 것을 말한다. 즉, supervised부분만 사용하는 것)

 

Conclusion

사실 GPT-1은 BERT에 비해 그리 주목받지 못한다. 이유가 몇가지 있는데, 우선 BERT가 범용적으로 쓰이기 더 용이하다는 점, 그리고 성능면에서도 BERT에 비해 좋다는 소식이 들리지 않기 때문도 있다(SQuAD 1.1이나 2.0을 살펴보면 GPT에 대한 성능 결과가 아무것도 없다).

 

하지만 그럼에도 불구하고 이 논문을 살펴봐야 할 이유는 있는데, Decoder로서 Transformer를 Pre-trained Language Model생성에 어떻게 사용하고 있는가에 대한 좋은 예시가 바로 GPT이기 때문이다. 다른 많은 부분은 BERT와 비슷하게 가는 부분이 많아도 이 점 하나는 알아갈만한 포인트로 보인다. (그리고 사실 BERT와 GPT-1은 많은 부분이 흡사하다)


https://youtu.be/o_Wl29aW5XM

 

https://youtu.be/p24JUVgDkQk

 


[이은아님 강의 모음]

https://www.youtube.com/playlist?list=PLGAnpwASolI0vViZItiP90nWI_s9m91Av

 


 

반응형
반응형

배울 점이 많은 강의가 있어서 추천드리며, 시리즈로 글을 쓰고자 합니다.

비정형 데이터 분석 10/11 #Transformer

https://youtu.be/uiEa6aKq_2I

 

키워드 및 핵심 내용

Transformer

Seq2Seq(Encoder + Decoder) 구조이지만 Attention을 활용한 병렬 처리 가능

Incoder 구조

Input Embedding -> Positional Encoding -> Multi-Head Attention(+정규화) -> Feed Forward(+정규화)

Positional Encoding : sin, cos 함수 이용

Attention(q, k, v) -> Multi-Head Attention (Wq, Wk, Wv) -> Wz


[Transformer 추가 자료]

https://youtu.be/mxGCEWOxfe8

 


[Transformer 추가 자료]

https://nlpinkorean.github.io/illustrated-transformer/

전체구조

Encoder

self-attention

self-attention의 계산 과정

multi-headed self-attention

Encoder layer-normalization 과정

Decoder

Decoder 최종 출력 과정


[자연어처리 추가 자료]

https://youtu.be/qlxrXX5uBoU

 


[이은아님 강의 모음]

https://www.youtube.com/playlist?list=PLGAnpwASolI0vViZItiP90nWI_s9m91Av

 


 

반응형
반응형

투자관련 머신러닝 추천 영상입니다.

https://youtu.be/dB8cpsnZ5FA

 

금융영역 딥러닝 문제점

문제점 1. 시계열 Feature 자체의 노이즈

다음 주가 = 현재 주가 + 정보 + 노이즈

문제는 노이즈 > 정보

lstm(RNN)을 이용한 주가 예측 -> 비슷하지만 오른쪽으로 Lagging

문제점 2. 시계열 Feature 종류 대비 짧은 시계열 길이 (부족한 데이터)

예) 자산배분

- 자산군 데이터 : 금, 채권, 주식, 리츠, 원자재

- 매크로 데이터 : 금리, 인플레이션, 장단기금리차

- High Level Feature : 자산군 모멘텀 효과, 자산군 평균회귀 효과, 확장적 통화정책,

긴축적 통화정책 분류, 단기부채사이클, 장기부채사이클

- 주로 Monthly Frequency 데이터 -> 40년 데이터 = 겨우 480개의 Sequence 길이

- 고려할 수 있는 요소는 수십 ~ 수백개인데, 고려할 수 있는 데이터 길이는 너무 짧음 -> 차원의 저주

- 고려할 요소가 늘어나면 그것을 사용할지 판단하기 위해서는 필요한 데이터가 기하급수적으로 늘어남

문제점 3. 문제점 1과 문제점 2로 인한 Overfitting

해결 방안

문제점 1. 시계열 Feature 자체의 노이즈

- Time-series denoising

1. Moving Average(MA, EMA, ...) -> 오른쪽으로 Lagging

2. Bilateral Filter(어느 정도 denoising 할지?)

3. CNN Stacked AutoEncoder 기반 Denoising Module (자동)

문제점 2. 시계열 Feature 종류 대비 짧은 시계열 길이

- GAN 기반 데이터 생성

- (간접적으로라도) 경제적 함의점을 내포하는 모델 설계

- 데이터 -> 직관 -> 모델 -> 포트폴리오 생성

문제점 3. 문제점 1과 문제점 2로 인한 Overfitting

1. Asynchronous Multi Network Learning

- Overfitting이라고 해서 단순하게 L1, L2 Norm을 적용하면 안됨

- 여러개 네트워크 학습 -> validation 경쟁 -> 네트워크 탈락, 추가 -> validation -> test -> 앙상블

- 여러개 네트워크 학습 -> 경쟁 -> overfitting 정도에 따라 예측들이 다른 구간 -> 잘모르겠다 -> 보수적 투자

2. Bayesian Inference - Uncertainty Quantification

a. Monte Carlo Dropout -> Tau, Dropout rate, Activation에 따른 영향도 높다는 단점

b. Monte Carlo Batch Normaliztion

c. Deep Learning Regression + Gaussian Process Regression

선지도학습 후 GPR 학습 -> 가장 심플하고 적용하기 간단

마지막 Fully Connected 하기 전의 노드들이

선형 독립적으로 Representation Learning이 잘 됐다는 가정 하에 효과적으로 GPR 학습 가능


금융 머신러닝 전문가들은 '머신러닝으로 투자하기'를 과연 긍정적으로 보는가?

https://youtu.be/6xbYSET6AHU

 

반응형

+ Recent posts