파이선 코딩을 배우는 초보자도 머신 러닝에 한번 도전해 보자. 머신 러닝을 배우려는 초보자들이 가지게
될 의문점들을 찾아내어 실제 내용과 결과를 확인해볼 수 있도록 완전히 뒷문(?)으로 들어가
시작하는 머신 러닝! 우선 아래 url 을 방문하여 url 로 구성된 본 서의 목차 파일을 무료로 다운로드 받아
펼쳐서 살펴보시기 바랍니다.
파이선 코딩 초보자를 위한 톈서플로우∙OpenCV 머신러닝 머리말과 url
목차 파일 다운로드
https://steemit.com/kr/@codingart/pryx1-opencv
450페이지 19900원 교모문고 퍼플에서 도서주문판매로만 판매중입니다.
_________________________________________________________________________________________
Linear regression 선형회귀법 유형의 머신 러닝 코드를 다루기 위한 전초 작업으로서 Linear regression에서 다루게 될 리스트 데이터를 설정해서 워밍업을 해보자.
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
y_data 와 x_data 사이의 함수관계가 y=2x 라는 점은 누구라도 알 수 있다. 혹 알 수 없다면 y=ax+b 라고 가정을 한 상태에서 점의 좌표를 대입헤 보면 쉽게 a 와 b 값을 알아낼 수 있다. 하지만 컴퓨터에게 이런 수학을 공자왈 맹자왈 가르칠 수는 없는 노릇이고 보면 컴퓨터가 이런 문제를 풀 수 있는 좋은 방법은 없을까?
그 방법이 바로 지도학습(supervised learnig)에 의한 머신 러닝이다. 그렇다면 어떻게 하느냐?가 관건이다. 컴퓨터로 하여금 일차함수 형태의 hypothesis까지 가르쳐주는 것이다. 머신 러닝 전체를 통 털어서 다루는 함수의 97% 정도가 바로 일차함수이다. 가장 쉽기 때문 아닐까? 일차함수라고 힌트만 주고 위 리스트형 데이터를 준 상태에서 알아서 w값을 찾아내라는 것이 바로 선형 회귀법 문제이다.
w는 미지수 이므로 처음에는 랜덤 수를 하나 생성하여 준 상태에서 일차함수 형태의 hypothesis를 사용하여 x_data를 입력해 보면 뭔가 숫자 값이 얻어지는데 그 결과가 당연히 y_data 와 일치하지 않으며 일치하지 않는 만큼 오차를 계산해 낼 수 있을 것이다. 얻어지는 오차가 양이나 음일 수 있으므로 제곱해서 합산한 전체 오차를 계산해 볼 수 있다. 문제는 컴퓨터가 어떤 방식으로든 학습을 해야 하는데 그 방법 중의 하나가 최소제곱법이다. 즉 계산되는 오차 값이 최소가 되도록 w 값을 바꾸어 보는 것이다. 위 문제의 경우는 최종 오차의 최소값이 0.0이 될 수 있다.
맨 처음에는 w 의 값을 모르므로 랜덤한 수로 처리한다고 해도 그 다음번에는 합산한 오차의 값이 줄어 들도록 w 값을 선택하는 법을 가르쳐야 한다.
지금까지 설명한 내용을 최소제곱법 기준으로 부연 설명해 보자.
hypothesis = w*x 이므로 x_data
의 를 대입한 값에서 알고 있는 값 즉 정답 y_data
의 값을 각각 빼고 제곱해서 합산하면 미지수 w에 관한 2차식이 얻어지는데 이를 cost 함수 또는 loss 함수라 한다.
이 w의 이차식의 최소값을 알아내기 위해서는 Matplotlib를 사용하여 그래프를 작성하는 것도 하나의 방법이 될 것이다.
하지만 컴퓨터에서 보다 빠르게 최소값을 찾아내기 위해서 w의 이차식을 미분하여 기울기를 계산하여 조금씩 w값을 움직여 함수값을 체크해 보아 함수 값 변동이 거의 없는 즉 최소값을 찾아내는 것이며 비로서 w값이 결정되는 것이다. 그러한 수치적인 방법을 경사하강법(Gradient Descent)이라고 한다.
이 문제를 파이선 언어로 코딩하려면 윈도우즈10에서는 아나콘다를 다운 받아 사용하면 편리하다. 반면에 라즈베리 파이에서 코딩해 보려면 OS를 설치함에 따라 Python2 또는 Python3 편집기가 설치되어 있으므로 그대로 이용하면 된다. 하지만 아나콘다나 라즈베리를 이용할 경우에는 필요로 하는 최소한의 라이브러리들 즉 머신 러닝을 지원하는 TensorFlow나 그래픽을 지원하는 Matplotlib 및 과학 및 수치 계산을 지원하는 NumPy를 설치해야 한다.
한편 Google에서 Colabo를 직접 사용하는 것도 대안이 될 수 있다. Colabo에서는 Python 라이브러리들을 별도로 설치할 필요가 없으며 직접 import tensorflow as tf 과 같이 입력해서 실행하면 그걸 족하다. PyTorch 도 별도로 설치할 필요가 없으며 첫줄에 import torch 한 줄이면 족하다.
'머신러닝' 카테고리의 다른 글
초보자를 위한 선형회귀법 예제 PyTorch 코딩 (0) | 2019.06.27 |
---|---|
단 1 시간이면 가능한 머신 러닝 초보자를 위한 구글 Colab 노트북에의 초대 (0) | 2019.06.26 |
초보자를 위한 Anaconda3 선형회귀문제 단순 파이선 코딩 연습문제 (0) | 2019.06.26 |
구글 Colabo에서 PyTorch CIFAR-10 이미지 머신 러닝 II (0) | 2019.06.23 |
이미 특이점을 뛰어 넘었던 중국의 슈퍼컴퓨팅 미중무역전쟁으로 허무하게 아작나는가? (0) | 2019.06.22 |