[SW 테스팅]AI 품질 관리 개요 ++ 데이터 품질 전문가가 되고 싶다면

ACAI BERRY DEVELOVER·2023년 9월 13일
post-thumbnail

이 포스팅은 개인 공부 목적으로 박영근 강사님의 자료에서 필요한 부분을 발췌해 기록하였습니다.

오늘은 박영근 강사님의 AI 품질에 대해 특강을 들었다.
너무 귀중한 강의.... 비전공자도 알아들을 수 있게끔 너무 쉽게 잘 설명해주셨다. 강의를 너무 잘하셔서 오늘부로 내 롤모델이 되셨다... (롤모델 벌써 3명...)
하 ... AI의 중요성에 대해서 쓰고 싶었는데 지식도 없고, 말도 못해서 ㅜㅜ 컬럼 하나 참조해본다..
지금 왜 인공지능이 중요하고 필요한 지 명확하게 설명해주는 글이다.

https://news.samsung.com/kr/4%EC%B0%A8-%EC%82%B0%EC%97%85%ED%98%81%EB%AA%85-%EC%8B%9C%EB%8C%80-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5%EC%9D%98-%EC%97%AD%ED%95%A0%EC%9D%80

  • 나같은 신입 소프트웨어 테스터들은

    지금은 당장 AI 테스트에 투입되지는 않을 것이다. 하지만 앞으로 경력을 쌓으면서 AI 관련 업무에 투입이 될 수도 있고 내가 직접 AI 테스트를 하고 있을 수도 있다. 사람 일은 모르는 일. 혹은 AI 관련 직업을 가질 수도 있다. AI 모델을 테스팅할 수도 있고 빅데이터를 다루는 직업을 가질 수도 있다.
    혹 아니면 회사에서 전체 테스트를 총괄하는 중요한 역할의 실장이나 PM이 될수도 있다. SW 관련 직무를 하는 엔지니어로써 CS 지식 뿐만 아니라 기본적인 AI에 대한 소양이 있어야 관련 도메인 전문가나 AI 개발자들과 커뮤니케이션이 가능할 것이다.
    그러니 이번 수업을 통해
  • AI 시스템이 무엇인지
  • AI 품질 관리가 어려운 이유
  • AI 시스템 품질 관리 방법
  • AI 시스템의 요구사항 스펙과 테스트

에 대해 간략하게 배워보고자 한다.

우선 AI, 머신러닝, 딥러닝, 그리고 이 인공지능이 사용하는 메인 알고리즘과 , AI가 탑재된 시스템 사례들에 대해 설명해주셨다.

AI(Artificial Intelligence) :

The capacity of computers or other machines to exhibit or simulate intelligent behaviour

  • 지능적인 행동을 묘사하거나 보여주는 컴퓨터나 혹은 어떤 기계의 능력

인공신경망 (Artificial Neural Network)

Reference: https://heung-bae-lee.github.io/2019/12/06/deep_learning01/


  • 인공신경망은 데이터에서 중요한 특징(feature)을 알고리즘이 감지하도록 설계한다면 인간과 같이 판단할 수 있는 것이라는 전제가 있고
  • 중요한 특징을 감지한다는 것은 해당 데이터와 연결된 신경망 가중치를 더욱 크게 해주면 된다는 얘기.

인공신경망이 사진으로부터 개를 인식하는 방법
❶ 훈련 : 신경망은 동물 라벨이 붙여진 수천 개의 사진을 가지고 분류하는 방법을 배운다.
❷ 입력 : 훈련받은 신경망에 라벨이 붙지 않은 이미지를 보여준다
❸ 입력층 (first layer) : 뉴런이 가장자리와 같은 단순한 형상에 반응한다.
❹ 은닉층 (higher layer) : 뉴런이 더 복잡한 조합의 특징(feature)에 반응한다.
❺ 출력층 (top layer) : 뉴런이 좀 더 복잡하면서도 동물을 구분할 수 있는 추상화 개념에 반응한다.
❻ 출력 : 신경망은 자신이 훈련받은 내용에 근거해 사진 속 동물을 예측한다.

reference : https://magazine.hankyung.com/business/article/202009099351b

  • 딥러닝의 학습환경 (인공신경망)

    reference: http://ai4school.org/?page_id=2464

    이 사진처럼 인공신경망은 레이어가 많으면 많을수록 굉장히 복잡해진다.
    그러니 현실세계와 적당히 타협해서 인공신경망을 설계해야함 현실적인 이유 : 하드 메모리,계산 복잡도

인공지능의 분류

  • 인공지능은 새로운 것이 아니다

머신러닝(기계학습)은 1980년대부터 딥러닝은 2010년대에 등장.
✔︎ 딥러닝은 심층 신경망으로 계산을 가능하게 하는 기계학습의 하위집합이다.

