[주말판] 인공지능, 고민을 멈추고 직접 해봐야 할 때

2019-07-06 12:16
  • 카카오톡
  • url
인공지능에 대한 말은 많지만 실제 성과내고 있는 조직은 매우 드물어
인공지능과 관련된 기본 용어 점검하고, 더 많은 자료에 접근하는 법


[보안뉴스 문가용 기자] 인공지능은 이제 누구나 갖고 싶어 하고, 알고 싶어 하는 기술이 되었다. 기업들도 인공지능에 대한 투자를 확대하고 있다. 하지만 아직까지 인공지능을 활용해 실제 생산성을 향상시킨 사례는 드물다. 인공지능이 아직도 신기루 같이 느껴지는 이유다.


[이미지 = iclickart]

어느 분야나 그렇지만, 전문가가 아니면 인공지능 분야에서 계속해서 나오는 각종 전문용어가 진입을 가로막을 때도 많다. 인공지능과 머신러닝은 같은 말일까? 머신러닝은 딥러닝과 거의 똑같은 뜻인가? 다르다면, 둘 다 가지고 있어야 생산성에서 가시적인 성과가 나올까? 우리 회사의 사업 목적에 있어 필요한 건 정확히 어떤 기술일까? 가끔은 이런 기본적인 용어들을 정확히 이해하는 것이 실질적인 계획의 토대가 될 수 있다.

먼저 ‘인공지능’의 가장 보편적인 정의부터 짚고 넘어가자. 우리는 대부분 인공지능을 이해하고 있다고 생각하지만, 실제 이야기를 나눠보면 대단히 많은 사람들이 각자의 정의를 가지고 있다는 걸 알 수 있다. 누군가에게는 ‘나를 실직자로 만들 로봇’이고, 누군가에겐 ‘모바일에 달려 있는 디지털 어시스턴트’ 정도일 뿐이다. 하지만 그런 것들은 인공지능이라는 광범위한 분야의 일부에 불과하다. 인공지능이란 머신러닝, 자연어 처리, 컴퓨터 비전 등의 기술들을 통합하여 부르는 말이기 때문이다.

게다가 인공지능은 ‘좁은 인공지능(Narrow AI)’ 혹은 ‘약한 인공지능(Weak AI)’과 ‘범용 인공지능(General AI)’으로 나뉘기도 한다. ‘좁은 인공지능’은 오늘날 우리가 흔히 만나볼 수 있는 기술들을 아우른다. 즉 특정 임무에 한하여 기능을 발휘하도록 한 인공지능 기술들을 말한다. 추천 엔진(recommendation engine), 내비게이션 앱, 챗봇 등이 여기에 속한다. ‘범용 인공지능’은 보다 광범위한 일을, 보다 사람처럼, 할 수 있게 해주는 기술이다.

이렇게 인공지능에 대한 온갖 용어가 혼재되어 가는 때에, 이 분야에서 흔히 사용되는 기본 용어들부터 명확하게 익히는 것이 인공지능에 대한 투자의 효율성을 높이는 방법이 될 수 있다. 다음에 설명되는 몇 가지 용어들을 참고해 여태까지 쌓아왔던 인공지능에 대한 지식을 보다 분명하게 만들어보자.

머신러닝(Machine Learning)
인공지능을 도입코자 하는 많은 조직들이 가장 먼저 관심을 가져봄직한 기술은 머신러닝이다. 머신러닝은 일종의 알고리즘으로, 데이터를 활용한 훈련 코스를 거쳐 특정한 임무를 자동화 할 수 있게 된다. 보통은 소프트웨어 개발자들이 코드를 작성함으로써 하던 일을 대신할 수 있다. 훈련시킨다는 건, 간단히 말해 머신러닝 알고리즘에 예시들을 계속해서 보여주고, 모방하도록 하는 것이다. 가장 유명한 사례는 고양이 사진을 계속해서 보여줌으로써 머신러닝 알고리즘이 고양이와 고양이가 아닌 동물들을 구분하도록 만드는 것이다.

이제 각 조직들은 이 머신러닝 다루기에 점점 더 익숙해지고 있다. 그러면서 사용법과 사례가 풍부하게 나오고 있기도 하다. 예를 들어 뉴욕에 있는 한 대형 병원은 머신러닝을 사용해 사이버 보안 문제를 해결해오다가, 최근에는 같은 알고리즘을 진료에 활용하기 시작했다고 한다. 특히 아편 유사제와의 전쟁에 알고리즘을 활용할 수 있다는 것을 깨닫고 적극 활용하기 시작했다.

딥러닝(Deep Learning)
딥러닝은 머신러닝과의 차이점을 이해하면 좀 더 분명하게 와 닿게 된다. 딥러닝은 머신러닝보다 몇 발짝 앞선 기술로, 머신러닝이 최초 결정을 내린 후에도 더 많은 임무를 수행할 수 있도록 되어 있다. 이 임무는 머신러닝으로 구성된 여러 층위를 통과하는데, 이 머신러닝의 층들을 신경망이라고 부른다. 신경망은 인간의 뇌 구조를 기계가 흉내 낼 수 있도록 설계되어 있다.

