[머신 러닝 교과서] Chapter 1

두두·2023년 3월 16일
1

코테이토를 하면서 또 머신러닝 스터디를 할 줄이야..😳
같이 하자고 연락해준 회장언니에게 고맙구
힘내보자 두두야⭐️

이번에 선정한 교재는 머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로이다.

본 글은 해당 책을 정리한 것으로 모든 저작권은 책의 저자에게 있음을 밝힙니다.

그럼 시작!


Chap1 컴퓨터는 데이터에서 배운다

머신러닝이란 데이터를 이해하는 알고리즘의 과학이자 애플리케이션이다.
우리는 데이터가 풍부한 시대에 살고 있다.
스스로 학습할 수 있는 머신러닝 알고리즘을 사용하면 이 데이터를 지식으로 바꿀 수 있다.

이 "데이터를 지식으로 바꿀 수 있는 알고리즘"이 내가 처음 인공지능에 관심을 갖게 된 계기 중 하나였다.. 잊고 있었는데 생각남ㅎㅅㅎ

아마도 대부분 데이터와 지식의 차이점은 많이들 들어봤을 것 같다.
그치만 한번 더 짚고 넘어가자면!
데이터
지식


1.1 데이터를 지식으로 바꾸는 지능적인 시스템 구축

현대 기술 시대에는 정형/비정형 데이터가 풍부하다.
20세기 후반에 데이터에서 지식을 추출하여 예측하는 자기학습 알고리즘과 관련된 인공지능의 하위 분야로 머신러닝이 출현했다.

사람이 수동으로 대량의 데이터를 분석하여 규칙을 유도하고 모델을 만드는 대신,
머신 러닝이 데이터에서 더 효율적으로 지식을 추출하여 예측 모델과 데이터 기반의 의사 결정 성능을 점진적으로 향상시킬 수 있다!


1.2 머신 러닝의 세 가지 종류

이번 절에서는 지도학습, 비지도학습, 강화학습에 대해 살펴볼 것이다.

다만 책에서는 지도학습 → 강화학습 → 비지도학습 순서지만
필자는 지도학습→ 비지도학습 → 강화학습 순서로 정리했다.
딱히 이유는 없다😁

1.2.1 지도 학습 (Supervised learning)

  • 주요 목적
    레이블된 훈련 데이터에서 모델을 학습하여 본 적 없는 미래 데이터에 대해 예측을 만드는 것.

  • 학습 데이터
    레이블 되어 있음
    즉, 개발자가 문제와 정답 둘 다 알려줌

➡️ 스팸 메일 필터링
학습 데이터셋은 스팸 또는 스팸이 아닌 이메일로 정확하게 표시(라벨링)되어 있음
훈련된 모델은 새로운 이메일이 두 개의 범주 중 어디에 속하는지 예측


이러한 지도 학습에는 두 가지 하위 카테고리가 있다.

  1. 분류 (Classification) - 개별 클래스 레이블 ex. 스팸필터
  2. 회귀 (Regression)- 연속적인 값 출력

하나씩 살펴보자!

📌 분류

목적은 과거의 관측을 기반으로 새로운 샘플의 범주형 클래스 레이블을 예측하는 것!
클래스 레이블은 이산적(discrete)이고 순서가 없음

위의 스팸 메일 감지는 스팸O, 스팸X 두 가지 레이블만 가진
💡이진 분류(binary classification)이다.

위 그림은 30개의 훈련 샘플 중,
15개는 음성 클래스로 레이블(-) 되어 있고
나머지는 양성 클래스로 레이블(+) 되어 있는 이진 분류 작업의 개념을 보여준다.
각 샘플이 두 개의 x1, x2 값에 연관되어 있으므로 2차원 데이터셋이다.

✅ 지도학습 알고리즘을 사용해 두 클래스를 구분할 수 있는 규칙을 학습한다!
여기서, 규칙 = 결정 경계

새로운 데이터의 x1, x2 값이 들어오면 결정 경계에 따라 두 개 범주 중 하나로 분류함!


💡두개 이상의 클래스 레이블을 가졌다면 다중 분류!
ex) 손글씨 인식 - A, B, C, D .. Z 인식하기!


다음은 회귀!

📌 회귀

예측 변수(predictor variable)=설명 변수(explanatory variable)와
연속적인 반응 변수(response variable)=결과(output)가 주어졌을 때 출력 값을 예측하기 위해서 두 변수 사이의 관계를 찾음!

