728x90
Introduction

Introduction

  • 어떻게 머신러닝 모델이 동작하고 어떤 방식으로 사용되는지에 대해 간략히 알아봅시다. 아마도 통계적 모델링 혹은 이전의 머신 러닝에서 진행하였기 때문에 기본적인 문제로 보일 수도 있습니다. 걱정하지 마세요, 우리는 곧 강력한 모델을 만들 것입니다.
  • 이 짧은 코스는 여러분이 다음과 같은 시나리오로 모델을 만들도록 할 것입니다:
  • 당신의 사촌이 부동산에 투자하여 수백만 달러를 벌어들였습니다. 그는 당신이 데이터 사이언스에 관심이 있었기에 같이 비즈니스 파트너가 될 것을 제안했습니다. 그는 자금을 공급하여 줄 것입니다. 그리고 당신은 어떤 주택이 가치가 있는지에 대해 예측하는 모델을 공급할 것입니다.
  • 당신은 사촌에게 어떻게 그가 과거에 부동산 가치를 예측했는지에 대해 질문하고, 그는 단순히 직감이라고 답합니다. 하지만 더 많은 질문이 그가 과거에 보아 왔던 집들에서 가격 패턴을 인식하는 방식을 드러냈고, 그는 이러한 패턴을 그가 고려중인 새 집에 대한 예측에 사용하고 있습니다.
  • 머신 러닝은 이와 같은 방식으로 동작합니다. 우리는 결정 트리(Deceision Tree)라 불리는 모델로 시작하게 될 것입니다. 더 정확한 예측을 제공하는 더 많은 모델이 있습니다. 하지만 결정 트리는 이해하기 쉽고, 데이터 사이언스의 최적화된 모델을 설정하기 위한 초석이라고 할 수 있습니다.
  • 단순화를 위해, 우리는 가장 단순한 결정 트리로 시작하겠습니다.
  • 이는 집을 오직 두 카테고리로 나눕니다. 어떠한 집의 판단 하에 예측된 가격은 동일 카테고리에 속하는 집들의 평균가입니다.
  • 우리는 데이터를 두 그룹으로 나누는 결정에 데이터를 사용하고, 다시 각 그룹의 예상 가격을 결정합니다. 데이터에서 패턴을 찾는 이 단계를 모델의 **피팅(fitting)**과 **학습(training)**이라고 합니다. 모델을 피팅하는데 사용된 데이터를 **학습 데이터(training data)**라고 부릅니다.
  • 어떻게 모델이 피팅되는가(예를 들어, 어떻게 데이터를 분류하는지)에 대한 자세한 내용은 복잡한 문제인 만큼 나중을 위해 남겨두도록 합시다. 모델이 피팅된 후, 당신은 새로운 데이터를 다른 집의 가격을 예측하기 위해 적용할 수 있습니다.

Improving the Decision Tree

  • 다음 두 결정 트리 중 어느것이 부동산의 학습 데이터를 피팅한 결과에 더 적합하다고 할 수 있을까요?
  • 왼쪽(Deceision Tree 1)의 결정 트리가 아마 더 적합할 것입니다. 왜냐하면 침실이 더 많은 집이 더 적은 집보다 더 비싼 가격에 팔리는 현실을 반영하기 때문입니다. 이 모델의 가장 큰 단점은 욕실의 개수, 토지의 크기, 장소 등과 같은 집값에 영향을 주는 대부분의 요인은 반영하지 못한다는 점입니다.
  • 여러분은 더 많은 '분류'를 갖는 트리를 이용하여 많은 요인을 반영할 수 있습니다. 이런 것들을 "깊은" 트리라고 부릅니다. 각 집의 토지 크기도 고려하는 결정 트리는 아마 이렇게 생겼을 것입니다.
  • 여러분은 이 결정 트리를 따라서, 집의 특성에 맞는 경로를 선택함에 따라 어떤 집의 가격을 예측합니다. 집의 예측된 가격은 트리의 맨 밑에 존재하게 됩니다. 우리가 결정을 내리는 맨 밑의 지점을 **잎(leaf)**라고 부릅니다.
  • 잎에서의 분류와 값은 데이터에 의해 결정됩니다. 이제 여러분이 작업할 데이터를 확인해 볼 시간입니다.
728x90
728x90

 

