AI/ML

2022. 8. 2. 18:43잡다한 IT

* 2021 AWS invernt강연을 요약 + 개인적인 정리를 추가한 내용입니다.

 

2016년 알파고의 등장 이 후로 그저 공상과학, 영화에서나 나오는 것 뿐만아니라 일상에서도 접할 수 있는 2가지의 단어가 있다. 바로 AI/ML이다. 과거에는 둘을 분리해서 이야기할 때가 있었지만, 점점 하나로 규합되고 있는 분위기이다. 이 2가지에 대해서 알아보도록 하자.

 

AI. 인공지능. 이라는 단어에는 정말 많은 의미를 함축하고 있다. 오라클사(Oracle 社)에서는 AI를 다음과 같이 정의내리고 있다.

"

 

 간단히 말해서 인공 지능(AI)은 인간 지능을 모방하여 작업을 수행하고 수집한 정보를 기반으로

반복적으로 개선할 수 있는 시스템 또는 기계를 의미합니다. 

 

"

 ML(Mchine Learning)기계학습에 대해서는 이렇게 정의되어 있다. aws 2021 invernt에서는 이렇게 정의를 내렸다.

 

"

 

기계가 분석할 데이터를 바탕으로 하여 이 데이터를 수집, 분석 후 특정 페턴을 추출해 내어, 기계가 자동적으로 학습할 수 있도록 한 후, 학습값을 바탕으로 원하는 결과값을 출력하도록 하는 기법을 의미한다.

또한 이런 방법을 통해서 무엇인가 해결하고자 하는 방법이 명시되어 있어야 한다.

 

 

"

그렇다면 우리는 이 2가지 기술을 활용하여 서비스를 개발하기 위해서 어떤 질문을 스스로에게 던져봐야 할까?

 

가장 기본적인 질문은 아래와 같을것이다. 먼저 시장을 분석함에 앞서 2가지의 질문이다.

1. 과연 우리가(회사) 이 기술을 도입했을때 비즈니스적이나, 운영적인 측면에서 매출향상을 도모할 수 있는가?

2. 예측된 결과값을 어떻게 사용할 것인가? 우리의 BM이 개별적인 분석이 필요한 분야인가?

이런 질문과 더해 회사 내부에 대한 질문을 해야할 것이다.

  AI/ML 전문가 혹은 인력유무
Data Lake
구축유무
  NO YES
NO Let's start! Let's archive!
YES Let's study! Let's roll out!

이러한 질문앞에 어떤것을 중점적으로 둬야할지 잘 모를 수 가 있다. 하지만 많은 논문들, 특히 가장 대표적으로 인용되는 논문인 Scaling to Very Very Large Corpora for Natural Language Disambiguation - Michele Banko, Eric Brill 에 의하면 

"

 

 

중점적으로 봐야할 점은 알고리즘을 얼마나 잘 구축하는것 보다 학습 데이터의 양이 더욱 중요한 시점이다. 데이터의 절대적인 양이 많을 수록 정확성이 높아지기 때문이다.

 

"

즉 얼마나 많은 양의 학습데이터가 있는가를 구분할 필요가 있다.

 

이런 머신러닝을 하기위해 데이터를 학습할 필요가 있다. 과거에 수집한 다양한 데이터를 이용해서 해당 데이터에 있는 페턴을 자동으로 도출해 낼 수 있다. 이 페턴을 바탕으로 모델을 생성하고, 해당 모델을 새 데이터에 적용하여 정보에 기반한 적용형 예측결과값을 제공할 수 있게된다. 즉 데이터 자체를 사용하여서 그 데이터에 숨겨진 규칙을 찾을 수 있게 된다.

 

*모델 == 하나의 학습된 알고리즘을 의미한다. 데이터에서 페턴을 식별하는데 사용하는 것, 데이터로부터 규칙을 찾을 수 있다. 이런 모델을 자동으로 만드는것을 ML이라고 할 수 있따.

 

이렇게 만들어진 모델을 바탕으로 하여 유사한 데이터를 분석하게 된다면, 사전학습된 모델을 바탕으로 데이터분석을 하기에, 이것을 분석하고, 예측하고 실행하기까지 소요되는 시간이 단축된다.

간략한 알고리즘을 바탕으로 상상해 보도록 하자.

"


f(x) = A0X0+A1X1+A2X2......+AnXn

 

f(x) >=y 일 경우 Z App을 추천한다.

 

"

