머신러닝 다시 시작하기 - 1

이미지
머신러닝 다시 시작하기 - 1 머신러닝 다시 시작하기 - 1 앤드류 융 교수님 강의로 다시 머신러닝 공부해볼 계획이다. 우선 머신러닝에 대해 간단히 적어보겠다. 머신 러닝은 크게 아래와 같은 절차를 거친다. [모델링] 데이터를 보고 어떤 모델을 사용할 지 결정한다. [학습] 결정한 모델을 학습시킨다. [평가] 그 모델을 평가한다. 위의 절차는 머신러닝 전과정을 크게 본 것이다. 세부적으로 많은 절차들이 있다. 1번째 요약에서는 세부적인 절차는 다루지 않고 나중에 따로 다루도록 해야겠다. 1. 모델링 데이터를 보고 어떤 모델을 사용할 지 사용자가 결정하여 머신러닝을 시작한다. 머신러닝에 쓰이는 데이터에는 여러 종류가 있다. 크게 2개로 나눈다면, 정답이 있는 데이터와 정답이 없는 데이터로 나누고 싶다. 그에 따라 학습 방법론이 달라진다. 정답이 없는 데이터는 비지도 학습 에 쓰이고, 정답이 있는 데이터는 지도 학습 에 쓰인다. 굉장히 중요하다. X ( = F e a t u r e s ) → h ( θ ) ( = H y p o t h e s i s ) → Y ( = A n s w e r s ) X(=Features) \rightarrow h(\theta) (=Hypothesis) \rightarrow Y(=Answers) X ( = F e a t u r e s ) → h ( θ ) ( = H y p o t h e s i s ) → Y ( = A n s w e r s ) 베이스는 위와 같다. 정답인 Y와 내가 예상한 값 h를 비교하면서 θ \theta θ 를 조절하는 과정을 반복한다. 어떻게 반복되는 지는 나중에 더 자세하게 적도록 하겠다. 1-1) 지도 학습 지도 학습 은 정답(Label)이 있는 데이터를 학습시킬 때 사용된다. 크게 회귀(Regression)과 분류(Logistic Regression = Classification)로 나눌 수 있다. 1-1-1) 회귀(Linear...

#5 수경재배 스마트팜 (1)

이미지
집에서 농사해서 직접 재배해 먹으면 좋을 것 같다는 생각에서 시작되었다. 전공도 컴퓨터이고 아두이노, 라즈베리파이를 이용하면 될 것 같다고 생각했기 때문에 수경재배에 대해 알아보았다. 집에서 현실적으로 가능한 수경재배기법은 무엇이 있을까 생각해보았는데 답은 이미 시중에 파는 제품들에 있었다. 점적관수형 수경재배기법이 쉽기도 하고 현실 가능해보였다. (출처: https://hydroponicsgrower.org/wp-content/uploads/2014/01/1-Hydroponic-Drip-System.jpg ) 윗쪽 물을 담고 있는 통을 어떻게 이용하느냐에 따라 다시 세분된다. 위와 같은 방법은 하나의 큰 통을 이용했지만 구하기가 어려워 PVC 파이프를 이용했다. 큰 틀은 위의 사진과 같다. PVC 파이프에 구멍을 뚫어 식물 재배 포트를 끼우고 그 안에 식물을 키우는 구조이다. 물이 노지 재배에서의 흙을 대체한다. 그러기 위해선 흙 속의 영양분을 물 안에 녹여야 한다. 물 속에 양액을 넣어 영양분을 채워준다. 이것이 수경재배의 핵심인 듯 하다. 이 글에서는 농사에 대한 기술적인 부분이나 방법론에 대해는 세세하게 기술하지 않겠다. 그러면 글이 너무 방대해져 오랜 기간 써야 하고 블로그는 컴퓨터와 책에 대한 주제이기 때문이다. 또 중요한 키 포인트는 집에서 스마트팜을 하기 때문에 햇빛이 필요 없게 하고 싶었다. 구글링 하던 중 일본식 스마트팜은 조명으로 햇빛을 대체한다고 한다. 그래서 알아보던 중 네이버 카페 "나만의 베란타 텃밭 이야기"에 가입하고 도움을 정말 많이 얻었다. 이 카페 회원분들이 아니였다면 이 프로젝트의 기간은 엄청 길어졌을 것이다. 요약하자면 위 점적관수형 수경재배기법의 핵심은 아래와 같다. - 두 개의 물을 담는 통이 있고 하나는 포트를 끼워 식물을 재배하고, 나머지 하나는 물을 갈아줄 때 필요하다. - 물은 흙의 역할 중 영양분 공급을 대체하기 위해 양액을 넣어야 한다. - 햇빛이 없는 장소에서의 식물 성장을 위해 조명...

다시 시작!

2017년 군입대 후 2019년 군복무를 마치고 2020년 다시 시작한다. 전역하고 공인중개사를 준비하느라 컴퓨터 공부를 하지 못했다. 군입대 전 머신러닝에 대해 열심히 공부하다가  알파고의 등장으로 대학원의 길이 좁아졌었다. 연락해보니 같은 대학 학부생들에게 인기가 너무 많아진 랩실이 외부 대학에서 들어오는 대학원생을 덜 뽑는다고 했다. 그렇게 도피식 입대를 하게 되고 전역 후 지금 다시 시작한다. 3년 동안 머신러닝은 너무 발전한 듯 하다. 공부를 새로 처음부터 할 계획이다. 그래도 옛날에 했던 거라 힘들지는 않지만 갈 길이 멀다. 우선 차근차근 바로 앞만 보며 하나씩 해나가야겠다.

#7 <처음 읽는 로마사>를 읽으며..

이미지
책 정보 저자 : 모토무라 료지 출판사 : 교유서가 이 독서의 주된 이유는 로마사에 대해 공부하기 위해서 이다.  또한 콜린 메컬로의 책을 읽고 싶어서 이 책을 선행 학습으로 읽었다. 평소에 로마에 대한 관심이 많았다.  그래서 콜린 메컬로의 <마스터즈 오브 로마> 시리즈 전권을 읽고 싶었다. 하지만 시리즈의 첫번째인 로마의 일인자를 앞부분만 읽었는데 배경 지식이 부족해 이해가 가지 않았다. 그래서 배경 지식을 좀 학습하고자 이 책을 먼저 읽기 시작한 것이다. 이 책은 기승전결로 나뉘며 기승전결에 포함된 7가지 질문에 답하는 형식이다. 기 1. 왜 로마인은 공화정을 선택했을까? 2. 왜 로마군은 강했을까? 승 3. 왜 로마는 대제국이 되었을까? 4. 왜 로마는 속주민에까지 시민권을 주었을까? 전 5. 왜 황제는 빵과 서커스를 제공했을까? 6. 왜 그리스도교는 탄압을 받았을까? 결 7. 왜 로마는 멸망했을까? 위 내용들을 모두 열거하며 정리할 수는 없으니 각 장마다 내가 생각하는 중요한 부분들을 정리하는 형식으로 글을 써야겠다. 로마 건국 시기에는 왕정이었다. 하지만 기원전 509년, 로마는 원로원이 루키웃흐 타르퀴니우스 수페르부스를 추방하는 방식으로 왕정에서 원로원 중심의 공화정 국가로 이행했다. 저자는 왕을 추방하고 또 왕을 뽑을 수도 있었는데 원로원 중심의 공화정을 택했는가라는 질문에 로마인 정신인 '나는 자유인이다.'라는 정신이 작용했다고 한다. 하지만 내 생각은 조금 다르다.  대부분 인간은 남이 잘 되는 꼴을 잘 못 본다. 그리고 원로원 내에서 내가 좋아하지 않는 사람이 왕이 되는 꼴을 못 볼 것이다. 그래서 권력을 공정하고 나누는 방식을 택한 듯하다. 집정관이라는 직무에 두 명의 사람으로 구성한 것도 같은 이유인 것 같다.  로마가 공화정을 선택할 시기에 그리스 또한 ...

#8 <세일즈맨의 죽음>을 읽으며..

이미지
책 정보 저자 : 아서 밀러 출판사 : 민음사  신곡과 대학.중용 시험을 마치고 이제 세일즈맨의 죽음이라는 책을 선택하여 시험을 봤다. 통과 후 쓰는 독후감이다보니 후련하다. 사실 이 책을 선택하게 된 계기는 가장 얇은 책이었기 때문이다. 200페이지도 되지 않는다. 하지만 짧은 내용 속에 많은 것이 담겨져있다. 배경은 미국 대공황 시기이다. 아메리칸 드림이 깨지는 순간을 잘 묘사해냈다. 이 책의 저자인 아서 밀러는 자신의 삼촌을 모티브로 이 책을 썼다고 한다. 저자의 삼촌과 이 책의 주인공인 윌리는 많이 닮았다. 미국은 공급이 넘치고 수요가 따라가지 못할 때 세일즈맨이라는 직업이 히트를 쳤다고 한다. 모두가 풍부한 시기인 아메리칸 드림이었다. 하지만 대공황을 맞딱뜨리고 세일즈맨은 물론 모두 무너지고 만다. 그 시대의 한 가정의 세일즈맨이라는 직업을 가진 아버지가 무너지는 과정을 그리고 있다. 그 과정 속에서 가족간의 충돌, 이웃 친구간의 충돌 등 일반 시민들이 겪을 가능성이 있는 소재가 나타난다. 주인공 윌리는 너무 힘든 상황을 겪을 때마다 과거를 회상하는데 주로 아들들과 좋은 추억들을 떠올리며 그 회상 속으로 빠져든다. 윌리는 자신의 아들들은 굉장히 대단하다고 믿고 좋은 측면만 바라보는 아버지이다. 하지만 현실은 그렇지 못한 아들들이 되어버리고 만다. 첫째인 비프는 미식축구 선수로 고등학교 때부터 멋진 활약을 하지만 아버지의 불륜 현장을 목격하고 좌절한 뒤 모든 것을 포기한다. 3개의 좋은 대학에서 스카웃 제의를 했지만 비프는 수학 낙제를 지우지 못하고 대학에 들어가지 못한다. 둘째인 해피는 여자를 좋아하는 바람둥이로 나온다. 해피는 책에서 큰 역할을 하지 않지만 비프와 윌리 사이에서 중재하는 역할을 한다. 윌리의 아내인 린다는 헌신적인 아내이다. 남편이 기죽을까봐 수입에 대해 얘기하지 않고 자식들에게 아버지를 좀 도와달라고 한다. 마지막에도 윌리의 묘 앞에서 독백하는 장면에서 윌리를 ...

Chapter01-02 Reinforcement Learning

Chapter 01-02. 수업 소개 & OpenAI Gym Sung kim님의 유뷰트 강의 에서 공부한 내용을 정리하고자 한다. 강화 학습은 공부할 수 있는 기회가 별로 없기 때문에 소중한 자료이기도 하다. 대부분이 알듯이 게임 분야에만 특화된 것이 아니라 회계, 비즈니스, 메디아 등 여러 분야에 투입될 수 있다. 예상 독자는 의지만 있으면 누구나 가능하다고 하니 다행이다. tensorflow와 python 으로 예제를 수행하기 때문에 나와 매우 적합하다고 판단하여 이 강의를 선택하게 됐다. OpenAI Gym 은 강화학습에서 환경 설정을 해주는 프레임 워크이다. 특정한 환경 안에서 Action과 State를 가지고 Agent가 학습하게 된다. """ * Reinforcement Learning """ import gym import tensorflow as tf from gym.envs.registration import register import sys, tty, termios class _Getch : def __call__ (self) : fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try : tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read( 3 ) finally : termios.tcsetattr(fd, termios.TCSADRAIN,old_settings) return ch inkey = _Getch() LEFT = 0 DOWN = 1 RIGHT = 2 UP = 3 arrow_keys = { '\x1b[A' : UP, '\x1b[B' : D...

Deep Learning with Standford Tutorial heart.csv data ( keras )

''' * llewyn 17.03.02 * 3 Layers Neural Network using Stanford-Tutorial's heart.csv data ''' from keras.models import Sequential from keras.layers import Dense, Dropout from sklearn.model_selection import train_test_split import pandas as pd import os ''' * Set up Paths and Numbers ''' DATA_PATH = os.getcwd() + '/data/heart.csv' FEATURE_NUM = 9 BATCH_SIZE = 50 HIDDEN1_SIZE = 32 HIDDEN2_SIZE = 13 OUTPUT = 1 MAX_RANGE = 5000 ''' -------------------- Preprocessing ------------------- * Read csv data and split to label and features * Change 'Present' in 'famhist' feature to 1.0 float --> I think there is another way to do that. * Make dataframe to list in order to insert to train_test_split function. ''' features_str = [] feature_cols = [ i for i in range( 9 ) ] label_col = [ 9 ] features_df = pd.read_csv(DATA_PATH, header= 0 , usecols = feature_cols) label_...