머신러닝

  • 사람이 학습하듯이 컴퓨터에게도 데이터들을 제공해주고 학습하게 함으로써 새로운 지식을 얻어내게 하는 기술분야
  • 사람이 제공하는 프로그램 (rule) 없이 제공된 데이터만으로 자기 스스로 학습하여 사람이 원하는 결과물을 출력하는 시스템
  • 머신러닝은 AI의 하위집합이지만 요즘은 AI와 같은 의미로 대다수 사용
  • 규칙, 데이터 → 전통적인 프로그래밍 → 정답

  • 정답, 데이터 → 기계학습(머신러닝) → 규칙

  • 컴퓨터가 학습할 수 있는 데이터를 제공하면 정해진 알고리즘이 데이터를 학습하여 머신러닝 모델(학습 데이터에 맞춰진 규칙 알고리즘)을 생성, 새로운 데이터를 입력 받으면 우리가 원하는 결과(예측, 판단, 분류결과 등)를 얻게 됨

  • 입력 데이터에서 뽑아낼 수 있는 여러가지 특징을 머신러닝에서는 'feature'라고 하며 입력 데이터의 feature를 잘 정의해야 이후 단계의 모델 학습 과정을 효율적으로 진행가능.
  • 테스터들은

대부분의 테스트할 대상 전통적인 프로그래밍으로 짜여진 응용서비스를 테스트 하게 될것
로직을 짜서 데이터를 넣으면 정답이 나옴 : 이것을 테스트할 것
하지만 AI는 기계학습, 머신러닝 정답, 데이터 인풋 -> 규칙 출력
◦ 딥러닝은 머신러닝의 어드밴스드 모델이라고 생각하면 될거 같다

전통적인 SW개발과 머신러닝 개발

  • 전통적인 소프트웨어 개발에서 '개발자'는 입력 - 결정 로직 - 출력 프로세스에서 결정 로직에만 관여를 했다. 로직 개발

  • 하지만 머신러닝 시스템 개발에서 '개발자는' 입력 - 학습 데이터 - 피처 추출 - 알고리즘 튜닝 - 결정 로직 - 출력에서 학습데이터 ~ 결정로직까지 모두 관여한다.

  • 머신러닝은 전통적인 SW개발과 다르게 인풋에서 아웃풋을 찾는 것에 초점을 두는 것이 아닌, 주어진 인풋에서 규칙성을 찾는 것에 초점이 있다.

  • 이 규칙성을 발견 시 , 그 후에 들어오는 새로운 데이터에 대해서 발견한 규칙성을 기준으로 정답을 찾아낸다.

  • 주어진 데이터로부터 규칙성을 찾는 과정을 '학습(training)'이라고 한다.

머신러닝 모델 생성 과정

머신러닝 모델 : 학습데이터에 맞춰진 규칙적 알고리즘
❶ 수집된 데이터를 근간으로 특징 추출, 초기 모델 생성
❷ 학습 데이터 입력
❸ 예측 결과 출력
❹ 정답과 결과의 차이를 확인
❺ 차이에 따라 모델을 수정한다. (출력값과 목표값을 평가/비교해 필요시 가중치를 Update한다)

머신러닝과 딥러닝 차이

reference: https://www.codestates.com/blog/content/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%94%A5%EB%9F%AC%EB%8B%9D%EA%B0%9C%EB%85%90

  • 머신러닝 중에서 특정 작업을 위해 feature selection을 기반으로 선정한 알고리즘을 이용하여 학습시키는 것이 아니라, 인간 두뇌의 뉴런을 모방한 여러 층의 Artificial Neural Network 아키텍처로 학습을 시키는 기술 분야를 Deep Learning이라고 함.

딥러닝

  • 딥러닝의 학습모델은 여러 개의 노드로 구성된 다수의 레이어로 이루어진 심층신경망(DNN; Deep Neural Network)
  • 딥러닝과 상반되는 개념으로 'shallow model'(하드성능이 발달하기전에 활용되었던 모델)
  • 딥러닝 모델 분류의 엄밀 기준은 없으나 통상적으로 히든 레이어가 두 개 이상이면 딥러닝으로 간주

머신러닝 학습 방식과 주요 알고리즘

머신러닝은 학습용 데이터를 이용한 학습 과정이 매우 중요하다.
학습 방식은

  • 지도학습 (supervised learning) : 레벨(정답값)이 주어진 데이터에서 '규칙'을 학습
  • 비지도학습 (unsupervised learning) : 레벨이 없는 데이터에서 '규칙'을 학습
  • 강화학습 (reinforcement learning) : 제시된 환경에서 '시행착오'를 겪으며 최적의 '결과'를 학습

