1956년 미국 뉴 햄프셔 주에 있는 다트머스 대학에서 개최된 다트머스 회의에서 'Artificial Intelligence' (인공지능)이라는 용어가 처음 제창되었습니다. 그 회의의 멤버였던 존 매커시가 제안했던 용어입니다.

 

 

존 매커시

 

매커시는 '인공지능의 아버지'라고 불리는 컴퓨터 과학자입니다. 그 밖에 인공지능이란 용어는 아니지만, 동일한 개념은 1947년 '컴퓨터 과학의 아버지'라고 불리는 앨런 튜링에 의해 제안 되었습니다.

 


 

※ 오늘은 'AI라는 이름을 지은 사람​'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

머신러닝은 학습방법에 따라 크게 3가지 종류로 나뉠수 있습니다.

 

사람이 입력과 출력을 모두 제공하는 지도학습(Supervised Learning), 입력만 제공하는 비지도학습(Unsupervised Learning), 어떤 환경에서 특정목표를 달성하기 위해서 스스로 학습하는 강화학습(Reinforcement Learning)입니다.

 

 

 

 

현시점에서 활용빈도로 보면 지도학습이 가장 많고, 그 다음이 비지도학습, 마지막은 강화학습이 되겠습니다.

 


 

 

1) 지도학습 (Supervised Learning)

 

- 지도학습은 가장 많이 활용되는 머신러닝의 종류로 스팸메일 필터링, OCR 문자 인식 등이 이에 해당됩니다. 지도학습은 머신러닝에 입,출력을 모두 제공하여 학습하게 하는 거승로, 일종의 최적 (Optimization) 문제로도 생각을 할 수 있습니다. 이는 지도학습 알고리즘이 주어진 입력값을 분석해 출력값을 만들어내기 위한 최적의 모델을 만들기 때문입니다. 예를 들어, 고양이의 이미지를 구분할 수 있는 머신러닝 프로그램을 개발한다고 가정을 합니다. 지도학습은 입력과 출력을 모두 제공해야 하므로 고양이 사진과 함께 고양이라는 것을 알려주어야 합니다. 고양이가 있는 사진에 '고양이'라는 출력 결과도 같이 제공해야 합니다.

 

따라서 지도학습에서는 하나의 데이터는 입력과 출력이 같이 묶여있는 튜플(Tuple)형태로 이루어집니다.

 

 

 

2) 비지도학습 (Unsupervised Learning)

 

- 위에서 설명한 지도학습이 입력을 분석해 출력을 만들어내는 최적화 문제라면 비지도 학습은 입력 데이터의 구조를 파악하거나 관계를 분석하는 방법이라고 할 수 있습니다. 비지도 학습은 '지식 발견 (Knowledge Discovery)'라고도 하는데, 이는 학습결과로 생각하지 못한 지식을 발견하거나 입력 데이터 간의 그룹 또는 특성 들을 발견할 수 있어서입니다.

지도학습과 구분되는 또 하나의 특징은 학습결과에 대한 평가가 힘들다는 점이 있습니다. 이는 학습결과가 명확한 목적, 즉 출력이 없어서 평가기준을 잡을 수 없기 때문입니다. 지도학습에서 데이터를 제공할 때 하나의 데이터마다 입력과 출력이 튜플로 제공되지만, 비지도 학습에서는 출력 없이 입력만 제공됩니다.

 

 

앞의 지도학습에서는 고양이 사진과 이름이 주어졌지만, 다음 그림처럼 비지도학습에서는 이름 없이 고양이 사진만으로 학습이 이루어집니다.

 


 

※ 오늘은 '머신러닝의 종류'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

 

머신러닝에 대한 개념이나 각종 성공사례를 처음 접하면 머신러닝이 마치 천하의 보검처럼 느껴져 어떠한 문제라도 머신러닝으로 해결할 수 있을 것 같은 느낌을 받습니다. 그리고 예제로 제공되는 코드들을 실행해보면 그리 길지 않은 코드로 신기하게 그림에서 문자를 인식하고 아이리스 꽃의 종류를 분별하는 등, 기존 프로그래밍 방법으로는 막막한 것들을 너무도 쉽게 해내 놀랍기 그지없습니다.

