Learning ratelearning rate는 단순하게 보면 숫자에 불과하고 그 숫자는 프로그래밍에서처럼 "크다, 작다, 같다"의 3가지로 나누어질 수 있다.Large learning rate : overshooting and undershooting overshooting은 learning rate가 너무 커서 왼쪽그림과 같이 경사면을 타고 내려오는 것이 아닌 올라가는 현상을 말한다. 오른쪽 그림은 learning rate가 너무 작을 때를 보여준다. 한참을 내려갔음에도 최저점에 도착하지 못했다. 반복 수를 늘려 최저점에 도달할 수도 있겠지만 그럴 경우 3일이면 끝날게 3주가 거릴 수도 있다. 따라서 learning rate가 너무 크거나 너무 작지 않게 조절해 주는 것이 핵심이다. 하지만 그것은 ..
머신러닝의 난제우리가 머신러닝 기법을 통해 학습 데이터로부터 모델을 찾아내면 실제 현장의 데이터를 입력해 사용합니다. 학습된 모델에 실제 데이터를 입력해 결과를 찾는 것을'추론(inference)'이라고 합니다. 이렇게 학습 데이터로 열심히 모델을 구했는데, 실제 데이터를 입력하니 제대로 작동하지 않을 수 있습니다. 그 이유는 학습데이터는 실제데이터의 부분집합이기 때문에 모든 상황에 맞는 모델이 아니기 때문입니다. 머신러닝의 모든 문제는 여기서 발생한다고 볼 수 있습니다. 딥러닝도 머신러닝의 개념을 물려받았기에 머신러닝의 난제도 그대로 물려받았습니다. 따라서 머신러닝 기법을 사용할 때는 실제 데이터의 특성이 잘 반영되어 있고 편향되지 않은 학습 데이터를 확보하는 것이 아주 중요합니다. 학습 데이터와 입력..
Softmax classification Tensorflow- softmax_cross_entropy_with_logits를 사용하여 Softmax classification구현- 동물의 특징에 따라 7가지로 분류 예제- 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061import tensorflow as tfimport numpy as np # 동물 데이터 불러오기xy = np.loadtxt('data-04-zoo.csv', delimiter=',', dtype=np.float32)x_data = xy[:, 0:-1]y_data = xy[:, [-1]..
Softmax classification Tensorflow로 구현 -4개의 변수에 의해 3가지 등급으로 분류하는 학습 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import tensorflow as tf # x_data : 4개의 변수로 구성# y_data : one-hot 방식으로 3가지 label# [1, 0, 0] = 첫 번째# [0, 1, 0] = 두 번째# [0, 0, 1] = 세 번째x_data = [[1, 2, 1, 1], [2, 1, 3, 2], [3, 1, 3, 4], [4, 1, 5, 5], [1, 7, 5, 5], [1, 2, 5..
where is sigmoid? 그림 중에 빨간색으로 표시되어 있는 부분은 예측된 Y의 값이다. 이것을 우리는 Y hat이라고 부른다. 이 값은 W에 X를 곱하기 때문에 굉장히 크거나 작은 값일 수 있기에 0과 1사이로 값을 표현할 것이다. Softmax softmax는 점수로 나온 결과를 전체 합계가 1이 되는 0과 1 사이의 값으로 변경해 준다. 모두 더했을 때 1이 되는 이유는 0과 1사이의 값으로 나온 값이 확률이기 때문이다. 예를 들어 0.7이라는 것은 70%확률이 된다는 뜻이다. 검정 상자 안에 0과 1로 변환시켜 주는 softmax를 구현공식이 있는데, tensorflow에서는 softmax라는 함수가 있어서 그냥 호출해서 쓰면 된다. 굳이 구현을 하자고 하면 나의 크기가 전체 크기 중에서 ..
Logistic Regression을 부르는 다른 이름은 binary calassification이다. 데이터를 1과 0의 두 가지 그룹으로 나누기 위해 사용하는 모델이다. softmax는 데이터를 2개 이상의 그룹으로 나누기 위해 binary classification을 확장한 모델이다. 앞에서 배운 logistic regression을 보여주는 그림이다. 좌표상에 표현된 데이터를 2개의 그룹으로 나누는 decision boundary 직선이 인상적이다. 여기서 중요한 것은 Wx의 결과로 z가 나오고, S로 표현되는 sigmoid에 전달되고 최종적으로 Y를 예측한다. Y에 모자를 씌운 Y bar은 Y를 예측한 값을 의미한다. 여러 개의 label을 갖는 multinomial classification을..
Logistic classification Tensorflow-예습 복습에 따른 시험 합격 불합격 예측x_data=[예습횟수,복습횟수]y_data=[불합격or합격] 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf # y_data는 0과 1의 값만 가진다.x_data = [[1, 2], [2, 3], [3, 1], [4, 3], [5, 3], [6, 2]]y_data = [[0], [0], [0], [1], [1], [1]] # pl..
Logistic (regression) classification: cost function & gradient decent Linear Regression에서 배운 hypothesis와 이번에 배울 hypothesis를 비교해서 보여준다. hypothesis는 cost함수를 구성하는 핵심이기에 여기서도 cost함수가 달라져야 한다고 한다. 우리가 이전에 배운 hypothesis를 cost함수로 표현해 minimize하면 오른쪽 그림과 같이 나타난다. 왜냐하면 직선을 구부려 놓은 것이기 때문이다. 하지만 새로운 hypothesis를 이용해 cost함수를 식으로 나타내면 왼쪽 그림과 같이 울퉁불퉁하게 나타나게 된다. 왜냐하면 sigmoid를 구부려서 연결했기 때문이다. 이렇게 sigmoid를 구부려서 만든..