배경
-
최근에 이사님이 인공지능 관련된 공부를 해볼 생각이 없냐고 하셔서 서점에 들려서 인공지능 관련된 서적을 찾아보았다.
-
하지만 인공지능과 관련된 책을 보려고 하였지만, 머신러닝, 강화학습, 딥러닝과 같은 용어가 있었고, 이 차이에 대해서 학교 다닐때 배웠던 것 같지만 기억이 가물가물 했다. 따라서 이를 정리해보도록 하였다.
AI와 머신 러닝의 관계
-
먼저 인공지능의 정의를 먼저 살펴보자. 위키백과를 살펴보면 인공지능이란 인간의 학습능력, 추론 능력, 지각 능력을 인공적으로 구현하려는 컴퓨터과학의 세부분야라고 할 수 있다.
-
그렇다면 머신러닝은 무엇인가에 대해서 궁금해할 수 있는데 한마디로 정리하면 AI는 목적에 해당하고, 머신러닝은 AI를 실현하기 위해서 가장 유력시 되는 수단이다.
-
머신러닝은 AI를 실현하기 위한 수단이며 같은 반열로는 규칙 기반 시스템이나, 최적화 시스템 등이 있다. 머신러닝은 AI를 구현하기 위한 수단중에 하나일 뿐인 것이다.
-
머신러닝은 모델을 구축하고 입력을 모델에 넣으면 출력으로 원하는 결과가 나온다. 마치 블랙박스처럼 특정한 입력을 넣고 모델을 통해서 원하는 결과를 반환하는 것이다.
-
머신러닝의 또 다른 특징은 ‘학습’이라는 수단을 통해서 모델을 만든다는 점이다. 학습의 엄밀한 정의는 ‘학습 데이터를 사용해서 바람직한 행동을 하는 모델을 만드는 일이다.’
머신러닝의 세 가지 학습 방식
-
학습 방식을 보면 크게 ‘지도 학습’, ‘비지도 학습’, 그리고 ‘강화 학습’의 세 가지가 있다.
-
우선 지도 학습에는 분류, 회귀, 시계열 분석이 있고 보통 정답을 알고 있는 경우 사용한다.
-
비지도 학습은 연관분석, 클러스터링, 차원 축소의 방법이 있으며 정답을 모르는 경우 사용한다. 보통 분석에 가깝다고 할 수 있다.
-
강화 학습은 보상 기반의 학습 방법으로서 모델이 스스로 학습을 하는 것이다.
지도 학습
-
지도 학습은 앞에서 말했듯이 일반적으로 정답 데이터를 가진 상태에서 모델을 최적화 하는 ‘학습 단계’와 정답을 모르는 상태에서 이미 학습된 모델의 출력을 예측 결과로 삼는 ‘예측 단계’가 있다.
-
이 중 ‘예측 단계’에서는 학습 단계에서는 없었던 처음 보는 입력 데이터가 등장하고 처음보는 데이터에 대해서 적절한 예측 결과를 출력하는 것이 모델의 목적이다.
-
지도 학습의 가장 큰 특징은 정답 데이터가 있다는 것이다. AI라고 한다면 웬지 스스로 정답을 도출할 것 같지만, 지도 학습은 학습 단계에서 정답 데이터를 반드시 함께 제공해야 한다.
-
정답을 사람이 직접 만들어야하는 경우에는 ‘정답 데이터를 만드는 작업’에 큰 수고가 들지만 그 만큼 중요성도 높은 작업이다.
-
이 점은 실제 업무에 지도 학습을 적용하려고 할 떄 가장 중요하게 고려해야할 사항이다.
비지도 학습
-
학습에 정답 데이터를 이용하는 지도 학습과 달리, 정답 데이터가 없이 학습을 진행하는 방식이 바로 비지도 학습이다.
-
지도 학습과 비교하면 난이도가 높으며, 적용 가능한 범위도 한정적이다.
-
비지도 학습에는 지도 학습 처럼 학습 단계와 예측 단계의 구분이 없다. 데이터를 입력하면 곧바로 출력이 나온다. 비지도 학습은 머신 러닝 기법의 한 종류이지만, 일종은 데이터 분석이라고도 불리울 수 있다.
지도 학습과 비지도 학습의 차이점
-
지도 학습은 정답 데이터가 필요하고, 주 목적은 어떤 값을 예측하기 위한 것이고 단계는 학습/예측 과정이 들어간다. 그리고 사용할 시에 입력 데이터는 기존에 보지 못했던 데이터가 들어가게 된다.
-
비지도 학습은 정답 데이터가 필요없고, 주 목적은 어떤 값을 분석하기 위한 것이다. 그리고 단계는 학습만 하면 되고 사용시에 입력 데이터로는 이미 본 것들이 들어간다.
강화 학습
-
강화 학습은 지금까지 설명한 ‘지도 학습’, ‘비지도 학습’과는 많은 점에서 차이가 있다.
-
에이전트(모델)와 환경의 상호작용을 전제로 한다.
-
모델은 관측을 통해서, ‘조작’의 결과로 환경이 어떻게 변화했는지 알 수 있다.
-
‘관측’과는 별개로 비정기적으로 보상이 주어지는데, 이 보상이 정답에 해당한다. 그러나 정답은 ‘조작’으로부터 어느 정도 시간이 흐른 후에 알 수 있다.
-
강화 학습은 딥러닝 알고리즘과 함께 ‘게임을 플레이하는 프로그램’, ‘로봇 제어’, ‘바둑 AI’등 다양한 분야에서 이용된다.
지도 학습에 속하는 처리 패턴
- 지도 학습은 머신 러닝에서 가장 널리 쓰이는 학습 패턴이다. 예측 하려는 값이나 입력 값의 종류에 따라서 ‘분류’, ‘회귀’, ‘시계열 분석’의 세가지 처리 패턴이 있다.
분류
-
지도 학습에서 가장 널리 쓰이는 패턴인 분류는 ‘어떤 그룹에 속하는지’가 예측 대상이라는 점이다.
-
어떤 모델이 존재하고 이 모델은 고객의 정보를 입력 받고 이 고객이 계약을 성공할 것인지 아니면, 실패할 것인지를 예측 한다고 했을 때 정보가 입력된 고객은 AI의 판단에 의해서 ‘계약 성공’, 또는 ‘계약 실패’ 두 그룹중에 하나로 분류된다.
-
AI가 사람대신에 판단을 수행해주기 때문에 실무에서 가장 많이 쓰이는 패턴이다.
-
위의 예제는 ‘계약 성공’ 및 ‘계약 실패’로 그룹이 두 가지 뿐이지만, 분류 그룹이 세 개 이상인 경우도 있으며 이런 경우를 ‘다중 분류’ 라고 한다.
-
다중 분류는 딥러닝이 발전하면서 이미지나 텍스트를 대상으로 많이 사용된다. 일반적으로 머신러닝에서 사용하는 분류는 이진 분류이다.
회귀
-
회귀의 입력 부분은 분류와 같다. 예를 들어서, 날씨에 따라서 자전거 이용수를 예측한다고 했을 떄 입력 값으로는 계절, 년, 요일, 날짜, 습도, 풍속과 같은 데이터가 들어갈 것이고 출력으로는 자전거 이용 숫자가 나올 것이다.
-
이렇게 수치를 예측하는 모델이 바로 ‘회귀’이다. 자전거 이용 수를 예측한다면 담당자의 수를 결정하거나 자전거가 부족할 경우 예비 자전거를 준비하는 등의 조치를 취할 수 있다.
-
이 사례와 마찬가지로, 케이크 가계의 ‘케이크 판매수’, ‘테마 파크의 입장객 수’ 처럼 수치를 정확하게 예측하여 업무적인 효과를 볼 수 있는 다양한 유스케이스가 있다.
시계열 분석
- 특정한 값의 과거 데이터를 입력하여 미래의 값을 예측하는 것이 시계열 분석이다. 수치를 예측한다는 점에서는 회귀와 같지만 원칙적으로 날씨나 강수량 같은 다른 값을 사용하지 않고 자기 자신의 과거 데이터를 입력한다는 점이 다르다.
비지도 학습에 속하는 처리 패턴
- 비지도 학습에 속하는 ‘연관 분석’, ‘클러스터링’, ‘차원 축소’의 세 가지 처리 패턴에 대해서 설명할 것이다.
연관 분석
-
연관 분석은 ‘장바구니 분석’이라고도 한다. 고객이 여러 가지 상품을 동시에 구입 가능한 상황에서 상품의 어떤 조합이 연관 관계가 큰지 수학적으로 분석하는 기법이다.
-
연관 분석은 그 결과에 따라서 어떤 대책을 실행해야 분석을 수행한 의미가 있다. 대책으로는 고객의 편의를 위해서 연관되가 높은 상품을 가까히 배치하기
-
언뜻 잘팔리지 않는 것 같은 상품이 고가의 다른 상품과 연관도가 높다는 것을 깨닫고 해당 상품을 철수하지 않기
클러스터링
-
클러스터링이란 지도 학습의 분류와 같은 그룹 나누기를 정답 데이터 없이 수행하는 처리 패턴이다.
-
고객의 구매 이력 데이터를 보고 고객을 4개의 그룹으로 분류하여 각 그룹의 평균 구매액을 계산하여 그래프로 나타냈다고 생각을 해보자.
-
각 그룹의 특징을 파악하고 나면, 특정 그룹을 타깃으로 삼는 대책 (예를 들면 그룹 1을 대상으로 신선식품 특판을 실행하는 등)을 생각할 수 있다.
-
이런식으로 대책의 근거가 되는 정보를 알아내는 것이 바로 클러스터링의 목적중에 하나이다.
-
클러스터링 결과를 가치 있게 이용하려면, 사람이 직접 그룹의 특징을 발견해야 한다. 기술 통계나 시각화 등 그룹의 특성을 어떻게 발견하고, 발견한 특성을 어떻게 다시 비즈니스에 활용할 것인가는 분석가(도메인 전문가)의 역량에 따라 달렸다.
차원 축소
-
체중만으로 어떤 사람이 비만인지 아닌지를 판정할 수는 없다. 키가 크다면 체중이 많이 나가더라도 비만이라고 할 수 없다.
-
이 점에 착안해서 체중과 키라는 두 가지 값에서 BMI라는 수치를 계산하려는 아이디어가 나온 것이다. BMI 값 하나만 보면 키와 상관없이 비만도를 판단할 수 있다.
-
차원 축소는 이와 같은 아이디어를 머신러닝의 처리 패턴으로 만든 것이다. 머신러닝 모델은 적게는 수십가지, 많게는 수백가지에 이르는 입력 데이터 필드를 다룬다.
-
하지만, 필드수가 너무 많으면 사람이 데이터의 상황을 제대로 파악하기 어렵다. 그래서 다차원 데이터를 저차원으로 압축하여 데이터의 특징을 알기 쉬게 만드는 기법이 바로 차원 축소이다. 구체적으로는 다차원을 2차원 또는 3차원으로 축소하여 그 결과를 시각화한다.
딥러닝과 머신러닝의 관계
-
앞에서 머신러닝에 대해서는 어느정도 파악을 했다면 딥러닝은 무엇인지 궁금할 것이다.
-
최근에 AI가 유행하면서, 딥러닝이라는 용어를 자주 접했을텐데 차이를 알아보자.
-
이번 장에서 처리한 처리 패턴은 머신 러닝을 블랙박스로 보았을 때 외부로 드러나는 동작을 기준으로 설명한 것이다. 이들 처리 패턴에도 ‘알고리즘’이라고 하는 실제 구현 방법이 있다.
-
딥러닝은 주로 분류 처리 패턴에서 사용되는 알고리즘의 한 종류라고 보면 된다.
-
예를 들어서 머신 러닝 알고리즘에는 (로지스틱 회귀, 결정 트리, 랜덤 포레스트, XGBoost…, 신경망)이 있고, 그 신경망 알고리즘에서 딥러닝 알고리즘으로 CNN, RNN, LSTM 등이 있는 것이다.
-
딥러닝 이전에 뇌의 신경 세포(뉴런)를 수학적으로 모형화한 ‘신경망’ 알고리즘이 있었다. 신경망은 뉴런의 모방한 노드를 층 모양으로 연결한 모델이다.
-
이 노드끼리 연결되는 방식을 자유롭게 바꿀 수 있어서 새로운 종류의 모델이 계속 제안되며 독자적으로 발전할 수 있었다.
-
신경망 중에서도 층수가 4층 이상(중간층이 두 층 이상)인 것을 딥러닝이라고 한다. 딥러닝 모델의 노드와 노드를 잇는 화살표마다 ‘가중치’라는 파라미터가 부여된다.
-
그리고 층수와 노드의 수를 늘려가면서 엄청나게 많은 수의 파라미터를 가질 수 있다. 이로 인해서, 모델의 표현력이 높아지며 기존 머신러닝 알고리즘으로 해결하기 어려웠던 이미지, 동영상, 텍스트, 음성 (비구조적 데이터)를 다룰 수 있게 되었다.
-
머신러닝 용어중에 ‘구조적 데이터’와 ‘비구조적 데이터’가 있다. 구조적 데이터는 ‘나이’, ‘직업’처럼 일반적인 데이터베이스의 필드 형태로 다룰 수 있는 데이터를 말한다.
-
하지만 이미지, 동영상, 텍스트, 음성등은 일반적인 데이터베이스의 필드로는 다룰 수 없기 때문에 비구조적 데이터라고 한다. 딥러닝은 이 비구조적 데이터를 다루기에 적합하다.
-
비구조적 데이터를 대상으로 하는 처리 패턴은 세 개 이상의 그룹으로 분류하는 다중 분류이다. 딥러닝은 이런 ‘다중 분류’와 유스케이스에서 특히 위력을 발휘한다.
참고 문헌
>> Home