하지만 머신러닝은 한 번 휘두르면 모든 적을 제압할 수 있는 천하의 보검이 아니라는 것을 분명히 알고, 역시 예제는 예제라는 만고의 진리를 깨닫게 되는 데는 그리 오랜 시간이 걸리지 않을 것입니다. 이러한 결과는 머신러닝에 사용한 데이터가 잘못되었거나 엉뚱한 알고리즘을 적용하였거나 머신러닝에 적합하지 않은 문제 때문에 벌어졌을 가능성이 큽니다.

머신러닝을 제대로 사용하려면 머신러닝의 장단점을 파악해 해결하려는 문제가 머신러닝에 적합한 것인지, 적합하지 않은 것이라면 어떻게 문제를 재정의해야 하는지, 어떤 데이터를 사용해야 하는지 등을 고민해봐야 할 것입니다.

 

 

 


 

 

 

※ 머신러닝의 장점

1) 학습을 위해 지식 표현이 필요 없습니다. 컴퓨터가 지식을 이해하게 하기 위한 표현은 어려운 문제입니다.

2) 충분한 데이터와 적합한 알고리즘을 사용한다면 사람이 만든 모델보다 좋은 결과를 보여줄 수 있습니다.

3) 고도의 수학적 지식이나 프로그래밍 능력을 요구하지 않습니다. 기본적인 지식과 능력으로도 충분히 머신러닝을 이용할 수 있습니다.

4) 자동화가 가능합니다. 프로그램으로 머신러닝을 학습시키고 최적의 파라미터를 찾아 그 결과에 대한 평가 등을 자동화하여 진행할 수 있습니다.

5) 저렴하고 유연합니다. 데이터를 제외한 나머지 과정은 자동화가 가능하므로 저렴하게 실행할 수 있습니다.

6) 프로그램을 이용해 자신이 원하는 대로 사용할 수 있습니다.

 

 

※ 머신러닝의 단점

1) 데이터 준비에 많은 노력이 들어갑니다. 지도학습(Supervised Learning)의 경우 모든 개별 데이터에 결과치를 만들어 주어야 합니다.

2)오류 발생이 쉽습니다(Error Prone). 일반적으로 정확도가 높은 모델을 만들기가 어렵습니다.

3) 생성된 모델이 블랙박스(Black Box)이기 때문에 이를 해석하기 어렵습니다. 정확도를 높이려면 모델을 수정하거나 개선할 수 있어야 하는데, 대부분의 머신러닝 알고리즘은 학습결과로 생성된 모델을 이해하기 어렵고 모델 자체를 개선할 수 없습니다.

4) 과적합(Overfitting) 문제가 종종 발생합니다. 주어진 데이터에 너무 최적화되어 학습에 사용된 데이터는 높은 예측력(Predictive Power)을 보여주지만, 그렇지 않은 데이터에는 좋지 않은 예측력을 보여줍니다.

 


 

※ 오늘은 '머신러닝의 장.단점'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

 

#인공지능 #컴퓨터공학 #AI #머신러닝 #Machinelearning #머신러닝의장단점 #데이터사이언스 #Datascience

 

 

 

머신러닝(Machine Learning)은 우리의 통념보다 오래된 기술이고, 이미 우리가 사용하는 많은 서비스와 상품에 직,간접적으로 활용되고 있습니다. 매일 쏟아지는 스팸메일로부터 우리를 보호하는 스팸메일 필터링 기술, 전자상거래 사이트에서 적합한 물건을 추천해주는 서비스, 애플의 시리와 같이 사람의 음성을 듣고 이를 인식하는 서비스 등 우리 곁에는 많은 서비스가 자리를 잡고 있습니다.

 

 


 

 

 

