본문 바로가기
Machine-Learning/Basic

[ML] 인공지능(AI) 개요

by AteN 2019. 12. 5.

인공 지능의 역사 

인공 신경망은 2016년 3월 이세돌 9단과 인공지능 알파고(Alpha Go) 의 바둑 대결을 통해 매우 유명해졌지만, 사실 인공 신경망은 이전에도 계속 연구되던 분야이다.

인공 신경망은 1957년 코넬 항공 연구소의 Frank Rosenblatt가 패턴 인식을 위해 고안한 퍼셉트론 알고리즘(Perceptron Algorithm)을 시작으로 인공 신경망에 대한 기대가 매우 컸다. 하지만 1969년 Minskey 교수의 XOR 문제 제기로 인해 당시 인공지능의 한계를 드러냈다. 이를 해결하기 위해서 1974년 Paul Werbos는 역전파 (Backpropagation)를 제안했지만 이목을 끌지 못했다. 

시간이 흘러 현재 AI 거장 중 한명인 제프리 힌튼(Geoffrey Hinton)은 1986년 독자적으로 만든 역전파를 제안하였고 다시 인공 신경망이 주목 받기 시작했다. 하지만 이러한 업적에도 오래가지 않아 기울기 사라짐 (Gradient Vanishing)과 기존 데이터를 과하게 학습하여 생기는 과적합(Overfitting) 문제 그리고 큰 규모의 문제에서 발생하는 높은 계산 복잡도와 컴퓨터 성능의 한계 등으로 인해 90년대 후반 다시 암흑기를 맞이하게 된다. 

시간이 흘러 2006년 제프리 힌튼은 적절한 초깃값 설정을 위한 사전 훈련(Pre-training)과 깊은 네트워크를 통한 해결책을 제시하면서 딥러닝이 점점 발전하고 있다. 

 

이처럼 인공 신경망이 최근에 주목받게 된 3가지 이유는 학습을 위해서 빅데이터를 구할 수 있는 환경 조성되었고, GPU를 필두로한 컴퓨팅 파워 발전, 그리고 새로운 딥러닝 알고리즘 개발 등으로 최근에 더욱 주목을 받고 있다. 

 

인공 지능 (AI : Arificial Intelligence) 이란 ?

인공지능는 존 매카시(John McCarthy, 스탠퍼드 대학)부터 스튜어트 러셀(Stuart Russell) 등 까지 인공지능에 대한 학자들의 다양항 정의가 하고 있다. 매카시 경우 "지능적인 기계를 만드는 과학과 공학 기술"이라는 정의를 하고, 러셀의 경우 "기계가 환경을 구체적으로 인지하여 그 정보를 바탕으로 인간처럼 사고, 학습, 자기 개발을 등을 할 수 있는 능력" 이라고 정의하고 있다. 이처럼 인공지능는 인간의 학습 능력, 추론 능력 등을 컴퓨터를 통해 구현하는 것이라고 할 수 있다.

 

 

위의 그림은 인공지능을 인간의 학습 능력, 추론 능력 등을 컴퓨터를 통해 구현하는 포괄적인 개념이고, 데이터를 이용하여 명시적으로 정의되지 않는 패턴을 학습하여 문제를 해결 (미래 결과 를 예측)하는 머신러닝(= 기계 학습), 여러 층의 깊은 인공 신경망을 통하여 문제를 해결하는 심층학습(=딥러닝) 등으로 구분하고 있다.

여기서 데이터 마이닝이라는 개념과 혼돈이 올 수도 있는데, 데이터 마이닝은 데이터 간의 상관 관계나 속성을 찾는 것을 주 목적을 가지고 있다. 

딥러닝 ( = 심층 학습)의 머신러닝의 한 분야로서 신경망을 통하여 학습하는 알고리즘 집합을 나타내고 있다. 신경망은 인간의 뇌 세포 상호 작용을 모방하고 있으며,  뉴런 출력을 각각의 입력으로 받아 + 또는 - 가중치를 통해 전체의 합을 합하여 특정 임계치(threshold)를 넘으면 다음 뉴런으로 전달하는 원리를 이용하고 있다

 

