일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- 딥러닝
- 파이썬
- 머신러닝
- 라인
- 스타벅스
- STL
- 라인플러스
- DP
- 벤쿠버
- C++
- 다이나믹프로그래밍
- dfs
- BFS
- 프로그래밍언어론
- C/C++
- Python
- 시애틀
- 백준
- jvm
- 백트래킹
- Spring Framework
- 릿코드
- 스프링 프레임워크
- 프로그래머스
- 모두를 위한 딥러닝
- binary search
- 알고리즘
- leetcode
- Java
- Today
- Total
케이스윔의 개발 블로그
[Lec04] Multi-variable Linear regression 이란? 본문
오늘은 하나의 변수가 아닌 여러 개의 multi-variable을 사용하는 Multi-variable Linear regression을 공부한다.
Linear regression 위해 필요한 3가지를 다시 기억해보자.
1. Hypothesis: 가설이 무엇인가 = 내가 어떻게 예측할 것인지를 나타내는 것이다. -> H(x) = Wx +b (weight와 bias)
2. cost function: 가설이 정해졌다면 그것을 통해 내가 W, b를 잘 계산했는지 아닌지를 판단하는 함수이다.
cost(W, b) = 1/m((예측값-실제값)합들의 제곱)
3. Gradient descent Algorithm: cost를 최적화하는 알고리즘이다. -> 경사를 따라가는 알고리즘
예를 들어서 퀴즈1, 퀴즈2, 중간고사 점수를 통해서 기말고사 점수를 예측해보자! 이것은 여러개의 input을 통해서 값을 예측하는 것이다.
Hypothesis(가설) -> H(x1, x2, x3) = w1x1 + w2x2 + w3x3 +b
cost(W,b) = 1/m(예측한 H(x1[i],x2[i], x3[i])-y[i] 합들의 제곱)
위의 경우는 x1, x2, x3는 3가지의 변수이지만 만약 변수가 많아져서 너무나 길어진다면 어떡하지?
H(x1, x2, x3, ... , xn) = W1x1 + W2x2+W3x3+ ... + Wnxn +b 와 같이 수식이 너무 길어진다면 Matrix를 이용하자! Matrix의 곱셈을 통해서 간단하게 표현할 수 있다.
H(X) = XW -> X와 X의 순서가 바뀌어 있지만 똑같다. 대문자는 matrix라는 뜻이다. input 한 쌍을 instance라고 하는데 Matrix를 통해서 instance의 계산을 쉽게 할 수 있다. ->많은 instance가 있더라도 Matrix에 전체 instance 수 만큼 넣고 계산할 수 있다는 장점이 있다.
[5, 3]·[3, 1] = [5, 1]에서 W의 Matrix에 3개가 온 이유는?
: 3개의 feature가 있기 때문에!
X의 Matrix에서 각 행과 열이 뜻하는 것은 instance의 수와 variable수이다.
이 계산을 통해서 H(X)의 결과로 나온 Matrix는 instance가 몇 개가 나와야 하는지, Y의 값을 몇 개를 낼 것인가를 뜻하는데
이 부분에서 우리가 설계해야 하는 부분은 W의 weight가 어떻게 되는 지이다. 설계하는 방법은 앞 Matrix의 variable 수에서 가져오고 Y를 몇 개를 낼 것인가에서 가지고 온다!
몇 개의 Variable의 수를 통해 몇 개의 Y를 만들어낼 것인지를 통해 W의 크기를 결정할 수 있다.
다시 간단하게 정리하자면 아래와 같다.
[5, 3]·[3, 1] = [5, 1]
instance수, var수, ? , ? = instance가 몇 개 나와야 하는가, Y의 값
-> 우리가 설계해야 하는 물음표는 몇 개의 Variable인지, 몇 개의 Y를 만들어 낼 것 인지이다.
n개의 아웃풋이 주어졌다면?
[n,3] [?, ?] = [n,2]라면
입력의 값이 3개고 만들어내야 하는 출력이 2니까 설계해야 하는 W는 [3, 2]이다!!!
Matrix를 사용하면 입출력 둘 다 여러 개여도(Multi-variable) 사용하기 쉽다.
WX vs XW
lecture(theory) : H(x) = Wx+b
implementation(tensorflow) : H(X) = XW
수학적 의미는 두개가 같다.
'모두를 위한 딥러닝' 카테고리의 다른 글
[Lec5-1&5-2] Logistic Classification의 가설 함수 정의와 cost 함수 설명 (0) | 2018.05.06 |
---|---|
[Lab4-1&4-2] Multi-variable regression 및 Loading Data from file (0) | 2018.04.30 |
[Lec03] Linear Regression의 cost 최소화 알고리즘의 원리 설명 (0) | 2018.04.29 |
[Lec02] Linear Regression의 Hypothesis와 cost 설명 (1) | 2018.04.26 |
[Lec01] 기본적인 머신러닝의 용어와 개념설명 (0) | 2018.04.25 |