◦인공지능 : 인간의 지능을 흉내내는 모든 프로그램
◦머신러닝 : 인공지능 하위, '데이터'를 기반해 '규칙'을 찾는 인공지능


지도학습

supervised learning은 labeling된 데이터를 가지고 '규칙'을 찾아 모델을 생성한 후 새로 주어진 입력에 대하여 그 모델이 올바른 결과를 찾아내는 방식


지도학습에 자주 활용되는 알고리즘
ANN

DNN
CNN
...
GAN(최근에 등장하기 시작한 알고리즘)


실제 AI가 쓰이고 있는 서비스

  • 아마존 Alexa

음성을 듣고 사람이 원하는 서비스를 해주는 AI 서비스

  • 우버 Uber
  • 안면인식 시스템
  • 자율 주행 자동차

얼마전에 강남지역에서 자율주행 자동차 택시로 채택해서 서비스한다는 뉴스가 있음
현실에 수준높은 자율주행 자동차는 나오지 않았지만 대표적인 AI 집약체이다.
난이도 상

  • 스마트 팩토리 (공장 자동화)
  • 헬스케어
    이미지 전자의료기록을 통해 생성된 엄청난 양의 데이터를 머지해서 질병종류, 처방등 을 추천하는
  • 추천 시스템
    나의 선호도를 서비스가 학습함

AI 시스템은 품질을 관리하는 것이 왜 어려울까?

전통적인 품질관리 방법론은 잘 안맞다. 왜 그럴까??

AI시스템의 품질사고 사례 :

아마존의 rekognition의 객체 및 안면인식 예시
이미지가 갖고 있는 상황정보를 알려줌

이 서비스를 범죄자를 판별하는 데 사용

나름대로 규칙을 학습하지만 맞지 않다. 이미지 인식은 기계입장에서 도전적일 수 있음

  • 대화형 주문 오류 사례(음성인식):
    AI가 음성의 주인을 인식하지 못한 사례

  • 자율주행 차량 오류 사례

  • 의료분야 AI 프로젝트 오류 사례
    AI품질을 확인하는 것이 어려워 사고가 일어난다.

AI 기술이 예상 또는 약속대로 작동하지 않음 =품질이 좋지 않다.
기술적인 완성도가 높지 않아 프로젝트가 실패한 경우가 많다.

AI 시스템의 품질을 확보하기 어려운 이유

1️⃣ 데이터의 양

올드 머신 러닝은 일정 수준 넘어가면 퍼포먼스가 나오지 않음
딥 러닝은 데이터 양이 많을 수록 퍼포먼스가 잘 나온다. 비례한다

데이터를 충분히 공급해줘야 한다.

데이터의 양은 AI 품질의 핵심

현실은 데이터확보가 어려움.
보안상, 비즈니스상 데이터를 쉽게 제공하지 않아 제한이 있다.

2️⃣ 데이터 품질

데이터 퀄이 낮으면 안된다.
데이터 분포가 특정 부분에만 편중되어 수집된 데이터로 학습한 모델 - 편향된 결과를 낼 수밖에 없음

다양성 부족 - 왜곡된 결과 출력

3️⃣ 데이터 라벨링(정답값) 품질 - 사람의 실수

: 라벨링을 주는 건 사람이 하는 일 - 사람의 실수

텍스트, 이미지로 라벨링을 줄 수 있음

정확한 라벨링을 줘야 함

4️⃣ 미성숙한 AI 기술 - 진보단계

AI 기술이 아직까지 발전 단계이지 성숙단계가 아님

국소적인 전문가의 존재

기술자 부족

아직 시행착오를 겪고 있는 단계

5️⃣ AI 시스템 고유의 특성 - 블랙박스적 특성

  • 기술적 부채

  • 블랙박스적인 특징

  • 전적인 데이터에 종속성

6️⃣ 품질관리 기준 불명확 ⭐️⭐️⭐️ - 기준이 없다

validation -> verification -> process 로 하다보면 관심포인트가 자연스레 흘러갈것

  • 전통적인 SW품질관리의 핵심 verification & validation

  • AI는....?

요구사항 정의서, 설계서가 안나온다.

test basis, test 대상도 불확실

내가 원하는 다큐먼트들이 나올때 안나옴


AI 시스템은 어떻게 품질을 관리하면 될까?

1) 데이터 품질 확보 -1,2,3 해결
2) 성능지표 결정
3) AI 모델 품질 확보
4) AI 시스템 레벨의 품질 확보

AI 모델 : 알고리즘 뼈대를 가지고 데이터를 가지고 학습시킨 데이터 셋과 알고리즘 모양

기존 알고리즘을 튜닝해서 AI 개발자가 만듦