6. 두번째 딥러닝 - 보스턴 집값 예측

  • 각 행은 하나의 타운을, 각 열은 특성값을 의미
    • 마지막 열(중앙값)이 종속변수, 그 외의 열이 마지막 열에 영향을 주는 독립변수
    • 1 ~ 13열의 값 - 마지막 열 값의 관계를 이용한 지도학습
  • 중앙값과 평균
    • 중앙값 : 여러 값을 크기순으로 정렬할 때, 가운데 있는 값
    • 평균값 : 값의 합을 개수로 나눈 값
    • 평균값이 보통 집단을 대표하는 값이나, 높거나 낮은 쪽으로 값이 편중될 경우 괴리의 위험이 있음 ( = 이상치 ). 이 경우 대안으로 중앙값을 사용
  • 수식과 퍼셉트론
    • keras 모듈을 이용, 13개 입력 - 1개 출력을 갖는 수식 형성 가능
    • 위 그림의 인공신경망 모델을 퍼셉트론(perceptron) 이라고 정의 : n개 입력 - 1개 출력을 갖는 모델
    • 퍼셉트론 모델의 w1, w2, ..., w13 값을 가중치(weight)라고 정의
    • 상수 b값은 편향(bias)이라고 정의
    • ex ) 12개의 독립 / 2개의 종속변수가 존재 시
      • Input Layer는 12, Dense Layer는 2의 크기를 갖게 됨
      • 2개의 퍼셉트론이 병렬로 존재, 학습 시 각 퍼셉트론 별로 가중치과 bias값을 찾아주어야 함(24개 weight, 2개 bias)

7. 학습의 실제

  • 딥러닝 워크북을 활용하여 직접 원리를 배워 보기
  • 1개 독립 / 1개 종속변수를 가정
    • W(가중치), B(편향)의 초기값 가정 : y = W * x + B
    • 초기값으로 계산된 W, B, Loss를 저장
    • W의 값을 약간 조정
      • W의 값 변화분에 대한 Loss값 변화 확인
      • 해당 값을 기반으로 다음에 설정할 W값 확인
    • B를 Loss가 작아지도록 값 조정
      • B 값 변화에 대한 Loss 값 변화 확인
      • 그 값을 기반으로 다음 B값 확인
    • 계산한 다음 W, B값을 식에 대입해 Loss값 변화 확인
    • 위 과정을 반복하여 일정 이하로 Loss가 감소할 때까지 반복
728x90
728x90
4. 표를 다루는 도구 '판다스'

4. 표를 다루는 도구 '판다스'

  • 머신러닝의 첫 단계 : 데이터 준비
    • 대부분의 데이터는 파일 형태로 존재
    • 파일 형태의 데이터를 프로그램을 이용하여 읽어들임
파일경로 = '___.csv' 데이터 = pd.read_csv(파일경로)
  • 왼쪽에 있는 파일 경로, 데이터를 변수라고 칭함
    • 표의 형태의 데이터에서 변수는 열을 의미 : 행이 변할때마다 그 값이 변화하므로
    • 지도학습은 데이터의 독립변수(원인)과 종속변수(결과)를 분리하는 것이 중요
  • 판다스
    • 표를 다루는 파이썬 라이브러리
# -*- coding: utf-8 -*- ''' # 판다스 실습 - 실습을 통해 배울 함수 - 파일 읽기 : pd.read_csv('경로.csv') - 모양 확인하기 : 데이터.shape - 칼럼 선택하기 : 데이터[['칼럼명']] - 칼럼 이름 출력하기 : 데이터.columns - 맨 위 관측치 출력하기 : 데이터.head ''' import pandas as pd # pandas 라이브러리 # 파일로부터 데이터 읽어오기 파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv' 레모네이드 = pd.read_csv(파일경로) 파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv' 보스턴 = pd.read_csv(파일경로) 파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris.csv' 아이리스 = pd.read_csv(파일경로) ########################### # 데이터의 모양 확인 : (행, 열) 형태 print(레모네이드.shape) print(보스턴.shape) print(아이리스.shape) ########################### # 데이터 칼럼 이름 확인 print(레모네이드.columns) print(보스턴.columns) print(아이리스.columns) ########################### # 독립변수와 종속변수 분리 독립 = 레모네이드[['온도']] 종속 = 레모네이드[['판매량']] print(독립.shape, 종속.shape) 독립 = 보스턴[['crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax', 'ptratio', 'b', 'lstat']] 종속 = 보스턴[['medv']] print(독립.shape, 종속.shape) 독립 = 아이리스[['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭']] 종속 = 아이리스[['품종']] print(독립.shape, 종속.shape) ########################### # 각각의 데이터 확인해보기 : head - 보통 처음 5줄 출력, head(10) 지정 시 10줄 출력 등, 데이터 개수 지정 가능 print(레모네이드.head()) print(보스턴.head(10)) print(아이리스.head())

