본문

테크
머신러닝과 딥러닝 차이

작성일 2023년 04월 26일

 인공지능(AI)과 관련하여 많은 서적과 언론 기사들이 배포되며 화제가 되고 있는데요.

2016년, 프로 9단 이세돌과 바둑 프로그램 알파고의 경기에서 1승 3패로 최종 패배하며 AI에 대한 관심이 급격하게 증가하였습니다. 알파고의 핵심 기술은 딥러닝으로 기보 16만 건, 3000만 건의 바둑판 이미지를 학습하여 빠른 연산을 토대로 승리 확률을 예측합니다.

학습된 데이터를 토대로 문제를 빠르고 정확하게 해결해 나가는 인공지능,

이번 콘텐츠에서는 AI 예시, 머신러닝과 딥러닝의 차이점에 대해 설명드린 뒤, 와탭에서는 어떤 기술을 적용했는지 소개해 드리려 합니다.

일상 속 인공지능(AI)

생활을 보다 편리하고 풍요롭게 만드는 인공지능, 일상생활에서도 쉽게 접할 수 있는데요.
인공지능의 대표적인 사례를 예시로 들어 설명해 보려 합니다.

• 신분증 OCR

2015년부터 금융권에서 비대면 본인 확인이 가능해지면서 영업점 방문 없이 모바일 앱으로 실명 인증이 허용되었습니다. 신분증 OCR을 도입하면서 고객 정보를 추출하여 진위 확인을 수행함으로써 정확한 사용자 구분이 가능합니다.

• ChatGPT

대화형 챗봇 서비스인 ChatGPT는 자연 언어 처리 모델입니다. 사용자와 대화를 주고받으며 질문에 답변을 제공합니다. 현재까지도 수준 높은 답변을 제공하지만 가끔 부정확한 정보를 제공하는 한계도 있습니다.

• 반자동 오프사이드 판독 기술(SAOT)

카타르 월드컵에서 오프사이드 판독 기술을 도입하였습니다. 경기장에 설치된 카메라가 선수 신체 부위 29곳을 실시간으로 추적 촬영하며 공의 움직임을 파악합니다. AI 시스템이 오프사이드 여부를 판단하고 판독 결과를 바탕으로 심판이 최종 판정을 내리게 됩니다.

머신러닝(Machine Learning)

머신러닝은 인공지능 분류 중 하나로 학습 문제에 따라 크게 3가지로 분류됩니다.

1. 지도학습

정답을 알려준 채 데이터를 학습합니다. 학습을 마친 후 새로운 데이터에 대해 결과를 예측합니다. 머신러닝에서 지도학습은 크게 예측과 분류로 구분됩니다.

예측(Regression): 학습 데이터의 레이블 값이 숫자, 연속형 변수 (예: 주택 가격 예측)
분류(Classification) : 학습 데이터의 레이블 값이 범주 (0과 1로 구분), 범주형 변수 (예: 행동 동작 분류)

2. 비지도학습

정답을 주어지지 않은 채, 훈련 데이터 학습을 진행합니다.

3. 강화학습

경험을 통해 학습합니다. 학습 결과가 정답에 가깝다면 보상을 받고, 정답과 거리가 멀다면 벌을 받음으로써 목표를 찾아갑니다.

딥러닝(Deep Learning)

딥러닝은 머신러닝의 한 분야로 더 복잡한 데이터인 이미지, 음성, 텍스트 등에 대한 분석이 가능합니다.

머신러닝, 딥러닝 차이

딥러닝의 경우, 높은 사양의 컴퓨터와 많은 양의 데이터가 필요합니다. 데이터가 많을수록 정확도가 올라갑니다. 반면, 데이터가 많지 않다면 수작업이 들어간 머신러닝의 정확도가 높은 차이가 있습니다.

머신러닝과 딥러닝의 차이

와탭 AI

와탭 애플리케이션 히트맵은 이상 패턴 분류를 위해 CNN 모델을 사용했습니다.

