인공지능은 사람의 지능을 모방하여 사람이 하는 것과 같이 복잡한 일을 할 수 있는 기계를 만드는 것을 말한다. 인공지능이 가장 넓은 개념이고, 인공지능을 구현하는 방법 중 중요한 방법이 기계학습 또는 머신러닝(Machine Learning)이다. 딥러닝(Deep Learning)은 머신러닝의 여러 방법 중 중요한 방법론이며 인공신경망(Artificial Neural Network)의 한 종류이다. 즉, 인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝 관계가 성립한다. 아래에서 각 개념에 대해 좀 더 상세히 살펴보자.
인공지능 (AI, Artificial Intelligence)
먼저 인공지능이라는 용어는 1956년 다트머스 회의에서 처음 등장하였다. '인공지능'이라는 용어를 만든 존 매카시는 '인텔리전트한 기계를 만드는 과학과 공학(The science and engineering of making intelligent machines') 라고 정의하였다. 하지만 아직 intelligent machines의 개념은 모호하다.
인간처럼 생각하는 관점(Thinking Humanly), 인간처럼 행동하는 관점(Acting Humanly), 이성적으로 생각하는 관점(Thinking Rationally), 이성적으로 행동하는 관점(Acting Rationally) 등 4가지 관점에서 다양한 정의가 존재한다. 그러나 모두가 동의하는 하나의 정의는 없다. 즉, 인공지능이 무엇인지는 명확하지 않다.
인공지능은 정의하기 어려울 뿐 아니라, 세월에 따라 그 개념도 변한다. 예전에는 인공지능의 한 분야로 여겨졌던 문자 식별, 검색엔진, 장기, 체스, 기계번역 등이 더 이상 지능적(?)으로 느껴지지 않는다. 이를 인공지능 효과(AI effect)라 한다. "예전에 인공지능이라고 불렀지만 실용화되어 하나의 분야를 구성하면서 이제 더 이상 인공지능이라고 불리지 않게 되었다. 이것은 AI 효과 라고 불리는 흥미 깊은 현상이다. 많은 사람들이 그 원리를 알아버리면 이것은 지능이 아니다라고 생각하는 것이다. 위키피디아에서도 AI효과(AI effect)를 언급하면서 인공지능은 아직까지 실현되지 않은 모든 것 (AI is anything that has not been done yet)이라 정의하고 있다.
쉽게 인공지능을 풀어 이해하자면 기계는 문제를 해결할 때 알고리즘을 기반으로 문제를 해결하게 되는데, AI 알고리즘은 규칙이 생성되는 방식에서 기존 알고리즘과 차이가 있습니다. 기존 알고리즘은 개발자가 소프트웨어가 수신하는 각 유형의 입력값들에 대한 출력을 정의하는 특정 규칙을 설정하는 반면에 AI 알고리즘은 자체 규칙 시스템을 구축하게 됩니다. 이는 AI를 통해 컴퓨터가 사람에게 전적으로 의존했던 작업을 스스로 해결할 수 있음을 의미합니다.
- 기계가 사람처럼 스스로 생각하고 판단하여 행동하도록 하는 것
- 인간의 지능을 갖고 있는 기능을 갖춘 컴퓨터 시스템
- 인간의 지능을 기계 등에 인공적으로 구현한 것
- 인간이 가지고 있는 인식, 판단 등의 지적 능력을 모델링하여 컴퓨터에서 구현하기 위해 다양한 기술이나 소프트웨어, 하드웨어, 이를 포함한 컴퓨터 시스템을 통틀어 일컫는 말
- SAS의 정의 : 기계가 경험을 통해 학습하고 새로운 입력 내용에 따라 기존 지식을 조정하며 삶과 같은 방식으로 과제를 수행할 수 있도록 지원하는 기술
머신러닝 (ML, Machine Learning)
명확한 정의가 없는 인공지능과 달리 머신러닝은 정의(definition)가 있다. 머신러닝 용어를 만든 아서 사무엘의 1959년 정의와 톰 미첼의 1998년 정의가 있으며, 최근에는 톰 미첼의 정의가 많이 쓰인다.
아서 사무엘(Arthur Lee Samuel)은 머신 러닝을 \"컴퓨터가 명시적으로 프로그램되지 않고도 학습할 수 있도록 하는 연구 분야 라고 정의했다. 일반적인 컴퓨터 프로그램은 \"A 입력에 B 조건이 성립하면 X를 동작시킨다\"를 인간이 작성하는 반면, 머신러닝에서는 A라는 정보를 입력할 때 대답이 X가 되는 조건 B를 찾도록 기계를 학습시킨다.
곱하기를 계산하는 프로그램을 예로 들면, 일반적으로 사람이 프로그램을 작성할 때는 입력 숫자와 곱하기 연산자를 활용하여 결과 값을 계산하지만, 머신러닝에서는 입력값 A와 정답 X를 활용하여 스스로 학습하여 조건 B를 찾는다.
머신러닝을 간단하게 요약하자면 인공지능의 하위 집한 개념인 머신러닝은 정확한 결정을 내리기 위해 제공된 데이터를 통하여 스스로 학습할 수 있습니다. 처리될 정보에 대해 더 많이 배울 수 있도록 많은 양의 데이터를 제공해야 합니다.
즉, 빅데이터를 통한 학습 방법으로 머신러닝을 이용할 수 있습니다. 머신 러닝은 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통해 학습하며, 학습한 내용을 기반으로 판단이나 예측을 합니다. 따라서 궁극적으로는 의사 결정 기준에 대한 구체적인 지침을 소프트웨어에 직접 코딩해 넣는 것이 아닌, 대량의 데이터와 알고리즘을 통해 컴퓨터 그 자체를 ‘학습’시켜 작업 수행 방법을 익히는 것을 목표로 한답니다.
- 제공된 데이터를 통하여 스스로 학습하는 방법
- 알고리즘을 이용해 데이터를 분석, 분석을 통해 학습, 학습을 기반으로 판단과 예측을 수행함
- 기계의 패턴인식이 반복되어 자신의 오류를 수정하고 반복하면서 정확도를 높여간다.
- 의사결정 기준에 대한 구체적인 지침을 직접 코딩하는것이 아닌 ,
대량의 데이터와 알고리즘을 통해 컴퓨터 스스로 학습시켜 작업을 수행하는 방법을 익히는 것이 목표이다.
지금까지 알아본 머신러닝의 종류는 아래와 같이 크게 3가지 종류로 구분된다.
딥러닝 (DL, Deep Learning)
딥 러닝은 인공신경망에서 발전한 형태의 인공 지능으로, 뇌의 뉴런과 유사한 정보 입출력 계층을 활용해 데이터를 학습합니다. 그러나 기본적인 신경망조차 굉장한 양의 연산을 필요로 하는 탓에 딥 러닝의 상용화는 초기부터 난관에 부딪혔죠. 그럼에도 토론토대의 제프리 힌튼(Geoffrey Hinton) 교수 연구팀과 같은 일부 기관에서는 연구를 지속했고, 슈퍼컴퓨터를 기반으로 딥 러닝 개념을 증명하는 알고리즘을 병렬화하는 데 성공했습니다. 그리고 병렬 연산에 최적화된 GPU의 등장은 신경망의 연산 속도를 획기적으로 가속하며 진정한 딥 러닝 기반 인공 지능의 등장을 불러왔죠.
딥 러닝으로 훈련된 시스템의 이미지 인식 능력은 이미 인간을 앞서고 있습니다. 이 밖에도 딥 러닝의 영역에는 혈액의 암세포, MRI 스캔에서의 종양 식별 능력 등이 포함됩니다. 구글의 알파고는 바둑의 기초를 배우고, 자신과 같은 AI를 상대로 반복적으로 대국을 벌이는 과정에서 그 신경망을 더욱 강화해 나갔습니다.
머신러닝과 가장 큰 차이점은 딥러닝은 분류에 사용할 데이터를 스스로 학습할 수 있는 반면 머신 러닝은 학습 데이터를 수동으로 제공해야한다는점이 딥러닝과 머신러닝의 가장 큰 차이점입니다.
- 뇌의 뉴런과 유사한 정보 입출력 계층을 활용해 데이터를 학습한다.
- 데이터 세트를 분류하고 데이터간 상관관계를 찾아내어 예측을 더욱 정확하게 만든다.
- 이미지 분석, 언어 인식과 같은 직관적이고 고차원적인 사고를 요하는 분야에 강점이 있다.
- 기본적인 신경망조차 굉장한 양의 연산이 필요하므로 병렬연산에 최적화된 GPU의 등장으로 빠르게 발전되었다.
인공지능 & 머신러닝 & 딥러닝의 관계
https://www.yoonsupchoi.com/2017/08/08/ai-medicine-4/
https://m.blog.naver.com/pwj6971/221614497987
- 인공지능이 가장 넓은 개념이다.
- 인공지능의 구현 방법 중 하나가 머신러닝이다.
- 머신러닝 중 하나의 방법론이 딥러닝이다.
- 인공지능 ⊃ 머신러닝 ⊃ 딥러닝의 관계를 가지고 있다.
인공지능 & 머신러닝 & 딥러닝의 공통점과 차이점
위에서 계속 얘기하듯이 딥러닝은 머신러닝의 한 방법이므로 '차이점'이라고 설명하기가 어려운것 같다.
마치 '사칙연산과 덧셈의 차이를 말하라' 라는것 처럼
그래서 아래의 내용은 '머신러닝(딥러닝을 제외한 머신러닝)'과 '딥러닝'의 차이점이라고 보면 된다.
공통점
- 주어진 데이터로부터 규칙성을 찾는 것(학습)
- 블랙박스를 가지고 있음
차이점
머신러닝 | 딥러닝 | |
알고리즘 | 회귀분석 등을 사용 | 사람의 뇌를 본따 만든 신경망 사용 |
데이터 의존도 | 데이터 양이 적어도 성능이 잘 나온다. | 데이터 양이 적으면 성능이 잘 나오지 않는다. |
하드웨어 의존도 | 저사양 기계에서도 실행이 가능하다. | 고사양 기계를 사용해야 한다. (GPU) |
Feature engineering | 학습 데이터(특징)를 수동으로 제공해야한다. 예 ) 사람 : 고양이과 개를 귀 모양으로 분류해. |
분류에 사용할 데이터를 스스로 학습할 수 있다. 예 ) 컴퓨터 : 고양이와 개의 귀 모양이 다른 특징이 있다! 이걸로 분류해야지! |
문제 해결 접근법 |
문제를 여러 개의 파트로 쪼갠 후 각각에 대한 답을 구하고 그 결과를 합치는 방법을 추천함 |
end-to-end 방식을 사용함 |
실행 시간 | 훈련(train) 시간이 비교적 적게 걸린다. 테스트(test) 시간이 비교적 오래 걸린다. |
훈련(train) 시간이 굉장히 오래 걸린다. 테스트(test) 시간이 훨씬 적게 걸린다. |
해석력 | 선택한 알고리즘을 왜 선택했는지에 대한 명확한 규칙을 제공하므로 배후의 추론을 해석하기가 쉽다. (의사 결정 트리 등) | 성능은 좋지만 어떻게 성능을 낸건지 알 수 없음 해석할 수 없음 |