5. 첫번째 딥러닝 - 레모네이드 판매 예측

  • 데이터의 학습
    1. 데이터 준비
    2. 모델 구조 형성 : 독립 / 종속밴수의 크기 확인 필수 (입-출력 크기 정의)
    3. 데이터로 모델 학습
    4. 모델의 활용
  • 손실(Loss)
    • tensorflow - keras의 model.fit() 함수에 대해
    • model.fit(독립, 종속, epochs = 10) : epochs는 반복 횟수를 의미
    • Loss : 학습 정도의 지표
      • 종속 변수 - 모델의 예측 결과의 차의 제곱의 합
      • Loss값이 0에 가까울수록 정확한 예측
728x90
728x90
0. 오리엔테이션

0. 오리엔테이션

  • 머신러닝 = 기계를 학습시켜 인간의 판단을 위임
  • 지도학습 = 회귀 + 분류
    • 회귀 : 숫자형 데이터 예측
    • 분류 : 범주형 데이터 예측
  • 지도학습의 방법 (머신러닝 알고리즘) : decesion tree, random forest, KNN, SVM, Neural Network 등등...
    • Tensorflow 1 수업에서는 Neural Network를 사용 : 인간의 신경망을 모방(인공 신경망 / deep learning)
  • 딥러닝 라이브러리 : tensorflow, pytorch, caffe2, theano 등...

1. 목표와 전략

  • 딥러닝을 코드화하기 위해서는 : 원리 + 수학 + 코딩 + 데이터 등 상당한 선수지식 요구
  • 딥러닝 입문
    1. 파이썬 기초
    2. 데이터 입문
    3. 머신러닝 이해
    4. 딥러닝의 원리
  • 복잡한 도구인 스마트폰도 직접적 경험을 통해 배우는 것과 같은 전략
    • 딥러닝 역시 간단한 코드를 통해 경험하고,
    • 해당 코드의 동작과 합습 과정을 보고,
    • 해당 코드의 활용법 추측
    • 이를 반복

2. 지도학습의 빅픽쳐

  • 머신러닝의 프로세스
    1. 과거의 데이터 준비
    2. 머신러닝 모델 구조 형성 : ex. 독립변수 - 종속변수 1:1관계
    3. 데이터로 모델을 학습( = FIT)
    4. 학습된 모델을 이용

3. 실습 환경 - Google Colaboratory

  • Jupyter Notebook이라고 해서, 데이터 및 머신러닝에 널리 사용되는 프로그램이 있는데, 직접 설치할 수도 있고 혹은 온라인 서비스 역시 존재
  • Colaboratory Notebook은 구글 드라이브를 이용하여 사용할 수 있도록 만들어진 프로그램으로, Jupyter와 거의 유사한 환경을 제공

  • 일반 편집기처럼, 파일-새 노트를 이용하여 새로운 파일 생성 가능

  • 사진의 사각형 창의 경우 코드 Cell이라고 하며, 한 단위의 코드가 동작하는 블록이라고 볼 수 있다.
  • 셀 내에서 Ctrl+Enter를 누르면 그 셀 내의 코드를 동작시키고, Shift + Enter를 누르면 셀을 실행시키고 다음으로 넘어간다(만약 마지막 셀의 경우 셀을 하나 추가)
728x90
728x90
19. 나에게 필요한 머신러닝을 찾아내는 방법

19. 나에게 필요한 머신러닝을 찾아내는 방법

  • 머신러닝을 어떻게 적용할 지 모를 때?
    • 배움이 모자란 것이 아닌, 너무 많은 배움으로 머릿속이 복잡한 것일수도
  • 머신러닝 적용을 위한 순서도
    • 독립변수 / 종속변수가 있을 때
      • 종속변수가 범주라면 - 분류
      • 종속변수가 숫자라면 - 회귀
      • 비슷한 관측치를 그룹화 - 군집화
      • 특성 간의 상관관계 - 연관규칙 학습
      • 과거 데이터가 없고, 보상 피드백 - 강화학습

