AI 소프트웨어와 평가

1. AI 소프트웨어 개요

1.1 AI 소프트웨어란?

  • 인간의 인지 능력(학습, 추론, 문제 해결, 지각, 언어 이해 등)을 모방하고 수행하도록 설계된 컴퓨터 프로그램과 시스템을 총칭하는 용어
  • 기업의 입장에서, 기업이 조직 내에서 AI를 채택하거나 개선하는 데 도움이 되도록 특별히 설계된 코드를 가리킴
  • 기존 소프트웨어가 개발자가 미리 정해놓은 규칙에 따라 수동적으로 작업을 수행하는 것과 달리,
    AI 소프트웨어는 스스로 학습하고 데이터를 분석하여 의사결정을 내리거나 문제를 해결하는 능력을 보유함

  • AI 소프트웨어의 학습과 추론 과정

1.2 주요 목표 및 특징

  • 핵심 목표
    • 인간의 지능에 대한 모방체를 컴퓨터 시스템에 구현하여
    • 사람이 처리하기 어려운 복잡하고 반복적인 작업을 효율적으로 수행하고
    • 더 나아가 새로운 통찰력을 발견하는 것
  • 주요 특징
    • 학습 능력
      • 데이터에서 패턴을 인식하고, 경험을 통해 성능을 개선하며, 스스로 지식을 습득함
      • 기계 학습(Machine Learning), 딥러닝(Deep Learning)이 이러한 학습 능력의 핵심 기술
      • 특히 딥러닝은 심층 신경망을 사용하여 인간 두뇌의 복잡한 의사 결정 능력을 더 가깝게 시뮬레이션
    • 추론 및 의사결정
      • 학습된 지식을 바탕으로
      • 새로운 상황이나 문제에 대해 논리적으로 판단하고
      • 최적의 결정을 내릴 수 있음
    • 패턴 인식
      • 이미지, 음성, 텍스트 등 비정형 데이터 속에서 의미 있는 패턴을 찾아내고 분류하는 데 탁월한 능력을 보여줌
    • 자동화
      • 인간의 개입 없이 작업을 자동으로 수행하여 효율성을 극대화
    • 적응성
      • 새로운 데이터나 환경 변화에 맞춰 스스로 시스템을 조정하고 성능을 최적화

1.3 핵심 구성 요소 및 작동 원리

AI 소프트웨어는 다양한 기술과 요소들의 결합으로 작동함

  • 데이터 (Data)
    • AI 모델을 학습시키고 기능을 수행하는 데 필요한 가장 기본적인 요소
    • 대량의 고품질 데이터가 AI 소프트웨어의 성능을 좌우함
    • 데이터 수집, 정제, 전처리 과정이 매우 중요
  • 알고리즘 (Algorithm)
    • 데이터를 분석하고 학습하며 추론하는 데 사용되는 수학적 절차와 규칙들의 집합
  • 모델 (Model)
    • 데이터 학습을 통해 얻어진 지식과 규칙을 체계화한 결과물
    • 모델을 통해 AI는 새로운 데이터를 처리하고 예측을 수행함
  • 학습 방법 (Learning Methods)
    • 지도 학습 (Supervised Learning)
      • 레이블이 지정된 데이터 세트를 사용하여 정확한 예측을 위한 모델을 학습하는 방식
    • 비지도 학습 (Unsupervised Learning)
      • 레이블이 지정되지 않은 대규모 데이터에서 스스로 패턴을 찾아 학습하는 방식
    • 강화 학습 (Reinforcement Learning)
      • 시행착오를 통해 최적의 행동 방침을 찾아 학습하는 방식
    • 준지도 학습 (Semi-supervised Learning)
      • 레이블이 지정된 데이터와 지정되지 않은 데이터를 모두 사용하여 학습하는 방식
    • 자기 지도 학습 (Self-supervised Learning)
      • 레이블이 지정된 데이터 세트에 의존하지 않고 비정형 데이터에서 암시적 레이블을 생성하여 학습하는 방식

1.4 AI 소프트웨어의 분야 및 응용

