
이 포스팅은 개인 공부 목적으로 박영근 강사님의 자료에서 필요한 부분을 발췌해 기록하였습니다.
오늘은 박영근 강사님의 AI 품질에 대해 특강을 들었다.
너무 귀중한 강의.... 비전공자도 알아들을 수 있게끔 너무 쉽게 잘 설명해주셨다. 강의를 너무 잘하셔서 오늘부로 내 롤모델이 되셨다... (롤모델 벌써 3명...)
하 ... AI의 중요성에 대해서 쓰고 싶었는데 지식도 없고, 말도 못해서 ㅜㅜ 컬럼 하나 참조해본다..
지금 왜 인공지능이 중요하고 필요한 지 명확하게 설명해주는 글이다.
- AI 시스템이 무엇인지
- AI 품질 관리가 어려운 이유
- AI 시스템 품질 관리 방법
- AI 시스템의 요구사항 스펙과 테스트
에 대해 간략하게 배워보고자 한다.
우선 AI, 머신러닝, 딥러닝, 그리고 이 인공지능이 사용하는 메인 알고리즘과 , AI가 탑재된 시스템 사례들에 대해 설명해주셨다.
The capacity of computers or other machines to exhibit or simulate intelligent behaviour
Reference: https://heung-bae-lee.github.io/2019/12/06/deep_learning01/


인공신경망이 사진으로부터 개를 인식하는 방법
❶ 훈련 : 신경망은 동물 라벨이 붙여진 수천 개의 사진을 가지고 분류하는 방법을 배운다.
❷ 입력 : 훈련받은 신경망에 라벨이 붙지 않은 이미지를 보여준다
❸ 입력층 (first layer) : 뉴런이 가장자리와 같은 단순한 형상에 반응한다.
❹ 은닉층 (higher layer) : 뉴런이 더 복잡한 조합의 특징(feature)에 반응한다.
❺ 출력층 (top layer) : 뉴런이 좀 더 복잡하면서도 동물을 구분할 수 있는 추상화 개념에 반응한다.
❻ 출력 : 신경망은 자신이 훈련받은 내용에 근거해 사진 속 동물을 예측한다.
reference : https://magazine.hankyung.com/business/article/202009099351b
- 딥러닝의 학습환경 (인공신경망)
reference: http://ai4school.org/?page_id=2464
이 사진처럼 인공신경망은 레이어가 많으면 많을수록 굉장히 복잡해진다.
그러니 현실세계와 적당히 타협해서 인공신경망을 설계해야함 현실적인 이유 : 하드 메모리,계산 복잡도

머신러닝(기계학습)은 1980년대부터 딥러닝은 2010년대에 등장.
✔︎ 딥러닝은 심층 신경망으로 계산을 가능하게 하는 기계학습의 하위집합이다.
규칙, 데이터 → 전통적인 프로그래밍 → 정답
정답, 데이터 → 기계학습(머신러닝) → 규칙
컴퓨터가 학습할 수 있는 데이터를 제공하면 정해진 알고리즘이 데이터를 학습하여 머신러닝 모델(학습 데이터에 맞춰진 규칙 알고리즘)을 생성, 새로운 데이터를 입력 받으면 우리가 원하는 결과(예측, 판단, 분류결과 등)를 얻게 됨
대부분의 테스트할 대상 전통적인 프로그래밍으로 짜여진 응용서비스를 테스트 하게 될것
로직을 짜서 데이터를 넣으면 정답이 나옴 : 이것을 테스트할 것
하지만 AI는 기계학습, 머신러닝 정답, 데이터 인풋 -> 규칙 출력
◦ 딥러닝은 머신러닝의 어드밴스드 모델이라고 생각하면 될거 같다
전통적인 소프트웨어 개발에서 '개발자'는 입력 - 결정 로직 - 출력 프로세스에서 결정 로직에만 관여를 했다. 로직 개발
하지만 머신러닝 시스템 개발에서 '개발자는' 입력 - 학습 데이터 - 피처 추출 - 알고리즘 튜닝 - 결정 로직 - 출력에서 학습데이터 ~ 결정로직까지 모두 관여한다.
머신러닝은 전통적인 SW개발과 다르게 인풋에서 아웃풋을 찾는 것에 초점을 두는 것이 아닌, 주어진 인풋에서 규칙성을 찾는 것에 초점이 있다.
이 규칙성을 발견 시 , 그 후에 들어오는 새로운 데이터에 대해서 발견한 규칙성을 기준으로 정답을 찾아낸다.
주어진 데이터로부터 규칙성을 찾는 과정을 '학습(training)'이라고 한다.
머신러닝 모델 : 학습데이터에 맞춰진 규칙적 알고리즘
❶ 수집된 데이터를 근간으로 특징 추출, 초기 모델 생성
❷ 학습 데이터 입력
❸ 예측 결과 출력
❹ 정답과 결과의 차이를 확인
❺ 차이에 따라 모델을 수정한다. (출력값과 목표값을 평가/비교해 필요시 가중치를 Update한다)

