Data Analysis/ML & DL

[ML] 인공지능과 기계학습

Bay Im 2024. 3. 24. 15:33
  • 지능 (intelligence)
    • 인간이 사물을 이해하고 학습하는 능력
    • 어떤 문제가 주어졌을 때 합리적으로 사고하여 문제를 해결하는 능력
  • 인공지능 (Artificial Intenlligence)
    • 인간의 인지적인 기능을 모방, 문제 해결을 위해 학습하고 이해하는 기계
  • 인공지능의 발전
    • 탐색의 시대(1960~1974)
      • 초기의 AI 프로그램은 대부분 기본 탐색 알고리즘 사용 (단계별로 진행하고, 막다른 곳에 도달할 때 되돌아가는)
      • 해당 시대에는 충분한 CPU나 메모리가 없었기 때문에 많은 정보의 데이터베이스를 만들 수 없었고, 어떻게 학습해야 하는지 알지 못했다.
    • 지식의 시대(1980~1987)
      • 전문가 시스템(expert system) 등장
        • 전문가 시스템: 전문가로부터 지식을 얻어 데이터베이스 생성→ 추론 엔진→ 사용자 형태로 질의와 답변을 주고받는 시스템
      • 전문가 시스템은 유용했지만 특수한 상황에서만 유용하던 점이 문제였다.
    • 학습의 시대
      • AI의 부활(1993~2011)
      • 딥러닝, 빅데이터, 인공지능(2011~현재)
      • 인공지능 (Artificial Intelligence)
        • 사람의 지능을 모방하거나 대체하기 위한 시스템 또는 프로그램
        • ANI (Artificial Narrow Intelligence)
          • 인간의 지능을 단순히 모방하여 인간과 유사한 수준으로 특정 문제 만을 해결하는 인공지능
        • AGI (Artificial General Intelligence)
          • 인공지능이 정보를 일반화하여 주어진 상황에 적응하여 문제 해결이 가능한 인간과 동일한 수준의 지성을 가진 인공지능
        • ASI (Artificial Super Intelligence)
          • 인간의 지능을 초월한 수준의 인공지능
      • 머신러닝 (Machine Learning)
        • 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상시키는 방법
      • 딥러닝 (Deep Learning)
        • 많은 레이어(layer)가 있는 신경 회로망을 사용하여 데이터의 추상화를 모델링하는 기계학습의 한 분야
        • 사람 뇌의 뉴런과 유사한 방식으로 정보를 처리하는 인공 신경망
      • 빅데이터 (Big Data)
        • 주변의 환경에서 생산되는 방대한 데이터를 저장하고 활용하여 딥러닝의 훈련 데이터로 사용
  • 기계학습 (Machine Learning)
    • 규칙에 따라 코딩하지 않고 데이터로부터 스스로 학습할 수 있도록 하는 과학 분야
    • 종류
      • 배치 학습
        • 가용한 데이터를 모두 사용하여 학습
        • 오프라인 학습
        • 전체 데이터가 크지 않거나 변화 주기가 짧지 않을 때 적합
      • 온라인 학습
        • 데이터를 순차적으로 한 개 또는 미니 배치라 부르는 묶음 단위로 학습
        • 전체 데이터가 크거나 변화 주기가 짧을 때 적합
      • 비지도 학습
        • 훈련 데이터에 정답(레이블)이 포함되지 않는다.
        • 종류: 군집 분석, K-평균, 주성분 분석, 차원 축소, 이상치 탐지, 연관규칙 학습
      • 지도 학습
        • 훈련 데이터에 정답(레이블)이 포함된다.
        • 종류: K-최근접 이웃, 결정 트리, 랜덤 포레스트, 선형 회귀, 리지, 라쏘, 로지스틱 회귀, 인공 신경망, 나이브 베이지안
      • 준지도 학습
        • 훈련 데이터에 답(레이블)이 일부만 포함
      • 강화 학습
        • 학습 에이전트가 환경을 관찰하고 행동한 결과에 따른 보상과 벌칙을 이용하여 최상의 전략을 학습
      • 사례기반 학습
        • 시스템이 훈련 샘플을 기억하여 학습
        • 새로운 데이터와 기억한 데이터와의 유사도 측정하여 판단
      • 모델기반 학습
        • 훈련 샘플들로부터 모델을 만들어 판단
        • 훈련시 사용한 데이터는 사용하지 않고, 모델 파라미터에 기반하여 판단
  • 정형화된 데이터 (Structured data)
    • 머신러닝 알고리즘을 이용하기 위해선 정형화된 데이터가 필요하다. 하지만 대부분의 데이터는 정형화된 데이터가 아니다.
    • Unstructed data→ Structured data→ Analysis 순
  • 사이킷런(scikit-learn)
    • 파이썬 기반의 데이터 마이닝, 데이터 분석 개발 라이브러리
    • 머신러닝을 위한 알고리즘, 프레임워크, API 제공
  • Estimator 클래스
    • 지도 학습의 모든 알고리즘을 구현한 클래스
    • 분류 구현 클래스, 회귀 구현 클래스
    • fit() 모델 학습과 predict() 결과 예측 메서드를 클래스 내부에서 구현
  • 사이킷런에 내장된 데이터세트 구성 형태
    • 사이킷런에 내장된 데이터세트는 일반적으로 딕셔너리 형태로 구성
    • 키 구성
      • data
        • feture의 데이터
      • target
        • 분류에서는 레이블 값, 회귀에서는 숫자 값 데이터세트
      • target_names
        • 개별 레이블의 이름
      • feature_names
        • 피쳐들의 이름
      • DESCR
        • 데이터세트에 대한 설명과 각 피쳐의 설명