728x90 Drawing (AI)113 강화학습 - (BellmanOptEq) Optimal Policy 우선 매 상태마다 적합한 policy들이 존재할 텐데 이때 아래와 같이 optimal policy가 존재한다는 것을 전재로 한다. 1. 어떤 마르코프 결정 과정에 대해서도, 모든 다른 정책보다 좋거나 같은 최적 정책 π*이 존재한다. 2. 모든 최적 정책은 최적 가치 함수를 달성한다. 3. 모든 최적 정책은 최적 행동-가치 함수를 달성한다. 최적 정책 π*는 주어진 상태 s에서 가장 높은 가치를 가지는 행동 a를 선택한다. 이를 수학적으로 표현하면 아래와 같다. 최적 상태-가치 함수 v는 주어진 상태 s에서 가능한 모든 행동 a에 대해 최적 행동-가치 함수 q의 최대값을 취한다. 수학적으로는 아래와 같이 표현할 수 있다. Bellman Optimality Equation 특정한.. 2024. 1. 31. 딥러닝 직접 구현하기 - (통계 기반 기법 개선) 상호정보량 단어의 동시발생 행렬에는 개선할 점들이 있다. 왜냐하면 발생횟수라는 것은 그리 좋은 특징이 아니기 때문이다. 예를들어 "the"와 "car"의 동시발생을 생각해보면 두 단어의 동시발생 횟수는 아주 많을 것이다. 이때 "car"와 "drive"는 관련이 깊은데도 불구하고, 단순히 등장 횟수만을 본다면 "car"는 "drive"보다 "the"와의 관련성이 훨씬 강하다고 나올 것이다. "the"가 고빈도 단어라서 "car"와 강한 관련성을 갖는다고 평가되기 때문이다. 이 문제를 해결하기 위해 점별 상호정보량(PMI; Pointwise Mutual Information)이라는 척도를 사용한다. 이를 이용하여 단어 수 10,000개의 말뭉치가 있다고 할 때 "the", "car", "drice"가 각각.. 2024. 1. 29. 딥러닝 직접 구현하기 - (자연어처리) 자연어처리 자연어처리는 흔히 NLP라고 불리는 Natural Language Processing을 의미한다. 이는 말그대로 인간이 사용하는 말을 컴퓨터가 이해하고 처리하기 위한 기술이다. 컴퓨터가 이해할 수 있는 프로그래밍 언어가 아닌 인간들이 사용하는 영어, 한글과 같은 자연어를 이해할 수 있도록 하는 것이다. 이때 말은 '문자'로 구성되어있고 말의 의미는 '단어'로 인해 만들어진다. 따라서 컴퓨터가 '단어의 의미만 이해하면 인간의 '말'을 이해할 수 있을 것이다. 따라서 이런 '단어의 의미'를 컴퓨터에게 파악시키는 것은 자연어처리에서 굉장히 핵심적인 부분이다. Thesaurus Thesaurus는 단어의 의미를 정의를 통해 설명하여 이해하는 방식과는 다르게 동의어나 유의어를 통해 단어의 의미를 알아가.. 2024. 1. 28. 강화학습 - (Markov Decision Process) Markov Decision Process MRP까지는 어느쪽의 보상이 더 좋은지에 관한 얘기였다면 MDP는 강화학습의 본목적인 action을 선택하는 과정이 포함된다. 따라서 튜플에 action의 A가 추가되어 로 나타낸다. Reward function은 R_s = E[R_t+1|S_t=s, A_t=a]가 된다. 보상이 action에도 종속되는 것을 볼 수 있다. 또한 각 상태에서 어떤 decision을 가져갈지 정하는 규칙을 policy라고 한다. 따라서 MDP는 각 상태에서 최적의 선택 즉 optimal policy를 찾는 것이 최종적인 목적이다. Recycling Robot example 수집한 쓰레기 수에 따라 reward를 주고 움직여서 쓰레기를 찾거나 멈춰서 쓰레기를 누군가가 버려주기를 기다.. 2024. 1. 25. Udemy - 딥러닝의 모든 것(AutoEncoder구축하기) 데이터 이번에도 볼츠만 머신 구축할 때 이용했던 Movie Lens 데이터를 이용해볼 것이다. 이전에도 봤지만 아래와 같은 형식으로 구성된 데이터이다. Autoencoder 구축 import numpy as np import pandas as pd import torch import torch.nn as nn import torch.nn.parallel import torch.optim as optim import torch.utils.data from torch.autograd import Variable training_set = pd.read_csv('ml-100k/u1.base', delimiter = '\t') training_set = np.array(training_set, dtype = '.. 2024. 1. 24. 딥러닝 직접 구현하기 - (CNN) 구조 CNN(Convolutional Neural Network)은 이전에도 블로그에서 자주 다뤘으니 기본 개념은 간단히 다루고 넘어가고 구현하는 부분에 집중하도록 한다. CNN은 컴퓨터 비전과 이미지 인식에서 널리 사용되는 심층 학습 모델이다. Fully Connected Layer와는 다르게 전체 데이터를 섞어버리지 않고 각 부분의 특징을 보존하기 때문에 CNN은 이미지에서 패턴을 인식하고 이를 분류하는 데 탁월한 능력을 지닌다. CNN에서 쓰이는 개념들을 간단히 살펴보자. 커널 (Kernel) / 필터 (Filter) 커널 또는 필터로 불리는 행렬은 이미지의 특정 특성을 추출하는 데 사용되는 작은 행렬이다. 커널은 이미지의 윈도우와 요소별로 곱해지며, 그 결과를 합하여 피처맵의 한 요소를 형성한다... 2024. 1. 19. 강화학습 - (Markov Reward Process) Markov Property 마르코프 속성(Markov Property)은 확률론과 통계학, 특히 확률 과정에서 중요한 개념이다. 이는 강화학습의 핵심 문제인 Markov Decision Process를 정의하고 해결하는 것에도 핵심적으로 쓰인다. 이 속성은 미래의 상태가 오직 현재의 상태에만 의존하며 과거의 상태에는 의존하지 않는다는 것을 나타낸다. 해당 특성을 수식화하면 아래와 같이 나타낼 수 있다. 마르코프 속성은 복잡한 확률 과정을 단순화한다. 과거의 모든 정보를 고려할 필요 없이, 현재 상태만을 이용하여 미래를 예측할 수 있다. 또한 마르코프 속성은 계산상의 복잡성을 줄여준다. 과거의 모든 상태를 추적하고 고려하는 대신, 현재 상태만을 고려함으로써 더 효율적인 계산이 가능하다. 마르코프 속성은 .. 2024. 1. 16. 딥러닝 직접 구현하기 - (Training process) Overfitting 오버피팅은 주로 매개변수가 많아서 표현력이 높은 모델이고 훈련 데이터가 적을 때 발생한다. 데이터에 맞춰서 학습하는 능력이 뛰어난데 맞춰갈 데이터의 수가 적으니 그에 과적합해진다고 생각하면 당연한 조건이다. 이러한 조건에 충족한 상황을 만들어서 오버피팅을 발생시키고 결과를 살펴보자. 60,000개인 MNIST데이터셋중 300개만 사용하고 7층 네트워크를 사용하여 복잡도를 높혀보자. 각 층은 100개의 뉴런, ReLU 활성화 함수를 사용하였다. from dataset.mnist import load_mnist (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True) # 오버피팅을 재현하기 위해 학습 데이터 수를 줄임 x_tr.. 2024. 1. 15. 강화학습 - (UCB) Upper Confidence Bound UCB는 random하게 선정하는 것의 불확실성을 해소하기 위해 이용되는 방법이다. 우연히 나쁜 표본이 선택되어 potential이 있는 slot machine을 배제하고 다른 slot machine을 선택하게 되는 일을 방지하기 위한 알고리즘이다. 자세히 알아보자면 아래와 같다. UCB 알고리즘은 보상 값의 잠재적 가능성을 상한 신뢰 경계 U_t(a)로 측정하여, 실제 값 q_*(a)가 (Q_t(a) + U_t(a)) 이하일 확률이 높게 된다. 여기서 상한 경계 U_t(a)는 (N_t(a)), 즉 시간 t 이전에 액션 a가 선택된 횟수에 대한 함수이다. 액션 a가 더 자주 선택될수록 U_t(a) 는 더 작아진다. UCB 알고리즘에서는 항상 상한 신뢰 경계를 최대.. 2024. 1. 13. 이전 1 2 3 4 5 6 7 ··· 13 다음 728x90