Machine Learning1 - 정의와 종류

2022. 11. 10. 18:25AI/기계학습

전통적인 프로그래밍 방법론 : rule base 

머신 러닝 : training base, data base

 

Machine Learning 

컴퓨터 스스로 대용량 데이터에서 지식이나 패턴을 찾아 학습하고 예측한다. 예를 들어, 검색어 자동 완성, 악성코드 감지, 자료 인식 등의 예측을 필요로 하는 분야에서 사용될 수 있다.

머신 러닝은 딥러닝과 달리 데이터의 특징을 스스로 추출하지 못한다. 머신 러닝에서 컴퓨터가 입력받은 데이터를 분석하여 일정한 패턴이나 규칙을 찾아내려면 사람이 인지하는 데이터를 컴퓨터가 인지할 수 있는 데이터로 변환해 주어야 한다.

데이터 특성을 인간이 추출(feature extraction)해야 하는 것이 머신 러닝이다.

더보기

특성 추출 : 데이터별로 어떤 특징을 가지고 있는지 찾아내고, 그것을 토대로 데이터를 벡터로 변환하는 작업

즉, 머신러닝의 학습 과정은 각 데이터 특성을 컴퓨터에 인식시키고 학습시켜 문제를 해결한다. 

# 이미지 데이터라면 사람이 학습 데이터를 컴퓨터가 인식할 수 있도록 준비해 주어야 한다.

# 이미지 데이터 로드 및 전처리
def preprocess_image(file_path):
    # 이미지 파일을 읽어옴
    img = cv2.imread(file_path)
    # 이미지 크기 조정
    img_resized = cv2.resize(img, (100, 100))
    # 흑백 이미지로 변환
    img_gray = cv2.cvtColor(img_resized, cv2.COLOR_BGR2GRAY)
    # 이미지를 1차원 배열로 변환
    img_flattened = img_gray.flatten()
    return img_flattened

 

구분 머신 러닝 딥러닝
동작 원리 입력 데이터에 알고리즘을 적용하여 예측 수행 정보를 전달하는 신경망을 사용하여 데이터 특징 및 관계를 해석
재사용 다양한 알고리즘 사용, 동일한 유형의 데이터 분석을 위한 재사용 불가능 구현된 알고리즘은 동일한 유형의 데이터를 분석하는 데 재사용
데이터 수천 개 수백만 개 이상
훈련 시간 단시간 장시간
결과 일반적으로 점수 또는 분류 등 숫자 값 출력은 점수, 텍스트, 소리 등 어떤 것이든 가능

 

머신 러닝 학습 알고리즘

지도 학습

레이블(원하는 결과)과 입력 데이터가 함께 있는 훈련 데이터를 머신 러닝 알고리즘을 통해 학습, 정답(레이블label)을 컴퓨터에 미리 알려 주고 데이터를 학습시키는 방법. 지도 학습에는 분류와 회귀가 있다.

 

비지도 학습 

레이블이 없는 데이터에서 데이터가 지니고 있는 특성을 분석해 군집화 하거나 또는 요약하는 방법 등 

비지도 학습에는 군집과 차원 축소가 있다. (군집=클러스터=군집화)

군집은 각 데이터의 유사성(거리)을 측정한 후 유사성이 높은 데이터끼리 집단으로 분류

 

강화 학습

 

 

-- MachineLearning --
      ├── Datapreprocessing
      │   ├── missing-data
      │   ├── categorical-data
      │   ├── splitting-the-dataset
      │   └── feature-scaling
      │
      ├── Regression(결과가 정량적)
      │   ├── simple-linear-regression
      │   ├── multiple-linear-regression
      │   ├── polynomial-regression
      │   ├── support-vector-regression
      │   ├── decision-tree-regression
       |    ├── random-forest-regression
      │   └── Eval‎uating Regression Models Performance
      │   
      ├── Classification(결과가 정성적)
      │   ├── Logistic Regression
      │   ├── K-Nearest Neighbors (K-NN)
      │   ├── Support Vector Machine (SVM)
      │   ├── Kernel SVM
      │   ├── Naive Bayes
       |    ├── Decision Tree Classification
       |    ├── Random Forest Classification

       |    └── XGBoost      
      │   └── Eval‎uating Classification Models Performance
       |
      ├── Clustering
      │   ├── K-Means Clustering
      │   └── Hierarchical Clustering
       |
      ├── Association Rule Learning
      │   └──  Apriori
       |
      ├── Reinforcement Learning
      │   ├── Upper Confidence Bound (UCB)
      │   └── Thompson Sampling
       |
      ├── Natural Language Processing
       |    ├── Prepare for NLP
      │   └── Bag of words
       |
      ├── Deep Learning
       |    ├── Artificial Neural Networks
      │   └── Convolutional Neural Networks
       |
      ├── Dimensionality Reduction
       |    ├── Principal Component Analysis (PCA)
       |    ├── Linear Discriminant Analysis (LDA)
      │   └── Kernel PCA
       |
      └── Model Selection

 

 

 

 

'AI > 기계학습' 카테고리의 다른 글

교차검증(Cross-Validation)  (0) 2024.03.21
K-최근접 이웃, K-Nearest Neighbors (K-NN)  (0) 2023.01.05
군집  (0) 2022.11.28
차원축소(PCA)  (0) 2022.11.24
회귀분석(Regression Analysis)  (0) 2022.11.15