인공지능 소프트웨어 품질
2025. 3. 25. 13:37ㆍ소프트웨어 공학
인공지능 소프트웨어
- 머신러닝 모델은 입력과 출력의 수학적 관계를 훈련 데이터 일부에 대해서만 학습하며, 전체 입력 공간에 대한 보장은 어려움.
- (훈련 데이터 이외의 데이터에 대해서는 오차가 발생할 수 있다)
- 캡슐화와 모듈화 개념 등은 딥러닝 아키텍처 설계, 파이프라인 구성 등에서 부분적으로 적용
- (전통적 소프트웨어에 비해 명확한 인터페이스 정의나 의도적 설계 분할이 어렵다)
- 학습 알고리즘보다 학습에 사용하는 데이터가 더 중요하다.
- 성능을 올리기 위해선 초기 가중치를 잘 선택해야 한다.
- (특히 깊은 신경망에서는 Vanishing/Exploding Gradient 문제를 방지하기 위한 초기화 전략)
1. 인공지능 소프트웨어의 이슈
- 투명성(Transparency) :
- 기계학습 기반 시스템은 동일한 입력에 대하여 서로 다른 결과를 제공할 수 있다
- AI 시스템은 시점(time)에 따라 결과가 달라질 수 있는 시변적 특성을 가지기 때문에 설명 가능성(explainbility) 을 보장할 수 있는 출력 해석이 필요하다
- 전통적 소프트웨어의 시불변성과 대조
- 책임(Accountability) :
- 출력 결과가 부정적일 경우를 대비해 사용자에게 알려주는 보고 기능이 있으면 좋다.
- 보안(Security):
- AI 시스템의 응용 범위 확장으로 인한 정보 침해의 가능성이 있다.
- 안전성(Safety)
- 좋은 품질의 데이터는 물론, 데이터에 존재할 수 있는 오류에도 대처 가능해야 한다.
- 법적, 윤리적 측면
- 인간에게 적용되는 법적,윤리적 문제들을 보장할 수 있도록 개발되야 한다.
- 인공지능의 최종 목적은 성능을 향상 시키는 것으로 요즘은 학습 모델에 심볼릭 AI(규칙기반) + 딥러닝(연결기반) + 통계 모델(확률기반) 를 결합한 하이브리드 AI접근 방식이 연구되고 있다.
시스템 관점별 품질 요소
1. ML 시스템의 구성 관점
- 모델 관점:
- 분류나, 차원 축소 같은 작업을 수행하기 위해 데이터에 대한 훈련이 이루어지는 부분
- 데이터 관점:
- 모델에 입력되는 실데이터와 관련된 부분
- 시스템 관점:
- ML 컴포넌트들을 연결하고, 형상(Configuration)을 정의
- 인프라 관점:
- 어떻게 구현되는 가에 초점을 맞추는 부분
- 시스템 관점과 밀접한 관계가 있다
- 환경 관점:
- 사용자 인터페이스, 사용자의 요구 및 기대, 사용환경(네트워크, 디바이스) 등을 포함하며, 사용자 경험과 관련된 요소로 간주된다.
ISO9126 품질 모델(이전에 소프트웨어 품질을 평가하던 모델)
25010 품질 모델(9126을 확장한 모델)
ISO 9126 / 25010은 인공지능 소프트웨어에도 부분적으로 적용 가능하지만 AI 특유의 특성(데이터 중심성, 설명 가능성, 불확실성 등)을 반영하기엔 불완전하다
정량적 품질 개선
- 소프트웨어 개발 과정에서 적용하는 정량적 품질 관리 프로세스
1. 준비 단계
- 프로젝트의 공식화 및 팀 구성과 역할 정의
- 적용 표준,지원 도구, 환경 등을 구축
2. 척도 조정 단계
- 프로젝트의 다양한 품질 요소 중에서 어떤 요소를 측정할지 결정
- 각 품질 요소를 적용할 단계 및 대상물 정의
- 품질 요소에 대한 정량화 방법을 품질 측정 계획서에 기재
3. 측정 단계
- 품질 측정 계획서를 바탕으로 데이터 수집 후 분석
- 새로운 중요 데이터 발견 혹은 하나의 척도를 분리해야 하면 새로운 척도를 마련하고 적용
4. 평가 단계
- 유사 프로젝트의 품질 요소 수준과 상대적인 비교
- 품질 측정 계획서에 정의한 대로 진행 했는지 점검
- 데이터 수집시점, 임의 변경 및 조작등 점검
- 수집된 데이터를 조직 차원의 DB에 저장
5. 관리 단계
- 조직 차원에서 수행하는 품질 관리 및 기술 관리 프로세스에 해당하는 단계
- 적절한 품질 표준 선택
- 품질 관리 활동에 대한 다양한 양식 및 가이드 라인 제공
- 교육 등을 통한 조직 차원의 품질 관리 활동을 관리,지원
반응형
'소프트웨어 공학' 카테고리의 다른 글
소프트웨어 개발 모델 (0) | 2025.04.12 |
---|---|
소프트웨어 개발 프로세스 (0) | 2025.03.25 |
소프트웨어의 정의와 품질 (4) | 2025.03.19 |
Software Crisis (4) | 2025.03.11 |
Software Engineer (week 1) (2) | 2025.03.04 |