20. 수업을 마치며

  • 어떤 분야에 있는 부품을 알고, 언제 필요한 지 알 수 있다면 이미 생산자라고 할 수 있음
  • 옷을 구매하는 행위는 더 매력적인 나를 위한 생산이고, 자동차를 구매하는 행위는 더 멀리, 더 빨리 이동할 수 있기 위한 나를 위한 생산이듯,
  • 소비자로 살아온 나를 생산자로 유도하기 위한 과정이 이번 수업의 주 목적이라고 할 수 있다.
728x90
728x90
17. 비지도학습

17. 비지도학습

  • 비지도학습 : 군집화, 변화, 연관, 규칙, ...
  • 군집화(clustering)
    • 비슷한 것들을 찾아서 그룹화하는 것
    • 군집화 vs 분류
      • 그룹을 만드는 것 : 군집화
      • 어떤 그룹에 속하는지 판단하는 것 : 분류
    • 군집화의 과정
      • 관측치와 클러스터의 개수를 제시
      • 서로 다른 관측치를 갖는 클러스터 형성
  • 연관, 연관 규칙 학습(Association rule learning)
    • 고객의 관심 상품을 기반으로 추천 상품 제시
    • 데이터 간의 연관성을 이용 - 상품 추천 시 가능성이 높은 상품을 추천
    • 군집화 vs 연관
      • 군집화 : 관측치의 그룹화
      • 연관 : 특성의 그룹화
  • 정리 : 지도 vs 비지도
    • 비지도 : 탐험적 - 데이터의 성격 판단 (독립 / 종속 여부 중요하지 않음)
    • 지도 : 역사적 - 원인(독립) - 결과(종속) 이 반드시 필요

18. 강화학습 (reinforcement learning)

  • 일단 해보는 것
  • 지도 : 배움 > 실력 - 강화 : 경험 > 실력
  • 유리한 결과라면 상을, 불리한 결과라면 벌을 : 이 과정을 매우 많이 반복
  • 2개의 주체 : 게임, 게이머
    • 게이머 : 현재 상태의 관찰, 게임 조작이라는 행동, 판단력
    • 게임 > 게이머 : 게임의 현재 상태, 점수 표출
  • 관찰 결과에 따라 더 많은 상을 받기 위해 판단력을 강화
  • 게임 = 환경(environment) / 게이머 (agent) / 상태 (state) / 보상 (reward) / 판단 (policy) / 행동(action)
    • 강화 학습 = '상태'에 따라 더 많은 '보상'을 만드는 '행동'을 '에이전트'가 할 수 있도록 '정책'을 만드는 것이 목적
728x90
728x90
14. 머신러닝의 분류

14. 머신러닝의 분류

  • 머신러닝은 하나의 기술이 아니다!
    • 기계학습 : 지도학습, 비지도학습, 강화학습
    • 지도학습 : 분류, 회귀, ...
      • 지도학습 = supervised learning
      • 문제 / 정답을 비교, 맞추는 과정을 통해 학습
    • 비지도학습 : 군집화, 변환, 연관, ...
      • 비지도학습 = unsupervised learning
      • 기계에게 통찰력을 부여
      • 정답을 부여하지 않고도 관찰을 통해 의미 / 관계를 도출
      • 데이터의 성격 파악, 정리 정돈
    • 강화학습 = reinforcement learning
      • 강화 학습은 어떤 것이 더 좋은 결과인가를 기계가 스스로 깨우치는 과정
      • 더 큰 상을 받기 위한 과정을 거치면서 스스로 학습

15. 지도 학습

  • 역사의 흐름과 비슷하다 - 원인과 결과의 흐름
  • 지도 학습의 조건
    • 충분히 많은 데이터의 수집
    • 데이터 = 독립변수 + 종속변수의 조합
  • 지도 학습의 과정
    • 과거 데이터 > 독립변수 + 종속변수로 분리
    • 컴퓨터를 통해 학습
    • 컴퓨터가 이를 이용하여 공식(모델)을 생성
    • 생성된 모델 : 기존 데이터에 없는 독립변수 입력 시, 그에 맞는 변수 출력

