상세 컨텐츠

본문 제목

[KMOOC-실습으로배우는머신러닝] 1. Introduction to Machine Learning

멋사 AISCOOL 7기 Python/INPUT

by dundunee 2022. 11. 21. 13:12

본문

1️⃣ 인공지능과 머신러닝 개요

1. Intro

💡 머신러닝: 인공지능을 구현하는 한가지 방법이다.
  • 인공지능을 구현하는 방법은 여러가지가 있고, 머신러닝은 그 방법 중 하나이다.
  • 결국 머신러닝은 유용한 함수를 학습시키는 것이다.
    • 데이터 → 알고리즘을 컴퓨터에 입력 → 함수학습(컴퓨터가 스스로 데이터 안에 있는 유용한 패천을 찾아 함수를 학습) → 실제상황에서 함수를 사용해 유용한 output 도출

 

2. 과거 vs 현재

  • Traditional AI: Knowledge Engineering
    • 일련의 로직들을 모두 사람의 지식을 그대로 모사하게끔 만들어 컴퓨터에 입력해 학습시킴
  • State of the Art: Machine Learning
    • 데이터 입력 → 함수의 기본적인 형태를 알려줌 → 가장 유용한 학습을 컴퓨터 스스로 학습함 → 학습된 데이터를 현실로 가져와서 사용함
    • 패턴을 인지하는 문제가 빅데이터를 이용하는 머신러닝 문제로서 해결됨
    • 딥러닝이라는 기술도 머신러닝의 일종, 시각을 구현하거나, 언어 모델링, 오케이 구글 같은 스피치 모델을 모델링 하는데 활용되는 기술
      • 머신러닝의 하위 알고리즘이다.

 

3. 인공지능 > 머신러닝 > 딥러닝

✏️ 인공지능

  • 굉장히 광점위한 개념이다.
  • 사람의 지식능력, 지적능력을 인지하고 그다음에 의사결정을 하는 인지능력들을 컴퓨터 알고리즘으로 모사해서 현실 문제를 해결하는 기술들의 총 집함

✏️ 머신러닝

  • 인공지능 구현 방법 중 하나, 빅데이터를 다루기에 용이함

✏️ 딥러닝

  • 머신러닝의 하위분야
  • 인간의 인지능력과 관련된 모델링을 하는데 있어서 굉징하 좋은 성능을 보임. 이런 것들이 현실문제를 해결하는데 있어서 굉장히 중요한 역할을 함

하지만 완벽한 머신러닝 알고리즘은 없다! 그래서 다양한 알고리즘을 배워야한다!

 

 

4. 왜 머신러닝인가?

👉 이유1. 우리는 빅데이터시대에 살고 있다.

  • 빅데이터의 등장, 머신러닝의 각광은 자연스러운 흐름이다.
    • We are live in the Big Data Area
  • 머신러닝은 빅데이터를 이용해서 유용한 함수를 학습하는 방법이고, 당연히 좋은 데이터일 수록 좋다
    • There are lots of data available to train machine learning models

👉 이유2. 효율적이고 빠르게 계산이 가능한 장비의 등장

  • 굉장히 많은 양의 데이터를 계산을 해서 유용한 함수를 만들어내야함
  • GPU Computing은 딥러닝의 발전을 과속화시키는데 큰 역할을 함, 기본적인 머신러닝 알고리즘들도 이를 활용한 효율적인 계산에 관심을 갖게 됨
    • 즉, 많은 양의 데이터가 있고 이를 계산할 수 있게 함

👉 이유3. 머신러닝으로 만들어진 결과들은 다양한 비즈니스 분야에서 유용하게 활용된다.

 

 

5. 정의 및 구성요소

 💡 Machine learning is the study of computer algorithms that allow computer programs to automatically improve through experience

 

구성요소1. 환경(Environments)

  • Learning systems interacts with environment to accululate experiences
    • 실제로 머신러닝 알고리즘에 제공되는 환경
    • 환경의 역할은 머신러닝 알고리즘에 경험을 제공하는 것
    • 이때 experiences는 데이터이다.
    • 즉 환경과 상호작용을 하면서 얻어지는 경험들, 바로 데이터를 뜻한다.

구성요소2. 데이터(Data)

  • the memorized experience interact with the environment
    • 환경과 상호작용 하면서 얻어진 기억할 수 있을법한 경험들이 녹아져 있는 일련의 저장 결과
    • 기억해야 되는 활동의 저장 결과

구성요소3. 모델(Model)

  • a function represents the patterns of data
    • 함수의 대략적인 형태를 잡아주고 데이터를 넣어서 함수를 쓸모있게끔 만들어줌

구성요소4. 평가(Performance)

  • evaluate criteria for the learning system. The system optimizes the performance to solve the problems

 

6. 모델성능평가

  • 인풋과 아웃풋을 잘 설명할 수 있는 함수를 찾아야한다. 적절한(appropriately) 함수를 학습시켜야 한다.
  • 즉 오차가 작은 것이 좋은 것이다.

✅ MSE(Mean Squared Error): 오차 제곱의 평균


2️⃣ 머신러닝 학습 개념

1. Linear Regression

  • 기본적인 머신러닝 방법이며, 통계적으로도 다양하게 활용된다.
  • input과 out과의 관계가 선형적인 관계이다.

