지난 번 1부에 이어서 2부를 시작하도록 하겠습니다.


그전에 잠깐 복습하면 


인공지능(AI)가 뭔지 기억하시나요?


인간이 인위적으로 만든 생각하고 논리적 근거를 바탕으로 판단하고 이해하는 그 무언가로 정의했습니다.


그리고 머신러닝은 인공지능의 한 분야로 

사람이 이해하는 것을 기계가 이해하도록 하는 알고리즘을 개발 하는 것이라고 했습니다.


위에 2가지만 기억하고 계신다면 성공하신 겁니다.


자 이제 


인공지능을 조금 더 자세히 들여다 보겠습니다.


과연 어디까지 우리는 인공지능이라고 하는 것일까요? 


가장 손쉽게 접할 수 있는게 바로 음성 인식입니다. 


기계가 사람이 하는 말을 이해하고 특정 행동을 하는 것입니다. 

기계가 명령을 듣고 스스로 생각해 특정 피드백을 주기 때문에 인공지능이라고 할 수 있습니다.


얼굴인식은 어떨까요? 

이것도 인공지능입니다. 화면을 보고 눈/코/입 생김새를 근거로 누군지 판단하는 것이죠


다른건 또 뭐가 있을 까요?


자율주행 자동차도 인공지능이겠죠? 

주위 상황을 분석해 가장 안전한 방향/속도로 운행하기 때문입니다.


하지만 그냥 자동차는 인공지능이 아닙니다. 악셀이라는 스위치를 누르면 가속하라는 설정된 값을 출력할 뿐 자동차 스스로가

정보를 이용해 스스로 생각하거나 판단하는게 아니기 때문입니다.


IoT는 어떨까요? 다양한 센서를 통해 온도나 습도등 집 환경을 인식해서 더울 경우 에어컨을 틀어준다거나 건조할 경우 가습기를 켜주는 

작업을 하기때문에 인공지능이라고 할 수 있습니다.


마찬가지로 사용자 패턴을 인식해서 항상 사용자가 원하는 상태로 만들어주는 역할을 하는 것은 모두 인공지능을 사용한다고 할 수 있습니다.


그 밖에도 스스로 장애물을 피해다니는 로봇, 구조 로봇, 아이보 같은 애완로봇도 모두 인공지능을 이용한 제품입니다.




그럼 이러한 인공지능을 가능하게 하는 기술에는 뭐가 있을까요?


음성을 어떻게 인식할까요?

얼굴은 어떻게 인식할까요?

측정한 정보를 어떤식으로 처리해서 출력하는 걸까요?


솔직히 인공지능을 구현하는 것은 전혀 어렵지 않습니다. 


예를 들어 음성인식의 경우 몇개의 단어를 선택해서 본인의 목소리로 녹음합니다.

그런 뒤에 단어별로 녹음된 음성 파장을 코드화 시킵니다. 

모든 음성 파일은 Wave form으로 전환이 가능하고 

여기서 최고값, 최소값, Fourier Transform을 이용한 파장대 분석 등 다양한 방식으로 특성을 수치화 시킬 수 있습니다. 


극단적인 예로는 네 / 아니오 구별은 길이로 하면 되겠죠?


그리고 온도를 측정하고 특정 온도 이상이 되면 에어컨을 켜는 출력을 내는 시스템을 만들면 됩니다.

(덥다라고 생각되는 온도를 미리 입력 시켜둠)


이처럼 아주 단순하고 다양한 일을 하지 못하는 인공지능은 우리가 옛날에도 만들었고 누구나 쉽게 구현 할 수 있습니다.


하지만 왜 최근에 들어서 인공지능이 다시 각광을 받고 있는 걸까요?


그것은 바로 머신러닝의 등장입니다.


머신러닝은 1부에서 아래와 같이 정의를 내렸습니다.


"사람이 이해하는 것을 기계가 이해하도록 하는 알고리즘을 개발 하는 것"


여기서 사람이 이해하는 것은 매우 방대한 정보를 바탕으로 하고 있습니다.

짧게는 수년 많게는 수십년 동안 경험하고 배운 것을 바탕으로 사람은 본인만의 방식으로 이해합니다.


즉 사람이 이해하는 것 들을 기계가 이해하도록 하기 위해서는

어마무시한 데이터를 이용해 기계를 학습시켜야 한다는 것입니다.

데이터가 많기 때문에 다연히 처리속도는 빨라야합니다.


