python source code
-
A3C 내용 및 코드 정리 (1)python source code 2023. 10. 3. 14:29
아래의 논문에서 소개된 알고리즘은 DQN과 같이 메모리에 많은 샘플을 쌓아서 샘플 사이의 연관성을 깨는 것이 아닌, 에이전트를 여러개 사용하는 것이다. MNIH, Volodymyr, et al. Asynchronous methods for deep reinforcement learning. In: International conference on machine learning. PMLR, 2016. p. 1928-1937. 샘플을 모으는 각 에이전트는 액터러너 actor-learner라고도 부른다. 다른 환경에서 학습하며 샘플을 모으고 글로벌신경망 업데이트 후 자신의 글로벌 신경망으로 업데이트 하는 방식 수행 / 비동기적으로 발생 A3C를 통해 에이전트가 학습하는 과정 1. 글로벌 신경망 생성, 여러개의..
-
double DQN 에 대한 정보 및 source code (python) 분석 (2)python source code 2023. 9. 20. 22:17
참고 2에 대한 예제 분석 class DeepQNetworkAgent { /// The Q-network uses to estimate the action values. var qNet: DeepQNetwork ########### action 값 추정을 위한 네트워크 /// The copy of the Q-network updated less frequently to stabilize the /// training process. var targetQNet: DeepQNetwork ########### /// The optimizer used to train the Q-network. let optimizer: Adam let replayBuffer: ReplayBuffer /// The discoun..
-
double DQN 에 대한 정보 및 source code (python) 분석python source code 2023. 9. 20. 21:56
벌써 8년이 된 이론이지만 구글 딥마인드에서 논문을 게재한 이후 다양한 분야에 활용되고 있다.. 아직까지도.. - 아주 유명한 그래프이다. overestimation 발생에 대한 이미지로 본인도 이와 같은 패턴의 학습 score가 나와서 많은 고민끝에 여러 방법들을 찾기 시작했다... 알고리즘은 위와 같다. 1. QA, QB를 초기화 2. 각각 QA,QB에 대한 행동을 추출, (보상과 next state 관찰) 3. 랜덤으로 QA, QB 중 하나 선택 4. QA를 업데이트 할 경우, : QA가 최댓값이 되는 (next state에 대한) 행동 정의, QA업데이트 : {QA(s,a) + a(s,a){r+ gamma*QB(s',a*)-QA(s,a)} 반대의 경우도 동일하게 적용. 그리고 업데이트 버전의 알고..
-
강화학습 DQN 파라미터 최적화 관련python source code 2023. 8. 22. 22:55
2016년 3월 이세돌-알파고 대국 이후 벌써 7년이란 시간이 흘렀다. 그만큼 강화학습 알고리즘에 대한 연구가 많이 진행되었고 심층 강화학습(심층신경망)을 활용한 여러 어플리케이션들도 개발이 많이 되었다. 필자도 DQN(Deep reinforcement learning)을 사용한 여러 연구사례를 도출하고자 다양한 시도를 하고 있지만 아직 시행착오 단계일 뿐... 더군다나 reward 를 주는 방식, learning rate, gamma 값 등에 따라 다양한 패턴을 보이는 경우가 많다. 위 그림은 보상에 작은 변화 하나를 줬을 뿐인데 이렇게 큰 차이가 나게 된 것이다... 정리하자면 아래와 같다. 1. step 수가 정해진 에피소드여도 에피소드 종료 시점까지 step수를 더 늘리고 늘어난 만큼 reward..
-
Keras 케라스 batch predict 예제 및 메소드 사용python source code 2023. 8. 5. 16:16
아래 코드를 사용하여 이미 학습된 모델에 대해 예측값을 확인하고자 했었다. self.model.predict(inputs, batch_size = 64) 가장 아래의 참고 링크에서 몇 가지 메소드들을 발견하여 하나씩 테스트를 해봤지만 잘 되지 않았다... predict predict(x, batch_size=None, verbose=0, steps=None, callbacks=None) 인풋 샘플에 대한 아웃풋 예측을 생성합니다. 계산은 배치 단위로 실행됩니다. 이수 x: Numpy 배열 (혹은 모델이 다중 인풋을 갖는 경우 Numpy 배열의 리스트) 형태의 인풋 데이터. batch_size: 정수. 따로 정하지 않으면 디폴트 값인 32가 됩니다. verbose: 다변 모드, 0 혹은 1. steps: ..
-
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was inhomogeneous part. 에러 파이썬 문제 해결python source code 2023. 8. 4. 22:32
파이썬에서 다양한 소스코드들을 활용하여 AI 관련 알고리즘들을 돌려보실 수 있을겁니다. 하지만 종종 오픈소스, 구글링에서 돌아다니는 소스코드 만으로는 원하는 로직을 구현하기가 어렵습니다. 커스터마이징을 적절히 해야 하는데 저 같은 경우에는 deque 메소드를 사용하여 메모리 관리 리스트를 만들던 중 균일하지 않은 3D array data를 활용하다보니 batch 메모리를 별도로 사용할 때 에러가 발생했습니다.. ㅠ batch = np.random.choice(self.memory, self.batch_size, replace=False) 에러 내용은 아래와 같고요... ValueError: setting an array element with a sequence. The requested array ha..
-
python numpy multi dimension random choice 에러 해결python source code 2023. 8. 4. 13:26
파이썬을 통해 아래 코드를 실행하던 중 랜덤하게 임의의 메모리로부터 특정 배치 사이즈의 데이터를 선별하는데에 문제가 발생했다... batch = np.random.choice(self.memory, self.batch_size, replace=False) 아래의 내용을 확인해보면 1d에 대해서만 랜덤 샘플링이 가능하다는 것을 확인할 수 있다. ㅠ ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was (1000, 5) + inhomogeneous part. 아래의 방식과 같이 한 단계 더 거쳐서 해결하는 ..
-
np zeros 타입에러 'cannot interpret '2' as a data type'python source code 2023. 7. 30. 17:36
변수 사용 중 아래와 같은 에러가 발생하여 몇 가지 이유 및 방법 등을 찾아보았다. np.zeros typeerror: cannot interpret '2' as a data type The signature of the numpy.zeros method is the following. numpy.zeros(shape, dtype=float, order='C', *, like=None) The first argument (shape) can be an integer or a tuple of integers. 위의 내용과 같이 shape에 대해 int 또는 튜플 형태의 정의를 해주어야 한다. import numpy as np arr = np.zeros((2, 3)) # 👇️ [[0. 0. 0.] # [0...