본문 바로가기

machine learning56

[TENSORFLOW] Logistic regression Classification Logistic regression은 Linear regression과는 다른 비용 함수와 다른 모델을 사용한다라는 차이점을 가지고 있다. 위의 두 가지 차이점을 제외하면 나머지는 Linear regression의 기능과 상당히 일치한다.Logistic regression에서는 아래의 sigmoid 모델을 사용한다. linear regression에서는 모델 값의 범위가 -∞ ~ ∞ 까지 다양하게 나올 수가 있는 반면에 위의 sigmoid 모델은 0 또는 1로 수렴하는 결과를 가져온다.분류 문제에서는 0 또는 1로 직관되어 있는 표현이 더 좋기 때문에 sigmoid가 분류 문제에서는 더 활용 빈도가 크다고 할 수 있다.Logistic regression에서는 기존에 쓰던 MSE(mean square er.. 2017. 4. 11.
[TENSORFLOW] Linear regression Classification 2017/04/06 - [machine learning] - [TENSORFLOW] Linear regression 이전에 언급한 regression이 주어진 입력 값에 대해 연속적인 값을 결과로 출력하는 것이라면 classification은 입력 값에 대해 이산 결과를 리턴하는 것을 의미한다. 예를 들어, 주어진 날짜에 대해 강수량을 나타내는 것이 regression이라면 (ex. 2000-09-15 50mm, 2001-10-13 100mm,.....), 주어진 날짜에 대해 비가 온다 안온다의 결과를 나타내는 것은 classification이라고 할 수 있다. (ex. 2000-09-15 비가 옴, 2001-10-13 비가 안옴...)아래는 classifier의 특징 들을 기술하였다.- Linear r.. 2017. 4. 10.
[TENSORFLOW] Regularization 다항식의 차수를 크게 두면 온갖 곡선을 가지는 형태의 뛰어난 유연성을 가질 수가 있다. 하지만 기계 학습에서는 이러한 학습 모델은 선호하지 않는다. 모델이 뛰어나게 유연하다는 것은 결국 입력 데이터에 상당히 민감하다는 뜻과 같기 때문이다. 가령 예를 들어 충분히 1차원으로 표현할 수 있는 모델이 10차원의 다항식으로 표현이 된다면 계산 측면에서나 비용 측면에서 해당 모델은 실패하게 된다. 우리는 모델이 너무 뛰어난 유연성을 가지는 것을 막기 위해 regularization을 두어 규제를 한다. cost 함수의 기존의 예측 값과 정답의 차이에다가 weight의 값을 제곱한 값을 더함으로써 weight 값이 크게 나타났을 경우에 penalty를 부과하게 된다. 아래의 코드로 좀 더 자세히 살펴보자. ramb.. 2017. 4. 9.
[TENSORFLOW] Polynomial Model 2017/04/10 - [machine learning] - [TENSORFLOW] Linear regression Classification 이전의 Linear regression에서 1차항에 대한 regression을 고민했다면, 이번에는 항이 여러 개인 다차항에 대한 regression을 고민해보자. 위의 식과 같이 여러 개의 항으로 구성되어 있는 model을 Polynomial Model이라고 부른다.import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt%matplotlib inline num_coeffs = 6training_epochs = 400learning_rate = 0.01 def model(X, w):terms.. 2017. 4. 8.
[TENSORFLOW] Linear regression TensorFlow를 이용해서 선형 회귀 분석을 해 볼 것이다. 우선 우리는 주어진 데이터에 대해서 가장 알맞는 input/output를 출력하는 함수 f를 찾아낼 것이다. f를 찾기 위해서 고려할 사항이 두 가지가 존재하는데 바로 variance와 bias이다. - variance는 주어진 training set에 대해서 찾아낸 함수 f가 얼마나 민감한가를 나타내는 척도이다. overfitting(입력 데이터에 대해서만 아주 정확하게 결과를 출력하는 경우) 인 경우에 대부분 variance가 높게 나타나는데, variance가 높은 경우 약간의 입력 데이터 변화만 생기더라도 오답을 출력하는 문제가 발생한다. 그래서 우리는 variance를 낮출 필요가 있다.- bias는 훈련 데이터에 대한 편견을 나타.. 2017. 4. 6.
[TENSORFLOW] tensorboard 사용하기 TensorFlow 에서는 Tensorboard라고 하는 시각화 서비스를 제공한다. Tensorboard를 통해 Loss의 흐름이나 각 스텝 별 값이 변화등을 확인할 수가 있다. 그럼 이제 어떻게 Tensorboard를 사용하는지 우선 코드를 보자.import tensorflow as tfimport numpy as np raw_data = np.random.normal(10, 1, 100)alpha = tf.constant(0.05)curr_value = tf.placeholder(tf.float32)prev_avg = tf.Variable(0.)update_avg = alpha * curr_value + (1 - alpha) * prev_avg avg_hist = tf.summary.scalar("r.. 2017. 4. 5.
[TENSORFLOW] Tensor, operator, variable 생성하기 TensorFlow를 사용하는 가장 큰 이유는 무엇보다 코드의 간결함 때문일 것이다. 벡터 내적을 구하는 아래의 식을 우선 살펴보자.revenue = 0 for price, amout in zip(prices, amounts): revenue += price * amout 이번에는 numpy를 활용한 아래의 식을 살펴보자 import numpy as np revenue = np.dot(prices, amounts) numpy를 활용한 코드가 훨씬 간결함을 알 수가 있다. (하지만 이런 함수 제공이 마냥 좋은 것만은 아님..) 우리는 tensorFlow를 활용함으로써 machine learning을 보다 쉽게 접근해볼 수 있을 것이다. Tensor 생성하기 tensorFlow라는 용어에서 언급된 것처럼 t.. 2017. 4. 4.
inception v3 모델 사용하기 이전 포스팅에서 inception v3 모델을 fine-tuning 해서 정답 label을 변경했다면, 이번에는 구글이 학습한 기존의 모델 그대로 사용하는 방법을 살펴보자. 학습한 모델의 대상 데이터는 imagenet에 있는 이미지 데이터들이며, 학습한 모델에는 대략 1000개의 class가 구성되어 있다. 우선 모델을 사용하기 위해서는 모델을 다운받아야 하는데 아래의 url을 통해 모델을 다운받자. http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz 압축을 풀면 아래의 파일들이 존재한다. - classify_image_graph_def.pb : 모델의 graph 파일- imagenet_synset_to_human_l.. 2017. 2. 22.
inception v3 fine-tuning 하기 구글이 만들어 놓은 모델(inception v3)에 내가 학습하려는 데이터를 추가해서 객체 인식을 해보기로 했다. 아래의 링크를 참조해서 따라해보자. https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/index.html?index=..%2F..%2Findex#0 나같은 경우에는 이미 tensorflow가 설치된 docker container가 존재한 상태였기 때문에 곧바로 4단계로 넘어갔다. 4단계에서는 이제 tensorflow docker 가 설치되어 있다는 가정하에, docker와 연결된 volume에 tf_files 디렉토리를 생성한다. # mkdir tf_files 폴더 생성이 완료되었으면 아래의 curl 명령어를 통해 tr.. 2016. 12. 14.