"머신러닝은 인공지능의 패턴인식과 계산학습 이론에서 발전한 컴퓨터과학의 한 분야다. 머신러닝은 데이터로부터 학습하고, 예측할 수 있는 알고리즘을 연구한다. 이러한 알고리즘은 정적으로 주어진 프로그램이 아닌 입력된 데이터로부터 모델을 만들어 예측이나 결정을 내린다" (wiki)

 

 

여기서 알 수 있듯이 머신러닝의 정의에서 제일 중요한 부분은 주어진 데이터를 이용해 스스로 학습하고 적합한 모델을 만든다는 점입니다. 일반적으로 컴퓨터로 어떤 일을 하게 하려면 사람이 컴퓨터에 소상히 Input(데이터는 무엇인지), Program(이런 데이터가 들어오면 어떻게 처리해야 하는지), Output(결과를 어떻게 표현해야 하는지) 등을 모두 정의해야 합니다.

컴퓨터가 이해할 수 있도록 정의하는 것이 프로그래머가 프로그램을 개발하는 과정이며 Input(입력), Program(프로그램), Output(출력)을 어떻게 처리해야 하는지 명령어를 이용해 코딩을 합니다. 컴퓨터는 지능이 없으므로 입력, 프로그램, 출력에 대한 상세한 내용을 논리적 모순 없이 프로그램으로 작성해야만 원하는 결과를 얻을 수 있습니다.

하지만 머신러닝에서는 전혀 다른 방법을 적용하고 있습니다. 사람은 입력과 출력만 제공하고, 프로그램은 머신러닝 스스로 만들게 하는 것입니다. 적절한 데이터가 준비되어 있다면 기존의 접근방법에서는 프로그램을 작성하는 데 상당한 노력과 시간을 보내야 하지만, 머신러닝 접근방법에서는 이러한 수고가 필요가 없습니다. 원하는 결과를 머신러닝에 출력으로 지정하면 나머지 작업은 머신러닝에 의해 스스로 프로그램을 작성하기 때문에 사람은 충분한 양의 잘 정돈된 데이터와 머신러닝을 적용하는 데 필요한 컴퓨팅 파워만 제공해주면 됩니다.

 


 

 

기존 접근방법과 머신러닝 접근방법의 비교

 

다음은 머신러닝의 접근방법과 기존 접근방법을 보여주는 그림으로, 각 접근방법이 어떻게 다른지를 확실히 보여주고 있습니다.


 

머신러닝은 데이터에 기반을 두기 때문에 계산 통계(Computational Statistics)와 많은 연관성이 있습니다. 데이터로부터 학습한다는 것은 머신러닝의 관점에서 보면, 주어진 데이터를 이용해 확률을 계산하고 특정 데이터를 줬을 때 이미 과거의 데이터를 이용해 계산된 확률로 결과치를 만들기 때문입니다.

이러한 특성은 머신러닝에서 데이터가 얼마나 중요한지 강력하게 알수 있습니다. 아무리 좋은 머신러닝 알고리즘이라 하더라도 제공되는 데이터의 양이 적절하지 않거나 품질이 떨어진다면 결코 좋은 결과를 기대할 수 없습니다. 그 유명한 'Garbage in, Garbage Out' 원칙은 머신러닝에서도 당연히 적용됩니다.

 

데이터가 머신러닝 결과물에 막대한 영향을 미치기 때문에 머신러닝에서는 데이터를 탐색하고 정리하는 데이터 마이닝(Data Mining)이 아주 중요합니다. 데이터 마이닝을 통해 입력 데이터로 사용할 적합한 입력변수를 선택하고, 이 입력변수에 빠진 데이터를 보충하거나 이상치(Outlier)를 제거하고, 적절한 양의 데이터를 선택하는 과정이 사실상 머신러닝에서 제일 중요한 과정이어서 그 중요성은 아무리 강조해도 지나치지 않습니다.

 

 

 

 


 

※ 오늘은 '머신러닝이란 무엇인가?'에 대하여 알아보았습니다. 다음 번 포스트에는 머신러닝의 장단점 에 대하여 다루어 보겠습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

