본문 바로가기

인공지능

[인공지능] 인공지능, 머신러닝, 딥러닝에 대하여(역사)

인공지능이란

 

인공지능의 등장

 인공지능이란 용어을 처음 사용한 존 맥카시(John McCarthy)는 인공지능을 'Intelligence한 기계를 만드는 과학, 공학'이라고 정의하였다. 순수하게 그 의미를 해석해보자면 인간의 지능과 유사한 능력을 가지는 기계를 만들어 내는 것이 초기 인공지능의 개념이었다고 할 수 있겠다. 그러나 여기서 인간의 지능과 유사한 능력을 가지는 즉, Intelligence한 기계를 어떻게 정의할 것인지 그 기준이 없기 때문에 모호해 질 수 밖에 없다.

 이러한 상황 속에서 앨런 튜링은 인공지능의 기준선을 정하는 것보다는, 인간이 보기에 인간에 준하는 지능이 있는지에 초점을 두기로 하였다. 즉 앨런 튜링은 "마음과 지능, 인간다움의 본질에 대한 논의는 그만두고, 일단 이 시험을 통과하는 모든 것은 확실히 '지적이다' 라고 합의한 다음에, 이 시험을 통과하는 기계를 어떻게 만들 수 있을지로 논의의 방향을 돌리는 것이 훨씬 발전적이지 않느냐" 고 발언했다.

 

 그렇게 튜링이 제안한 시험이 튜링 테스트, 우리가 알고 있는 '이미테이션 게임'이다. 튜링 테스트는 사람 질문자와 사람 응답자, 컴퓨터 응답자로 구성된 테스트로 서로 컴퓨터의 키보드로만 대화하며 사람 질문자가 어느 쪽이 컴퓨터 응답자인지 판별해내는 것이다.이때 사람 질문자가 컴퓨터와 사람을 구분하지 못하면 이 기계는 튜링 테스트를 통과한 것으로,  컴퓨터가 인간처럼 대화를 할 수 있다면 그 컴퓨터는 인간처럼 사고할 수 있다고 본다는 것이다.

 

 

머신러닝

 머신러닝은 인공지능과 달리 명확한 정의가 존재한다. 1959년 머신러닝이라는 용어를 만든 아서 사무엘이 정의한 머신러닝이 있고, 최근에는 1998년 톰 미첼이 정의한 머신러닝이 더 많이 쓰이고 있다. 아서 사무엘은 머신 러닝을 "컴퓨터가 명시적으로 프로그램 되지 않아도 학습할 수 있도록 하는 연구분야"라고 정의 했다. 이 말의 뜻을 해석하자면 기존의 컴퓨터 프로그램은 입력과 조건이 주어지면 동작했다면 머신러닝에서는 입력과 동작 결과를 통해 조건을 찾도록 기계가 학습한다는 것이다.

 

 간단하게 예를 들어보자면 일반 프로그램에서 2라는 숫자가 입력(A) 됐을때, x3을 하는 조건(B)이 있어 6이라는 결과를 출력하는 동작(X)을 한다. 그러나 머신러닝에서는 2라는 숫자가 입력(A) 되고, 6이라는 결과(X)를 알고 있어 2를 6으로 만드는 x3이라는 조건(B)을 찾아내는 것이다. 여기서 찾아낼 수 있는 하나의 포인트는 2를 6으로 만드는 조건은 x3 뿐만이 아니라 +4라는 조건(B_)가 존재할 수도 있다는 것이다. 그렇기 때문에 머신러닝에서는 컴퓨터가 조건을 추론해 낼 수 있도록 일정량 이상의 데이터를 필요로 한다. 이때 데이터의 양이 얼마 이상일 때 조건을 추론해내는가를 머신러닝으로 정의하는가에 대해서는 사람마다 다르다. 이에 대해서는 나중에 따로 정리해 볼 필요가 있겠다.

 

 다음으로 톰 미첼은 머신러닝을 "만약 어떤 작업 T에 경험 E를 통해 성능 측정 방법인 P로 측정했을 때 성능이 향상된다면 이런 컴퓨터 프로그램은 '학습을 한다'라고 말한다"고 정의하였다. 예를 들어, 사람의 손글씨를 인식하는 경우, 작업 T는 문자 인식, 성능 P는 인식의 정확도 경험 E는 정답이 표시된 문자의 입력이 될 것이며, 정답이 표시된 문자 입력을 통해 학습하여 성능 P가 향상 된다면 이 프로그램은 학습된다고 할 수 있으므로 머신러닝이라고 할 수 있는것이다.

 

머신러닝에는 크게 3가지 종류가 있는데 이에 대해서는 이전 글에 다룬 내용이 있으므로 확인하면 되겠다.

https://bigsong.tistory.com/28?category=937913 

 

[머신러닝] 머신러닝의 3가지 학습 방법

