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)
- 레이블이 지정된 데이터 세트에 의존하지 않고 비정형 데이터에서 암시적 레이블을 생성하여 학습하는 방식
- 지도 학습 (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 소프트웨어의 개발 과정
- 이용할 AI 모델의 종류 선택
- 선택된 AI 모델의 구체적인 구조 결정
- 뉴런 사이의 연결 형태
- 뉴런의 개수
- 층의 개수 등
- 모델 훈련
- 학습용 데이터셋으로부터 특징(Feature) 추출 및 적용
- 학습 완료 모델
- 반복 학습이 완료된 모델
- AI 소프트웨어의 개발 과정
- 학습과 훈련 및 평가의 차이
- 학습: 학습용 데이터셋으로부터 특징을 추출하여 추출된 특징을 표현하는 AI 모델을 구성하는 과정
- 훈련: 주어진 데이터셋으로부터 각 데이터에 공통적인 특징을 추출하여 AI 모델에 집어넣는 과정
- 평가: 훈련의 결과로 얻은 AI 모델이 적절한 추론을 수행할 수 있는지 판별하는 작업
- 학습과 훈련은 거의 동일한 정의를 가지고 있음
- 그래서 일반적으로는 구분하지 않고 같은 의미로 혼용하고 있음
- 그러나 엄밀하게는 서로 차이가 있으므로, 이번 과정에서는 훈련과 평가를 모두 포함한 것을 학습이라고 정의하도록 함

- 평가의 필요성
- 한 번의 훈련으로 AI 소프트웨어에서 이용 가능한 AI 모델을 구축하는 경우는 거의 찾아볼 수 없음
- 데이터셋의 오류, 편향 등에 의해 훈련을 마친 AI 모델도 오류와 편향이 발생함
- 학습 전 모델이 주어진 데이터셋의 특징을 나타내기에 적절하지 않은 구조를 가진 경우도 있음
- 이 경우는 모델 선정, 구조 결정 단계부터 다시 진행하여야 함
- 이러한 문제를 해결하기 위하여 훈련 완료 모델이 적절한 추론을 수행할 수 있는지 판별하는 과정, 즉 평가 과정이 필요함
- 한 번의 훈련으로 AI 소프트웨어에서 이용 가능한 AI 모델을 구축하는 경우는 거의 찾아볼 수 없음
- 평가 과정
- 학습용 데이터셋은 일반적으로 훈련용 데이터셋과 평가용 데이터셋으로 구분하여 사용함
- 훈련용 데이터셋을 이용하여 모델을 훈련하고, 훈련에 사용되지 않은 평가용 데이터셋으로 모델의 성능을 평가함
- 모델의 훈련은 평가 결과가 만족스러울 때까지 반복됨
- 훈련용 데이터셋은 정상이지만 평가용 데이터셋이 잘못되어 올바른 평가결과를 얻을 수 없는 경우도 있음
- 그래서 다양한 방식으로 교차 평가를 하거나,
- 올바른 추론 결과의 비율을 분석하여 평가 결과의 신뢰성을 확인하거나,
- 평가용 데이터셋을 포함한 학습용 데이터셋을 면밀하게 확인할 필요가 있음
- 훈련 결과에 대한 평가와 AI 소프트웨어 테스트
- 평가 작업
- 추론의 정확도 등과 같은 통계적 측면의 좋고 나쁨을 확인
- 테스트 작업
- AI 소프트웨어(또는 AI 시스템)가 안전하고 실용적인지 확인
- 기대하지 않은 추론 결과를 출력하는 특정 입력 발견
- 기대하는 추론 결과를 얻어내기 위한 입력 데이터 범위 추측 등
- AI 소프트웨어(또는 AI 시스템)가 안전하고 실용적인지 확인

- 평가 작업