brunch

You can make anything
by writing

C.S.Lewis

by 글쓰는몽글c Apr 19. 2020

AI Design Guide #2. 데이터

인공지능 디자인하기 5단계 중 2단계 (데이터 수집/평가)

PAIR의 구글의 AI 디자인 가이드북을 5개의 챕터로 조금 다듬어 번역/공유해보고자 한다.
1. 사용자 니즈
2. 데이터 *
3. 멘탈모델
4. 신뢰와 피드백
5. 오류

원문을 보고 싶으신 경우 아래 링크에서 확인 가능하다.
https://pair.withgoogle.com/guidebook/


인공지능 기획/디자인 과정은 PC/모바일 디자인 프로세스와 다르지만 또 유사한 점들도 존재한다.

예를 들어 인공지능이라는 새로운 기술을 적용하기 때문에 고민해야 하는 지점은 다를 수 밖에 없겠지만, 사용자에게 올바른 가치를 전달한 다는 측면에서는 동일한 고민을 할 수 밖에 없을 것이다.


인공지능 프로세스 중에 두번째 프로세스인 데이터 수집/평가에 대해 살펴보도록 하겠다.



Data Collection & Evaluation


사용자에 대한 니즈에 대한 정의와 가설을 정의했다면, 사용자 요구를 데이터로 변환하고 평가하는 방식에 대한 고민이 필요하다. 데이터에 대한 수집과 평가는 총 4가지 단계로 이루어 질 수 있는데 이는 아래와 같다.

사용자 니즈를 데이터 니즈로 변환하기

데이터가 적합하게 표현되었는지 확인하기

레이블 디자인을 명확히 하기

알고리즘을 해석하여 사용자 니즈에 맞추어 조정하기


1. 사용자 니즈를 데이터 니즈로 변환하기

기본적인 사용자의 니즈를 인공지능 모델을 훈련하는데 필요한 데이터 니즈로 변환해야 한다.

예를 들어 달리기 앱을 기획/디자인한다고 가정했을 때,

사용자 니즈: 달리기 레이스가 더욱 즐거우면 좋겠다.

데이터 니즈: 달리기 레이스를 즐겁게 만들기 위해서 개개인이 어떤 달리기를 했는가, 얼마나 뛰었는가, 고도는 얼마나 되었는가 등의 데이터를 확보하고 이를 통해 사용자들의 피드백을 수집해볼 수 있을 것이다.


이미지 출처: Google AI Guidebook


위 이미지를 보면 달리기 레이스에 대한 사용자 니즈를 충족시키기 위해 Runner ID에 따라 Run, Run time, Elevation에 해당하는 데이터 요소들(Features)을 확보를 하고, 각각의 ID마다의 재미의 정도를 사용자들이 직접 넣을 수 있게끔 한다면, 이를 학습하여 이후 FUN에 대한 특별한 Label 매핑을 하지 않더라도 만족할만한 레이스를 추천해줄 수 있을 것이다. 

물론 Features에 해당하는 데이터셋은 Runner의 인구통계, 페이스, 심박수 등 추가적인 데이터들이 필요할 수도 있을 것이다.


2. 데이터가 적합하게 표현되었는지 확인하기

데이터를 서비스에 표현하는데 있어서 보다 주의해야 할 사항이 있는데, 이는 개인정보, 그리고 보안에 대한 관리 이슈이다. 앞선 단계에서도 모델을 훈련시키는데 필요한 인구통계학적 데이터 역시 민감한 정보로 간주될 수가 있다. 


예를 들어 개인의 건강데이터의 경우, AI스피커를 통해 약물을 복용해야 한다는 것을 상기시킨다고 할 때, 이는 실내에 있는 다른 사람에게 부분적으로 공개가 가능한 부분으로 문제가 생길 수가 있다.

이미지 출처: Google AI Guidebook


위 이미지에서 볼 수 있듯이, 개인 정보를 보호하기 위해 이름을 익명화하는 것은 중요할 수 있다.

(만약 포괄적인 개인정보에 대한 동의를 받았을지라도 이러한 경우엔 이름을 익명화 하는 것은 필요하다.)