CNN은 딥러닝에서 이미지나 영상 처리에 사용되는 모델인데요. 넓은 의미에서는 머신러닝과 딥러닝에 모두 해당되지만, 인공신경망의 한 종류로 딥러닝 구조로 보는 게 정확하다고 생각합니다.

히트맵 패턴 기반 분류

합성곱 신경망(CNN)을 활용하여 이미지 검색 결과를 확인할 수 있습니다. 컴퓨터는 이미지가 들어오면 다음과 같이 학습합니다. 이미지는 모두 숫자 값으로 표현되어 있습니다. 가로와 세로가 숫자로 이루어진 행렬인 형태인데요. (각각의 숫자가 곱하고 더해지는 컨볼루션 과정을 거친 후, 이미지 특징을 추출하는 필터를 거쳐 학습을 진행합니다. ) 우리가 파악하고자 하는 히트맵 또한 하나의 이미지이기에 CNN을 학습하여 이상 패턴을 분류해 보고자 합니다.

1. 데이터 준비

12,700개 train data로 모델을 학습시키고, 5개 test data로 최종 분류하였습니다.
test data는 히트맵에서 문제가 되는 패턴을 기준으로 아래와 같이 패턴을 분류하였습니다.

히트맵 패턴( X: 종료 시간, Y: 응답 시간 )

가로라인 패턴

여러 트랜잭션이 동일한 응답 시간에 종료되는 패턴입니다. 라인 현상 공통점이 php, JAVA등 확인하여 내부・외부 현상을 파악하는 것이 중요합니다.

세로라인 패턴

응답 시간이 다르며 동일 시점에 종료되는 패턴으로 내부 Locking 현상입니다.

플라잉 패턴

특정 리소스나 로그와 같은 자원 부족 현상으로 파도 치는 것과 같은 패턴입니다.

과부하 패턴

전체나 일부 응답에 문제가 발생하여 트랜잭션이 한 곳에 밀집된 패턴입니다.

폭주 패턴

과도한 트랜잭션의 요청으로 인해 응답 시간이 전체적으로 증가하는 패턴입니다.

2. 모델 구축

아래는 합성곱 신경망(CNN) 구현에 사용된 코드입니다. tf.keras.models의 Sequential 클래스를 사용해서 인공신경망의 각 층을 순서대로 쌓았으며, add 함수를 사용하여 합성곱 층 Conv2D와 max pooling2D을 사용하였습니다. 추가로 과적합을 막기 위해 마지막에 50%의 Dropout을 적용하였으며 softmax 함수를 사용하여 모델을 구축하였습니다.

model = Sequential()
model.add(Conv2D(32, Kernel_size=(3,3), input_shape=(28,28,1), activation='relu'))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

3. 훈련 결과

전체 5번 학습을 진행하였고 94.64%의 정확도가 나왔습니다.

훈련결과
4. 적용 결과

와탭에서는 실시간 데이터를 바탕으로 머신이 학습하여 사용자에게 이상 패턴에 대한 알림을 제공합니다. Slack, Telegram, Teams, Jandi, Webhook 등을 이용해 편한 방법으로 알림 메시지를 제공받을 수 있습니다. 애플리케이션 문제 상황을 빠르게 인지할 수 있으니 경고 알림 기능을 설정해 보시기 바랍니다.

마무리

대부분의 장애 상황에서 히트맵의 형태는 비슷한 모양을 띕니다. 그렇기에 장애가 발생하는 히트맵의 패턴을 가지고 문제 상황을 파악하는 방식은 유용하다고 생각을 합니다.

물론, 모든 장애 상황을 위의 패턴들로 인지할 수는 없지만, 보편적인 장애 상황에 대해 딥러닝・머신러닝을 이용한 히트맵 패턴 기반 분류로 간편히 알 수 있는 것은 서비스의 운영에 큰 도움이 될 것입니다.

적용결과
정지윤[email protected]
Marketing TeamManager

지금 바로
와탭을 경험해 보세요.