16. 회귀 vs 분류

  • 지도학습 = 회귀(regression), 분류(classification), ...
  • 회귀(regression)
    • 예측하고자 하는 종속변수가 숫자 형태일 때
    • ex. 온도 - 음료수 판매량 / 조망 - 집값 / 공부 시간 - 시험점수 등
  • 분류(classification)
    • 어지럽혀진 대상을 성격에 맞게 그룹화하는 것
    • 분류가 지도학습인 이유
      • 과거의 데이터를 통해 배우기 때문
      • 데이터가 독립 변수(데이터) 와 종속 변수(그룹) 으로 이루어져 있으므로
    • 예측하고자 하는 결과가 숫자가 아닌 이름(그룹)의 형태일 경우
728x90
728x90
10. 직업의 시작

10. 직업의 시작

  • 아이디어의 현실화에는 데이터가 필요 : 현실을 데이터로 표현 가능하다면 컴퓨터를 통한 처리가 가능
  • 세상 모든 일은 작든, 크든, 데이터로 표현 가능
    • 복잡한 현실을 데이터를 단순화할 필요 : 복잡한 현실로 발견하기 어려운 통찰을 단순화하여 판단 가능
  • 데이터 산업 : 데이터 과학 + 데이터 공학
    • 데이터 과학 : 데이터를 만들고, 만들어진 데이터를 이용 (데이터 자체를 다룸)
    • 데이터 공학 : 데이터를 다루는 도구를 만들고 이를 관리 (데이터 관리를 도움)

11. 표

  • 표 : 행(가로)/열(세로)로 구성된 양식에 데이터를 넣는 억압적인(?) 도구
    • 아무리 복잡하더라도 일단 표 내에 속박-정리 정돈 가능
    • 컴퓨터의 용량과 처리 속도를 이용 가능
    • 머신러닝을 조합 시 기계에게 통찰력을 부여 가능

  • 데이터 산업에서의 표는 왼쪽과 같이 표현
    • 표 = data set
    • 각 열은 데이터의 속성을, 각 행은 개체를 나타냄
    • 행 = 개체(Instance), 관측치(observed value), 기록(record), 사례(example), 경우(case) ...
    • 열 = 특성(feature), 속성(attribute), 변수(variable), 필드(field) ...

12. 독립변수와 종속변수

  • 표 속에 구성된 데이터에서, 의미 있는 정보를 뽑아내어야 함
  • 변수(Variable)
    • x=1, x=2에서 x는 변할 수 있는 값, 변수
    • 표에서의 변수는 열(column)을 의미
  • 독립변수 : 원인
    • 원인 : 결과와 무관하게 발생하는 사건
  • 종속변수 : 결과
    • 결과 : 원인에 종속되어 일어나는 사건
  • 서로 상관이 있는 특성 : 한 쪽의 값이 바뀔 때 다른 값이 바뀌는 것(= 상관관계)
    • 변수 A, B의 변화가 일정하게 나타나고,
    • A-B 관계 외에 다른 영향을 주는 요소가 없을 때,
    • 인과관계에 따라 A에 의해 B가 변화한다면 A는 독립변수, B는 종속변수
    • 모든 인간관계는 상관관계 / 모든 상관관계가 인과관계는 아님

13. 심리전

  • 공부를 그만두고 싶을 때
    • 지금 하고 있는 행위가 경제성이 없다고 생각할 때,
    • 우리 뇌는 1차로 지루함을, 2차로 절망감을 나타낸다.
    • 이러한 경고를 무시하면, 앞으로 비슷한 경험을 겪을 때 거부감을 느끼게 된다.
  • 지루함을 느끼게 되면 과감하게 공부를 유보하자
    • 수동적인 포기가 아닌, 능동적 유보의 전략을 취하자
728x90
728x90
6. 머신러닝머신

6. 머신러닝머신

  • 머신러닝머신
    • teachable machine으로 생성된 머신러닝 모델을 실제로 사용 가능한 사이트 (코딩야학 제작)
    • 데이터 클래스와, 프로그램 동작이 스크래치와 같은 블록 프로그램으로 나타나는 것을 볼 수 있다.
    • 한 쪽 클래스에 속할 확률이 일정 이상이 되면, 원하는 동작을 하도록 지시

