기존의 소프트웨어와 AI 소프트웨어의 차이점

  • 연역법
    • 일반적인 전제를 토대로 더욱 개별적인 결론을 도출하는 추론 방법
    • 대표적인 사례: 3단 논법
      • 고양이는 포유류다 ➜ 스코티시 폴드는 고양이다 ➜ 스코티시 폴드는 포유류다
  • 귀납법
    • 개별 사례를 토대로 일반적인 법칙을 찾아내는 추론 방법
    • 예시
      • 삼색 고양이 1000마리의 성별을 조사한 결과 ➜ 삼색 고양이에는 수컷이 없다

1. 기존 소프트웨어

1.1 연역적 특징을 따르는 개발 방식

  • 주어진 전제조건(요구사항)을 만족하는 구체적인 결과물(소프트웨어)를 만들어가는 방식
    • 정의된 요구사항을 전제로 ➜ 구체적인 요구사항 결정 ➜ 요구사항을 만족하는 소프트웨어 개발
  • 개발 작업이 올바르게 수행된다면 ➜ 요구사항을 만족하는 소프트웨어 제작을 기대할 수 있음
    • 소프트웨어가 요구사항을 만족하지 않는다면 ➜ 개발작업이 올바르게 수행되지 않았음을 의미

1.2 테스트 기법의 특징

  • 연역적 특징을 이용 ➜ 명확한 테스트 가능
    1. 요구사항을 토대로 테스트 문제와 모범 답안 준비
    2. 테스트 작업 수행
    3. 소프트웨어가 정답을 출력하면 합격으로 인정

2. AI 소프트웨어

2.1 귀납적 특징을 따르는 개발 방식

  • 학습용 데이터셋이라는 개별 사례로부터 다른 데이터에도 적용할 수 있는 일반적인 법칙을 찾아내는 방식
    • 학습용 데이터셋을 토대로 ➜ 데이터의 특징을 나타내는 학습 완료 모델 구축
    • 학습 완료 모델은 데이터셋에 포함되지 않은 입력 데이터에 대해서도 결과 출력 가능

2.2 테스트 기법의 특징

  • 개별 사례를 일반화하여 결과(법칙)를 출력 ➜ 구해진 법칙이 항상 올바르다고 단정할 수 없음
  • 학습용 데이터셋을 토대로 학습한 학습 완료 모델이 학습용 데이터셋 이외의 데이터에서도 올바른 추론 결과를 출력할지 알 수 없음
  • 애초에 올바른 출력이 무엇인지도 아무도 알 수 없음
  • 따라서 기존 소프트웨어의 테스트 기법을 적용할 수 없음