인공 지능, 머신러닝과 딥러닝 쉽게 설명(어디가서 아는 척 가능)
인공 지능(Artificial Intelligence, AI)은 무엇인가?
인공 지능, 즉 머신러닝은 프로그래머가 명시적으로 프로그램되지 않고 경험으로부터 자동적으로 배우고 향상시킬 수 있는 능력을 시스템에 제공하는 인공지능(AI)의 응용 기술입니다.
기계학습은 데이터에 접근해 스스로 학습할 수 있는 컴퓨터 프로그램의 개발에 초점을 맞춥니다.
학습 과정은 자료의 패턴을 찾고 우리가 제공하는 예제를 바탕으로 미래에 더 나은 결정을 내리기 위해 예제, 직접 경험 또는 지시와 같은 관찰이나 데이터로 시작합니다.
주된 목적은 컴퓨터가 인간의 개입이나 도움 없이 자동으로 학습할 수 있도록 하고 그에 따라 어떠한 조치를 취하는 것입니다.
인공 지능, 머신러닝 그리고 딥러닝 차이
인공 지능은 추상적인 단어입니다. 즉 기계 혹은 컴퓨터가 인간처럼 사고할 수 있는 것을 말합니다.
기계나 컴퓨터는 어떠한 알고리즘 가령, 곱하기라고 한다면 Y=변수*X 라는 것이 프로그래밍이 되어 있는 상태에서 우리가 X 값을 주었을 때 Y라는 결과를 도출할 수 있었습니다.
이게 일반적인 기계 혹은 컴퓨터의 모습이었습니다.
그러나 1956년에 컴퓨터 과학자들은 인간의 지능과 같이 임의로 프로그래밍이 되어 있지 않은 상태에서 스스로 위와 같은 함수를 만들고 결과를 도출할 수 있는 시스템을 연구하게 됩니다.
그리고 이 연구를 시작으로 머신러닝이라는 용어가 발생되었습니다. 머신러닝은 추상화 된 인공 지능에 구체적으로 알고리즘을 구성하여 학습시키는 것을 말합니다.
그리고 머신러닝에서 시계열 데이터(위와 같은 곱하기 함수) 등에 대한 처리를 좀 더 분류해놓은 것이 딥러닝이라고 말할 수 있습니다.
다시 말해 위와 같이 곱하기 함수(Y = 변수 * X)를 인간이 만들지 않고, 무수히 많은 Input, Ouput을 주었을 때 컴퓨터가 스스로 함수를 만들어내는 것이 딥러닝의 시작입니다.
대부분 우리가 인공지능, 머신러닝이라고 말하는 것들은 딥러닝을 지칭하는 것으로 이해하셔도 됩니다.
머신러닝의 종류
머신러닝은 크게 슈퍼바이즈드 러닝(Supervised learning)과 언슈퍼바이즈드(Unsupervised learning) 그리고 강화학습(Reinforcement learning) 으로 분류됩니다.
슈퍼바이즈드 러닝
감독된 기계 학습 알고리즘은 라벨로 표시된 예를 사용하여 미래 사건을 예측하는 새로운 데이터에 과거 학습한 내용을 적용할 수 있습니다.
즉 무수히 많은 데이터 집합 분석을 시작해서 학습 알고리즘은 출력 값에 대한 예측을 하는 유추된 함수를 생성합니다.
시스템은 충분한 교육을 받은 후에 새로운 입력을 받을 수 있습니다. 학습 알고리즘은 또한 출력을 올바른 의도된 출력과 비교하고 모형을 적절히 수정하기 위해 오류를 찾을 수 있습니다.
예를 들어 개와 고양이 사진들을 무수히 많이 주고 테스트한 후(개 사진이 개라는 것을 알고, 고양이 사진이 고양이라는 것을 알 때), 어떤 동물의 사진을 다시 인풋 값으로 넣었을 때 개나 고양이를 찾는 시스템을 말합니다.
언슈퍼바이즈드 러닝
이와는 대조적으로, 훈련하는 데 사용되는 정보가 분류되지 않거나 라벨이 붙어 있지 않을 때, 감독되지 않는 기계 학습 알고리즘이 사용됩니다.
감독되지 않은 학습은 시스템이 표시되지 않은 데이터로부터 숨겨진 구조를 설명하는 기능을 유추할 수 있는 방법을 연구합니다.
이 시스템은 올바른 출력을 알아내지 못하지만, 데이터를 탐구하고, 표지되지 않은 데이터에서 숨겨진 구조를 설명하기 위해 데이터 세트에서 추론할 수 있습니다.
예를 들어 개와 고양이 사진들을 무수히 많이 주고 테스트한 후(개 사진이 개라는 것을 모르고, 고양이 사진이 고양이라는 것을 모를 때), 스스로 개와 고양이를 분류하는 것을 말합니다.
이 때문에 언슈퍼바이즈드 러닝은 슈퍼바이즈드 러닝보다 다소 정확성이 낮을 수 있습니다.
강화학습
강화기계학습 알고리즘은 행동을 만들어 환경과 상호 작용하고 오류나 보상을 발견하는 학습 방법입니다.
시행착오 검색과 지연보상은 보강학습의 가장 관련성 있는 특성입니다. 이 방법은 기계와 소프트웨어 에이전트가 성능을 극대화하기 위해 특정 컨텍스트 내에서 자동으로 이상적인 동작을 결정할 수 있도록 합니다.
에이전트가 어떤 조치가 최선인지 알기 위해서는 간단한 보상 피드백이 필요하다. 이를 보강 신호라고 합니다.
가장 좋은 예시는 알파고입니다. 바둑 자체 룰은 모르지만, 무수히 많은 시행착오를 거쳐 바둑의 룰을 이해하고 가장 좋은 수를 두게 만드는 것이죠.
결론
이처럼 머신러닝을 통해 대량의 데이터를 분석할 수 있습니다. 일반적으로 수익성 있는 기회나 위험한 위험을 식별하기 위해 더 빠르고 정확한 결과를 제공합니다.
그러나 이를 적절하게 훈련하기 위해서는 많은 시간과 자원이 필요합니다. 기계 학습과 인공지능, 인지 기술을 결합하면 대량의 정보를 처리하는데 훨씬 더 효과적이겠죠.
알파고에 들어간 CPU: 1,202개 / GPU: 176개라는 것을 보면 더 잘 이해하실 수 있으실 겁니다. CPU나 GPU가 더 적었다면 아마 시간 초과로 이세돌 9단이 승리했을 겁니다^^