머신러닝의 3가지 학습 방법 머신러닝의 학습 방법은 학습 형태에 따라 '지도학습(Supervised Learning)', '비지도학습(Unsupervised Learning)', '강화학습(Reinforcement Learning)' 3가지로 나눌 수 있다. 지..

bigsong.tistory.com

 

딥러닝

 딥러닝의 시작은 인간의 뇌 신경망 모방에서 시작되었다. 머신러닝이 데이터를 통해 학습을 하는 방법이었다면 딥러닝에서는 인간의 뇌가 가지는 생물학적 특성 중 뉴런의 연결구조 신경망을 모방해 만든 인공신경망을 이용하여 학습을 수행한다. 인간의 뇌는 1000억 개가 넘는 뉴런이 100조개 이상의 시냅스를 통해 병렬적으로 연결되어 있다. 각각의 뉴런은 수상돌기를 통해 다른 뉴런에서 입력 신호를 받아서 축색돌기를 통해 다른 뉴런으로 신호를 보낸다. 시냅스는 이런 뉴런과 뉴런을 연결하는 역할을 하며 일정 용량 이상의 입력 신호가 들어오면 출력신호를 전달한다. 인공신경망은 이런 뉴런을 수학적으로 모델링한 것이다. 이전 뉴런에서 일정량 이상의 입력 신호가 넘어오면 다음 뉴런으로 출력신호를 전달하는 것처럼 인공신공망 뉴런은 여러 입력값을 받아서 일정 수준이 넘어서게 되면 활성화 되어 출력값을 전달하는 것이다.

 

퍼셉트론(Perceptron)

 딥러닝의 핵심인 인공신경망을 이해하기 위해선 먼저 퍼셉트론에 대한 이해가 필요하다. 퍼셉트론은 프랑크 로젠블라트가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다. 뉴런이 가지돌기에서 신호를 받아들이고, 이 신호가 일정치 이상의 크기를 가지면 축삭돌기를 통해서 신호를 전달하듯이 퍼셉트론 또한 이와 유사한 동작 방식을 통해 동작한다.

 위의 그림에서처럼 x라는 입력이 들어오면 w(가중치)를 곱하고 이를 모두 더한 값이 임계치(threshold)를 넘으면 종착지에 있는 인공 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우에는 0을 출력합니다. 이러한 함수를 계단 함수(Step function)라고 하며, 임계치를 넘으면 다음 뉴런으로 값을 전달하는 방식이다. 각각의 입력값에 존재하는 가중치는 값이 크면 클수록 해당 입력 값이 중요하다는 것을 의미하게 된다. 많은 인공 신경망 자료에서 편의상 편향 b가 그림이나 수식에서 생략되서 표현되기도 하지만 실제로는 편향 b 또한 딥 러닝이 최적의 값을 찾아야 할 변수 중 하나이다. 이렇게 뉴런에서 출력값을 변경시키는 함수를 활성화 함수(Activation Function)라고 한다. 초기 인공 신경망 모델인 퍼셉트론은 활성화 함수로 계단 함수를 사용하였지만, 그 뒤에 등장한 여러가지 발전된 신경망들은 계단 함수 외에도 여러 다양한 활성화 함수를 사용하기 시작했다.

 

단층 퍼셉트론, 다층 퍼셉트론

 위에서 말한 페셉트론은 단층 퍼셉트론으로 값을 보내는 단계와 값을 받아서 출력하는 두 단계로만 이루어져 있다. 이러한 단층 퍼셉트론은 치명적인 한계가 존재하는데, 단순한 선형 분류의 문제는 풀 수 있지만, 복잡한 문제를 해결할 수 없다는 것이다. 단층 퍼셉트론의 한계를 가장 잘 보여주는 예시로 XOR연산이 있다. 

 MIT AI랩 창시자인 마빈 민스키 박사는 1969년 단순 퍼셉트론으론 XOR연산을 해결할 수 없음을 증명하였다. 그리고 이를 입력과 출력이 2개 이상이 되도록 레이어를 쌓는 다층 퍼셉트론(MultiLayer Perceptron)으로 신경망을 구성하면 문제는 해결할 수 있으나, 이러한 MLP를 학습시키는 방법이 존재하지 않는다고 단정지어 버렸다. 이로인해 인공신경망과 관련된 기술은 발전되지 않고 정체되기 시작하였다.

 1974년, 폴 워보스는 이러한 MLP를 학습시킬 수 있는 획기적인 방법인 오차 역전법을 제시하지만 MLP가 학습하기 위한 데이터의 양도 부족하고 당시의 하드웨어 기술로는 데이터를 저장하기 위한 공간 또한 부족했다. 그리고 결정적으로 예측 결과와 정답 사이의 오차를 후방으로 다시 전달해 이전 레이어의 가중치를 업데이트 하는 오차 역전법에 필요한 엄청난 양의 연산을 처리할 수 없었다. 그렇게 인공신경망은 암흑기를 맞이하였다.

 

