인공지능 소프트웨어 품질

2025. 3. 25. 13:37소프트웨어 공학

인공지능 소프트웨어

  1. 머신러닝 모델은 입력과 출력의 수학적 관계를 훈련 데이터 일부에 대해서만 학습하며, 전체 입력 공간에 대한 보장은 어려움.
    • (훈련 데이터 이외의 데이터에 대해서는 오차가 발생할 수 있다)
  2. 캡슐화와 모듈화 개념 등은 딥러닝 아키텍처 설계, 파이프라인 구성 등에서 부분적으로 적용
    • (전통적 소프트웨어에 비해 명확한 인터페이스 정의나 의도적 설계 분할이 어렵다)
  3. 학습 알고리즘보다 학습에 사용하는 데이터가 더 중요하다.
  4. 성능을 올리기 위해선 초기 가중치를 잘 선택해야 한다.
    • (특히 깊은 신경망에서는 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