# 머신러닝의 개요

## 머신러닝의 정의와 역사

```{image} figs/image-1-1-1.jpeg
:width: 60%
:align: center
```

### 머신러닝의 정의

#### 기본 정의

- 컴퓨터가 데이터를 기반으로 학습하는 연구 분야
- 학습을 통해 스스로 예측하거나 결정을 내리는 능력 부여

#### 톰 미첼의 정의 (1998년)

- 컴퓨터 프로그램이 경험 E(데이터)로부터 학습
- 특정 작업 T에서 성능 P를 향상시키는 과정

#### 핵심 개념

- '머신(Machine)': 컴퓨터, '러닝(Learning)': 학습
- 컴퓨터를 통한 학습의 개념

#### 데이터 중심의 접근

- 데이터에서 패턴, 규칙, 지식 추출
- 데이터로부터 컴퓨터가 스스로 규칙을 학습

### 머신러닝의 역사적 배경

```{image} figs/image-1-1-1.jpeg
:width: 60%
:align: center
```

#### 역사적 배경

- **아서 새무얼 (1959년)**: 머신러닝을 '컴퓨터에 학습할 수 있는 능력을 부여하기 위한 연구 분야'로 최초 정의
- **톰 미첼 (1998년)**: 머신러닝을 '컴퓨터 프로그램이 경험 E로부터 T 작업에서 P 성능을 향상시키는 과정'으로 구체화

#### 1952년 - 새무얼의 체커 프로그램

- **최초의 머신러닝 프로그램**: 체커 게임 학습 프로그램
- **경험 학습**: 게임을 통해 스스로 학습하고 전략을 개선하는 방법론 적용
- **AI 개발의 기초**: 이 방법론은 나중에 알파고 같은 고급 AI 프로그램 개발에 영향을 미침

#### 연도별 주요 개발 모델과 특징

- **1952년, Arthur Samuel**
  - 모델: Checker Program
  - 특징: 최초의 자기학습 프로그램, 강화학습의 초기 형태
- **1957년, Frank Rosenblatt**
  - 모델: Perceptron
  - 특징: 최초의 신경망 모델, 단층 퍼셉트론으로 간단한 패턴 인식 가능
- **1986년, Rumelhart, Hinton 등**
  - 모델: Multilayer Perceptron
  - 특징: 다층 퍼셉트론, 역전파(back-propagation) 알고리즘 도입
- **1986년, Ross Quinlan**
  - 모델: Decision Tree (ID3)
  - 특징: 의사결정 나무, ID3 알고리즘을 사용한 분류 모델
- **1995년, Vapnik, Cortes**
  - 모델: Support Vector Machine
  - 특징: 고차원 공간에서의 이진 분류를 위한 강력한 알고리즘

| 연도   | 개발자               | 모델                   | 특징 또는 종류                                         |
| ------ | -------------------- | ---------------------- | ------------------------------------------------------ |
| 1952년 | Arthur Samuel        | Checker Program        | 최초의 자기학습 프로그램, 강화학습의 초기 형태         |
| 1957년 | Frank Rosenblatt     | Perceptron             | 최초의 신경망 모델, 단층 퍼셉트론으로 간단한 패턴 인식 |
| 1986년 | Rumelhart, Hinton 등 | Multilayer Perceptron  | 다층 퍼셉트론, 역전파(back-propagation) 알고리즘 도입  |
| 1986년 | Ross Quinlan         | Decision Tree (ID3)    | 의사결정 나무, ID3 알고리즘을 사용한 분류 모델         |
| 1995년 | Vapnik, Cortes       | Support Vector Machine | 고차원 공간에서의 이진 분류를 위한 강력한 알고리즘     |

### 머신러닝의 학습 개념

```{image} figs/image-1-1-3.jpeg
:width: 60%
:align: center
```

#### 학습의 기본 정의

- **개념 설명**: 데이터로부터 패턴을 인식하고, 이를 기반으로 예측 또는 결정을 내리는 컴퓨터의 과정
- **핵심 목표**: 데이터 분석을 통한 지식 추출 및 패턴 인식
- **학습 유형**: 지도학습, 비지도학습, 강화학습 등 다양한 형태 존재

#### 학습의 예시

- **데이터 쌍의 입력**
  - **예시 데이터**: (1, 2), (2, 4), (4, 8), (7, 14), (5, 10), ..
  - **목적**: 모델이 학습할 수 있는 입력과 출력 쌍 제공
- **학습 과정**
  - **패턴 분석**: 입력 값과 출력 값 사이의 관계를 학습
  - **관계 발견**: 예시에서, 모델은 출력이 입력의 2배라는 패턴을 학습
- **결과 예측**
  - **새로운 입력에 대한 예측**: 새로운 입력값 (3, ?), (8, ?)에 대해 모델은 6과 16을 예측
  - **예측 기반**: 학습된 패턴과 관계에 기반함

## 전통적 프로그래밍과 머신러닝의 비교

```{image} figs/image-1-1-4.jpeg
:width: 60%
:align: center
```

### 전통적 프로그래밍

- **규칙 기반 접근**
  - 프로그래머가 가능한 모든 상황에 대한 규칙을 코딩
  - 예측 가능하고 명확한 로직 필요
- **유지 관리와 확장성**
  - 규칙의 복잡성 증가 시 유지 관리 어려움
  - 시스템 확장성과 유연성에 한계
- **작동 방식**
  - 데이터 + 규칙 = 출력
  - 규칙은 프로그래머에 의해 사전 정의됨

### 머신러닝