간단히 설명하자면 머신러닝이 최초의 답을 산출하면, 그 산출 값을 다음 머신러닝에 입력해 또 다른 답을 내고, 그 답을 다음 머신러닝에 다시 입력해 답을 얻어가는 과정을 반복하는 게 딥러닝이라고 볼 수 있다. 그리고 이 머신러닝을 모아 뇌처럼 작동하도록 꾸미는 게 신경망의 구성이다. 참고로 이러한 딥러닝과 신경망을 구축하는 데에 있어 핵심이 되는 프로그래밍 언어는 파이선이다.

자연어 처리(Natural Language Processing)
인간이 사용하는 언어는 0과 1 말고도 수많은 요소들로 이뤄져 있다. 그래서 0과 1에만 익숙한 기계가 사람 말을 알아듣는 건 대단히 어려운 일이다. 그래도 굳이 가르치려고 하는 건, 기계가 사람의 말을 이해하게 됐을 때 얻을 수 있는 것들이 많기 때문이다. 적어도, 그렇게 믿고, 그 얻을 수 있는 것들을 추구하는 게 자연어 처리 분야의 목적이다. 그렇게 탄생한 것이 알렉사(Alexa), 코타나(Cortana), 구글 어시스턴트(Google Assitant), 시리(Siri) 등이다.

자연어 처리는 수학적인 규칙을 따르지 않는 사람의 말을 수학적으로 이해가 가능하도록 전환하는 기술이기 때문에 비정형 데이터를 처리하는 데에 있어서도 필수적인 요소로 꼽힌다. 전자 건강 기록(Electronic Health Records, EHR), 이메일, 문자 메시지, 구술을 글로 옮긴 자료, 소셜 미디어, 각종 게시글 등 자연어가 포함된 거의 모든 데이터가 이 ‘비정형 데이터’의 큰 부분을 차지하기도 한다. 또한 자연어 처리가 발달할수록 감정 분석과 같은 고급 기술에도 도달할 수 있을 것으로 예상된다.

컴퓨터 비전(Computer Vision)
컴퓨터 비전은 한 마디로 “기계가 사람처럼 이미지를 시각적으로 인지하도록 하는 기술”이라고 말할 수 있다. 여태까지 컴퓨터는 그림을 특정한 순서로 배치된 픽셀들로만 이미지를 인지하고 있다. 자연어를 이해시키는 것만큼이나 그림을 사람처럼 보게 하는 건 어려운 일이다. 그런데 왜 굳이 컴퓨터가 사람처럼 형상을 인지해야 할까? 가장 먼저는 안면 인식 기술 때문이다.

현재 세계 곳곳에는 수많은 사람들의 이미지를 확보해 담아내는 카메라들이 설치되어 있다. 그 카메라들 뒤에 있는 컴퓨터 비전 시스템들은 이미지 안에 있는 사람들을 식별하기 위해 여러 가지 시도를 하는 중이다. 최근 몇 년 동안 큰 발전이 있기도 했고, 얼굴의 다양한 요소들을 가지고 개인을 식별하는 것이 꽤나 정확해졌다. 구축과 도입이 쉬워지기도 했다. 마이크로소프트는 페이스 API(Face API)라는 것을 애저 환경에 출시했고, 아마존도 아마존 레코그니션(Amazon Rekognition)을 AWS 환경에서 내놓았다. 이렇게 컴퓨터 비전 기술이 발전하면서 정부 기관들도 안면 인식 기술과 관련된 정책과 법규들을 고민하기 시작했다.

텐서플로(TensorFlow)와 케라스(Keras)
텐서플로는 머신러닝 작업을 위한 오픈소스 플랫폼이다. 여기에는 머신러닝을 연구하고, 머신러닝 프로젝트를 진행할 수 있게 해주는 툴, 라이브러리, 커뮤니티 자원이 풍부하게 마련되어 있다. 머신러닝을 시작해보고 싶은 조직들이라면 텐서플로에서 제공되는 각종 고급 API를 가지고 빠르고 쉽게 머신러닝 기반 앱을 만들어볼 수 있다.

이런 고급 API 중 하나가 케라스다. 케라스는 고차원 신경망 API로, 파이선으로 작성되었으며, 텐서플로뿐만 아니라 마이크로소프트의 CNTK나 테아노(Theano)에서도 사용이 가능하다. 텐서플로는 원래 구글에서 만든 것이지만, 오픈소스로 전환했기에 많은 조직들에서 보다 자유롭게 사용할 수 있게 되었다. 예를 들어 캘리포니아의 몬터레이에 있는 한 기관에서는 상어의 움직임을 더 잘 이해하고 예측하기 위해 텐서플로를 사용하고 있기도 하다.

쥬피터 노트북(Jupyter Notebook)
데이터 과학자나 머신러닝 개발자들을 위해 만들어진 웹 브라우저 기반의 인터랙티브한 환경으로, 라이브 코드, 수식, 시각화, 텍스트를 포함하고 있는 문서들을 전문가들끼리 협업해 생성하고 공유할 수 있도록 해준다. 줄리아(Julia), 파이선, R이라는 세 가지 핵심 언어를 지원한다. 데이터 정제(data cleaning)이나 변환(data transformation)에 자주 사용되는 편이다. 또한 수치 시뮬레이션(numerical simulation), 통계적 모델링(statistical modeling), 데이터 시각화(data visualization), 머신러닝 등에도 점점 더 많이 활용되고 있다.