머신러닝은 학습용 데이터를 이용한 학습 과정이 매우 중요하다.
학습 방식은
◦인공지능 : 인간의 지능을 흉내내는 모든 프로그램
◦머신러닝 : 인공지능 하위, '데이터'를 기반해 '규칙'을 찾는 인공지능
supervised learning은 labeling된 데이터를 가지고 '규칙'을 찾아 모델을 생성한 후 새로 주어진 입력에 대하여 그 모델이 올바른 결과를 찾아내는 방식
지도학습에 자주 활용되는 알고리즘
ANN
DNN
CNN
...
GAN(최근에 등장하기 시작한 알고리즘)
실제 AI가 쓰이고 있는 서비스
음성을 듣고 사람이 원하는 서비스를 해주는 AI 서비스
얼마전에 강남지역에서 자율주행 자동차 택시로 채택해서 서비스한다는 뉴스가 있음
현실에 수준높은 자율주행 자동차는 나오지 않았지만 대표적인 AI 집약체이다.
난이도 상
전통적인 품질관리 방법론은 잘 안맞다. 왜 그럴까??
아마존의 rekognition의 객체 및 안면인식 예시
이미지가 갖고 있는 상황정보를 알려줌
이 서비스를 범죄자를 판별하는 데 사용
나름대로 규칙을 학습하지만 맞지 않다. 이미지 인식은 기계입장에서 도전적일 수 있음
대화형 주문 오류 사례(음성인식):
AI가 음성의 주인을 인식하지 못한 사례
자율주행 차량 오류 사례
의료분야 AI 프로젝트 오류 사례
AI품질을 확인하는 것이 어려워 사고가 일어난다.
AI 기술이 예상 또는 약속대로 작동하지 않음 =품질이 좋지 않다.
기술적인 완성도가 높지 않아 프로젝트가 실패한 경우가 많다.
올드 머신 러닝은 일정 수준 넘어가면 퍼포먼스가 나오지 않음
딥 러닝은 데이터 양이 많을 수록 퍼포먼스가 잘 나온다. 비례한다
데이터를 충분히 공급해줘야 한다.
데이터의 양은 AI 품질의 핵심
현실은 데이터확보가 어려움.
보안상, 비즈니스상 데이터를 쉽게 제공하지 않아 제한이 있다.
데이터 퀄이 낮으면 안된다.
데이터 분포가 특정 부분에만 편중되어 수집된 데이터로 학습한 모델 - 편향된 결과를 낼 수밖에 없음
다양성 부족 - 왜곡된 결과 출력
: 라벨링을 주는 건 사람이 하는 일 - 사람의 실수
텍스트, 이미지로 라벨링을 줄 수 있음
정확한 라벨링을 줘야 함
AI 기술이 아직까지 발전 단계이지 성숙단계가 아님
국소적인 전문가의 존재
기술자 부족
아직 시행착오를 겪고 있는 단계
기술적 부채
블랙박스적인 특징
전적인 데이터에 종속성
validation -> verification -> process 로 하다보면 관심포인트가 자연스레 흘러갈것
전통적인 SW품질관리의 핵심 verification & validation
AI는....?
요구사항 정의서, 설계서가 안나온다.
test basis, test 대상도 불확실
내가 원하는 다큐먼트들이 나올때 안나옴
1) 데이터 품질 확보 -1,2,3 해결
2) 성능지표 결정
3) AI 모델 품질 확보
4) AI 시스템 레벨의 품질 확보
기존 알고리즘을 튜닝해서 AI 개발자가 만듦
구조에 따른 분류
❶ 정형 데이터
❷ 반정형 데이터
❸ 비정형 데이터
우리나라도 몇년전부터 데이터 중요성을 국가차원에서 인식하게 됨
AI는 기술트랜드
그래서 정보에서 데이터를 모으는 사업을 하고 있음
세금을 가지고 데이터를 산다는 말
각 도메인별로 수많은 종류의 데이터를 사들이고 있음
정부과제 발주로 데이터를 사들인다고 함
데이터 가공 : 가비지 데이터 추리기, 라벨링 붙이기
AI 프로젝트에서 데이터의 중요성
공수를 분류별로 나눔
수집, 정체, 라벨링, 증량, ML 모델 학습, ML 모델 튜닝, ML 운영
데이터는 굉장히 많은 업무를 차지한다.
데이터의 품질이 보장되지 않으면 알고리즘의 출력결과를 신뢰할 수 없음
기술력을 가진 중소기업도 도전하고 싶은 과제 : AI
그니까 나라에서 데이터 댐 사업해서 기업들에게 오픈하는 것
데이터가 충분하지 않기 때문에 현실과 타협해야 함.
정답은 없어. 현실에서 주어진 자원을 가지고 최적화된 결과를 내야함
크리티컬한 경우도 있음
검증세트 : AI 모델 튜닝하면서 쓰는 거
정해진 양을 구분하여 테스트세트 , 검증 세트, 학습 세트로 나누어야 함
데이터를 골고루 수집해야 한다.
❶ 포괄성 확인
: 모든 피처정보를 학습에 반영할 수 있도록 해주나
❷ 변동성 확인
: 실제 상황에서 변동될 수 있는 다양한 범위를 학습에 반영할 수 있도록 하는 것
-> 어마어마한 유스케이스가 나온다 - 힘든 작업 강사님 왈
포괄성, 편동성을 충족시키는 데이터는 신뢰성 (정확성, 일관성....ISO/IEC 표준)을 전부 충족시키는 건 현실적으로 어렵다
4가지 조합을 기반으로 성능지표
정밀도 /재현율/정확도
실제로 지표는 엄청 많다. 음성인식, 영상인식에 특화된 지표
대표적인 예만 들어주심
통상적으로 어떤도메인의 어떤 데이타인지에 따라서 지표를 채택해서 사용.
한개의 지표만 사용하지 않고 보완하는 지표들을 가지고 AI 모델의 성능을 판단한다.
각 알고리즘의 우수성을 판단할때 정량적으로 보기 위해 정확,정밀, 재현율으로 판단한다.
성능을 의사소통할 수 있는 객관적인 지표로 보기 위함
데이터 품질쪽에 요즘 수요가 엄청나다고 해서 강사님께 해당 전문가가 되려면 어떤 스택과 지식이 있어야 하는지 여쭈었다. 우선 테스터로써의 경력을 어느정도 쌓고 데이터 품질쪽으로 넘어갈 수도 있을 거 같다 혹시 강사님은 어떻게 생각하시냐 여쭤봤는데 강사님께서 착안을 굉장히 잘하셨다라고 말씀하셨다.
빅데이터분석기사 자격증이나 전통적인 DB 관련 자격증 공부도 얘기했는데 따놓으면 좋을것이라며 굉장히 좋은 반응을 보이셨다. 하지만 AI나 빅데이터 개발자나 전문가들은 대부분 수학자 출신이기에 업무 난이도가 기본 테스팅보다는 훨씬 더 높고 전문적일것으로 예상하며 때문에 대학원 진학이나 관련 학위를 따면서 전문가가 되는 것도 방법일 것이다. 통계 공부를 꼭 하라고 말씀하셨고 현재 이미지 인식 시스템이나 음성 인식 시스템이 전망이 있을 거라고 말씀하셨다. 그리구 무