머신러닝이란?
- 데이터에서 지식을 추출하는 작업
- 즉, 머신 스스로가 데이터를 바탕으로 그 안에 있는 특징과 패턴을 찾아냄
- 특징과 패턴을 바탕으로 새로운 데이터에 대한 추론을 진행
- 과거 머신러닝 정의
- “머신 러닝은 명시적인 프로그래밍(x가 들어오면 y를 출력하게 명시.) 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야”
Atrhur Samuel (1959)
- “어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면,
이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다”
Tom Mitchell (1997)
인공지능>머신러닝>딥러닝

인공지능을 만들 때에 머신에 학습을 주입하는 과정을 머신러닝이라고 한다.
명시적 프로그램과 머신러닝의 차이
명시적 프로그램 : 규칙 기반 전문가 시스템
- 머신 러닝 이전의 문제 해결 방법론
- 문제를 해결하기 위한 규칙을 수동으로 사전에 정의
- 규칙 : 하드 코딩 된
if-else 명령어 집합
- e.g. 스팸메일을 구분하는 과정
- 특정 단어(Sale, Win, Free 등)의 유무로 스팸을 분류
장점!
- 처리 과정을 사람이 이해하기 쉬움
- 작은 데이터에서 효과적
단점ㅠㅠ
- 특정 규칙은 한 분야나 작업에 국한
- 변경에 대응이 어려움
- 규칙 설계 시 해당 분야의 전문가가 필요
머신 러닝
- 명시적 프로그램의 한계를 극복할 수 있는 기법
- 데이터 내부에서 자주 발생하는 특징과 패턴을 감지
- 문제를 해결하기 위한 판단 기준을 시스템 스스로 찾아냄
- 구체적으로 명시할 수 없는 규칙을 찾을 수 없다면 머신 스스로가 그것을 찾아내게 하는 방법이 좋은 솔루션
장점!
- 예상치 못한 상관 관계를 파악하는데 탁월함
- 특정 도메인에서 전문가가 필수로 필요하지 않음
단점 ㅠㅠ
- 머신이 패턴을 파악할 수 있도록 다양한 데이터가 필요
- 기계가 결정 및 판단하기 때문에
결과 분석 과정에서 사람이 이해할 수 없는 포인트가 존재할 수 있음
머신러닝 사례
머신 러닝과 딥러닝의 다양한 사례
- 머신 러닝은 다양한 어플리케이션과 연구 분야에서 활용
- 최근 딥러닝의 발전으로 매우 다양한 분야에서 다양한 목적으로 사용

머신 러닝 프로젝트의 흐름
실무에서 머신 러닝 프로젝트가 어떤 흐름으로 진행되는지 알아보자
머신 러닝 프로젝트 로드맵

- 문제정의
- 어떤 목적으로 프로젝트를 진행하는지 문제를 정의해야 된다.
- 데이터 확인
- 문제를 확인하기 위해 데이터를 파악한다.
- 데이터 분할
- 학습 / 검증 / 테스트에 사용할 데이터를 각 각 미리 나눠줘야 된다.
이때 사용할 수 없는 아웃라이어 데이터는 제거
- 알고리즘 탐색
- 어떤 알고리즘을 이용할지 파악
- 데이터 전처리
- 선택한 알고리즘을 고려해서 데이터 전처리를 진행.
- 학습과 검증
- 학습 및 검증을 하며 최적의 모델을 찾는다.
- 최종 테스트
- 테스트 데이터를 종합하여 최고의 머신 러닝을 찾는다.
여기서 통과를 못하면 이전 단계들로 다시 하강
- 시스템 런칭~!