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)
🛠️ 강화학습(Reinforcement Lerning)
2. 지도학습
최종적으로 출력하는 y의 데이터 타입에 따라 나눠진다.
💡 Output y is categorical variable: Classification
- input은 matrix형태일 수도 있고, 이미지와 같은 형태일 수도 있다.
💡 Output y is continuous: Regression
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)
📍 결론
✅ 머신러닝은 데이터 기반의 인공지능 방법론이다.
✅ 머신러닝에서 학습의 핵심은 최적화이다.
✅ 최적의 머신러닝 모형은 일반화 오류를 기준으로 결정한다.