- **데이터 기반 학습**
  - 데이터와 결과(출력)로부터 규칙 자동 학습
  - 시간에 따라 시스템 효율성 증가 경향
- **패턴 인식과 예측**
  - 입력 데이터와 출력 데이터 사이 패턴 학습
  - 새로운 데이터에 대한 예측 수행
- **작동 방식**
  - 데이터 + 출력 = 규칙
  - 모델은 주어진 데이터를 통해 규칙을 "학습"

### 기본적인 작동 방식의 차이

- **전통적 프로그래밍**
  - 명시적 규칙에 의한 결정 로직 구현
- **머신러닝**
  - 데이터를 통한 규칙 학습 및 패턴 추론

## 머신러닝과 인공지능의 관계 및 차이점

```{image} figs/image-1-1-5.jpeg
:width: 60%
:align: center
```

### 머신러닝과 인공지능의 관계

- **분류**
  - 머신러닝은 인공지능의 하위 집합
  - 인공지능은 머신러닝을 포함한 넓은 기술 범위를 가짐
- **목표**
  - 인공지능: 인간과 유사한 지능 구현
  - 머신러닝: 학습 능력에 초점
- **능력**
  - 인공지능: 추론, 학습, 계획, 문제 해결
  - 머신러닝: 데이터로부터 패턴 인식 및 예측

### 머신러닝과 인공지능의 차이점

- **핵심 작업**
  - 머신러닝: 데이터 학습 및 패턴 인식
  - 인공지능: 인간과 유사한 추론 및 문제 해결
- **접근 방식**
  - 머신러닝: 통계적 방법 및 알고리즘을 통한 지식 추출
  - 인공지능: 지식 활용 및 인간과 유사한 의사결정 시스템 개발
- **기술 활용**

  - 머신러닝: 데이터 중심 학습 및 예측 모델 개발
  - 인공지능: 추론, 계획 및 문제 해결을 위한 시스템 구현

- **머신러닝과 인공지능의 비교**:

  | 구분        | 머신러닝                                                | 인공지능                                                       |
  | ----------- | ------------------------------------------------------- | -------------------------------------------------------------- |
  | 정의        | 데이터를 기반으로 패턴을 학습하고 예측하는 시스템       | 인간과 유사한 지능을 가진 컴퓨터 시스템의 구현                 |
  | 주요 활동   | 데이터를 통한 학습과 패턴 인식                          | 지식의 획득, 학습, 추론, 문제 해결 및 의사결정                 |
  | 구현과 실현 | 데이터 분석과 예측을 통한 효과적인 의사결정 지원        | 자동화된 의사결정, 자연어 처리, 로봇공학 등의 복잡한 문제 해결 |
  | 개발 목표   | 특정 작업에 대해 스스로 학습하고 개선하는 알고리즘 개발 | 인간처럼 사고하고 학습할 수 있는 지능적 시스템의 개발          |
  | 응용 분야   | 분류, 회귀 분석, 추천 시스템, 패턴 인식 등              | 음성 인식, 이미지 분석, 자율 주행 차량, 로봇공학 등            |

## 머신러닝의 활용 분야

```{image} figs/image-1-1-7.jpeg
:width: 60%
:align: center
```

### 산업별 활용의 다양성

- **의료 분야**: 질병 진단, 환자 데이터 분석, 치료 방안 예측
- **금융 분야**: 위험 관리, 사기 탐지, 고객 행동 분석
- **교육 분야**: 학습 패턴 분석, 맞춤형 학습 콘텐츠 제공, 성적 예측
- **제조 분야**: 공정 최적화, 품질 관리, 설비 예지보전

### 기술의 발전과 성과

- **딥러닝의 진보**: 이미지 및 음성 인식, 자연어 처리에서의 혁신적 성과
- **기술 적용 확대**: 데이터 기반 의사결정 지원, 예측 분석 및 패턴 인식 활용 증가

### 데이터 과학자의 역할

- **데이터 분석**: 빅데이터에서 유의미한 정보 추출 및 분석
- **예측 모델 개발**: 비즈니스 전략 및 의사결정 지원을 위한 모델 구축
- **수요 증가**: 머신러닝 기술 활용의 필요성으로 인한 전문가 수요 급증

### 복잡한 문제 해결

- **자율주행 자동차**: 주행 환경 인식, 의사결정 알고리즘 개발
- **문자 인식**: 손글씨 인식, 문서 자동 분류 및 번역
- **의료 진단**: 의료 영상 분석을 통한 질병 조기 발견 및 진단 지원

### 사람의 능력 보완 및 대체

- **능력 보완**: 인간의 판단을 보조하는 정보 제공 및 분석
- **능력 대체**: 인간이 수행하기 어려운 작업에서의 자동화 및 효율화

### 머신러닝의 다양한 응용 분야

| 활용 분야   | 응용 예시                                                |
| ----------- | -------------------------------------------------------- |
| 영상 인식   | 문자 인식(OCR), 물체 및 장면 인식, 의료 영상 분석        |
| 얼굴 인식   | 소셜 미디어의 얼굴 인식 기능, 보안 시스템 내 생체 인식   |
| 음성 인식   | 음성 비서(Bixby, Siri, Alexa), 음성 대화 시스템          |
| 자연어 처리 | 자동 번역 시스템(Google Translate), 감정 분석            |
| 정보 검색   | 스팸 이메일 필터링, 피싱 이메일 탐지                     |
| 검색 엔진   | 사용자 맞춤형 콘텐츠 추천(Netflix, YouTube), 검색 최적화 |
| 로보틱스    | 자율 주행 자동차, 드론을 이용한 배송, 산업용 로봇 자동화 |