머신러닝 (Machine Learning) 이란?

머신러닝은 인공지능의 두뇌 역할을 하는 기술로써 스스로 학습하여 지식을 만들어 내는 역할을 한다. 머신러닝의 개념을 정의하면 데이터를 이용하여 명시적으로 정의되지 않는 패턴을 학습하여 미래 결과 (값, 분포)를 예측는 것으로 이해 할 수 있다. 머신러닝이라는 개념이 나오기 이전의 프로그래밍은 구체적인 방법(명령)에 대한 작업을 수행하는 것이지만 머신러닝은 구체적인 방법에 대한 프로그래밍 없이 예제를 보여줌으로써 컴퓨터가 스스로 학습할 수 있게 하는 방법이다. 

예를 들어서, 만들고 싶은 목표(과일 주스)가 있고 만드는 방법(레시피)을 모르는 상황에서 해결 방법을 사람이 제시하는 것이 아니라 기계(컴퓨터)가 직접 시도하는 것을 반복 한 후 적합한 방법을 만들도록 하는 기술이라고 할 수 있다.

머신러닝 학습 방법 따른 분류

지도학습( Supervised Learning)

  • 정답의 데이터가 존재하는 상황에서 학습하는 알고리즘
  • 좀 더 엄밀하게 정의 하면, 입력데이터 x와 그에 대한 정답 레비을 y의 쌍(x,y)를 이용해서 학습하는 알고리즘
    • 기계에게 입력 데이터와 원하는 출력데이터를 제공하고 이 훈련 예제로 학습을 시켜 이전에 보지 못한 데이터에 대해 의미 있는 에측을 할 수 있게 하는 것을 목표
    • 딥러닝에서 지도 학습으로 방법론으로 주로 사용되는 구조는 CNN(Convolutional Neural Networks), RNN(Recurrent Neural Networks)이다

비지도 학습(Unsupervised Learning)

  • 정답 레이블 y 없이 입력데이터 x만을 이용해서 학습하는 알고리즘
  • 지도 학습의 목적이 어떤 값에 대한 예측을 수행하는 것이라면, 비지도 학습은 데이터의 숨겨진 특징(Hidden Feature)을 찾아내는 것에 목적이 있다
    • 기계에게 입력 데이터만 제공하고, 그 뒤 기계는 스스로 외부의 지도나 추가적인 입력 없이 주어진 입력 데이터에서 의미 있는 구조를 찾아내야 한다
    • 대표적인 비지도 학습의 방법론으로는 주성분 분석(PCA) 이 있고, 딥러닝에서는 오토인코더(Autoencoder)가 있다

강화 학습(Reinforcement Learning)

  • 앞의 알고리즘은 이미 주어진 정적인 상태에서 진행했다면, 강화 학습은 에이전트 (Agent)가 주어진 환경(State)에서 어떤 행동을 취하고, 이에 대한 보상(Reward)를 얻으면서 학습을 진행한다. 에이전트는 보상을 최대화 하도록 진행한다
    • 기계가 환경과 상호작용하는 에이전트처럼 행동한다. 기계는 원하는 작동을 헀을 때 보상을 받게 되고, 바람직하지 않은 행동을 할 경우에는 패널티가 주어진다. 기계는 보상을 최대화하는 행동을 학습하려 한다
    • 강화 학습은 동적인 상태에서 데이터를 수집하는 과정까지 학습과정에 포함되어 있는 알고리즘이다
    • Q-Learning이 대표적이며, 딥러닝에서는 Deep-Q-Network (DQN)을 많이 활용

 

심층 학습 (딥러닝 : Deep Learning)