AI 소프트웨어는 다양한 하위 분야와 응용처를 가지고 있으며
우리가 직면한 복잡한 문제를 해결하고 삶의 질을 향상시키는 데 큰 잠재력을 지님

  • 자연어 처리 (NLP, Natural Language Processing)
    • 컴퓨터가 인간의 언어를 이해하고 생성하며 번역하는 기술
    • 예: 챗봇, 음성 비서, 자동 번역 등
  • 컴퓨터 비전 (Computer Vision)
    • 이미지나 동영상 데이터를 분석하여 사물, 얼굴, 패턴 등을 인식하고 이해하는 기술
    • 예: 안면 인식, 자율 주행, 의료 영상 분석 등
  • 음성 인식 (Speech Recognition)
    • 인간의 음성 언어를 텍스트로 변환하는 기술
    • 예: 음성 명령 등
  • 추천 시스템 (Recommendation Systems)
    • 사용자 데이터를 기반으로 맞춤형 상품이나 콘텐츠를 추천
    • 예: 넷플릭스, 유튜브 추천 알고리즘 등
  • 로보틱스 (Robotics)
    • 로봇이 환경을 인식하고 스스로 행동하며 작업을 수행하도록 제어하는 소프트웨어
    • 예: 산업용 로봇, 서비스 로봇 등
  • 생성형 AI (Generative AI)
    • 기존 데이터의 패턴을 학습하여 새로운 텍스트, 이미지, 오디오, 코드 등을 생성하는 기술
    • 예: ChatGPT, Stable Diffusion 등

1.5 기존 소프트웨어 개발과의 차이점

  • AI 기술은 컴퓨터를 기반으로 프로그램의 형태로 구현됨
    • 컴퓨터 프로그램이란?
      • 보유한 데이터를 입력하여
      • 우리가 원하는 결과 데이터를 만들어 내도록 지시하는
      • 명령어의 모임
  • 기존 소프트웨어의 구성과 AI 소프트웨어의 구성
    • 기존 소프트웨어
    • AI 소프트웨어

2. AI 소프트웨어의 학습과 훈련 및 평가

  • AI 모델의 학습

    • AI 소프트웨어의 개발 과정
      1. 이용할 AI 모델의 종류 선택
      2. 선택된 AI 모델의 구체적인 구조 결정
        • 뉴런 사이의 연결 형태
        • 뉴런의 개수
        • 층의 개수 등
      3. 모델 훈련
        • 학습용 데이터셋으로부터 특징(Feature) 추출 및 적용
      4. 학습 완료 모델
        • 반복 학습이 완료된 모델
  • 학습과 훈련 및 평가의 차이
    • 학습: 학습용 데이터셋으로부터 특징을 추출하여 추출된 특징을 표현하는 AI 모델을 구성하는 과정
    • 훈련: 주어진 데이터셋으로부터 각 데이터에 공통적인 특징을 추출하여 AI 모델에 집어넣는 과정
    • 평가: 훈련의 결과로 얻은 AI 모델이 적절한 추론을 수행할 수 있는지 판별하는 작업
    • 학습과 훈련은 거의 동일한 정의를 가지고 있음
    • 그래서 일반적으로는 구분하지 않고 같은 의미로 혼용하고 있음
    • 그러나 엄밀하게는 서로 차이가 있으므로, 이번 과정에서는 훈련과 평가를 모두 포함한 것을 학습이라고 정의하도록 함
  • 평가의 필요성
    • 한 번의 훈련으로 AI 소프트웨어에서 이용 가능한 AI 모델을 구축하는 경우는 거의 찾아볼 수 없음
      • 데이터셋의 오류, 편향 등에 의해 훈련을 마친 AI 모델도 오류와 편향이 발생함
      • 학습 전 모델이 주어진 데이터셋의 특징을 나타내기에 적절하지 않은 구조를 가진 경우도 있음
        • 이 경우는 모델 선정, 구조 결정 단계부터 다시 진행하여야 함
    • 이러한 문제를 해결하기 위하여 훈련 완료 모델이 적절한 추론을 수행할 수 있는지 판별하는 과정, 즉 평가 과정이 필요함
  • 평가 과정
    • 학습용 데이터셋은 일반적으로 훈련용 데이터셋과 평가용 데이터셋으로 구분하여 사용함
    • 훈련용 데이터셋을 이용하여 모델을 훈련하고, 훈련에 사용되지 않은 평가용 데이터셋으로 모델의 성능을 평가함
    • 모델의 훈련은 평가 결과가 만족스러울 때까지 반복됨

    • 훈련용 데이터셋은 정상이지만 평가용 데이터셋이 잘못되어 올바른 평가결과를 얻을 수 없는 경우도 있음
      • 그래서 다양한 방식으로 교차 평가를 하거나,
      • 올바른 추론 결과의 비율을 분석하여 평가 결과의 신뢰성을 확인하거나,
      • 평가용 데이터셋을 포함한 학습용 데이터셋을 면밀하게 확인할 필요가 있음
  • 훈련 결과에 대한 평가와 AI 소프트웨어 테스트
    • 평가 작업
      • 추론의 정확도 등과 같은 통계적 측면의 좋고 나쁨을 확인
    • 테스트 작업
      • AI 소프트웨어(또는 AI 시스템)가 안전하고 실용적인지 확인
        • 기대하지 않은 추론 결과를 출력하는 특정 입력 발견
        • 기대하는 추론 결과를 얻어내기 위한 입력 데이터 범위 추측 등