이런 것들은 과거에는 불가능 했습니다.

컴퓨터의 연산 능력 (CPU)이 떨어지고 이미지 처리에 사용되는 GPU 성능이 높지 않았습니다.


하지만 최근 CPU 연산 능력의 경우 과거에 비해 수십배 향상되었고 GPU성능까지 높아지면서 

짧은 시간에 많은 양의 데이터를 분석하고 처리하는게 가능해 졌기 때문에 

머신러닝이 가능해진 것 입니다. 


이 때문에 머신러닝의 도움으로 다시 인공지능이 떠오르는 것입니다.


3부에서 자세히 설명하겠지만


머신러닝은 간단히 말해 인공지능 성능을 급격하게 향상 시켜주는 하나의 기술입니다.


그래서 최근의 인공지능은 대부분 머신러닝 기술을 사용하고 

이 때문에 인공지능과 머신러닝을 같은 의미로 오해 하기도 합니다.


머신러닝의 직접적인 예 두 가지만 들고 2부를 마치겠습니다. 


1) 넷플릭스(Netflix)


다들 영상 스트리밍 서비스인 넷플릭스는 아실 겁니다. 그런데 넷플릭스로 머신러닝을 사용하는 거는 알고 계셨나요?


넷플릭스 네트워크에 있는 영화/드라마/비디오 자료는 총 10억개가 넘습니다. 

그리고 수백만명의 사람들이 사용하고 있죠 

넷플릭스는 이러한 수백만의 사람들이 즐겨보는 영상을 실시간으로 분석하고 10억개가 넘는 자료에서 사용자의 취향에 맞는 

영상을 추천해 줍니다. 이러한 방대한 데이터를 처리하려면 머신러닝을 사용할 수 밖에 없습니다.


2) 알파고


너무 유명하죠? 사실 알파고를 통해서 인공지능이 세상에 더 알려진 것 같습니다. 모든 경우의 수를 분석해서 최고의 바둑을 

두는 인공지능입니다. 머신러닝 기반으로 만들어졌습니다. 사실 바둑에 있어 경우의 수는 무자비하게 많기 때문에 이 모든 것을

처리하려면 머신러닝을 사용해야합니다.






즉 많은 양의 데이터를 이용해 기계를 학습시키는 것이 바로 머신러닝입니다.


다시 정리해서 정의를 내리면 


머신러닝이란?


"사람이 이해하는 것을 방대한 양의 데이터를 이용해 기계가 이해하도록 하는 알고리즘을 개발 하는 것" 이라고 할 수 있습니다.



이러한 머신러닝의 기술과 종류는 매우 많습니다.

3강 부터는 이제 머신러닝에 대해 하나씩 알아보도록 하겠습니다.


감사합니다.




인.공.지.능


요즘에는 조금 과장해서 지나가던 개도 

인공지능을 한번 쯤은 들어봤다고 할 것 같습니다.

그만큼 조금 과하게 

너도 나도 할 것 없이 인공지능이라는

용어를 사용하고 있습니다.


가전이던 자동차던 핸드폰이던 모든 곳에

"인공지능을 사용한 ...... 인공지능으로 ...하는..." 

이라는 광고문구를 많이 사용합니다.


그럼 과연 인공지능은 무엇일까요?


 기계가 인간처럼 행동 하는 것? 그게 다일까요?

그럼 머신러닝과는 다른 의미 일까요? 

구글 알파고는 인공지능일까요 아니면 머신러닝일까요? 

그럼 또 딥러닝은 뭘까요?


이번 포스팅을 보신 분은 

위 질문들 중 하나 정도는 대답할 수 있으면 좋겠습니다. 


제가 글빨이 없어서 

제대로 전달이 될 수 있을지 걱정이네요ㅠ  


거두절미하고 이제 본론으로 들어가 보겠습니다.



인공지능의 사전적 의미를 보겠습니다. 


영어로 Artificial Intelligence (AI)입니다.

Artificial은 인공의 라는 의미로 직관적으로 이해가 됩니다. 

인공적 / 인위적으로 사람이 만든 것을 말하죠.


하지만 Intelligence는 지능이라는 의미이기는 하지만

뜻이 조금 모호합니다. 


그래서 조금 더 자세히 들여다 보겠습니다. 


우선 영영사전을 한번 뒤져봤습니다.


Intelligence is the ability to think, reason, and understand instead of doing things automatically or by instinct.

