AI/딥러닝
-
8. 경사 하강법 종류AI/딥러닝 2019. 7. 14. 07:35
저번에 Gradient Descent 알고리즘에 대해 다룬 적이 있습니다. 기본적으로 다뤘던 알고리즘은(SGD : Stochastic Gradient Descent ) Cost function의 형태가 convex하지 않고 복잡할 경우, local minimum에 빠져 엉뚱한 결과를 내는 경우도 존재합니다. 그래서 이번엔 이를 개선시킨 Gradient Descent 알고리즘들을 소개하려고 합니다. Exponentially Weighted Moving Average 우선 Moving Average가 무엇인지 알아볼까요. 말 그대로 '이동 평균'입니다. 보통 Moving Average는 현재 1~n까지의 데이터가 있으면, 현재 n부터 데이터의 특정 시점까지의 평균을 의미합니다. 그런데 Exponentiall..
-
7. 역전파(Back propagation)AI/딥러닝 2019. 7. 14. 05:22
지난 시간에 사용한 인공 신경망입니다. Layer 1 g1 weight = (2, -2, 0) g2 weight = (1, 3, -1) g1 = x1*w11(1) + x2*w12(1) + x3*w13(1) g2 = x1*w21(1) + x2*w22(1) + x3*w23(1) s1 = sigmoid(g1) s2 = sigmoid(g2) Layer 2 f weight = (3, -2, -1) g3 = s1*w1(2) + s2*w2(2) + s3*w3(2) f = sigmoid(g3) x1 x2 g1 g2 f y 0 0 (2*0) + (-2*0) +(0*1) = 0 sigmoid(0) = 0.5 (1*0) + (3*0) + (-1*1) = -1 sigmoid(-1) = 0.269 (3*0.5) + (-2*0...
-
6. 퍼셉트론(Perceptron)AI/딥러닝 2019. 7. 12. 02:56
퍼셉트론, 최초의 인공신경망입니다. 유서 깊네요. 선형 분류할 때 사용됩니다. 계속 사용했던 성적 데이터입니다. 이런 식으로 선형 분류해주는 게 Perceptron입니다. 방식은 이전에 봐온 것과 매우 유사합니다. w1*x1 + w2*x2 + w3*x3+....+wn*xn을 계산합니다. 이때 나온 결괏값이 특정 threshold를 넘으면 1, 아니면 0으로 체크합니다. X = (x1, x2, x3,... xn) (Input vector), W = (w1, w2, w3,..., wn) (Weight vector), t = threshold(임계점)라고 하겠습니다. 우리가 원하는 것은 X·W > t 이면 1, 아니면 0으로 만드는 것입니다. 편의를 위해 t를 왼쪽으로 넘기면 다음과 같은 수식을 얻을 수 있습..
-
5. Sotfmax, Cross EntropyAI/딥러닝 2019. 7. 11. 21:54
지난번엔 Binary Classification 모델인 Logistic Regression을 다뤘습니다. https://godute.tistory.com/42?category=792250 4. 로지스틱 회귀(Logistic Regression) 이전 Linear Regression에서 다룬 성적 데이터를 Pass/Non-Pass처럼 Binary Classfication(이진 분류)로 변경해 보겠습니다. 성적 점수보단, 통과 혹은 불통 자체에 관심이 생겼습니다. 그래서 이를 분류해 보려고.. godute.tistory.com 이번엔, 레이블이 3개 이상인 Multi Class Classification을 다뤄보겠습니다. 이진 분류에선 Pass / Non-Pass로 분류했는데, 이제 A, B, C등급으로 분..
-
4. 로지스틱 회귀(Logistic Regression)AI/딥러닝 2019. 7. 11. 17:45
이전 Linear Regression에서 다룬 성적 데이터를 Pass/Non-Pass처럼 Binary Classfication(이진 분류)로 변경해 보겠습니다. 성적 점수보단, 통과 혹은 불통 자체에 관심이 생겼습니다. 그래서 이를 분류해 보려고 합니다. 20, 44시간 공부한 학생들은 통과했고, 4, 12시간 공부한 학생들은 불합격 했습니다. 억지로 Linear Regresssion을 해볼까요 가설을 했지만, 영 좋지않은 그림이네요. 그렇다면 데이터를 하나 더 추가해볼까요, 200시간 공부해 통과한 학생입니다. 뭐 어떻게 선을 그어야할지 모르겠네요,,, 그렇다면 이런 형태는 어떨까요, 결괏값 y를 0~1 사이의 확률로 나타냈습니다. 0.5 이상의 확률이 되면 합격 처리하고, 0.5 이하의 확률은 불합격..
-
3. 다변량 선형 회귀(Multivariate Linear Regression)AI/딥러닝 2019. 7. 11. 15:45
이전까진 하나의 변수만 다뤘습니다. 하지만 세상엔 대부분 다양한 변수로 인해 결과가 나오는 경우가 많지요,, 운동 시간, 스쿼트 몇 세트 했는지, 음식은 몇 칼로리 먹었는지 여러 가지 변수가 종합되어 체중이 몇 kg 빠지나 결정되는 것처럼요. 다변량 선형 회귀는 이전에 다뤘던 단변량과 유사합니다. 변수만큼 가중치도 늘어날 뿐입니다. 감량 체중(y) 운동 시간(x1) 흡수 kcal(x2) 스쿼트 횟수(x3) 200g 30분 400kcal 2회 300g 40분 400kcal 3회 400g 30분 300kcal 5회 500g 40분 600kcal 10회 위와 같은 데이터가 있습니다. 체중에 영향을 주는 요인이 저렇게 3가지라고 생각해봅시다. 운동을 열심히 해야겠네요 단변량 선형 회귀에서 한 것처럼, 이런 가설..
-
2. 경사 하강법(Gradient Descent), Tensorflow 선형 회귀 구현AI/딥러닝 2019. 7. 9. 18:14
이전 포스트에서 이어집니다. 선형 회귀 보러 가기 https://godute.tistory.com/39 위 그림은, 이전에 임의로 지었던 가설의 예측값과 실제 값의 차이를 나타낸 그래프입니다. 가설의 가중치 W를 9/5로 설정했을 때, 112.75의 손실(loss, cost)가 발생했었습니다. 손실을 줄이기 위해선, 가중치 W가 이차 함수의 최저점으로 가야 합니다. 미분이 필요하겠군요 Cost function을 W에 대해 Cost(W)라고 표현할게요, Cost(W) = 1/N* Σ(H(x) - y)2 = 1/N * Σ(W·x + b - y)2 였죠~ W를 업데이트하는 표기는, W := W - a·(∂Cost(W)/∂W) 입니다. cost(W)를 W에 대해 미분했을 때, cost가 감소하는 방향으로 업데이..
-
1. 선형 회귀(Linear Regression)AI/딥러닝 2019. 7. 8. 01:18
공부를 많이 할수록 시험 점수가 오르거나 운동을 많이 할수록 체중이 빠지듯이, 종속 변수와 설명 변수가 선형성을 띌 때 선형 회귀분석을 한다고 합니다... 성적 공부시간 90 44 35 12 48 20 12 4 예를 들어, 공부시간과 성적에 대한 데이터가 있습니다. 딱보면 공부를 많이 할수록 성적이 높아지네요,, 공부를 많이 합시다 이제 우린 몇 시간 공부하면 점수가 얼마나 나올지 예측해볼 겁니다. 그래프 상에선 다음과 같이 표현됩니다. 선형적으로 표현되네요. 일단 그러면 하나의 가정을 해봅시다. 까만 선을 그었습니다. 보이시나요?? 이제 저 가정에 따라 예측해보겠습니다. predict요 저 까만 선을 H(x) = Wx + b 라고 해볼까요! 그림을 보고 W, b를 구해보자면, W = 9/5, b = 0..