7. 나도 이제 프로그래머

  • 애플리케이션 : 어떤 기능을 부품으로 하여 만든 완제품 (응용한 것) = 프로그램
    • 머신러닝 애플리케이션 = 머신 러닝이라는 부품으로 만든 소프트웨어
  • 프로그램
    • 과거 음악회에서 시간 순서에 따라 곡이 연주되는 것을 프로그램이라고 지칭
    • 프로그램에는 시간, 순서의 의미가 포함 - 우리가 하는 일들은 시간 순서에 따라 발생
    • 기계가 해야 할 일을, 기계가 알아 들을 수 있는 방식으로 작성하여, 복잡한 일을 순서대로 정확히 할 수 있게 한 것
    • 프로그램을 만드는 사람 = 프로그래머

8. 모르면 마법, 알면 기술

  • 소프트웨어는 기능이 늘 수록 기하급수적으로 복잡해진다.
  • 하지만 조금만 더 배울 수 있다면, 프로그래밍으로 작게는 집안의 전등부터, 크게는 국가 행정까지도 다룰 수 있게 된다.
  • case study : 사물인터넷(IOT)
    • 전등, 자동차 등의 사물에 컴퓨터가 포함되어, 여러 기능을 손쉽게 제어할 수 있게 되었다.

    • 여기에 인터넷까지 연결되어 있다면 원격으로 지구 반대편에서도 그 장치를 조정할 수 있다.

    • 사물인터넷 + 머신러닝 : 장치에 연결된 센서를 이용하여 데이터의 의미를 '모델'이 판단하여, 스스로 동작을 판단하여 제어

    • 사물인터넷 = 코딩 + 네트워크 + 전자공학 + 기계공학

    • ex. 레모네이드 장사

      • 레모네이드 체인점을 운영한다고 가정할 때, 레모네이드가 얼마나 팔릴 지 예측하는 것이 매우 중요한 일
      • 만약 온도와 판매량 사이에 일정한 관계가 있다고 할 때, 위와 같이 날짜별로 온도에 따라 판매량의 변화를 볼 수 있다.
      • 내일의 온도를 알 수 있다면, 판매량이 어떻게 나올지를 에측 가능하다.
  • 과거에는 과학자, 수학자들이 하던 일을, 기계가 자동으로 관계식을 수립해줄 수 있게 되었다.
  • 머신 러닝으로 해결할 수 있을 것 같은 과제 찾기
    • 문제의 환경과, 해결해야 할 불만족, 원하는 꿈을 찾아 정리해보기
    • 이 때 스스로에게 절대 기술적 한계를 부여하지 말 것 - 우리의 기술은 SF작가들이 상상한 것을 기술자들이 구현한 것이 생각보다 많다
    • 필요하다면 다른 사람의 계획을 한번 참고하여 보자. 혹은 내가 아이디어를 추가해 보자.

9. 교양의 끝

  • 교양과 직업 - 두 갈림길에서 필요한 것은 현명함
    • 머신 러닝을 교양으로 배운다면 : 수업은 여기까지!
      • 0에 1억을 곱해도 0이듯, 아무것도 모른다면 아무리 많은 경험을 하더라도 지식이 될 수 없다 - 생활코딩이 여기까지 한 일은 0을 1로 만들어 주는 것
      • 공부의 끝이 아닌, 삶의 경험을 통해서도 충분히 익힐 수 있는 것
      • 나중에 머신러닝이 필요해진다면 : 머신러닝을 배운 동업자를 찾거나, 그 때 더 강력해져 있을 도구를 찾거나, 스스로 필요한 공부를 하거나
    • 직업으로 머신러닝을 삼겠다면?
728x90
728x90
0. 오리엔테이션

0. 오리엔테이션

  • 머신러닝(기계학습) : 기계를 학습시켜 인간의 판단을 위임하기 위한 기술
    • 전염병의 양성 여부 판정
    • 번역기
    • 자율주행 등
  • 공부와 문제
    • 공부는 문제를 해결하기 위해 하는 것
    • 해결하고자 하는 문제가 큰, 나의 일이라면 공부는 문제로부터 우리를 도우는 존재
    • 하지만 문제가 사소한 일이라면, 공부는 오히려 우리를 억압하는 존재가 되는 것
    • 문제는 클수록, 공부는 작을 수록 좋지만, 현실에서는 흔하지 않은 경험

