목록코딩로그/모두를 위한 딥러닝 (17)
코딩로그
지난시간에는 두가지의 값으로 분류하는 binary classification에 대해 배웠다. 이번시간에는 여러가지 값으로 분류하는 multinomial classification에 대해 알아보겠다. 이전에는 위의 그림과 같이 하나의 선으로 두종류의 데이터를 분류하는 방법에 대해 배웠다. 이와 같이 세개의 선을 사용함으로써 세개 이상의 값도 분류해낼 수 있다. 세개의 선을 각각 나타내지 않고 위와 같이 행렬로 나타낼 수 있다. hypothesis에 따라 여기에 해당하는 $\bar{y}_{a},\bar{y}_{b}, \bar{y}_{c}$가 나올 것이다. 위 그림의 경우에서는 당연히 a가 답이 될 것이다. 그런데 값을 확률로 나타내고 싶을 수 있다. a가 될 확률, b가 될 확률, c가 될 확률를 합쳐 그 ..
Binary classification : 0과1, pass와 non-pass 같이 특성에 따른 결과값을 두가지로 분류하는 것이다. 공부 시간에 따른 pass 와 fail을 위의 그래프로 나타내었다고 하자. 이걸 분류하려면 어떻게 해야할까? 이전에 배웠던 linear regression을 사용한다고 해보자 그럼 이와 같이 가장 cost를 최소화하는 hypothesis wx를 찾고, 0.5정도를 기준으로 해서 h(hours) 0.5면 pass로 분류할 수 있을 것이다. 그런데 이런 식의 분류에는 두가지 문제점이 있다. 첫째, 예외적인 값에 의해 기준이 너무 쉽게 변한다는 것이다. 둘째, h(x) = wx+b라고 주면 ,값이 0과 1사이가 아닌 너무 크거나 작은 값이..
수 많은 데이터를 모두 코드에 적기는 매우 어려운 일이다. 따라서 이번에는 tensorflow로 파일에서 데이터를 읽어오는 방법에 대해 알아보겠다. xy = np.loadtxt('file', delimiter = ' ', dtype = np.~)로 파일을 읽어오고, 넘파이의 슬라이싱을 활용해 x_data와 y_data를 지정해주는 것만 다르고, 나머지는 이전과 같다. numpy 슬라이싱에 대한 자세한 내용은 본 링크를 참조 https://jumpjump3030.tistory.com/2 Numpy 기초, 기본 정리 jumpjump3030.tistory.com 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31..
one-variable one-feature system이 아닌 다양한 feature에 대한 variable을 예측한다. 구체적 방법 이전에는 H(x) = Wx+b 였다면 현재는 H(x1,x2,x3) = w1x1+w2x2+w3x3+b와 같이 한다. -> 시작노드가 w,b의 두개에서 w1,w2,w3,b의 네 개로 시작하는 것 행렬을 이용한 계산으로 단순화 한다. 그러나 이 코드를 이용하면 특성의 갯수가 많아질 때 위와 같이 hypothesis를 매우 길게 써야할 수도 있다. 따라서 Matrix, 즉 행렬을 이용한다. 코드 실행시간을 측정해본 결과 matrix를 사용한 multi-linear regression이 훨씬 빠른 속도를 보였다.
- linear regression의 cost 최소화 알고리즘에 대해 알아보자. 이전시간에는 텐서플로에서 제공하는 간단한 코드 몇줄로 cost를 최소화 했지만, 이번에는 그 원리에 대해 알아보고 구체적인 부분까지 구현해볼 것이다. - 일단, 설명을 간단하게 하기 위해 편향 b를 없애보았다. - 다음과 같은 training data 가 있을 때, W의 값에 따라 cost(W)의 값은 어떻게 변할까? W = 1, cost(W) = 0 W = 0, cost(W) = 4.67 W = 2, cost(W) = 4.67 - 계산해 보면 위와 같다. W를 x축으로, cost(W)를 y축으로 하여 그래프로 나타내보았다. - 다음과 같이 이차함수의 형태를띈다. 그림을 보면 1에서 최솟값을 갖는 것을 알 수 있다. - 그런..
- tensor flow mechanic에 따라 linear regression을 실습해보자 - 전체코드와 이를 간략하게 노드로 나타낸 것이다. - x와 y를 place holder를 통해 지정한다.
- predicting exam score : 1부터 100까지 나타내는 것이므로 regression이다. - 시간당 점수로 supervised learning을 한다고 하자. - x : 데이터의 특성(feature) - y : 예측값 - regression 모델을 학습한다는 것 – 가설을 세우는 것 - 잘 모르겠지만, 이 데이터는 아마 linear할 거야. 따라서 이 가설에 대입하면 답은 이것일꺼야. 라고 예측한다. - 훈련시간과 달리기실력, 집 크기가 클수록 가격이 크다든지 세상의 많은 것들이 linear하다. 따라서 유용하다. - linear하게 가설을 세운다는 것? – 선을 찾는 것! - 그게 바로 학습이다. - 가설을 세우는 방법 - 1. 일차함수로 가설을 세운다. - 2. 어떤 선이 가장 데이..
- 텐서플로우 : google에서 만든 머신러닝 오픈소스 라이브러리이다. - 텐서플로우를 이용하는 이유 : 많은 사람이 사용해서 공부할 수 있는 자료가 많다. - 텐서플로우란? data flow graphs를 사용해서 numeric한 계산을 하는 라이브러리 파이썬을 이용해 프로그래밍 할 수 있다. node: mathematical operation를 나타내는 것 사진에서의 동그라미를 의미한다. 텐서가 여기를 지나갈때마다 더해지고, 곱해지고 수학적인 연산이 이루어진다. edges: 노드와 노드를 잇는 다차원의 data arrays(tensors) 텐서들이 들어와서 플러스가되구, 마이너스가 되구 이렇게 왔다갔다 하니까 이름도 텐서플로다 ! - 프로그래밍의 시작인, hello world 를 출력해보자. - t..