데이터 품질 확보하기

  • 데이터 유형
    데이터 제공 주체
    ❶ 사람이 만든 데이터
    ❷ 프로세스가 만든 데이터
    ❸ 기계가 만든 데이터

구조에 따른 분류
❶ 정형 데이터
❷ 반정형 데이터
❸ 비정형 데이터

  • 데이터 댐 사업

우리나라도 몇년전부터 데이터 중요성을 국가차원에서 인식하게 됨
AI는 기술트랜드
그래서 정보에서 데이터를 모으는 사업을 하고 있음
세금을 가지고 데이터를 산다는 말

각 도메인별로 수많은 종류의 데이터를 사들이고 있음
정부과제 발주로 데이터를 사들인다고 함

AI 프로젝트에서 데이터 수집까지 서비스 출시까지의 과정

데이터 가공 : 가비지 데이터 추리기, 라벨링 붙이기

AI 프로젝트에서 데이터의 중요성

공수를 분류별로 나눔
수집, 정체, 라벨링, 증량, ML 모델 학습, ML 모델 튜닝, ML 운영

  • AI 프로젝트에서 공수추정을 할 때 80%는 데이터 관련 공수

데이터는 굉장히 많은 업무를 차지한다.

데이터의 품질이 보장되지 않으면 알고리즘의 출력결과를 신뢰할 수 없음

데이터 충분성 확인

기술력을 가진 중소기업도 도전하고 싶은 과제 : AI

그니까 나라에서 데이터 댐 사업해서 기업들에게 오픈하는 것

데이터가 충분하지 않기 때문에 현실과 타협해야 함.

정답은 없어. 현실에서 주어진 자원을 가지고 최적화된 결과를 내야함

크리티컬한 경우도 있음

검증세트 : AI 모델 튜닝하면서 쓰는 거

정해진 양을 구분하여 테스트세트 , 검증 세트, 학습 세트로 나누어야 함

데이터 다양성 확인

데이터를 골고루 수집해야 한다.

❶ 포괄성 확인

: 모든 피처정보를 학습에 반영할 수 있도록 해주나

❷ 변동성 확인

: 실제 상황에서 변동될 수 있는 다양한 범위를 학습에 반영할 수 있도록 하는 것
-> 어마어마한 유스케이스가 나온다 - 힘든 작업 강사님 왈

데이터의 신뢰성 확인

포괄성, 편동성을 충족시키는 데이터는 신뢰성 (정확성, 일관성....ISO/IEC 표준)을 전부 충족시키는 건 현실적으로 어렵다

성능지표 확인하기 (AI 모델의 성능을 판별할때 어떤 항목으로 판별할 것인가?)

  • 기본 : Confusion Metrix

4가지 조합을 기반으로 성능지표

정밀도 /재현율/정확도

실제로 지표는 엄청 많다. 음성인식, 영상인식에 특화된 지표

대표적인 예만 들어주심

통상적으로 어떤도메인의 어떤 데이타인지에 따라서 지표를 채택해서 사용.
한개의 지표만 사용하지 않고 보완하는 지표들을 가지고 AI 모델의 성능을 판단한다.

각 알고리즘의 우수성을 판단할때 정량적으로 보기 위해 정확,정밀, 재현율으로 판단한다.

성능을 의사소통할 수 있는 객관적인 지표로 보기 위함

AI 모델 품질 확보하기

  • 오류분석
    ❖ AI는 성능을 측정하기 위한 지표들이 있기때문에 %로 만 말하면 정확하지 않다.

++ 데이터 품질 전문가가 되고 싶다면

데이터 품질쪽에 요즘 수요가 엄청나다고 해서 강사님께 해당 전문가가 되려면 어떤 스택과 지식이 있어야 하는지 여쭈었다. 우선 테스터로써의 경력을 어느정도 쌓고 데이터 품질쪽으로 넘어갈 수도 있을 거 같다 혹시 강사님은 어떻게 생각하시냐 여쭤봤는데 강사님께서 착안을 굉장히 잘하셨다라고 말씀하셨다.
빅데이터분석기사 자격증이나 전통적인 DB 관련 자격증 공부도 얘기했는데 따놓으면 좋을것이라며 굉장히 좋은 반응을 보이셨다. 하지만 AI나 빅데이터 개발자나 전문가들은 대부분 수학자 출신이기에 업무 난이도가 기본 테스팅보다는 훨씬 더 높고 전문적일것으로 예상하며 때문에 대학원 진학이나 관련 학위를 따면서 전문가가 되는 것도 방법일 것이다. 통계 공부를 꼭 하라고 말씀하셨고 현재 이미지 인식 시스템이나 음성 인식 시스템이 전망이 있을 거라고 말씀하셨다. 그리구 무

profile
쓸때 대충 쓰지 말고! 공부하면서 써!

0개의 댓글