목록머신러닝 (7)
척척석사가 되어보자

혼자끄적이는 공부 활성화 함수가 "입력값과 가중치(weight)의 곱의 합"의 강도를 조절해 주는 것은 알겠지만 어떠한 상황에서 적절한 활성화 함수가 무엇이고 어떤 장단점이 있는지 잘 몰라서 정리를 해보았다. 공부하면서 느낀건데 이 활성화 함수들의 장단점을 정확히 이해하기 위해 순방향(feeforward)과 역전파(back propagation) 계산을 직접 해보아야 겠다는 생각을 하였다. 그래야 Vanishing gradient 문제를 이해할 수 있을것 같다. 다음 포스팅은 역전파 계산과정을 써보아야겠다. 1. sigmoid 함수 보통 1 또는 0의 활성함수 값을 갖는다. 장점 : 선형 관계가 아니다 ( 선형모델에서는 종속변수에 대한 비례가 100%가 넘어갈수 있어 이치에 맞지 않는다. 예를들어, y=..
이전의 linear regression에서 H(x), Cost(x) 는 다음과 같았다. 이 경우에는 결과 값인 y가 제한없는 linear한 숫자일때 사용이 됐다. 하지만 yes or no로 분류하고 싶은 경우에는 비효율적인 공식이다. yes - 1 , no - 0 으로 결과 값을 0과 1로만 나누고 싶을 때는 어떻게 해야 할까 ? linear regression을 적용시키면 결과값 y와 H(x)의 범위는 0과 1를 벗어날 수 있다. 따라서 , 우리는 H(x)를 0과 1사이로 제한을 두는 함수를 찾고 싶다. 이 함수는 위의 조건을 만족한다. logistic function 또는 sigmoid function이라고도 한다. 이 함수의 경우 H(x)의 범위가 0과 1사이 인것을 알수 있다. 그렇다면 Cost(..
전에 했던 linear regression과 같은 개념이다. cost가 최소가 되는 W값을 찾아야 한다. cost와 W의 관계는 다음과 같다. H(x) = Wx 이면cost(w) = 이다. w값에 따른 cost(w)의 그래프는 위와 같고 곧 cost(w)의 최저점을 찾으면 된다. 미분한 값으로 그래프의 기울기를 알수 있고 기울기가 0이되는 지점을 찾으면 된다. 기울기가 양수라면, 최저점보다 오른쪽에 있으므로 w를 왼쪽으로 (- 방향) 이동해야 하고기울기가 음수라면, 최저점보다 왼쪽에 있다는 의미이므로 w를 오른쪽으로 (+방향) 이동하여 학습하면 된다. 따라서 인 것이다. 실제 코드 구현. 1. cost(W)와 W관계 그래프 그려보기 실행결과pycharm에서 matplotlib include 하는 법 : ..
Linear regression 예제 돌려보기 코드 순서 : 그래프 빌드 -> 실행 -> 결과 x , y 의 쌍이 (1,1) (2,2) (3,3)인 train set이다.따라서, 우리가 기대하는 모델의 결과는 H(x) = W*x+b에서 W는 1, b는 0이어야 한다. tf.Variable 은 텐서플로우의 변수이다. 학습하면서 변수를 바꿔나간다. tf.random_normal([1]) 은 W와 b의 초기값을 일단은 랜덤으로 정하는 것이다. [1]은 크기를 나타냄. 한개씩 넣는다. 그 다음, hypothesis(모델)을 정해주고 cost를 구하는 방법도 정한다. reduce_mean은 평균을 내는 함수 square은 제곱.cost를 최소화 하는 optimizer를 구한다. 여기까지 모델을 빌드한 것이고, s..
Supervised Learning의 linear regression을 살펴보자. linear regression의 모델이 생긴 배경은 우리 실생활에서 linear model의 가설이 적합한 경우가 많기 때문이다.예를들어 , 공부 시간 대비 시험점수가 높은 경우를 생각해 볼수 있다. 이때 linear model의 데이터 셋은 몇시간 공부했을때의 실제 학생들 점수를 입력받아 학습한다. 학습하여 최적의 linear model, 우리가 흔히 말하는 일차방정식 함수를 찾고, 새로운 데이터인 몇시간을 공부하였을 때 몇점이 나오는지 학습한 모델이 입력하여 원하는 결과값을 추출할 수 있다. 시간 (x) 점수 (y) 5 50 7 80 12 95 하지만, 데이터 셋의 점들을 이었을때 정확히 일직선일 경우는 드물다. 따라..
Tensorflow ? : data flow graph를 사용해서 numerical을 계산. 기본 언어는 파이썬이다. 여기서 data flow graph는 밑 그림과 같이 동그라미 노드는 operation을, edges는 data array(tensor)를 의미한다.따라서 데이터(tensor)들이 그래프를 따라 흐르므로 tensorflow라고 할수 있다. 내 pc에는 Anaconda3가 깔려 있어서 이 블로그를 참고해서 tensorflow를 다운받았다. (아나콘다에서 텐서플로 다운받기)출처 : https://brunch.co.kr/@mapthecity/15 예제 1 ) 노드 3을 가진 노드 a와 4를 가진 노드 b를 더하는 간단한 과정node3까지 만들어서 텐서플로 모델을 만들어 그래프를 빌드하고 ses..
유튜브 딥러닝 강좌와 머신러닝 개념을 잘 설명해준 블로그를 참고하여 공부하려 한다. 유튜브 강좌 : https://www.youtube.com/channel/UCML9R2ol-l0Ab9OXoNnr7Lw블로그 : https://laonple.blog.me/220463627091 유튜브와 블로그를 공부한 토대로 복습 내용 적기. 1. Supervised Learning : 입력 + 출력 = > 모델을 만든다. 2. unsupervised Learning : 정답은 모르는 상태, 입력값만을 이용하여 모델을 만든다. 따라서 classification, auto-tagging등에 사용된다.3. reinforcement Learning : 로봇이 행동에 따라 칭찬과 벌을 받아 행동을 강화하여 학습한다. 1. Sup..