분류 전체보기 89

Double-Dueling-dqn 분석

Double-Dueling-dqn 분석 핵심 3가지 Conv Network 사람이 화면을 보고 플레이 하는것처럼, 합성곱 신경망을 통해 학습 Experience Replay 과거 경험했던 히스토리를 기반으로, 일정 주기마다 학습한다. Correlation 현상 완화 Sperate network Q Target을 따로 두어, 일정 주기마다 Main-Q Network를 업데이트한다. Atari이후 DQN 을 개선하기 위한여러가지 방법들이 나왔으며, 그중 하나는 Dueling이다. Dueling Q-Table의 Q(가치)값을 아래처럼 2개로 나눌 수 있다. 어떤 행동을 하지 않아도, 그 상태에 자체의 가치 해당 State에서 행동을 함으로 서 얻는 가치 self.streamAC,self.streamVC = t..

프로그래밍/AI 2019.05.05

Ubuntu Tensorflow-gpu 설치

Tensorflow-gpu 설치 NVIDIA Cuda, Tensorflow의 버전에 따라 호환 이슈가 생길 수 있습니다. 그러므로, tensorflow-gpu 설치 가이드에 명시한 버전들로 Cuda를 설치하는것을 권장합니다. 세팅한 장비는 XPS 랩탑에서 설치했으며 OS, GPU는 다음과 같습니다. OS : ubnutu 18.04 GPU : NVIDIA 960M Install CUDA with apt Ubuntu를 사용하시는 분들이라면, tensorflow gpu install guide에서 "Install CUDA with apt" 섹션을 참고해서 설치하시는게 가장 빠릅니다. 가이드를 따라가면서, 문제가 생기는 부분들은 구글링을 통해서 고치실수 있을겁니다. 트러블 슈팅 링크 아래 링크는 설치하면서 li..

프로그래밍/AI 2019.05.05

Vanilla-Policy 코드 분석

Vanilla-Policy-Cart-Pole 플레이한 history 리스트를 가지고 역순으로 순회하면서 discount factor를 적용하는 부분이 재미있었습니다. def discount_rewards(r): """ take 1D float array of rewards and compute discounted reward """ discounted_r = np.zeros_like(r) running_add = 0 for t in reversed(xrange(0, r.size)): running_add = running_add * gamma + r[t] discounted_r[t] = running_add return discounted_r python에 익숙하지 않아, 이 부분도 갸우뚱 했는데요. s..

프로그래밍/AI 2019.04.29

Q-Network 코드 분석

Q-Network 분석 Loss를 targetQ와 PredictQ의 차이값으로 설정하여 Weight 값들이 TargetQ에 형태로 접근하는 것이 인상적이었습니다. # loss = (targetQ - PredictQ)^2 loss = tf.reduce_sum(tf.square(nextQ - Qout)) np.identity(16)[s:s+1] 아래 코드에서 feed_dict에 input state를 넣어주는 코드가 어떤 의미인지, 왜 이렇게 작성했는지 이해하지 못했었습니다. # Feed Forward inputs1 = tf.placeholder(shape=[1, 16], dtype=tf.float32) W = tf.Variable(tf.random_uniform([16,4], 0, 0.01)) Qout =..

프로그래밍/AI 2019.04.28

Open AI Gym 시작하기

Open AI Gym 시작하기 Gym은 강화학습 알고리즘을 개발, 비교하기 위한 개발 도구이며, Tensorflow나 Theano 같은 수치 계산 라이브러리와도 호환됩니다. 설치 pip 명령어를 통해 gym을 설치합니다.(python 3.5+) pip install gym 환경들 아래는 최소 예제 코드입니다. 이 코드는 CarPole-v0 환경을 1000번의 스텝을 반복하며 렌더링합니다. 아래 코드를 실행하게 되면 고전적인 cart-pole problem 윈도우 창을 볼 수 있습니다. import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample()) ..

프로그래밍/AI 2019.04.13

Quartiles

Quartile의 뜻 Quad(4)의 접두사를 보면 알수 있듯어떤 모집단을 균등하게 4분할하는 3개의 지점을 의미한다. Quartiles 구하기 이제 예를 이용해서 Quartiles를 구해보도록 하자. 한 반에 12명이 있을 때 각자 점수를 다음과 같이 받았다고 가정해보자. 98,90,70,18,92,92,55,83,45,95,88,76 98, 90, 70, 18, 92, 92, 55, 83, 45, 95, 88, 76 98,90,70,18,92,92,55,83,45,95,88,76 이제 이 데이터 셋을 정렬하고 18,45,55,70,76,83,88,90,92,92,95,98 18, 45, 55, 70, 76, 83, 88, 90, 92, 92, 95, 98 18,45,55,70,76,83,88,90,9..

Math/Statistics 2018.06.13