뿐만 아니라 개인의 정보 제공을 거부하고 싶다면 언제든지 거부할 수 있도록 기회를 마련해야 할 것이다.



3. 데이터 수집 & 레이블 디자인

인공지능을 학습시키기 위해 데이터를 수집하는 것은 매우 중요하다.

데이터를 수집하는 방법은 세 가지 방법이 있을 수 있는데,

기존 데이터 세트를 사용

자신의 데이터를 수집

기존 데이터 + 자신의 데이터 조합


기존 데이터 세트 사용

기존에 잘 정리되어 있는 다양한 데이터 세트를 검색하고 수집하는 것이 필요하다.

아래 사이트에서 레이블까지 이미 잘 정리되어 있는 데이터셋들을 살펴볼 수 있다.

Google Cloud AutoML

Google Dataset Search

Googla AI Dataset

Kaggle Dataset

서울 열린 데이터 광장


자신의 데이터 수집

데이터 수집이 전체 프로젝트의 반 이상이라고 할만큼 어려운 작업이 될 것이다. 그리고 이러한 데이터를 수집하는데 있어서는 관련 도메인의 전문가가 함께 관찰하여 진행되는 것이 좋다.

데이터를 수집함에 있어서,

1) 데이터 수집: 확보하고자 하는 데이터를 결정하고, 기존 데이터, 그리고 실시간 데이터 수집이 가능한지 파악하여 수집을 진행한다.

2) 데이터 파악: 데이터를 수집한 후에는, 데이터 소스가 어떤지, 갱신되는 주기, 단위의 유형, 데이터 오류 등 데이터를 파악하는데 중심을 두어야 한다.

3) 민감정보 확인: 그리고 개인식별 정보가 포함되었는지 파악하고, 그렇다면 관련 식별정보를 제외해야 한다. 데이터 익명화에 대해 고려해야 한다.

4) 데이터 분할: 마지막으로 데이터를 트레이닝셋, 테스트셋으로 나누는 작업을 한다. 테스트 셋은 당연히 이전에 학습하지 않은 데이터로 모델이 얼마나 잘 동작하는지를 검증해볼 수 있다.


그리고 데이터를 평가하기 위한 레이블 디자인을 해야한다.

지도학습을 위해 정확한 데이터 레이블은 머신러닝을 디자인하는데 매우 중요한 요소이다. 레이블은 자동화된 프로세스로, 혹은 평가를 할 수 있는 평가자/사용자들을 통해 추가될 수 있다. 


이미지 출처: Google AI Guidebook


위 그림 처럼 운동화(running shoe)라는 문구는 운동화를 분류하는데 명확한 레이블로 보이지만, 선수화(athletic shoe)라는 문구는 운동화와 발레화 등 다양한 유형을 포함할 수 있다.

따라서 보다 명확한 레이블의 표현, 그리고 분류는 매우 중요한 요소라고 할 수 있다.


4. 알고리즘을 해석하여 사용자 니즈에 맞추어 조정하기

인공지능의 경우 알고리즘이 완성되었다고 해서 해당 알고리즘의 정확도를 높이기 위해 다양한 하이퍼 파라미터 튜닝(Hyper Parameter Tuning)을 진행하게 된다. 이를 위해 지속적인 테스트와 테스트, 그리고 테스트가 필요하다. 이를 통해 알고리즘을 조정하고 성공적인 알고리즘을 제공할 수 있을 것이다.

What-if라는 도구를 활용하면 알고리즘이 어떻게 동작하는지 시각적으로 파악할 수 있으며, 어떤 파라미터를 변경하는 것이 효율적일지 판단하는데 도움이 될 것이다.


Reference

https://pair.withgoogle.com/chapter/data-collection/

https://pair-code.github.io/what-if-tool/



일상에서 활용되고 있는 AI의 다양한 사례들이 궁금하다면.

https://brunch.co.kr/magazine/dailyai



email: pentaxzs@daum.net

twitter: @pentaxzs

brunch: https://brunch.co.kr/@monglec




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari