본문 바로가기

학교 수업/전공 수업

[인공지능] 인공지능의 기술 분류 체계와 딥러닝이 주목받게 된 계기

안녕하세요 소프트웨어 공부하는 레오존입니다.
이번 포스팅에서는 인공지능의 기술 분류 체계에 대해 간략하게 정리해 보고 딥러닝이 어떻게 세상의 주목을 받게 되었는지에 대해 정리해 보도록 하겠습니다.
 

 

 

인공지능의 기술 분류 체계

 

 

 

대상을 인식할 때 사용되는 여러 가지 인공지능 기술 방법이 존재하는데 그 방법으로 어떤 것들이 있는지 알아보기 전에 먼저 대상패턴이 인식되는 순서에 대해 간략하게 정리하도록 하겠습니다. 

처음에 대상패턴인 2차원 영상신호나 1차원 시계열신호(시간의 움직임에 따라 값이 변화하는 신호)가 들어오게 되면 센싱인터페이스를 거치게 됩니다. 센싱인터페이스는 센서에서 받은 신호에서 정보를 찾아 주는 역할을 합니다. 이후에 들어온 데이터들에 전처리가 이루어진 다음 특징 추출/선택이 일어나게 됩니다. 마지막으로 패턴을 인식하여 패턴들을 분류하고 분석할 수 있게 됩니다. 패턴인식은 인공지능에 속하는 분야 중 하나입니다.

 


처음에 영상신호와 음성신호와 같은 대상이 장치를 통해 들어오게 됩니다. 참고로 영상신호는 공간계열 신호 즉, 스틸이미지(still photograph, 정지 사진) 혹은 동영상일 수 있고 시계열 데이터는 음성 같은 경우가 해당됩니다.
이러한 데이터들이 센싱 인터페이스를 통해 시스템으로 들어오게 됩니다. 영상 쪽은 카메라, 음성 쪽은 마이크 같은 장치를 통해 센싱 데이터가 들어오면 그 데이터들에 전처리(pre processing)를 하게 됩니다. 노이즈를 없애고 알고리즘에 맞는 형태로 데이터 포맷을 바꾸게 되는 것이죠.
이미지 프로세싱(image processing), 스피치 프로세싱(speech processing)과 같은 전처리 과정을 통해서 들어온 것들을 넓게 보면 feature extraction(특징추출)까지 전처리에 포함시키는 경우도 있고, 아니면 단순한 노이즈 줄이기 정도 혹은 데이터 트랜스포메이션(data transformation)까지만 전처리로 묶는 경우도 있습니다.

전처리가 되어 가공하기 적합한 형태로 만들어지면, feature extraction이나 feature selection 단계를 거치게 됩니다. 많은 데이터들 중 유용한 데이터들만 추출하는 것을 feature extraction 또는 feature selection이라고 합니다. feature extraction과 feature selection을 혼용하여 쓰기도 하고 구분되어 쓰기도 합니다. 구분해서 쓰는 경우엔 예를 들어 a, b, c, d 데이터들 중 선별해서 뽑아 쓰는 경우인 abcd 중에서 bc만 골라내는 것을 selection이라 하고, abcd 중에서 e라는 걸 뽑아내는 것을 extracion이라고 합니다.

 

 

특징추출/선택(feature extraction/selection)에 사용되는 방법들이 여러 가지 존재하는데, 그중 하나인 PCA에 대해 먼저 알아보도록 하겠습니다. PCA(Principal Component Analysis, 주성분 분석방법)는 특징을 추출을 하는데, 보통 데이터들은 센싱이 되면 기계로 개선을 한 후에 수치 형태로 데이터를 저장해야 합니다. 따라서 하나의 데이터가 들어오면 그 데이터를 벡터 형태로 저장을 하게 됩니다. 센싱 과정에서 만약 카메라로 사진을 찍어서 이미지가 들어오면, 2차 형태 이미지를 벡터형태(1차 형태)로 바꾸게 됩니다. 벡터형태로 들어오게 되면 feature selection을 해서 n개보다 작은 m개만 골라서 새로운 벡터 형태로 저장을 할 수 있습니다. n개 중에서 부분집합인 m개를 골라낼 수도 있고 n개를 잘 조합해서 m개를 만들어낼 수도 있습니다. n개를 잘 조합해서 m개를 만들어내는 경우는 feature extraction을 하는 것이죠. 특징추출/선택(feature extraction/selection)을 해서 나온 결과의 벡터를 y라고 했을 때, 그 y를 feature vector라고 합니다.

 

그 feature vector를 만드는 방법은 여러 가지가 존재합니다. 여러 가지 목적에 의해서 여러 가지 방법을 사용하는데, 대표적인 방법들이 PCA, LDA, ICA입니다. 용도가 다 다르기 때문에 동일한 X(벡터)라는 데이터가 들어왔을 때, 용도와 목적에 맞게 새로운 feature vector로 추출을 해서 변환을 시키는 것입니다. 변환을 통해 만들어진 feature 벡터 y를 가지고서 인식을 하게 됩니다.

 

인공지능-기술-분류-체계


인식을 할 때에도 여러가지 접근법이 존재하는데, 통계적 접근법, 신경망 접근법, 퍼지 로직 접근법, 결정 트리 접근법, 결합 분류 접근법 등이 있습니다. 위의 이미지를 참고해주세요.
통계적 접근법이란 데이터들이 여러 개가 있으면 데이터들이 통계적으로 어떻게 샘플들이 분포하는지를 확률 모델을 만들어서 확률적으로 결정을 내리는 것입니다. 이 방법이 그동안 machine learming 쪽에서 상당히 많이 사용되던 방법으로 지금도 많이 사용되고 있다고 합니다.
그래서 통계적 접근법을 통해 데이터를 분류를 하던지, 인식을 하던지, 그 데이터 값을 예측을 하던지(regression), 그 데이터 종류를 구분하는 classification(분류) 같은 것들을 하게 됩니다.

classification(분류)을 할 때,  감독(supervised) 메서드를 사용하여 모델을 통계적 모델로 만드는 경우가 있고, 무감독(unsupervised) 메서드를 사용하는 경우도 있지만 주로 감독(supervised) 메서드를 사용합니다.
감독(supervised)에서도 과정을 두 가지로 나누면 베이즈 규칙(Baye's Rule)과 판별분석(Discriminant Analysis)으로 나뉘는데 베이즈 규칙엔 모수적(parametric)인 방법이 있고 비모수적(non parametric)인 방법이 있습니다. 판별분석(Discriminant Analysis)은 선형(Linear) 모델을 이용하느냐, 비선형(Nonlinear) 모델을 이용하느냐에 따라 구분합니다.

이 분야에서 대표적인 모델이 SVM(upport vector machine)입니다.
회귀(Regression)방법은 무감독 학습(Unsupervised learning)을 많이 사용하는데 클래스터링(Clustering)이 대표적인 unsupervised(무감독)의 방법 중에 하나입니다.

 

신경망 접근법(neural network 방법)은 신경망을 어떻게 학습하는지 방법에 따라서 감독(supervised) 학습, 무감독(Unsupervised) 학습, 강화학습(reinforcement)으로 나뉘게 됩니다.
강화 학습은 알파고 이후로 사람들이 많은 관심을 갖게 되었는데, 요즘에 많이 사용하고 있는 딥러닝 방법들이 이 세 가지 방법(supervised, unsupervised, reinforcement)으로 구분됩니다. 감독학습을 하는 데 사용되는 대표적인 알고리즘이 B.P(Back-propagation, 역전파 학습방법) 혹은 unsupervised 방법인 SOFM 방법입니다.
퍼지 이론을 바탕으로 해서 퍼지 로직을 이용해 패턴을 분류하는 방법도 있으며, Boosting, Adaboost이라는 방법이 있는 결합 분류 접근법도 존재합니다.
최근에 많이 사용하고 있는 방법으로 AdaBoost, B.P, GMM, HMM, SVM, Reinforcement, LDA를 꼽을 수 있습니다.

 

 

 

참고) 유전 알고리즘

 유전 알고리즘은 실제 자연에서 유전법칙에 의해서 세대를 반복하면서 성질들이 이어져가는 게 긴 흐름을 보면 서서히 개선되는 방향(진화)으로 발전하고 있는데, 진화의 과정을 알고리즘 형태로 구현한 게 유전 알고리즘입니다. 유전 알고리즘은 최적화 이론 중 하나의 분야이며, 유전 알고리즘도 지식 기반 방법은 아니고 데이터 기반 방법으로 분류할 수 있습니다.
 

 

 

 

 

딥러닝

 


인공진능 기술 중에서 최근에 주로 관심을 받고 있는 것은 딥러닝입니다. 딥러닝이 사람들의 관심을 받게 된 계기에 대해 이야기해보고자 합니다.

매년 구글에서 대용량 이미지 데이터 베이스 대회가 있는데, 이미지넷에는 어마어마한 이미지 양의 데이터들이 있어서 기계가 Large Scale Visual data를 얼마나 잘 인식을 하는가, 얼마나 잘 분류하는가를 평가하는 대회를 엽니다. 한마디로 인공지능 연구하는 사람들이 자신이 연구, 개발한 알고리즘이 이 데이터베이스에 있는 영상들을 얼마나 잘 분류할 수 있는지 시합을 하는 것입니다.
해당 대회에서 2012년도에 딥러닝을 이용한 방법이 우승을 했는데, 2012년 당시 약 1000개의 물체 종류 중에서 이미지에 존재하는 것을 찾는 대회였습니다. 그때 1등을 한 알고리즘(딥러닝을 이용한)이 2등을 한 알고리즘과 격차가 상당히 컸기 때문에 연구자들의 이목이 집중되었습니다. 해당 대회를 통해 2012년도에 연구자들의 관심을 받게 되었죠. 또한, 2016년도에 알파고가 이세돌을 이기면서 일반 대중들의 관심도 받게 됩니다.

 

2012년도에는 구글의 ImageNet Large Scale Visual Recognition Challenge에서 우승한 팀은 캐나다 토론토 대학의 Hinton 교수 연구팀인데, 그때 발표한 딥러닝이 탑재된 인공지능이 AlexNet입니다. 인공신경망이라는 기술은 1970년대 후반에 사람들이 연구를 시작해서 80년대에 한창 하다가 성과가 잘 안 나서 대부분의 사람들이 연구를 그만두었습니다. 다른 연구자들이 다른 방법을 찾고 있던 때에 Hinton 교수팀은 캐나다 정부의 지원을 받아서 사람들의 관심이 접었던 분야를 계속해서 연구하였고 그 결과를 2012년에 내놓았죠. Hinton 교수팀의 인공지능은 1000개 종류의 물체가 담긴 1200만 개의 입력 이미지에 대한 판별 오차가 16퍼센트 정도였습니다. 그러니까 84퍼센트를 맞추는 결과를 내었는데 퍼센트만 본다면 정답률이 높은 것처럼 보이진 않습니다. 하지만 해당 대회에서 2등을 차지했던 팀은 26퍼센트의 오차를 보였기 때문에 10퍼센트 이상의 격차로 1등과 2등의 격차가 상당히 크다는 것을 보여주었습니다. 이전 대회에서 1등과 2등의 차이는 1~2퍼센트 차이로 고만고만한 느낌이었기 때문에 Hinton 교수팀의 결과에 연구하는 사람들은 깜짝 놀라게 되었습니다. 거기에 더해 Hinton 교수팀의 인공지능은 그림에 보이는 대상을 1순위부터 2순위, 3, 4, 5순위까지 순위를 내어 상당히 그럴듯하게 1순위가 아니면 2순위는 어떤 것이라고 맞추고 있음을 보였습니다. 오답으로 판정된 16퍼센트 오답도 일일이 결과를 봤더니 원래의 이미지 자체가 애매한 경우가 대부분이었는데, 그 예시로 달마티안 강아지와 체리가 같이 있는 사진을 들 수 있습니다. 해당 사진에서 정답은 체리로 정해져 있었는데 이 인공지능은 달마티안 강아지라고 답을 내놓아서 오답으로 처리가 되었습니다. 정답을 사람이 정해놓고 인공지능이 답을 맞히는 것이기 때문에 애초에 사진 자체가 하나의 대상으로 이루어지지 않고 여러 대상으로 이루어져 있어 정답 자체가 애매해 오답이 발생하게 된 것입니다. 수치상으로 판별 오차가 굉장히 낮은 데다가 틀린 답도 정성적인 정답의 질로 봤을 때 뛰어난 결과를 가지고 있었죠.


이러한 결과에 충격을 받은 연구자들은 딥러닝 연구를 하기 시작했습니다. 그중 미국 stanford 대학과 구글에서 투자를 시작해 얼굴 인식 쪽 관련된 연구를 시작했습니다. 1억 장의 이미지를 가지고서 neural network를 만들어서 학습을 해봤더니 (사람 얼굴 이미지를 방대하게 넣어서 학습) 그 network가 얼굴 비슷한 모습을 만들어내는 것을 확인할 수 있었습니다. 해당 결과를 통해 데이터가 충분히 많으면 신경망을 이용해서 정보들을 자동으로 추출하는 것이 가능하겠구나 생각을 하게 되었습니다. 또 미국 stanford 대학과 구글에서 실행한 다른 실험으로 고양이 영상들을 대량 집어넣었더니 고양이 영상들과 비슷한 형태가 학습이 되는 것을 확인했습니다. 이러한 결과로 이제 hiton교수팀에서 만든 것뿐만 아니라 다른 이미지 분석을 하는 데 있어서 데이터가 충분하면 신경망 방법이 학습을 해서 사용할 수 있겠구나 확신을 갖게 됩니다. 또한, 딥러닝을 이용한 얼굴인식 관련 연구가 얼굴 인식 분야에서 기존 대비 70퍼센트 성능 향상을 얻게 되었습니다.

 

 

이번 포스팅에서 인공지능 기술 분류 체계와 딥러닝 연구가 주목을 받기 시작한 사건에 대해 정리해 보았습니다.

읽어주셔서 감사합니다.