기계학습의 정의와 종류에 대해서 알아보자.
인공지능의 한 분야로써, 알고리즘을 설계하는데 실험적으로 얻은 데이터로부터 점점 개선되도록 할 수 있는 알고리즘을 설계하고 개발하는 분야를 기계학습이라고 정의한다.
흔하게 혼용할 수 있는 단어들에 대해서 정리해보자.
하버트
경험을 통해서 성능을 높이는 시스템에 의한 모든 프로세스
아서 사무엘
직접적으로 프로그래밍하지 않고 컴퓨터가 스스로 배울 수 있는 능력을 다루는 학문
컴퓨터 프로그램 중에 E와 P와 T
T : task (어떤 작업을 수행할 것인가)
P : performance (어떤 성능지표를 정의하고 이를 통해 모델을 비교할 것인가)
E : Experience (어떤 학습 데이터를 사용할 것인가)
경험 Data E를 기반으로 해서 어떤 특정 Performance Measure , 혹은 Performance P를 개선하는 것이다. 그것이 어떤 작업T에 대한 것이다.
예를 들어 체스의 경우, T는 체스를 두는 것이라 할 수 있고 P는 여러가지 옵션 중에 승률과 같은 것으로 정의할 수 있고 한판 한판 둔 경험이 학습 E 데이터로써 활용이 될 것이다.

과거의 전통적인 방식으로 구현하게 되면 모든 경우와 룰, 예외 사항에 대해서 모두 하드 코드로 작성하게 되어 시간이 오래걸린다.
일반화는 기계학습의 최종적인 목표이다.
예제로 학습 데이터를 100개만 주어도 이 100개만 보고 어떤 특정 패턴을 배워서 이 100개에 없는 예제에 대해서도 작업을 잘 수행해야 한다.
유사성을 판단하여 하나의 전형이라는 것을 만들어내는 과정을 스스로 하는 것이다. 이러한 행동은 일종의 추상화 과정으로 공통적인 특징을 파악해서 일종의 일반화된 개념으로 추상화한다.
학습 데이터에 대해서 잘 되는 것이 목표가 아니라, 학습 데이터로부터 어떤 패턴을 배워서 학습 데이터에서 보지 못한 새로운 데이터가 오더라도 잘하길 기대한다.
학습용으로 모아둔 학습 데이터를 완벽하게 이해한다면 학습 데이터가 어떻게 생겼는지 생성까지 가능해진다. 해당 알고리즘이 생성형 Generative 인공지능이다.
매번 새로운 task 혹은 데이터를 모을 때마다 최적의 알고리즘을 찾는 과정을 수행해야 한다.
어떤 기계학습 알고리즘도 다른 기계학습 알고리즘보다 항상 좋다.