라는 알고리즘이 있다고 할때, 알고리즘 모델인 f(x), 특징들에 대한 가중치인 An, 데이터로부터 추출해낼 수 있는 특징인 Xn 이라고 정의내릴 수 있다.

 

이때 가중치는 해당 내용을 얼마나 많이 사용하는가에 대한 가중치를 의미하며, 특징은 피쳐라고도 하며 데이터에 대한 범주(레이블)을 인간이 직접 지정해두는것을 의미한다. 단점으로는 이 과정에서 사람의 편견, 휴먼에러가 들어갈 수 있다.

 

* 이런 특징을 스스로 학습하는것이 딥러닝이다.

 

머신러닝에 있어서 모델(알고리즘)을 만드는데 있어서는 크게 3가지의 범위가있다

지도학습
전통적으로 광범위하게 사용되는 머신러닝 유형이다. 말 그대로 인간의 지도아래에서 시행되는 학습을 의미한다.
인간이 레이블을 지정한 후 이 것을 바탕으로 학습을 하게된다. 이때 특징을 기계가 자동으로 추출하여 학습하게 되며, 이 모델을 바탕으로 새로운 데이터가 들어오게 되었을때, 결과값을 예측할 수 있게 된다.

 

이진분류
==> 1or0 즉 부정행위인가, 아닌가를 분석할 수 있다.
멀티클레스 분류
==> 다수의 예시 중 1개를 찾는다.(E-mail단어 분석 후 해당 파트로 분할)
회귀문제
==> 과거의 데이터를 바탕으로 차후 어떻게 변동될것인지 예측하게 된다.(주가예측, 기기 동작상태, 고장확율 등)

비지도학습
클러스터링 이라는 기법을 사용한다.데이터만 가지고있을때, 레이블을 따로 지정하지 않더라도 기기가 자동으로 페턴, 범주 등을 자동으로 나누게 된다. 
가장흔한 예시로 과속감시 카메라속도계를 예시로 들 수 있다.

강화학습
시도와 오류를 통한 학습이다. 대표적으로 AWS DeepRacer가 있다.
시뮬레이터가 주어지며, 이 안에서 가상의 차량을 통해 규칙을 부여하고 규칙에 의해 기기가 스스로 학습할 수 있도록 한다. 데이터없이 시뮬레이터와 규칙을 부여하는것만으로도 학습할 수 있다는 특징이 있다. 함수형태의 보상 혹은 불이익을 제공받는 에이젼트가 있다.

이제 AI/ML을 하나의 범주를 두고 살펴보자.

인공지능이라는 가장 큰 범주 하위에 기계학습이 있다. 인공지능이란 말 그대로 생명체를 흉내내서 기계가 판단할 수 있는 모든것을 의미한다. 굉장히 광범위한 개념을 가지고 있으며, 사람이 설정한 조건값에 의해 무엇인가가 자동으로 실행되는 모든것을 인공지능이라고 할 수 있다.

 

하위개념으로는 데이터로 부터 페턴을 기기 스스로 학습을 하는 기계학습이 있다.

 

최하위 범주인 딥러닝은 인공신경망을 통해서 피쳐(데이터에서 학습할 특징)자체도 딥러닝이 스스로 찾아낼 수 있도록 하는 기능이다.  하위범주로 내려갈수록 해결할 수 있는 문제의 복잡성은 크게 증가된다. 하지만 더 많은 컴퓨팅파워, 데이터 등이 필요한 하드웨어의 구현 제약 조건이 점점더 많이 생기게 된다. 

 

체스를 예로들어서 가정해 보자면, 단순히 체스룰을 코딩화하여 체스를 둘 수 있도록 만든 앱은 인공지능이 될 수 있다. 여기에서 조금 더 성장하여, 과거의 기보(대국이 흐른 과정)을 바탕으로 체스를 두는법을 스스로 학습한다면 ML이 될 수 있다. 딥러닝의 경우 대국을 할 동일 기기 2개와 서로를 상대하며 체스 두는법을 스스로 학습할 수 있는 시스템을 의미한다. 가장 유명한 것은 알파고 를 예시로 둘 수 있다. 

딥러닝의 학습방식은 인공신경망을 바탕으로 학습을 한다. 생명체가 가지고 있는 신경망을 흉내내어 만든 인공적인 신경망을의미한다. 데이터를 바탕으로 모델을 학습시킬 수 있으며 피쳐에 대한 추출을 자동으로 할 수 있다는 것이 기존 머신러닝과의 가장 큰 차별점이라고 볼 수 있다.