1.1 인공지능과 머신러닝 기초에 대하여
제 1 장 인공지능과 머신러닝 기초에 대하여
지난 수십 년 동안 연구자들은 인공 지능(Artificial Intelligence), 줄여서 AI로 알려진 분야를 통해 인간의 두뇌 활동을 시뮬레이션 하려고 노력해 왔습니다. 1956년, 인공 지능에 관한 다트머스의 여름 연구 프로젝트에서 한 그룹의 사람들이 만났습니다. 이 행사는 오늘날 우리가 알고 있는 인공지능에 대한 첫 번째 그룹 토론으로 널리 받아들여지고 있습니다. 따라서, 연구원들은 학습 프로세스의 많은 측면이 정확하게 기술되었고, 머신에 의해 자동화하고 복제될 수 있음을 증명하려고 했습니다.
머신러닝(ML, Mechine Learning) 및 딥러닝(DL, Deep Learning)과 같은 다른 많은 용어가 이 분야에서 나타났습니다. 머신러닝과 딥러닝은 인공지능의 하위 영역도 수십 년 동안 진화해 왔습니다. 그러나 정보화 사회의 자연스러운 발전과 최근 빅데이터 플랫폼의 등장으로 인공지능 애플리케이션은 훨씬 더 강력하고 활용도가 높은 것으로 다시 태어났습니다. 이제 시뮬레이션 및 구현을 위한 더 많은 계산 리소스를 갖게 되었기 때문에 강력합니다.
또한 이제 정보는 어디에나 있기 때문에 적용 가능합니다. 더 최근에는 클라우드 서비스 제공업체가 클라우드에 인공지능을 도입했습니다. 만일 중소기업이 자체 데이터 센터를 유지 관리하는 데 너무 많은 비용이 드는 것을 고려해본다면, 이러한 클라우드 서비스의 인공지능은 모든 규모의 기업이 운영 비용을 절감하거나 인공지능 애플리케이션을 표본화(Sampling) 하도록 허용하는 데 도움이 됩니다.
이를 통해 이 글의 목표인 인공지능, 머신러닝 및 딥러닝 이라는 용어의 의미를 설명하고, 머신러닝 파이프라인의 모든 뉘앙스를 이해할 수 있습니다. 이러한 용어에 대한 혼동을 피하고 ML 파이프라인이 정확히 무엇인지 알면 서비스를 적절하게 선택하고 애플리케이션을 설계하고 개발할 수 있습니다.
1.1 인공지능, 머신러닝 및 딥러닝은 어떠한 차이가 있는가?
인공지능은 인간 지능을 시뮬레이션하여 문제를 해결할 시스템과 머신을 만드는 다양한 방법을 연구하는 광범위한 분야입니다. 단순한 규칙 기반 엔진부터 복잡한 자가 학습 시스템에 이르기까지 다양한 수준의 정교함을 통해 이러한 프로그램과 머신을 만들 수 있습니다. 인공지능은 다음 하위 영역을 포함하지만 이에 제한되지 않습니다.
· 로보틱스 · 자연어 처리 · 규칙 기반 시스템 · 머신러닝
제가 지금 특별히 관심을 갖고 있는 분야는 머신러닝(ML) 입니다. 따라서, 머신러닝은 명시적으로 프로그래밍하지 않고도 경험을 통해 학습할 수 있는 시스템과 기계를 만드는 것을 목표로 하는 인공지능의 하위 영역입니다. 그 이름에서 알 수 있듯이, 시스템은 실행 환경을 관찰하고 사람의 개입 없이 스스로 학습하고 적응할 수 있습니다. [그림1]은 인공지능, 머신러닝 및 딥러닝의 영역이 어떠한 차이가 나는지 잘 보여주는 그림입니다.
또한, 머신러닝 시스템 이면의 알고리즘은 일반적으로 특정 문제를 해결하기 위해 다양한 접근 방식을 시도한 후, 하이퍼파라미터(Hyperparameter) 와 같은 사용 가능한 데이터와 조건 및 피드백에서 지식을 추출하고 개선합니다. 현재 다양한 유형의 머신러닝 알고리즘이 있습니다. 예를 들어, 결정 트리 기반, 확률 기반 및 신경망 알고리즘으로 크게 나열할 수 있습니다. 이러한 각 클래스에는 수십 개의 특정 알고리즘이 있을 수 있습니다. 자세한 알고리즘은 앞으로 다룰 것입니다.
한편, 딥러닝은 특정 문제를 해결하기 위해 여러 계층을 연결하는 알고리즘을 제안하는 것을 목표로 하는 머신러닝의 하위 집합입니다. 그런 다음 최적의 솔루션을 찾을 때까지 지식을 계층별로 전달합니다. 딥러닝 알고리즘의 가장 일반적인 유형은 심층 신경망(Deep Neural Network) 입니다.
참고로 현재 딥러닝은 머신러닝 분야에서 매우 뜨거운 주제입니다. 기계 번역, 이미지 캡션 및 컴퓨터 비전을 위한 최신 알고리즘의 대부분은 지난 몇 년 동안 딥러닝의 일부이며 계속해서 다양한 분야에서 적용되고 있습니다. 이제 인공지능 유형에 대한 개요를 살펴보았으므로 머신러닝을 분류할 수 있는 몇 가지 방법을 살펴보겠습니다.