출처: KMOOC 실습으로 배우는 머신러닝

 머신러닝의 일반적한 학습 절차

: 모형의 식을 정의한다 → 로스함수를 정의한다 → 로스(오차)를 최소화하는 해를 찾는다.

  • We extimate the optimal coefficients to minimize the loss function
    • 출력값이 연속적일때 가장 대표적으로 활용하는 손실함수(Loss)는 MSE이다.
    • 손실함수를 최소화할 수 있는 최적화된 회귀계수(베타)를 찾아야한다.
  • 예시

출처: KMOOC 실습으로 배우는 머신러닝

정의된 loss함수를 미분해서 0이 되는 지점에서의 베타가 우리간 원하던 최종적인 해인 베타이다. 실제로 도출되는 선형식은 loss함수가 0이 되지 않지만 최대한 0에 가깝게 만들어둔다. 여기서 도출된 선형식은 이 데이터의 패턴으로 볼 수 있다.

 

 따라서 머신러닝에서 learning이란 Optimization이다. 내가 원하는 가장 최적의 결과를 도출해내는 것, 이 함수가 내가 원하는 바대로 행동하도록 만들어주는 것, 이것이 컴퓨터가 학습하게 만드는 핵심 절차로 볼 수 있다.

미지의 입력과 출력이 있으며, 정확한 함수는 알 수 없다. 우리가 할 수 있는 최선은 인풋과 아웃풋에 대한 극히 일부분의 데이터를 추출하는 것이며, 우리는 이를 통해 함수의 관계를 추측하고, 예측하고 활용한다

 이 과정에서 대략의 함수 정의 → 로스함수 정의 → 최적화를 통해 데이터의 패턴을 학습시켜주며 이런 최적화를 머신러닝에서의 learning이라고 할 수 있다.


3️⃣ 머신러닝 프로세스 및 활용

1. Category of Machine Learning

🛠️ 지도학습(Supervised Learning) ⭐⭐⭐⭐⭐

  • 정답을 알려주면서 학습하는 것
    • Classification(y의 최종적인 값이 범주(class)이다)
    • Regression(y의 최종적인 값이 연속형이다)

🛠️ 비지도학습(Unsupervised Learning)

  • Clustering

🛠️ 강화학습(Reinforcement Lerning)

 

 

2. 지도학습

최종적으로 출력하는 y의 데이터 타입에 따라 나눠진다.

💡 Output y is categorical variable: Classification
  • input은 matrix형태일 수도 있고, 이미지와 같은 형태일 수도 있다.
 💡 Output y is continuous: Regression
  • input은 matrix 형태이다

 

3. 모델 성능 평가

  • We must train the function for appropriately demonstrating the relationship between input and putput variables
    • The word “appropriately” means the difference between results from real data and model’s prediction is small
  • 분류에서의 예시

출처: KMOOC 실습으로 배우는 머신러닝

 

4. Machine Learning and Optimization

  • Machine learning models optimize the function by minimizing the loss
  • The process of optimization for the machine learning functions represents learning

출처: KMOOC 실습으로 배우는 머신러닝 + 내 필기

  • 이 방법들은 모두 분류와 회귀에 둘다 적용할 수 있다. 이 함수들을 관통하는 것은 loss 함수를 최적화는 것이다.

 

5. Generalization Error and Hyperparameter

✏️ Training error

  • prediction error to training data(Loss)

✏️ Validation error

  • prediction error to validation data(Generalization error)
  • 학습할 때 사용하지 않은 데이터를 사용하여 검증하는 것
  • 내가 학습한 모형이 일반화가 잘 되는가

출처: KMOOC 실습으로 배우는 머신러닝

→ 모형이 복잡해지면 Training error는 점차 줄어들지만 Validation error은 줄어들었다가 특정 지점(a critical point)에서 다시 커진다.

→ 모형의 복잡도에 따라 일반화 오차가 달라진다.

 

✏️ Underfitting

  • 모형이 너무 단순해서 데이터에 들어 있는 전체 패턴을 파악하지 못하는 경우

✏️ Overfitting

  • 모델이 너무 복잡해서 쓸데없는 패턴까지 다 학습한 경우
  • 일반화가 잘 되지 못하는 위험이 있다.

→ validation error가 최저가 되는 적절한 모델을 찾아야 한다. 이는 validation과정을 통해 찾을 수 있다.

→ Find out appropriate model complexity by adjusting hyperparameter

 

✏️ hyperparameter

  • 모델의 성능을 결정하는 외적인 요소
  • 모형의 복잡도나 기본형태를 결정짓는 파라미터이다.

 

6. Model Validation with data

전체 dataset을 아래와 같이 나눌 수 있음

IDEA1. validation with training data only(Bad)

IDEA2. Training, Testing data(After hyperparameter tuning)

IDEA3. Training, Validation, Testing data(Best)

→ validation을 통해 좋은 모형을 찾는다

→ Testing을 통해 일반화의 오류를 계산하는 절차를 꼭 거친다.

IDEA4. Cross-Validation(with small number of data)


📍 결론

✅ 머신러닝은 데이터 기반의 인공지능 방법론이다.

✅ 머신러닝에서 학습의 핵심은 최적화이다.

✅ 최적의 머신러닝 모형은 일반화 오류를 기준으로 결정한다.

관련글 더보기