본문 바로가기

tensorflow8

머신러닝 실습 with Tensorflow 8장 - ReLu & Dropout & Xavier - 머신러닝 실습 with Tensorflow 8장- ReLu & Dropout & Xavier - 6장에서 Softmax를 사용하여 MNIST test data를 학습시킨 모델을 하였다. 이번에는 같은 데이터를 사용하여 Accuracy를 높이는 방법을 찾기 위한 실습을 진행할 것이다. 6장의 코드를 참고한 후 어떻게 변하는지를 체크하면 좋을 것 같다. 먼저 NN에 대한 학습 방법을 사용할 것이다. 6장에서 사용한 예시에서는 layer라는 것이 존재하지 않았다. 하나의 데이터를 넣어 바로 결과가 나오는 과정을 거쳤는데 Neural Network의 방법을 사용하여 여러 개의 layer를 만들어 학습시킬 수 있다. layer를 만들 때에는 shape에 대한 값이 매우 중요하다. Weight의 경우 들어오는 in.. 2017. 6. 12.
머신러닝 실습 with Tensorflow 7장 - Neural Network for XOR problem - 머신러닝 실습 with Tensorflow 7장- Neural Network for XOR problem - XOR 문제는 Neural Network를 시작시킨 문제라고 생각해도 과언이 아니다. 이전의 문제들은 W와 b의 하나의 값만을 이용하여 Linear regression을 통해 해결이 가능하였다. 하지만 XOR의 문제는 하나의 W와 b의 값으로 예측하는 것이 불가능하였다. 그래서 나온 방법이 Neural Network이다. 또 다른 layer를 만들어서 1차 결과 값을 새로운 layer의 입력 값으로 넣는 과정을 통해 최종 결과 값을 도출하는 것이다. 따라서 Neural Network에 대한 tensorflow 구현의 첫 번째로 XOR 문제를 풀어볼 것이다. 우선 x_data와 y_data는 정해져.. 2017. 6. 11.
머신러닝 실습 with Tensorflow 6장 - MNIST data test - 머신러닝 실습 with Tensorflow 6장- MNIST data test - 이번 장에서는 Tensorflow에서 머신러닝 모델을 구축할 때 가장 많이 data set으로 사용되는 MNIST을 이용하여 학습시켜볼 것이다. MNIST data는 0부터 9까지 적혀있는 숫자를 나타낸다. 하지만 이 숫자들의 모양이 조금 제각각이다. 하지만 사람의 눈으로 보았을 때에는 딱 봐도 무슨 숫자인지 알 수 있을 정도의 차이이다. 그렇다면 이런 data를 컴퓨터에 넣어주어 학습을 시키면 새로 적은 숫자에 대해 그 숫자가 무엇인지를 맞출 수 있을까? MNIST data set을 가지고 하는 모델 학습은 이것을 목표로 한다. MNIST data set은 28*28*1 의 픽셀의 이미지로 만들어진다. 그러므로 28*28.. 2017. 6. 9.
머신러닝 실습 with Tensorflow 5장 - training-test data set & learning rate & normalization - 머신러닝 실습 with Tensorflow 5장- training-test data set & learning rate & normalization - 머신러닝 모델을 설계할 때 학습시킬 데이터만 존재하는 것이 아니다. 학습을 시킬 데이터를 통해 학습을 시키고 나면 이를 테스트할 test data set도 존재한다. 대부분 총 데이터 중에서 70% 정도는 training data set으로 이용하게 되고 나머지 30% 정도로는 test data set으로 활용하게 된다. training data set의 경우에는 학습을 시키는 모델이므로 x_data 값과 y_data 값을 동시에 train 과정에 넣어주게 된다. 하지만 test data set은 x_test에 대한 data 값만을 넣어서 우리가 세운 모.. 2017. 6. 8.
머신러닝 실습 with Tensorflow 4장 - Softmax classification - 머신러닝 실습 with Tensorflow 4장- Softmax classification - Softmax는 여러 개의 class를 예측할 때 사용되는 activation function이다. 앞선 장들에서는 sigmoid 함수만을 사용하여 예측을 하였는데 실제로 Output에 해당하는 layer에서는 Softmax를 이용하여 예측하는 경우가 많다. Softmax의 경우 실수로 나타나는 Output의 값들을 확률적으로 나오게 하여 모든 class의 합이 1이 된다. 그렇기 때문에 하나의 output에 대한 확률이 높아질 경우 다른 output에 대한 확률이 낮아지는 현상이 발생하게 된다. 이를 tensorflow로 구현하는 것은 매우 간단하다. 왜냐하면 tensorflow는 머신러닝을 위한 내장 함수를.. 2017. 6. 7.
머신러닝 실습 with Tensorflow 3장 - Logistic regression - 머신러닝 실습 with Tensorflow 3장- Logistic regression - Logistic regression은 Linear regression과 다르게 결과를 0과 1로 나타낸다. 이 때 사용하는 함수는 sigmoid 함수이다. 가설의 형태가 sigmoid 함수로 나타나게 되는데 들어가는 x의 값에 weight이 곱해지는 형태가 된다. cost function의 경우 log를 이용하여 Linear regression과는 다르게 정의를 하게 된다. 하지만 이 cost function 역시 Gradient descent algorithm을 사용하여 최소화를 시킨다. 우리의 아래와 같은 식을 알고 있기 때문에 이를 그대로 tensorflow에 작성만 하면 logistic regression에 .. 2017. 6. 6.
머신러닝 실습 with Tensorflow 2장 - Multi-variable linear regression - 머신러닝 실습 with Tensorflow 2장- Multi-variable linear regression - 이제 데이터에서 하나의 입력 값이 아니라 여러 개의 입력 값을 받는 Multi-variable linear regression에 대한 tensorflow 실습을 진행할 것이다. 우선 Multi-variable linear regression을 살펴보면 입력 값이 x 하나가 아니라 x1, x2, x3와 같이 여러 개의 입력 값을 받을 수 있고 이에 따른 weight 값이 w1, w2, w3로 존재하게 된다. tensorflow 코드를 이용하게 되면 x1_data, x2_data, x3_data 와 같이 세 개의 데이터를 나누어서 지정을 할 수 있다. 또한 w의 값도 w1, w2, w3를 각각 V.. 2017. 6. 4.
머신러닝 실습 with Tensorflow 1장 - linear regression - 머신러닝 실습 with Tensorflow 1장- linear regression - 머신러닝에 대한 이론적인 부분은 이미 공부한 후 이에 대한 부분을 실습하여 실제로 실행시켜보는 것에 중점으로 학습할 것이다. 이에 대한 도구로 tensorflow라는 tool을 사용할 것이다. 또한 python의 언어를 바탕으로 제작된다. tensorflow는 머신러닝을 위한 다양한 함수를 내포하고 있어 보다 편하게 머신러닝을 구현할 수 있게 구성되어 있다. tensorflow는 3가지의 과정으로 구성된다. Tensorflow의 도구를 이용해 그래프를 만드는 과정, sees.run 함수를 통해 데이터를 넣어주거나 그래프를 가동시키는 과정, 마지막으로 결과 값을 내보내거나 그래프의 변수를 업데이트 시키는 과정이다. Lin.. 2017. 6. 3.