ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Artificial Intelligence (AI)의 시작
    최신 기술동향/인공지능 (AI) 2020. 7. 7. 10:10
    반응형

      2016년 3월 9일, 무한대에 가까운 경우의 수를 가진다고 알려진 바둑에서 알파고가 이세돌을 이기는 장면이 전 세계로 생중계되었다. 많은 사람들이 이 사실에 경악했으며, 이 사건을 기해, 인공지능의 새로운 전성기가 시작되었다. 컴퓨터과학이나 통계의 전공자들 뿐 아니라, 일반인들이 이해하기 쉬운 기술을 정리해놓은 글과 책들이 수 천편씩 쏟아져나왔고, 이들이 사용하기 쉬운 여러 플랫폼, Tool들도 공개되고 있다.

     삼성에서는 AI를 전공하는 석,박사급 인력을 1년에 몇 백명씩 채용하는 등, AI를 아는 것만으로도 큰 Advantage를 갖게된다. 내가 속해있는 전기전자공학과는 관련 과목을 조금씩 열기는 하지만, 이를 이론적으로 이해하는 것만으로는 부족하다는 생각이 들어서, Coursera나 여러 책들을 찾아 읽고, 실제로 프로젝트도 진행해보았다. (Coursera에 가면 Andrew ng 교수님의 모~옵시 유명한 AI 강의들이 있기 때문에 필요한 사람들은 읽는 것도 좋을 것 같다.)

     

    앞으로의 글의 전개

    이 카테고리에서 설명하는 글들은 크게 3가지 Motivation과 이에 맞는 글의 Type으로 작성될 것이다.

     첫 번째는 비 전공자도 이해할 수 있는 난이도로, 어떤 알고리즘이 있고, 이 알고리즘이 왜 나왔는지, 어떤 상황에서 사용되는지를 정리할 것이다. 가장 이 블로그의 취지에 맞는 글이 될 것으로 기대한다. 하지만, 이런 Type의 글에서는 수학적으로 파고들지는 않을 예정이다. 예를 들어서, Support Vector Machine (SVM)을 위해서 Karush-Kuhn-Tucker (KKT)를 사용하는데, KKT를 이용해서 어떻게 유도하는지 수학적으로는 파고들지 않겠다는 말이다. 개인적으로 이 수학적인 유도는 몰라도 어떤 알고리즘이고 장단점이 무엇인지만 알아도 이를 적용할 수 있다고 생각하는데, 많은 비전공자들이 이런 수학의 늪에 빠져서 인공지능을 포기하는 경우가 많은 것 같다. 따라서, 수학 유도가 필요하다고 생각되면 별도의 페이지에서 다루도록 한다.

     두 번째는 한 단계 더 나아가서, 해당 알고리즘을 코드로 옮기는 글이다. 현재 데이터를 Table 형태로 정리하기 위한 Pandas, 머신러닝을 위한 Scikit Learn, 딥러닝을 위한 Tensorflow, Keras, PyTorch 등 다양한 라이브러리와 플랫폼들이 있다. 이와 관련해서 상당히 많은 한글, 영문 블로그들이 있고, 생각보다 사용하기도 어렵지 않다. 따라서, 알고리즘 별로 하나씩 따라가보면서 직접 코드를 돌려보는 것을 목표로 한다.

    마지막으로는, 첫 번째 Type의 글에서 잠시 눈돌렸던 수학적인 증명을 다루는 Type이다. 솔직하게, 나도 내가 알고 있는 알고리즘의 수학적인 내용들을 다 알고 있는 것은 아니기 때문에, 알고 있는 것부터 하나씩 써볼 예정이다. (특히, 강화학습의 알고리즘은 개인적으로 상당히 어려웠다. ㅠㅠ)

     

    AI 알고리즘의 분류 (Taxonomy)

     인공지능을 공부한다고 하면, 머신러닝, 딥러닝, 강화학습, 지도학습, 비지도학습 등 다양한 용어가 있다. 처음 글을 쓰는 만큼, 관련된 정보들을 분류해본다. 각 분류들을 복잡하게 설명한 글들이 있지만, 간단하게 정리해보자. 일단 이후로 다루는 AI들은 큰 틀에서는 모두 머신러닝 (Machine Learning)에 들어가고, 머신러닝 안에서도 여러 학습방식과 알고리즘들이 있다.

     

    • 지도 학습

     지도학습은 '답'이 있는 문제를 다루는 알고리즘이다. 예를 들어서, 사진이 엄청 많고, 해당 사진들이 고양이면 0, 사람이면 1이라는 답이 있는 문제는 지도학습이라고 할 수 있다. 그 안에서도, x값에 맞는 y 실수 값을 찾는 '회귀 (Regression)'와 데이터를 보고, 여러 카테고리 중에 고르는 '분류 (Classification)'이 있다. 회귀와 분류안에서도 매우 다양한 알고리즘들이 있지만, 이에 대해서는 추후에 다루도록 한다. 

    그런데, 회귀모델에서 사용하는 알고리즘은 대부분 분류모델 알고리즘으로도 사용할 수 있다.

    이에 대해서는 해당 알고리즘들을 설명할 때 다시한번 언급하도록 한다.

     

    • 비지도 학습

    비지도학습은 주어진 '답'이 없이 X1, X2 등의 feature들만 쭈루룩 나열되어 있는 경우다. 보통은 feature를 보고, 그룹을 묶어주는 Clustering 알고리즘이 많다.

     

    • 강화학습

    강화학습은 지도학습과 비지도학습과는 다르게, '보상'이라는 개념이 들어온다. 한마디로 쉽게 말해보자면, '직접 해보고, 결과가 좋으면 보상을 줄게!'가 강화학습이다. 강화학습이 중요하게 다뤄지는 이유는 알파고와 이세돌의 대국도 강화학습을 기반으로 설계되었으며, 여러 분야에 적용이 되고 있기 때문이다. 강화학습을 발전시킨 다양한 알고리즘들이 있고, 특히, 5G에서도 이와 관련된 많은 논문들이 있어서 이런 논문들도 소개할 예정이다.

    대부분의 알고리즘들은 이 3개 중에 하나의 범주안에 들어가게 된다.

     

    • 딥러닝

    딥러닝은 앞에 말했던 3개와는 다르지만, 별도로 설명이 필요하다. 많은 사람들이 머신러닝 = 딥러닝이라고 생각하는데, 이 부분의 오해를 바로 잡을 필요가 있다고 생각한다. 딥러닝은 머신러닝의 많은 알고리즘 중 하나로, '사람의 뇌를 모방하여 여러 Layer의 곱셈, 덧셈으로 연결되어 있는 알고리즘'이다.

    즉, 동그라미가 서로 복잡하게 연결되어 있는 그림이 표현하는 알고리즘만 딥러닝이다.

     이해를 쉽게 하려다보니, 상당히 저렴하게 표현되어 있고, 설명이 살짝 부실하지만, 관련된 내용은 딥러닝 파트에서 다시 다룰 예정이다. 

    반응형

    댓글

Designed by Tistory.