1. 머신러닝이란?

  • 결정 = 비교 + 선택
    • 더 좋은것 / 나쁜 것을 비교할 수 있다면, 선택은 기계적인 것
    • ex. 물건을 살 때, 동일한 제품이라면 더 저렴한 물건을 선택하는 것이 당연
    • 실제로는 비교하는 것도 쉽지 않은 일 - 대소관계가 명확치 않거나, 반대로 비교할 요소가 너무 많은 경우
  • 중장비가 있다고 손이 필요 없고, 자동차가 있다고 발이 필요 없듯, 머신러닝은 우리의 판단 능력을 확장시켜 결정을 돕는 도구라고 할 수 있다.

2. 꿈

  • 학생이 아닌 엔지니어, 소비자가 아닌 생산자
  • 가장 중요한 것? : 해결하고자 하는 의지 - 이것이 없다면 지식은 목적 없는 수단일 뿐
  • 각자가 중요하게 생각하는 문제는 다를 수밖에 없음 / 혹은 해결하고자 하는 문제가 없을 수 있음
  • 습관을 고치는 데 머신러닝을 이용한다면?
    • 문제 해결의 전략 : 의지 < 환경 < 습관 < 의지 < ...
    • 의지만으로 습관을 바꾸는 것은 힘든 일
    • 의지로 환경을 조성하여, 습관을 고칠 수 있다면?

3. 궁리하는 습관

  • 일 = 꿈 + 능력
    • 엔지니어가 아닌 이상 꿈을 이룰 능력은 없다 해도, 그럴 수록 능력이 있다고 정해 놓고 꿈을 먼저 정하는 것이 중요
  • 원리, 수학, 코딩
    • 머신러닝은 원리를 이용하여, 수학과 코딩으로 이루어지는 것
    • 머신러닝으로 목적을 달성하기 위해서는 수학과 코딩이 필요(언젠가는)
    • 오히려 원리를 파악하기 전, 사용자가 되는 것이 더 좋을 수도 있음 : 다양한 문제를 풀며 한계를 느낄 때, 그 때 원리를 배워도 늦지는 않을 것
  • 기술의 발전으로 인해 꿈을 실현하는 방법은 빠르고, 저렴하고, 간단해지고 있음
  • 습관을 고치는 프로그램?
    • 손톱을 깨무는 프로그램을 만든다면
    • 스마트폰을 이용한다면 더 좋을텐데?
    • 영상으로 손톱을 깨물 때와 아닐 때를 구분할 수 있게, 머신러닝을 이용해서
    • 이 프로그램을 앱으로 만들어 배포
    • 결과적으로 모든 종류의 습관에 대한 머신 러닝까지

4. Teachable Machine

  • 수학/코딩 없이도 머신러닝을 구현 가능한 서비스가 나타나고 있음
  • teachable machine : 머신러닝에 대한 지식 없이 구현이 가능하도록 고안된 도안

    • 클래스 : 컴퓨터가 학습하기 위한 교재 / 일정한 특징을 갖는 데이터의 묶음
    • Training : 데이터 클래스를 기반으로 컴퓨터가 학습
    • Preview : 학습한 결과를 실제로 테스트, 입력되는 데이터에 따라 컴퓨터가 스스로 클래스에 속하는 지 여부를 판단
    • 판단이 애매한 경우 : 학습 데이터가 부족하거나, 부정확한 경우 - 데이터를 더 늘리거나, 부정확한 데이터를 제거
  • 머신러닝(기계학습) : 사람이 공부를 통해 더 정확히 판단하듯, 기계를 학습시켜 정확한 판단력을 형성
    • 머신러닝의 판단력 = 모델

5. 모델

  • 모델 = 머신러닝을 이해하기 위한 핵심
    • 교훈 = 사람이 경험을 통해 갖게 되는 판단, 예측(추측)능력
      • 경험을 통해 가설을 추측하고, 이를 검증하기 위해 실험을 진행하여, 모순이 없다면 이론으로 인정
    • 머신러닝의 판단력 = 모델
      • 모델을 만드는 과정 = 학습
      • 좋은 모델 = 좋은 추측 / 좋은 학습 = 좋은 모델 / 좋은 추측 = 좋은 결정
728x90

+ Recent posts