머신 러닝 분야에서는 예측 변수를 보통 특성(feature), 반응 변수는 타깃(target)이라 부름

  • 예시) 학생의 수학 점수 예측!
    시험 공부에 투자한 시간과 최종 점수 사이의 관계가 있다면, 두 값으로 훈련 데이터를 만들고 모델을 학습할 수 있음.
    이 모델은 시험에 응시하려는 학생들이 공부한 시간을 이용해 시험 점수를 예측하는 것!


    💡위의 그림이 선형 회귀!
    특성 x와 타겟 y가 주어지면, 데이터 포인트와 직선 사이 거리가 최소가 되는 직선을 그을 수 있다.
    (일반적으로 평균 제곱 거리를 사용)

    ✅ 이렇게 데이터에서 학습한 직선의 기울기와 절편을 사용해 새로운 데이터의 출력 값을 예측한다!


1.2.2 비지도 학습

  • 목적
    알려진 출력 값이나 보상 함수의 도움을 받지 않고도
    의미 있는 정보를 추출하기 위해 데이터 구조를 탐색 할 수 있다!

  • 학습 데이터
    레이블되지 않거나 구조를 알 수 없는 데이터


비지도 학습에는 다음과 같이 두가지가 있다.
1. 군집 Clustering
2. 차원 축소Dimensionality reduction

각각에 대해 자세히 살펴보자!

📌 군집

  • 사전 정보 없이 쌓여 있는 그룹 정보를
    ❕의미 있는 서브그룹 or ❕클러스터 로 조직하는 탐색적 데이터 분석 기법

    ✅ 왜 비지도 분류인가?
    분석 과정에서 만든 각 클러스터는 어느 정도 유사성을 공유하고,
    다른 클러스터와는 비슷하지 않은 샘플 그룹을 형성한다!

    ➡️ 마케터가 관심사를 기반으로 고객을 그룹으로 나누어 각가에 맞는 마케팅 프로그램을 개발할 수도 있다!

    위 그림은 군집이 어떻게 레이블되지 않는 데이터를 특성 x1과 x2의 유사도를 기반으로 세 개의 개별 그룹으로 조직화 하는지 보여준다

다음은 차원 축소이다!

📌 차원축소

  • 관련 있는 정보를 대부분 유지하면서 더 작은 차원을 가진 부분 공간(subspace)으로 데이터를 압축한다

    ➡️ 고차원의 데이터를 다루어야 하는 경우가 흔한데,
    ‼️ 이럴 때 머신러닝 알고리즘의 계산 성능과 저장 공간의 한계에 맞닥뜨릴 수 있다.
    비지도 차원 축소는 잡음(noise)데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법이다!

    ➡️ 데이터 시각화에도 유용하다.
    1차원 또는 2차원, 3차원 특성 공간으로 투영하여 3D와 2D 산점도나 히스토그램으로 시각화할 수 있다.
    아래의 그림은 비선형 차원 축소를 적용해 3D 스위스롤 모양의 데이터를 2D 특성의 부분 공간으로 압축하는 예이다.

    사실 차원 축소는 실습해본 적이 없어서 그런지 아직까지 잘 이해가 되진 않는다.


1.2.3 강화 학습

  • 주요 목적
    환경과 상호작용하여 시스템(에이전트_agent) 성능을 향상시키는 것

  • 피드백
    보상 함수로 얼마나 행동이 좋은지를 측정한 값
    (정답레이블 or 값 X)
    ❗️지도 학습과 다름

✅ 에이전트는 환경과 상호 작용하여 보상(reward)이 최대화되는 일련의 행동을 강화학습으로 학습함!

➡️ 체스게임
에이전트는 체스 판의 상태=환경에 따라 기물의 이동을 결정!
그렇다면 여기서 보상은?
게임 종료시 승리하거나 패배하는 것!

이 예제를 조금 더 자세히 살펴보자!
➕체스판 위의 특정 상황이 승리로 이어질 가능성이 높은 상태와 연관 될 수 있다. (상대 기물 잡기 or 퀸 잡기 등등..)
➖어떤 위치는 게임에 질 가능성이 높은 상태와 연관 될 수 있다. (다음 차례에 상대한테 기물 잃기 등..)
하지만, 체스 게임에서 보상은 게임이 끝날 때까지 주어지지❌
또한, 최종 보상은 상대의 플레이 방식에 따라 다름.
즉 상대가 퀸을 잃어도 게임에서 이길 수도 있는 것!

강화 학습은 행동을 수행하고 즉시 얻거나 지연된 피드백을 통해 얻은 전체 보상을 최대화 하는 일련의 행동을 학습한다.



1.3 기본 용어와 표기법 소개



1.4 머신러닝 시스템 구축 로드맵



1.5 머신 러닝을 위한 파이썬

profile
멋쟁이가 될테야

0개의 댓글