본 포스팅은 elice의 2021 NIPA AI 온라인 교육을 듣고 개인 공부를 위해 정리한 것입니다.
사용자 패턴 분석을 통한 인공지능 활용
우리는 아무런 생각없이 웹 페이지나 앱에 접속하지만 실제로는 많은 데이터를 발생시킨다. 웹/앱에 있는 로봇은 이 데이터를 실시간으로 수집하여 관리자에게 전송한다.
연령, 성별, 지역, 트래픽 소스, 방문페이지, 제품 등의 측정 기준을 통해서 사용자의 특성을 분석하게 되고 사용자의 유지 이탈, 집단 간 상이한 행동 패턴 분석이 가능하게 된다.
👉 익스피디아 A/B 테스트를 보면 둘의 차이점은 Company name
입력란 뿐이다! 하지만 이를 통해 사용자가 회사 이름을 다 입력하는지 혹은 입력하는데 피로감을 느끼지는 않는지 분석하여 최적화할 수 있다. 이 테스트는 랜덤으로 50:50 비율로 진행되며 훨씬 더 나은 응답률을 기록한 것을 결과에 반영하거나 데이터를 분석하여 인사이트를 획득한다.
👉 히트맵을 통해 사용자가 가장 많이 보는 곳과 클릭하는 곳을 알 수 있다. 이를 분석하여 가장 많이 주목하는 곳에 광고를 넣는 등의 Action을 할 수 있다!
웹/앱 서비스의 기본 단위인 '화면' 단위의 고객행동 패턴을 분석하여 이를 개인화 된 DB에 저장한다. 이렇게 AI가 고객의 행동 데이터를 분석하여 고객의 행동을 예측하게 된다.
👉 고객의 행동에 맞춘 반응형 이벤트 노출 등으로 고객 이탈 방지, 추가 매출 기회 제안
인공지능은 어떻게 이미지를 인식할까?
이번 실습에서는 숫자 손글씨 데이터를 학습한 인공지능 모델을 사용하여 실제 손글씨를 인식하는 과정을 살펴보자.
아래의 이미지는 실제로 종이에 숫자를 적고 사진을 찍어 업로드한 사진이다. 이미지에서 숫자 부분을 분리하는 과정을 수행해 보자.
ma.data_print()
import machine as ma
def main():
"""
지시사항 1번. 손글씨 이미지에서 숫자 부분만 분리하는 과정을 수행해보세요.
"""
ma.data_print()
if __name__ == "__main__":
main()
이번 실습에서는 분할된 이미지의 숫자가 어떤 숫자인지를 예측해보도록 하자.
하지만 아직 이를 예측할 수 있는 모델이 준비가 되어 있지 않다😂
따라서 이번 실습에서는 딥러닝 예제로 유명한 MNIST 데이터를 학습하여 숫자를 예측할 수 있는 모델을 구현할 것이다.
MNIST 데이터
실습 코드
ma.train()
import machine as ma
def main():
"""
지시사항 1번. MNIST 데이터를 학습하는 인공지능 모델을 구현해보세요.
"""
model = ma.train()
if __name__ == "__main__":
main()
첫 번째 실습을 통하여 예측할 이미지를 분할하였고, 두 번째 실습을 통하여 이를 예측할 모델을 구현하였다.
예측을 위해서는 분할된 이미지를 MNIST와 비슷한 형태로 변환하는 과정이 필요하다!
실제 분할된 이미지는 크기도 제각각에 컬러가 있는 이미지이기에 MNIST 데이터 형태와 동일하게 사이즈 조정 및 흑백 변환을 수행한다.
이후 최종적으로 손글씨 분류 모델을 활용하여 손글씨 숫자를 인식하여 보자.
ma.data_predit()
import machine as ma
def main():
"""
지시사항 1번. 이미지 변환 과정과 예측 과정을 수행해보세요.
"""
ma.data_predit()
if __name__ == "__main__":
main()