인공지능 #컴퓨터공학 #AI #머신러닝 #데이터사이언스 #데이터마이닝 #Machinelearning #Datamining #Datascience

보통 우리가 인공지능이란 단어를 듣게 되면 제일 먼저 떠오르는 것은 아마 흔히 핸드폰에서 쓰이는 Apple의 시리(Siri)나 Samsung의 빅스비(Bixby) 등의 인공지능 비서가 떠오를 것입니다. 인공지능은 인간의 학습능력과 추론 능력, 지각 능력, 자연언어의 이해 능력 등을 컴퓨터 프로그램으로 실현한 기술을 의미하고 있습니다.

위에 언급한 시리, 빅스비와 대화할 때 아이폰, 갤럭시의 인공지능은 자연언어 처리를 통해 우리가 사용하는 언어를 컴퓨터가 인식을 하게 됩니다. 여기서 자연 언어는 우리가 사용하는 언어를 뜻합니다. 그러면 컴퓨터는 우리가 사용하는 언어를 자연언어처리를 통해서 우리가 쓰는 언어를 인식하여 처리하게 됩니다. 시리 와 빅스비와 대화할 때처럼 음성을 인식하고 번역하고 정보를 처리하며, 마지막으로 음성을 모두 종합하여 분석 후에 사용자에게 대답을 주게 됩니다.

 


영국의 천재 앨런 튜링(Alan Turing)

 

