자율주행/Deep Q Network 4

DQN Upgrade

Frame Skipping and Stacking 기존의 프레임 한개로는 속도를 측정하기 힘들기 때문에 여러개 스택킹 해서 분석하게한다. 굳이 RGB로 볼필요가 없는 경우는 grayscale로 바꾸어서 본다. 하지만 프레임을 연속적으로 붙이면 유의미한 차이를 확인하기힘들다. 그래서 몇 프레임을 건너 뛰면서 frame stacking을 수행하면 유의미한 차이를 볼 수 있는데 이것을 = Frame Skipping 이렇게 하지 않으면 매번 4번 프레임동한 같은 action을 취하게 되는데 이런 방식으로 진행하면 안되는 게임들도 존재하기에 위와 같은 방법을 써서 매 step 마다 다른 action 을 선택할 수 있게 해준다. Experience Replay Target Network #!/usr/bin/env ..

Reinforcement Learning

각 state에서 어떤 액션을 취하는게 좋은것인지를 각각의 Q 값을 통해 알수있다. 학습이 잘되어있는 경우에는 하지만 Q table은 처음부터 정답을 알려주지 않는다. 학습을 계속 반복적으로 수행해가면서 쓸만하게 된다. 하지만 문제가 있다 예시로 아래와 같다. 학습초반임으로 optimal 한 보상을 원하지않고 0.1 보상만으로 만족하면서 Qtable을 계속 update하게 되는 문제가 생긴다. 일정확률(Epsilon)을 선택하여서 agent가 action 을 랜덤하게 고를수 있도록한다. 게임 후반에 갈수록 Epslion 확률 값을 낮추어주는 방향으로 간다. 유명한 taxi simulation 코드이다. #!/usr/bin/env python import numpy as np import random im..

ANN ,CNN -> ㅡMNIST 분석

CNN 을 먼저 해주고 그것을 일렬로 벡터로 늘려서 ANN을 해주고 비교한다. MNIST dataset을 간단한 cnn + ann 으로 훈련시키고 평가해보자 #!/usr/bin/env python import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torchvision import datasets, transforms import numpy as np device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") batch_size = 128 num_epochs = 10 learning_rate = 0.00025 ..