인공지능 기반 시스템 특성
From IT Wiki
고유 특성[edit | edit source]
인공지능 기반 시스템의 특성은 기본적인 SW, 시스템의 특징을 대부분 포함하며, 아래 다루는 내용들은 인공지능 기반 시스템에 고유하게 적용되는 특징적인 특성들이라고 할 수 있음
- 적응성 (Adaptability)
- 시스템이 기능 및 비기능 요구사항 모두를 지속적으로 충족하기 위해 환경 변화에 반응하는 능력
- 적응형 시스템 속성에는 자가구성, 자가치유, 자가보호, 자가학습 등[1]
- 적응성을 위해서는 시스템이 운영 환경 정보를 능동적 또는 수동적으로 수집해야 함
- 탐색(능동적 정보 수집)은 자가 개선을 위한 유용한 정보를 제공하지만 위험할 수 있으며(예, 비행 영역 경계를 벗어나는 경우), 안전 관련 상황에서 탐색할 때 시스템이 주의를 기울여야 함
- 적응성 요구사항은 시스템이 적응할 수 있는 환경 변화를 명시해야 하며, 적합한 경우 적응 최대 시간과 같이 적응 프로세스 자체에 대한 요구사항도 포함
- 시스템이 기능 및 비기능 요구사항 모두를 지속적으로 충족하기 위해 환경 변화에 반응하는 능력
- 자율성 (Autonomy)
- 시스템이 인간의 개입 없이 지속적으로 작동할 수 있는 능력
- 이 시스템을 위해 예상되는 인간의 개입 수준을 지정해야 하며 이는 시스템 기능 요구사항에 들어가야 한다 ( 예, ‘시스템은 다음 중 하나가 발생할 때까지 운항을 지속해야 한다…’).
- 진화 (Evolution)
- 다른 유형의 변화에 대처하는 시스템의 능력
- 첫 번째 변화 유형은 사용자 요구사항의 변경이다. 이는 여러 가지 이유로 발생할 수 있으며, 시스템과 사용자의 상호작용으로도 발생할 수 있다.
- 두 번째 변화 유형은 시스템의 동작 변화로 이는 시간이 지나면서 시스템이 새로운 행동을 학습하기 때문에 나타난다(위 적응성에서 자가학습 참조).
- 세 번째 변화 유형은 사용성 개요(usage profile)가 변경되고 원래 계획했던 사용 취지에서 멀어지는(drift) 경우다.
- 시스템 동작의 변화가 항상 긍정적인 것은 아니며 시스템 특성의 부정적 형태로 성능 저하, 표류 또는 부패가 있을 수 있다.
- 다른 유형의 변화에 대처하는 시스템의 능력
- 유연성 (Flexibility)
- 시스템이 초기 명세를 벗어난 상황에서 작동할 수 있는 능력이다 (즉, 실제 상황에 따라 동작을 변경해 목표를 달성한다).
- 유연성은 요구사항에 정확하게 기술돼 있어야 한다. 이것은 “해야 한다(must), ‘~ 할 수도 있다(may)’, ‘거의 ~한다(close to)’와 같이 엄격함의 정도를 나타내는 동사를 사용해 비공식적으로 달성하거나 명세(예, RELAX 요구사항 언어 [RELAX 2010]) 의 확률과 가능성을 사용해 좀더 공식적으로 달성할 수 있다. 유연성은 반응성, 사전 행동, 상호작용, 적응 또는 자체 학습과 같은 다양한 기술 메커니즘을 사용해 달성할 수 있다 [QM4MAS 2016]. 유연성을 테스트하려면 시스템에 특정지어진 모든 동작(선택적 동작 포함)을 다루는 테스트가 필요하다. 테스트는 시스템의 동작 변경 능력과 시스템의 동작 변경 방식을 포함해야 한다.
- 편향성 (Bias)
- 기계 학습(ML) 모델에서 제공한 예측값과 실제값의 차이를 측정한 것
- 기계 학습(ML)의 발상은 훈련 데이터를 식별하고 패턴을 일반화해 이 패턴을 분류하고 예측할 수 있는 모델로 구현하는 것이다. 훈련 데이터가 운영에 사용될 것으로 기대하는 데이터를 대표하지 못한다면 그 모델은 편향되었을 가능성이 높다. 훈련 데이터는 명시적, 암시적 편향으로 인해 손상되었을 수 있다. 예를 들어, 암시적 편향은 기계 학습(ML)이 훈련 데이터에서 예상치 않은 패턴을 선택했을 때 의도치 않게 일어난다. 명시적 편향은 파생 모델에 영향을 줄 것으로 예상되는 알려진 패턴으로 훈련 데이터를 선택할 때 일어난다. 편향성 테스팅은 두 단계로 수행할 수 있다. 첫 단계는 리뷰를 통해 훈련 데이터에서 제거하는 것으로, 이는 편향을 일으키는 특성을 알아볼 수 있는 리뷰 전문가를 필요로 한다. 두 번째 단계는, 편향성이 없는 테스팅 세트를 사용해 독립적 테스팅을 수행하는 것이다. 훈련 데이터가 편향됐다는 것을 알면 편향 원인을 제거할 수 있다 (예, 대상의 성별 또는 인종에 대한 단서를 제공한 모든 정보를 제거할 수 있음). 그 대신 시스템이 편향(명시적이든 암시적이든)적이라는 사실을 받아들이고, 훈련 데이터를 공개해 투명성을 제공해야 한다. 편향 테스팅에 대한 상세 내용은 3.5를 참조하라.
- 성능 메트릭 (Performance Metrics)
- 기계 학습(ML)모델에 대해 정의된 성능 메트릭으로는 정확도, 정밀도, 재현율이 가장 널리 사용됨
- 이 메트릭은 시스템 요구사항의 일부로 합의되고 정의되어야 한다. 성능 모델 테스팅은 종종 기계 학습(ML) 프레임워크(예, 텐서플로우)의 일부로 제공되며, 주어진 테스트 데이터 세트에 대한 이 측정값을 계산한다.
- 투명성 (Transparency)
- AI 기반 시스템의 결과도출 방법을 얼마나 쉽게 볼 수 있는지 측정한 것
- 가령, 대상이 고양이인지 판별하는 이미지 분류기는 입력 이미지에서 대상이 고양이라고 결정한 특징을 지적함으로써 투명성을 나타낼 수 있다. 일부 AI 기반 시스템(예, 심층 신경망)은 어떻게 작동하는지 알 수 없을 만큼 복잡하므로 이런 시스템은 투명성이 부족하다고 할 수 있다. 이 복잡성을 맥락에서 보자면, 성능이 괜찮은 일반 신경망에는 단일 결정에 기여하는 훈련 중 학습된 매개변수가 약 일억 개 가까이 있을 수 있다 (기존의 전문가 시스템과 같이 명백하게 ‘X이고 Y이면 Z이다’라는 규칙은 없다). 투명성 부족의 또 다른 요인은 훈련 데이터의 출처나 선택이 모호한 경우이다. 투명도 요구수준은 시스템마다 다르다. 가령, 마케팅 캠페인을 알려주는 데 사용하는 결과는 수술이나 형량 결정(예, 규제 대상 분야)과 같은 보다 중요한 시스템에 사용하는 결과보다는 투명성 요구가 적을 것이다. 중요한 시스템의 경우 최소한 시스템을 신뢰하는 법을 배울 때까지 이 투명성이 필요하다. 일반개인정보보호법(GDPR)에는 특정 의사결정시스템의 설명가능성에 대한 요구사항이 포함되어 있다. AI 프레임워크마다 다른 수준의 투명도를 제공하며, 요구되는 투명도 수준에 따라 다른 프레임워크가 선택되어야 한다. 많은 비기능 요구사항과 마찬가지로 다른 비기능 특성과 충돌이 있을 수 있다. 다른 프레임워크가 [그림 3]에서 보여지듯이, 이 경우 투명도 달성과 정확도 사이에 균형이 필요할 수 있다. 잠재적 투명도 문제를 해결하는 한 가지 방법은 (불투명)배포 모델을 만드는 데 사용한 프레임워크, 훈련 알고리즘 및 훈련 데이터 선택에 대한 세부 정보를 공개하는 것이다. 설명 가능한 AI(XAI: Explainable AI) 분야에서는 AI기반 시스템에 대한 보다 쉬운 설명을 위한 방안을 다룬다 [XAI 2019]. 투명성 테스팅은 정성적(qualitative) 활동이며, AI 기반 시스템 동작이 이해하기 쉽고 제공된 설명이 충분한지 결정할 수 있도록 관련자들 또는 관련 테스터들이 수행할 것을 요구한다.
- 복잡성 (Complexity)
- AI 기반 시스템, 특히 심층 학습으로 구현된 시스템은 매우 복잡함
- AI 기반 시스템은 복잡한 문제 특성(예, 빅 데이터 기반 의사결정)때문에 대안을 찾기 어려운 경우 종종 사용된다. 앞에서 언급했듯이, 심층 신경망이 일억 개 이상의 매개 변수를 갖는 것은 드문 일이 아니다. 이런 시스템의 복잡성은 테스트 오라클 문제를 일으킨다.
- 비결정성 (Non-Determinism)
- 비결정적 시스템에서는 결정적 시스템과는 달리 실행할 때마다 동일한 입력에서 동일한 출력을 생성한다는 보장이 없음
- 비결정적 시스템에서는 동일한 사전조건과 테스트 입력을 가진 테스트에서 유효한 여러 개의 결과가 나올 수 있다. 일반적으로 테스터가 결정성을 가정하여 테스트 재실행 시 이전과 동일한 결과를 얻을 수 있게 하고, 이는 리그레션 또는 확인 테스팅에 테스트를 재사용할 때 아주 유용하다. 그러나 많은 AI 기반 시스템은 확률적 구현에 기반하므로 동일한 테스트 입력에 대해 항상 동일한 결과를 생성하지는 않는다. 가령, 분명하지 않은 네트워크(non-trivial network) 에서 최단 경로 계산은 정확한 값을 산출하기에(강력한 컴퓨터를 쓰더라도) 너무 복잡하다고 알려져 있으며 보통은 준-최적 해결법(sub-optimal solutions) 정도가 수용 가능하다고 여겨지고 있다. 종종 AI가 아닌 그냥 전통적이고 복잡한 시스템에도 있긴 하나, AI 기반 시스템에는 동시 처리 (concurrent processing)와 같은 비결정성의 다른 원인들이 있을 수 있다.
참고 문헌[edit | edit source]
- 중소SW기업 SW품질관리 가이드-Ai 시스템 테스트
- ↑ Püschel, Testing Self-Adaptive Systems - A Model-based Approach to Resilience, Dissertation, Technischen Universität Dresden, June 2018.