(번역 : Intelligence란 자동적으로 또는 반사적으로 

어떠한 행동을 하는 것이 아닌 생각하고

(논리적 근거를 바탕으로) 판단하고 이해하는 능력을 말한다.)


그래도 영영사전을 보니 

약간은 구체화 되었습니다.


즉 본능적으로 무엇을 하는 것은 지능이 아닙니다. 


예를 들어 

갓난 아이가 본능적으로

웃는 행위나 젖을 빠를 행위 또는 감으로 어떠한 행동을 하는 것

(시험 볼때 찍기 신공 같은 것들)은 지능이라고 할 수 없습니다. 


또한 로봇이 반복적으로 정해진 일을 계속 한다던지

사람이라도 생각하지 않고 

반복적 행동만 계속하는 것 처럼 

자동으로 어떠한 행동을 하는 것 또한 지능이라고 할 수 없습니다.

노동? 기계적인 움직임? 이라고 하는게 더 맞습니다.


지능이란, 

반드시! 생각을 하고 

논리적 근거를 바탕으로

 어떠한 판단을 내리고 이해하는

작업이 있어야 합니다.


그럼 다시 인공지능으로 돌아와서

자시 정의를 내리면 


인간이 인위적으로 만든 어떤한 것 (하드웨어 또는 소프트웨어)

그리고 그 어떤 것이 생각을 하고

논리적 근거를 바탕으로 판단 또는 이해를 한다고 할 때

우리는 그 어떤 것을 AI, 인공지능이라고 할 수 있습니다. 


정의에서는 보이는 것 처럼 

인공지능 용어 자체가 매우 

포괄적인 의미를 가지고 있습니다.


그리고 실제로 인공지능은

포괄적인 의미로 사용되고 있습니다. 


즉 머신러닝, 알파고, 딥러닝 등 모두 인공지능에 포함되는 것입니다. 

그래서 모든 제품에

쉽게 인공지능이라는 말을 이용 할 수 있는 것입니다.


그렇다면 머신러닝은 뭘까요? (갑작스럽지요?ㅋ)


자문자답을 해보면


인공지능은 머신러닝인가요? 정답은 아니요 입니다.

그럼 머신러닝은 인공지능인가요? 이 질문은 예 입니다. 


즉 머신러닝은 인공지능의 한 부분 기술을 말하는 용어입니다.


머신러닝 직독직해 해보면 기계학습 입니다.


여기서 기계는 컴퓨터 (전산 처리 장치) 입니다. 

즉 컴퓨터를 학습시키는 것을 

우리는 머신러닝이라고 합니다. 


사람이 사용하는 언어는 너무 많죠?

한국어, 영어, 일본어, 중국어.... 등등 

그리고 각 언어마다 a, b, c, d... ㄱ,ㄴ,ㄷ,ㄹ 처럼 

자음과 모음도 너무 다양하게 존재합니다.


하지만 컴퓨터 언어는 무엇일까요? 


컴퓨터 생각보다 단순하게 0과 1 밖에 알지 못합니다. 

스위치(트렌지스터)로 생각하면 OFF와 ON 만 알 수 있는 거죠. 

(2진수라고 합니다)


예를 들면 아래와 같습니다.

apple (영어) 

= 10000011010000101000010010011000101

(컴퓨터어, 아스키코드[Ascii Code]라고도 합니다.)


이처럼 기계를 학습시키려면

사람의 언어를 

또는 사람이 5감을 통해 얻을 수 있는 정보를

컴퓨터가 이해하는 언어로 바꿔 줘야합니다.


이러한 일을 하는 것을 우리는 알고리즘이라고 합니다.

*알고리즘 : 어떠한 문제를 해결하기 위한

일련의 절차를 공식화한 형태로 표현한 것 (특정 연산 수행)


즉 1000001 이라는 숫자를 a로 바꿔주는

 연산을 우리는 하나의 알고리즘이라고 부를 수 있습니다.


정리하면 


사람이 이해하는 것을 컴퓨터가 이해하도록 하는

알고리즘을 개발하는 것이 바로 머신러닝이 되겠습니다.


(2부에서 계속)


본업 중에 포스팅하려니 쉽지 않네요ㅠ

짧게 여러번 포스팅한다고 너무 화내지마세요, 

길게 하려니 시간이 너무 오래 걸리네요^^/













[1강] 어서와 인공지능과 머신러닝은 처음이지?


라는 주제로 내용 정리하고 10월 말에 올리겠습니다.

+ Recent posts