본문 바로가기

머신 러닝13

13. Mnist 데이터 실습 ( 숫자 판별 ) import tensorflow as tf # mat plotlib 를 이용해서 데이터를 보기 좋게 보여줌 import matplotlib.pyplot as plt # 이따 random 라이브러리 사용 해서 숫자하나 가져옴 import random # 텐서플로우에 있는 라이브러리 mnist 데이터 셋을 불러옴 from tensorflow.examples.tutorials.mnist import input_data # 데이터를 다운받음, 다음번에 쓸대는 내가 만들어놓은 디렉토리에서 알아서 불러옴 # 다운,불러 올때 one_hot 을 사용하면, 알아서 one_hot 으로 불러옴! mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # 이제 X, Y.. 2017. 12. 9.
12. rate, Overfitting, Regularization, Online learning(팁팁팁) Optimize 할떄 , learning rate 의 크기를 정하는 방법에 대해서 알아보자. learning rate는 쉽게 기울기를 조절하는 값이라고 보면된다 ( 기울기보다는.... 음 기울기를 정하는 점? ) 근대 만약 이 값을 너무 크게 정한다면 최소값을 정하지 못할 수 있다.반대로 너무 작게 정한다면, 학습을 끝내고 나서도 최저점에 도달하지 않을수 있다. 즉, learning rate는 설계하려는 모델에 맞춰서 설정해주어야한다. 보통 0.01~ 0.1 을 사용한다. 일반화는 선처리의 문제이다, 선처리라 하믄 X 값의 정의를 잘해야 한다는 것인대밑의 그림은 W2 W1 을 축으로 만든 그래프이다. 이 그래프는 3차원 그래프를 위에서 본것이다, 가운대로 갈수록 높이가 낮아진다 라고 생각하면된다. 즉 학.. 2017. 12. 7.
11.Soft_Regression 실습 (동물 구분하기) import tensorflow as tf import numpy as np # 데이터 가져오기 ( np 를 이용해서) xy = np.loadtxt('data-04-zoo.csv', delimiter=',',dtype=np.float32) x_data = xy[:,0:-1] y_data = xy[:,[-1]] nb_classes = 6 # 0~6 가지의 동물이 존재( 출력데이터 갯수) # 배열 설정 (데이터수가 많음으로) X = tf.placeholder(tf.float32,[None,x_data.shape[1]]) Y = tf.placeholder(tf.int32,[None,y_data.shape[1]]) # One_hot 으로 만들어주기 여러개의 데이터중에서 가장 가능성이 높은 데이터의 Rank 를 .. 2017. 12. 6.
10.Soft_Regression 전 단계까지 배웠던 방법은 Logistic 방법으로 0,1 로 나타낼수 있는 방법이었다, 이번에 배워볼 방법은 두가지로 나타내는 것이아니라 A,B,C,D 여러가지 형태로 데이터를 정할수 있는 방법이다.( 보통 학점 계산할때를 생각하면 쉽다) 어떤식으로 하는지 자세히 알아보자 위와같이 데이터가 주어졌다고 해보자, 각각의 x1,x2 데이터에 따라 y의 값이 달라지는대 이때 사용했던 방법이 Logistic 이였다, 즉 어떤 선을 찾아서 그선을 따라 pass,non-pass 를 나누듯이 A와 B의 선을 나누고, B와 C 의 선을 나누는 방식으로 접근한다. 그림으로 표현하자면 이러하다. 3가지의 선을그어 A,B,C 학점을 구분하고 각각의 학점을 줄수있다. 그럼 어떤식으로 Hypothesis 를 구성할까? 쉽게 설.. 2017. 12. 6.
09.Logistic Regression의 Cost 함수 가설이 Sigmoid 함수로 바뀌었다. 그러다 보니, H(x) 를 비롯한 cost function 역시 변화가 되었다. 원래의 cost 그래프는 이쁜 밥그릇 모양이었다, 하지만 sigmoid 함수를 통한 cost 그래프는 구불구불 밥그릇 모양이되었다. 따라서, 시작점에 따라 최솟점이 달라지는 문제가 발생! 이런 문제를 Logical minmum 문제라고 한다, ( 우리가 원하는것은 Golobal minimum ) 즉 이방법으로는 더이상 cost 의 minimum을 구할 수 없다. 그래서 나온 방법이. 이런식으로 로그를 이용하는 것이다. 로그의 장점은 1/e^n 을 상쇄시키는 역활을 하는 동시에 그래프 역시 이쁘게 만들어준다. 김성훈교수님의 필기를 보면 쉽게 알수 있듯이 그래프 모양이 우리가 원하는 경사타.. 2017. 12. 5.
08.Logistic Classification 이전에 공부했던 내용들은 어떤 숫자들을 예측했다면, 이번에는 Binary Classification 이라고 두개중 한개를 고르는 방식을 공부해 볼 것이다. 실제로 이 알고리즘이 가장 많이 사용되고 있는대 그중에 대표적으로 3가지가 존재한다고 한다. 1. 스팸, 햄 구별 ( 스팸매일인지 아닌지를 구별 ) 2. 페이스북 (우리가 페이스북에서 타임라인을 볼때 좋아요가 되어있는 것만 보여줌 ) 3. 지출 방식에따라 도난 되어진 카드인지, 아닌지를 판별할때 이런식으로 두가지중 한가지의 선택지가 존재하는 알고리즘이다. 즉 0 , 1 (컴퓨터 그자체 알고리즘 ) 이라고 생각하면된다. 여기서 주의!!! 할점은 0 , 1 로 표현하는 classfication 에서 linear 로 표현 할때 문제가 발생하는대 0 ----.. 2017. 12. 5.
07.Multi_variable 실습 import tensorflow as tf import numpy as np xy = np.loadtxt('data-01-test-score.csv' , delimiter = ',', dtype = np.float32) x_data = xy[:, 0:-1] # 전체, 처음부터 ~ 마지막 한개를 제외한 부분을 가져옴 y_data = xy[:, [-1]] # 전체에서 마지막 데이터만을 가져오곘다. # 데이터가 맞는지 확인 #print(x_data.shape, x_data , len(x_data)) # placeholder 변수 생성 X = tf.placeholder(tf.float32, shape=[None,x_data.shape[1]]) # Matrix 생성 Y = tf.placeholder(tf.floa.. 2017. 12. 4.
06. Multi-variable linear regression 저번 시간 까지는 한가지의 입력값으로 예제들을 공부했다. 하지만 데이터의 양이 한가지만이 아니라 여러가지 종속된 데이터들을 가지고 결과를 뽑아내야 하는 경우가 많다. 예를들면 국어, 수학, 영어 의 성적을 가지고 총 점수를 예측한다고 할때 3가지의 데이터가 필요하다. 그럼 어떤식으로 Hypothesis 를 구성할수 있을까? 그냥 H(x1,x2,x3) = w1x1 + w2x2 + w3x3 + b 이런식으로 구성하면된다. 그럼 자연스럽게 cost(W,b)역시 구할수가 있게된다. 하지만 여기서는 3가지를 예를 들었지만 더많은 데이터들을 입력하면? Hypothesis 가 구성하기 정말 까다롭고 어려울것이다. 이때 사용하는 방법이 행렬 ( Matrix ) 이다. 행렬의 곱셈을 이용하면 쉽게 구성할수 있게된다. 이.. 2017. 12. 3.