일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hadoop
- 마약
- 시시콜콜 네덜란드 이야기
- #라즈베리파이
- 이희인
- 원죄형 인간
- 박진식
- 시작하세요! 하둡프로그래밍
- 톨스토이가 답하다
- 빨치산
- #DeepLearning
- 신의 한수
- Airline Delay Count
- 열아홉 편의 겨울 여행과 한 편의 봄 여행
- 진정한 노력
- #softmax
- 종이의 TV
- 밥 짓기 방법
- 창조적 시선
- 제주
- #모두를위한딥러닝
- #모두를위한DeepLearning
- #워드프레스
- 유해도서
- 안나 까레리나
- #LinearRegression
- 위안부
- 아우라가 있는 사람
- 복지천국
- 초천재
- Today
- Total
Thing's by Actruce
모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 01 본문
이 포스트는 유명한 홍콩 과기대 김성훈 교수의 "모두를 위한 딥러닝 강좌 시즌 1" 의 내용 중 Convolution Neural Network 이전
특히, 29강 까지의 내용을 중점적으로 리뷰해 보고자 한다. (리뷰01, 02, 03, 04, 05, ...)
CNN 은 별도의 포스트를 구성할 예정이다.
본 포스트의 내용은 김성훈 교수의 Lecture Note 의 내용 및 Lab File 을 활용했음을 알려둔다.
Sung Kim “모두를 위한 딥러닝 강좌 시즌 1”
> 강의 동영상 : https://goo.gl/2cqKLz
> 강의 웹사이트 : http://hunkim.github.io/ml/
> Lecture 슬라이드 : https://goo.gl/4373zL
> Lab 슬라이드 : https://goo.gl/WwCu4U
> 강의 소스코드 : https://goo.gl/T2fuYi
리뷰01 : Simple Linear Regression (강좌 Lecture 2) / Multi Linear Regression (강좌 Lecture 4) / TensorFlow Mechanics (강좌 Lab 01)
1. Simple Linear Regression (단순 선형 회귀)
- 선형 회귀식은 특히 하나의 변수에 대한 선형 회귀식은 y = wx + b 와 같이 나타난다.
- 일차 방정식에서 흔히 보던 y = ax + b 와 같은 형태라고 생각하면 된다.
문제는 방정식 처럼 정확히 해가 나오는 것이 아니라 머신 러닝의 Learning 이 적용된다는 것이다.
그래서 가설 H : Hypothesis 를 설정한 후 Training Data Set 으로 가설과 실제 값이 얼마나 맞는지 비교하게 되는데,
이 때 사용하는 것이 Cost Function 이다.
<H := wx + b, 가설과 실제 매핑 된 데이터>
<3개 데이터에 대한 Cost Function 을 구하는 과정>
Cost Function 은 각 트레이닝 데이터와 실제 y 값의 차이를 제곱해 더한 후 3으로 나누게 된다.
결국 x 라는 변수 기준으로는 2차 식으로 구성되어 Gradient Descent Algorithm 이 적용가능해 진다.
무슨 말이냐면, 이차식은 2차 다항식의 형태로 미분시 최저값이 한 곳으로 수렴하는데 이를 다른 말로는 Convex Function 이라 한다.
Convex 하기 때문에 어느 Point 에서 출발하더라도 결국은 최저점을 찾는 방향으로 수렴하게 되고 트레이닝이 거듭 되다보면 이를 찾을 수 있다는 믿음이 존재한다. (Gradient Descent Algorithm 에 대해서는 다음 다음 Post 에서 더 다루겠다.)
2. Multi Linear Regression (다변량 선형 회귀)
위에 1개 변수 사용에 이어 여러개 변수를 사용하는 선형 회귀에 대해서 알아본다.
방법은 같다. 다만 x 라는 한 개의 변수 대신 x1, x2, x3, ... 처럼 차원이 늘어나고 따라서 단순히 2차원 평면에 나타낼 수가 없다. 변수가 2개만 되어서 3차원이 되고 3개부턴 4차원이 넘어가기 때문이다.
다음과 같은 3가지 Factor 로 구성된 데이터와 Y 값을 확인해 보자.
쉽게 생각해서 국어(x1), 영어(x2), 수학(x3) 성적과 최종 수능성적(y) 사이의 관계라고 생각하면 편하다.
아래에는 5개의 Sample 이 있으며 이를 통해 가설을 세우고, 가설을 통해 새로운 Test Data 가 들어올 경우 수능 성적을 예측하려는 것이다.
이에 합당한 가설(Hypothesis)와 Cost Function 은 다음과 같다.
말 그대로, 다변량 (Multi Variable) 이기 때문에 이를 일반화 시키면, Hypothesis 는 다음과 같아 진다.
하나의 가설이 이렇고 위의 표에 나온 5개의 데이터를 모두 넣는다면, 이를 표현하는게 힘들어진다.
이럴 때 우리가 고등학교 때 배운 유용한 Matrix 라는게 등장한다. 이를 이용하면 아주 쉽게 한방에 표현이 가능하다.
위와 같은 원리로 5개 데이터도 한 방에 표현해 보면,
X, W 는 Matrix 를 의미하고 순서가 바뀐건 Matrix 곱셉을 위해서 순서를 바꿔야 하기 때문이다. X의 (행, 열) W의 (행, 열) 의 수가 맞아야 된다는 사실은 알고 있으리라 생각한다.
3. TensorFlow Mechanics
Multi Linear Regression 의 표현까지 대략적으로 알아 보았는데, Tensor Flow 를 사용하여, 회귀분석을 실습해 보기 전에, Tensor Flow 의 기본 동작방식에 대해서 확인해 보자.
1. 그래프를 작성한다.
- 노드 (레이어에 속하는) 를 표현하고 이들 사이의 연산을 정의
2. 학습 및 검증에 사용할 데이터를 공급하고 그래프를 실행한다.
- 학습에 사용할 Training Data (X Data, Y Data)
- 실행에 사용되는 Session 을 Run
3. W, b 와 같은 변수들을 업데이트
- 학습을 반복하면서 (Learning Rate 와 Epoch) 변수들을 Cost 가 최소화 되는 방향으로 업데이트 해 나간다.
- 뒤에 설명될 Chain Rule 에 의해서 각 변수들은 최소화 되는 방향 (편미분 값)으로 점진적으로 업데이트 된다.
아래는 다변량 선형 회귀를 Tensor Flow 로 구현한 예제이다. 본 포스트에서는 실습 내용 자체를 자세히 다루지는 않겠다. Youtube 강좌를 참조하기 바란다.
'IT > Deep Learning' 카테고리의 다른 글
모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 06 (0) | 2017.12.17 |
---|---|
모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 05 (0) | 2017.12.17 |
모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 04 (0) | 2017.12.17 |
모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 03 (0) | 2017.12.17 |
모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 02 (0) | 2017.12.17 |