블로그
Tensorflow 에서 제공하는 flags 객체를 사용하면 고정값으로 되어 있는 기본적인 데이터를 편리하게 사용할 수 있습니다. flags 객체는 int, float, boolean, string 의 값을 저장하고, 가져다 사용하기 쉽게 해주는 기능을 합니다. 사용방법도 간단하고 텐서플로 튜토리얼에서도 사용되니 보시면 좋을 것 같습니다. <TensorFlow Mechanics 101 예제에서> flags = tf.app.flagsFLAGS = flags.FLAGSflags.DEFINE_float(‘learning_rate’, 0.01, ‘Initial learning rate.’)flags.DEFINE_integer(‘max_steps’, 2000, ‘Number of […]
Tensorflow의 데이터를 입력 받는 방법중에서 상수와 변수를 생성하는 방법을 앞에서 보았는데요 이번에는 데이터의 형태만 지정하고 실제 데이터는 실행 단계에서 입력받도록 하는 방법에 대해서 알아보겠습니다. 기본 제공되는 placeholder()를 이용해서 다양한 데이터를 입력 받아 처리할 수 있도록 할 수 있습니다. 실수형의 x, y을 선언하고 실제 실행이 되는 시점의 sess.run() 에서 feed_dict 속성으로 데이터를 feed 하여 사용하게 됩니다. […]
Tensorflow에서 Matrix 연산에 대해서 알아보겠습니다. 많은 데이터를 처리하기 위해서는 대부분의 경우에 데이터가 다차원의 Matrix로 구성이 됩니다. 이를 한번에 빠르게 연산을 하기 위해서는 Matrix 연산을 잘 다루어야 합니다. Tensorflow에서 기본적으로 제공해주는 연산 함수들에 대해서 알아보겠습니다. 1. 덧셈 : tf.add() import tensorflow as tf x = tf.Variable([[2, 2, 2],[2, 2, 2]]) y = tf.Variable([[3, 3, 3],[3, 3, […]
안녕하세요 이번에는 변수에 대해서 알아보도록 하겠습니다. 1.변수 생성 Tensorflow에서는 Variable() 이라는 생성자를 사용해서 변수를 생성할 수 있습니다. 이 변수는 생성되는 순간에 데이터의 타입과 크기가 결정이 됩니다. 아래와 같이 2.0의 실수 값을 생성하고 그 즉시 print를 해보면 object의 형태로만 보여지고 값이 출력이 되지 않습니다. 또, 이 변수들은 상수와는 다르게 특별히 초기화를 해주어야 합니다. tf.initialize_all_variables() 라는 op을 이용해서 위에 […]
Tensorflow 튜토리얼에 간단한? 예제가 하나더 있는데 NN을 이용하여 학습하는 예제입니다. 새로운 함수가 몇개 나오는데 정확히 뭘 해주는 함수인지가 애매해서 매우~ 난해합니다. Tensorflow 튜토리얼 문서 바로가기 test2.py import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data mnistData = input_data.read_data_sets(‘MNIST_data’, one_hot=True) sess = tf.InteractiveSession() x = tf.placeholder(tf.float32, shape=[None, 784])y_ = tf.placeholder(tf.float32, shape=[None, 10]) def weight_variable(shape):initial = tf.truncated_normal(shape, stddev=0.1)return tf.Variable(initial) def bias_variable(shape):initial = […]
Tensorflow에서 제공하는 기본 데이터셋인 MNIST로 가볍게 돌려볼 수 있는 튜토리얼을 제공하고 있습니다. 이것을 통해서 간단하게 Tensorflow로 ML을 돌려볼 수 있는데, 대략 이런 함수들이 있구나 이렇게 흘러가는구나 정도는 가볍게 알수 있는 쉬운 예제인 것 같습니다. 일단 모라도 작성해서 돌려보고 결과가 나오는 것을 봐야 아! 걸음마를 땠구나 하는 기분이 들기 때문에, 직접 한번 작성해보고 실행을 해보는 것이 좋은 […]
AWS 서버에 python과 Tensorflow가 설치가 되었는데 개발을 하고 테스트를 하기 위해서는 IDE가 로컬 Windows PC에 있으면 편하겠지요 Pycharm pro 버젼에서는 이러한 기능을 지원을 해주고 있어서 참으로 좋습니다. 더 좋은것은 로컬 windows pc에 Python과 Tensorflow등을 별도로 설치하지 않아도 된다는 것이지요. 그저 서버에 있는 것을 이용하면 되니까요. 그럼 Pycharm을 설치하고 원격 빌드 셋팅까지 해보겠습니다. 1. Pycharm 다운로드 및 설치 https://www.jetbrains.com/pycharm/download/ 에서 pro 버젼을 […]
1 step TD의 step을 증가시켜 나가면서 n 까지 보게 되면 n step TD로 일반화를 할 수 있습니다. 만약 step이 무한대에 가깝게 되면 MC와 동일하게 될 것입니다. 2 step TD 에서의 업데이트 방식은 첫번째 보상과 두번째 보상 그리고 두번째 상태에서의 value function의 합으로 업데이트가 됩니다. TD(0) 가 n이 1인 1-step TD입니다. 앞에서 이야기한 업데이트 방식에 대한 […]
TD 방식도 마찬가지로 직접적인 경험을 하면서 학습을 하는 알고리즘입니다. DP에서 사용하던 bootstrapping을 사용하고 MD에서 사용하던 Model-free 방식의 장점을 두루 갖추고 있는 것이 특징입니다. every-visit MC에서는 실제 에피소드가 끝나고 받게되는 보상을 사용해서 value function을 업데이트 하였습니다. 하지만 TD에서는 실제 보상과 다음 step에 대한 미래추정가치를 사용해서 학습을 하게 됩니다. 이때 사용하는 보상과 value function의 합을 TD target이라고합니다. […]
Planning 의 대표적인 Dynamic programming 에서는 MDP를 이미 알고 있는 것을 Bellman 방정식으로 풀어내는 것이였습니다. 그리고 GPI를 따르는 방식으로 최적화 정책을 찾아냈었습니다. Model-free 는 MDP를 모르는 상황에서 환경과 직접적으로 상호작용을 하면서 경험을 통해서 학습을 하게되는 방식을 말합니다. Prediction 은 value를 estimate 하는 것을 말하는데 여기서는 model-free 에서 prediction이므로 MDP를 모르는 상태에서 (환경에 대한 사전지식이 없는 […]