해외 인공지능 학습자 및 전문가들이 자주 활용하는 자료
각종 대회 : 머신러닝과 관련해서 다양한 대회가 열린다. 아무 것도 모르는데 무슨 대회냐, 라고 생각할 수 있는데, 대회에 반드시 참여하지 않더라도 대회 관련 사이트에서 여러 가지 자료를 무료로 얻을 수 있다. 대회와 관련해서 커뮤니티도 곧잘 형성되는 편이니, 추가 정보를 충분히 얻고 나서 대회 참가를 결심해도 된다.

1) 캐글(Kaggle) : 사이트 주소는 https://www.kaggle.com/이며, 문제 해결을 ‘크라우드소싱’으로 한다는 특징을 가지고 있다. 회원가입을 하면 데이터셋, 커널, 무료 학습 코스, 포럼, 블로그, 직업 관련 게시물, 각종 문서에 접근할 수 있게 된다.

2) 오픈ML(Open ML) : 사이트 주소는 https://www.openml.org/이며, “조직적이면서 열려 있는, 머신러닝 분야의 온라인 생태계”를 추구하고 있다. 각종 오픈소스 툴들이 공개되기도 하며, 여기서 발생한 데이터를 다른 머신러닝 환경으로 가져가 모델을 구축할 수도 있다.

3) 애널리틱스비드햐(AnalyticsVidhya) : 사이트 주소는 https://www.analyticsvidhya.com/이며, “차세대 데이터 과학 생태계”를 표방하고 있다. 현재는 각종 대회 소식, 커뮤니티 링크, 튜토리얼, 블로그, 인증서 등의 정보를 제공하는, 일종의 포털 서비스를 제공하고 있다.

온라인 코스 : 다음에 나오는 온라인 학습 강좌들은 영어로 되어 있긴 하지만, 최근 해외 전문가들 사이에서 평판이 높아지고 있는 것들이다. 이름과 사이트 주소만 간략히 정리한다. 무료인 것과 유료인 것이 있다.

1) 콜롬비아대학교의 머신러닝 강좌 : https://www.edx.org/course/machine-learning-data-science-analytics-1
2) 코세라의 머신러닝 강좌 : https://www.coursera.org/learn/machine-learning
3) 데이터캠프 : https://www.datacamp.com/courses/introduction-to-machine-learning-with-r
4) 이코넬 머신러닝 인증 프로그램 : https://onlinelearning.cornell.edu/machine-learning-certificate
5) 하버드 데이터 과학과 머신러닝 : https://www.edx.org/course/data-science-machine-learning-2
6) 링크드인 러닝 : https://www.linkedin.com/learning/topics/machine-learning?difficultyLevel=BEGINNER&entityType=COURSE
7) 심플리런 머신러닝 인증 코스 : https://www.simplilearn.com/big-data-and-analytics/machine-learning-certification-training-course
8) 스프링보드 머신러닝 부트캠프 : https://www.springboard.com/workshops/ai-machine-learning-career-track/
9) 스탠포드 온라인 머신러닝 : https://online.stanford.edu/courses/cs229-machine-learning
10) 유대시티 머신러닝 강좌 : https://www.udacity.com/course/intro-to-machine-learning--ud120
11) 버클리대학 정보학교 머신러닝 강좌 : https://www.getsmarter.com/courses/us/berkeley-machine-learning-online-short-course

머신러닝과 관련된 서적들 : 역시 영어로 된 자료들이지만 머신러닝을 본격적으로 공부해보고 싶다면 한 번쯤 관심을 가져볼 만한 책들이다.

1) Machine Learning for Absolute Beginners(저자 : 올리버 티오발드)
2) Machine Learning for Beginners & Machine Learning with Python(저자 : 헤인 스미스)
3) Machine Learning: The Absolute complete Beginner┖s Guide to Learn and Understand Machine Learning from Beginners, Intermediate, Advanced, to Expert Concepts(저자 : 스티븐 사멜슨)
4) Machine Learning with Python: Hands-On Learning for Beginners(저자 : 트라비스 부스)
5) Introduction to Machine Learning with Python: A Beginner┖s Guide to Learn Concepts and Practical Solutions from Data. Methods, Benefits and Case Studies(저자 : 윌리엄 그레이)

라이브러리/SDK/서비스
1) AWS 세이지메이커 : https://aws.amazon.com/ko/sagemaker/
2) 파이선을 위한 애저 머신러닝 SDK : https://docs.microsoft.com/en-us/python/api/overview/azure/ml/intro?view=azure-ml-py
3) 파이선으로 하는 사이킷런 머신러닝 : https://scikit-learn.org/stable/
[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

이전 스크랩하기

과월호 eBook List 정기구독 신청하기

Copyright Mediadot Corp. All Rights Reserved.

MENU

PC버전

닫기