그러면 서론에서 간단하게 인공지능에 대한 소개와 일상생활에서의 예를 들어보았습니다. 이제 컴퓨터가 인공지능을 갖추고 있는지 판별하는 실험인 앨런 튜링이 고안한 '튜링 테스트'에 대해서 다루어 보겠습니다. 영국의 수학자, 논리학자인 앨런 튜링을 소개하면 그는 세계 2차 대전 때 독일군의 에니그마라는 암호기를 해독하여 연합군을 승리를 이끌었습니다. 1950년에 튜링은 [계산 기계와 지성 / "Computing Machinery and Intelligence]이라는 제목으로 논문을 발표하였고, 이를 통해 컴퓨터가 사람처럼 생각할 수 있다는 의견을 제시하였습니다.

튜링은 컴퓨터와 대화를 나누어서 컴퓨터의 반응을 인간과 구별할 수 없다면 해당 컴퓨터가 사고(인식, 판단 능력 기준) 할 수 있는 것으로 간주하여야 한다고 주장하였습니다.

 

그리고 50년 후에는 보통 사람으로 구성된 질문자들이 5분 동안 대화를 하며 컴퓨터의 진짜 정체를 알아낼 확률이 70%가 넘지 않도록 프로그래밍하는 것이 가능할 것이라고 말하였습니다.

하지만 앨런 튜링은 이런 포괄적인 논리만 제시했을 뿐, 구체적인 실험 방법과 판별 기준은 언급하지 않았습니다. 그리하여 나중에 수대 과학자들이 그의 논리와 주장을 바탕으로 실험 방법을 고도화시켜 테스트화를 시키게 됩니다. 이 테스트는 앨런 튜링의 이름을 따 '튜링 테스트(Turing Test)'라고 불리게 됩니다.

튜링 테스트는 서로 보이지 않는 공간에서 질의자가 인간과 컴퓨터가 정해진 시간 안에서 서로 질문과 응답을 하며 대화를 하는 방식으로 이루어졌습니다.

컴퓨터가 전체 심판진 가운데 1/3(3분의 1) 이상을 속이면 그 컴퓨터는 사람의 사고를 기반한 인공지능을 가지고 있다고 인정을 받게 됩니다.


◎ 개발자의 관점으로 봤을 때는 많은 심사원이 인간이라고 믿게 하는 기계를 만드는 것이 목표이며, 심사원은 자유롭게 질문할 수 있으며 이야기나 음악 감상을 듣는 등의 의견을 요구할 수도 있습니다.

튜링 테스트

 

튜링 테스트

 

챗봇의 역사 타임라인


튜링 테스트와 관해서 대표적인 예로 2 가지 시스템이 알려져 있습니다. 1966년 발표된 '일라이저(ELIZA)'와 1972년 발표된 '패리(PARRY)입니다.

일라이자(Eliza)= 사람과 채팅하는 프로그램 (1966)

 

조셉 와이젠바움이 발표한 일라이저는 당시 컴퓨터의 성능이 높지 않다는 배경 때문에 할 수 있는 작업이 한정돼 있었습니다. 거기서 규칙 베이스의 답변을 기본으로 한 시스템을 만듭니다. 질문 내용을 단어로 분석해 기계가 이미 알고 있는 단어가 있으면 그에 대해 답을 내놓는데, 모르는 것에 대한 내용은 "그 질문은 중요합니까?"라고 하는 등 인간이 일상적으로 자주 받아치는 말을 던져 인간다운 모습을 보여주었습니다. 이는 심리요법 치료사의 응답을 참고하였다고 합니다.

일라이저와 패리는 튜링 테스트에 합격하지는 못했지만 각각 30%, 50% 미만의 판정자가 잘못 판단했고, 결국 가까운 미래에 테스트에 합격하는 기계가 등장할 것이라는 말이 꾸준히 나왔습니다. 튜링 테스트에 시험하는 것은 '인간다운 행동'이기 때문에 모든 질문에 정답을 내놓을 필요 없이(인간이라도 그게 가능하다고 단정할 수 없고, 정답이 없는 종류의 질문도 많음) 인간을 모방하는 기술과 화술이 중요합니다.

 


 

※ 위에 실험 기준과 사람이 가지고 있는 사고를 모두 통합해 보았을 때 사람이 유리한 테스트입니다. 하지만 2014년 6월 영국 왕립협회가 실시한 튜링 테스트에서 영국의 레딩대학교가 개발한 컴퓨터 프로그램 '유진 구스트만'이 처음으로 테스트를 통과하였습니다.

레딩대학교에서 발명한 컴퓨터 프로그램 유진 구스트만(Eugene Goostman)

 

유진 구스트만은 러시아의 블라디미르 베셀로프와 우크라이나의 유진 뎀첸코가 개발한 슈퍼컴퓨터 '유진(Eugene)으로서 '우크라이나에 사는 13세 소년'이라는 설정으로 튜링 테스트에 도전했습니다. 튜링 박사 사후 60주년인 2014년 영국 레딩 대학에서 개최된 '튜링 테스트 2014'에서 5분 동안 튜링 테스트가 진행되었고 33%의 판정자들이 기계라고 판단하지 못하여 첫 합격의 영예를 안았습니다.

반면에 '특이점(싱귤래리티)'을 제창한 레이 커즈와일을 비롯해 일부 전문가들은 이 합격에 이의를 제기했습니다. 그 이유로는 '우크라이나에 사는 13세 소년'이라는 설정이라 영어가 능숙하지 않다는 전제를 깔았고, 시험 기간 5분은 너무 짧으며 실제로 인터넷을 이용해 유진과 대화를 해봤더니 대화의 맥락을 따라오지 못했다 등의 이유를 들며 유진이 컴퓨터가 아니라 단순한 '챗봇'이라고 주장한 것입니다.


마지막으로 튜링 테스트에 대한 반론 의견을 설명한 포스트도 참조하시면 도움이 되실 것 같습니다.

 

 

[인공지능 기초] 중국어 방 / 튜링에 대한 반론

https://blog.naver.com/j767asde/221575226071


※ 인공지능을 연구하는 관점에서 보면 챗봇은 지성을 가지고 있다고까지는 할 수 없고, 이해할 수 없는 내용에 대한 질문을 받으면 얼버무리며 대답하는 식으로 인간답게 보이는 기법을 썼을 뿐이라는 의견을 자주 듣게 됩니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 해당 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

+ Recent posts