머신러닝 분야에는 다양한 예측 모델들이 존재하며 서로 유기적인 역학을 수행하기도 한다. 그중 인간의 신경망을 못하여 만든 모델을 인공 신경망(Artificial neural network)이라고 한다. 인공 신경망은 구현에 대한 자유도가 매우 높아서 다양한 형태의 구조를 구축할 수 있다. 이때, 신경망의 깊이에 해당하는 층(Layer)을 여러 개 쌓아 만든 신경망을 깊은 신경망 (Deep Nueural Netowrk)이라고 하며, 이를 학습하는 방법을 딥러닝(Deep Learning)이라고 한다.

  초창기에는 인공지능 분야는 인간은 지적으로 풀기 어렵지만 컴퓨터에는 비교적 쉬운 여러 문제, 그러니깐 일련의 형식적이고 (formal) 수학적인 규칙들로 서술할 수 있는 문제들을 빠르게 공략하고 풀어냈다. 그러나 시간이 지나면서 인공지능의 진정한 난제는 사람들이 쉽게 해내는, 그러나 형식적으로 서술하기는 어려운 과제들을 푸는 것이라는 점이 밝혀졌다. 사람의 음성으로 말해진 단어를 인식하거나 이미지에서 얼굴을 알아보는 것처럼 우리가 직관적으로 그리고 별 노력 없이 저절로 해는 문제들이 바로 과제들이다. 이러한 문제를 해결하기 위해서 컴퓨터가 개념들의 계통 구조(hierarchy of concepts: 간단한 개념 계통 구조)를 이용해서 경험으로부터 배우고 세상을 이해하게 만든다는 것이다. 개념 계통 구조에서 각 개념은 자신보다 더 간단한 개념들과의 관계를 통해서 정의 된다. 이러한 접근 방식에서는 경험으로부터 지식을 수집하기 때문에 컴퓨터에 필요한 모든 지식을 이간 운영자가 형식적으로 일일이 지정할 필요가 없다. 개념 계통 구조 덕분에 컴퓨터는 간단한 개념들을 조합해서 좀 더 복잡한 개념을 배우게 된다. 그러한 개념들의 연결 관계를 그래프 구조로 표현한다면, 여러 층으로 이루어진 깊은 그래프가 나올 것이다. 이 때문에 인공 지능 접근 방식을 심층 학습 (deep learning)이라고 부르는 것이다

이처럼 인공지능은 인간이 타인의 마음과 관련해서 생각하는 학습과 문제 해결 등의 인지 기능을 기계가 모방해서 대신하는 컴퓨터 시스템의 자동화된 모든 기능이라면, 머신 러닝은 문제 해결하기 위해 명시된 규칙에 따라 프로그래밍을 하지 않고 의사 결정에 필요한 패턴을 빅데이터에서 스스로 깨우치게 기계학습을 기술하고, 딥러닝(심층 학습)은 인간의 뉴런처럼 복잡한 컴퓨터 시스템의 인공신경망을 갖춘 기계가 비정형 데이터에서 한 번에 특성을 추출해 판단까지 하는 것을 심층 학습이라고 한다

딥러닝(심층 학습)은 데이터의 특징을 단계별로 학습하기 때문에 표현학습(Representation Learning)이라고도 부른다.딥러닝 연구자들이 고민을 통해서 제안한 알고리즘을 추출했다고 해서 Hand-Crafted Feature(손으로 정제한 특징) 이라고 부르며, 머신러닝 알고리즘은 자동으로 특징을 추출했기 때문에 Learned Feature(학습된 특징)이라고 한다

 

'Machine-Learning > Basic' 카테고리의 다른 글

[ML] 회귀 (Regression) 평가 지표  (0) 2021.09.05
[ML] 분류 (Classification)  (0) 2021.09.05
[ML] Logistic Regression  (0) 2021.03.17
[ML] 회귀(Regression)  (0) 2021.03.15
[ML] 퍼셉트론과 인공신경망  (0) 2021.03.04

댓글