딥러닝의 등장 - 인공신경망의 부활

 1957년 처음 인공신경망과 퍼셉트론의 개념이 등장한 이후, 이는 2000년대에 들어 와서야 한계를 극복할 방법이 등장하게 되었다. 캐나다 토론토 대학의 제프리 힌튼 교수는 2006년도에 깊은 층수의 신경망 학습시 사전 학습을 통해 학습함으로써 기울기 소실 문제를 해결할 수 있음을 밝혔다. 이어 2012년에는 새로운 데이터를 잘 처리하지 못하는 문제를 학습 도중에 고의로 데이터를 누락시키는 드롭아웃을 통해 해결할 수 있음을 밝혔다. 그리고 2012년 이미지 인식 경진 대회인 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)에서 알렉스넷(AlexNet)이 등장하면서 다시 한번 인공 신경망이 각광 받게 된다.

 

 알렉스 넷은 알렉스 크리제프스키가 일리아 수프케버와 당시 박사 고문이었던 제프리 힌튼과 공동으로 설계한 CNN(convolutional neural network) 아키텍처의 이름으로 이전 ILSVRC 대회에서 우승을 차지한 알고리즘들과 달리 그 레이어를 여러개 쌓으면서(deep architecture) 분류 오류율을 10%나 낮추면서 우승을 차지하게 되었다. CNN 아키텍처의 특징인 레이어를 여러 곂으로 쌓는 깊은 구조가 등장하면서 딥러닝이라는 용어가 등장하게 되었다. 알렉스 넷이 등장한 이후 ILSVRC 대회에서는 딥러닝을 기반으로한 알고리즘이 대거 등장하게 되었고 2015년부터는 보통 사람의 분류 정확도보다 높은 알고리즘이 등장하였다. 그렇게 ILSVRC 대회는 알고리즘의 정확도가 비약적으로 상승하면서 더 이상의 대회 진행은 무의미하다고 판단하여 2017년을 기점으로 종료되었다.

인공지능의 부흥

 2010년대에 들어 인공지능이 다시 유행한데에는 알렉스넷과 같은 딥러닝 알고리즘을 통해 기존 신경망의 한계를 극복했다는 점도 있지만, 이런 인공지능 알고리즘이 학습하는데 필요한 충분한 양의 데이터가 축적 되어 왔다는 점과 이를 저장하고 처리할 수 있을만큼 하드웨어가 발전했다는 점도 있다. 특히 딥러닝 알고리즘이 학습을 위해 필요한 연산을 GPU 기반의 병렬 처리 방식을 이용함으로써 연산 속도를 획기적으로 단축했다는 점을 빼놓을 순 없겠다.

 

 알렉스넷이 등장한 2012년도에 일어난 또 다른 획시적인 사례는 구글에서 앤드류 응 교수의 주도하에 유튜브 동영상 캡쳐 화면 1000만개를 학습하여 고양이, 인간 등을 인식 시키는데 성공하였다. 기존의 인공지능 알고리즘들이 지도학습을 통해 이미지 인식 시켰으나, 이번 구글 프로젝트는 비지도학습을 통해 이미지를 인식하고 분류하는데 성공해낸 것으로 비지도 학습의 가능성을 확인시켜 주었다. 

 

인공지능의 현재와 미래

 과거 인공지능이라 하면은 인공지능 아래에 머신러닝이 있고 그 아래에 딥러닝이 포함되는 개념이었다. 그러나 현재에는 인공지능을 적용시킬 수 있는 분야가 넒어졌고, 또한 이를 뒷받침해줄 수 있는 데이터들이 풍부하기 때문에 사회 여러 곳에서 여러 형태로 사용되어지고 있다. 컴퓨터 비전, 자연어 처리 등 다양한 인공지능의 영역의 연구가 이루어지고 있고 기업에서는 데이터 분석가 혹은 데이터 사이언티스트라 불리는 사람들을 채용하면서 독자적인 인공지능 모델을 사업에 적용시키고 있는 추세이다. 그러나 기술이 발전한 만큼 이를 범죄에 악용하는 사례도 늘고 있다. 딥페이크나 TTS 같은 기술은 특히 범죄에 악용될 우려가 많다. 기술의 발전만큼 인식의 발전 또한 따라와야할 필요가 있다.

 

 

 

 

 

참고

https://brunch.co.kr/@gdhan/10

https://namu.wiki/w/%ED%8A%9C%EB%A7%81%20%ED%85%8C%EC%8A%A4%ED%8A%B8

https://www.zendesk.kr/blog/machine-learning-and-deep-learning/

https://wikidocs.net/24958

 

 

※내용에 틀린 부분이나 의견은 댓글로 남겨주세요.