머신러닝/딥러닝 공부
머신러닝과 딥러닝 소개 본문
1 ) 인공지능이란 무엇일까요?
2016년 3월, 서울의 한 호텔에서 딥마인드 챌린지 매치(Google Deepmind Challenge Match)가 열렸습니다. 구글이 인수한 Deepmind 회사에서 개발하여 선보인 알파고와 한국의 유명 프로 바둑 기사인 이세돌이 출전하여 하루 한차례, 총 다섯 번의 바둑경기가 진행이 되었습니다. 결과는 모두가 알고 있다시피, 알파고가 4승 1패로 이세돌에게 승리하였습니다.
이때부터 사람들에게 인공지능(Artificial Intelligence, AI)의 강력한 힘이 널리 인식된 것 같습니다. 물론 인공지능이라는 말 자체가 이때 생겨난 것은 아닙니다.
인공지능이란 말은 1956년 '다트머스 컨퍼런스(Dartmouth Conference)'에서 처음으로 등장하였습니다.
" ...We propose that a 2 month, 10 man study of artificial intelligence be carried out during the summer of 1956 at Dartmouth College in Hanover, New Hampshire. The study is to proceed on the basis of the conjecture that every aspect of learning or any other feature of intelligence can be in principle be so precisely described that a machine can be made to simulate it. ... "
- A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence (August 31, 1955) 에서 발췌
이 컨퍼런스에서 나온 제안은 "학습의 모든 면 또는 지능의 다른 모든 특성으로 기계를 정밀하게 기술할 수 있고 이를 시뮬레이션 할 수 있다." 였습니다. 개최자 중 한명인 존 매커시(John McCarthy,1927.9.4~2011.10.24)는 이에 대한 연구의 제목으로 인공지능, 즉 Artificial Intelligence라는 말을 사용하였습니다.
그렇다면 머신러닝과 딥러닝은 대체 이 인공지능과 무슨 관련이 있는 것일까요?
2 ) 인공지능, 머신러닝과 딥러닝의 관계
인공지능의 뜻을 인터넷에 검색해보면 '인간의 학습능력, 추론능력, 지각능력, 그 외에 인공적으로 구현한 컴퓨터 프로그램 또는 이를 포함한 컴퓨터시스템' 이라는 결과가 나옵니다. 이는 사람이나 동물이 가지고 있는 지능(Natural Intelligence)와는 다른 개념입니다. 쉽게 말해, 인공지능은 인간의 지능을 컴퓨터에 인공적으로 구현한 것입니다.
컴퓨터는 크게 보면 주어진 입력값에 대하여 일정한 출력값을 내놓는 일종의 계산기입니다. 따라서 사람이 지정해 놓지 않은 입력값을 주면 출력값을 내지 못합니다.
우리는 사진 속의 비행기가 비행기인 것을 너무나도 쉽게 파악할 수 있습니다.
하지만 컴퓨터는 이 비행기를 어떻게 인식해야 할까요? 아마도 '몸체가 길고 두껍고, 날개가 두개 달렸으며, 유리창이 여러개 달린 것'을 비행기라고 인식하도록 프로그램을 짜야할 것 입니다. 이렇게 만들어진 프로그램에 비행기 사진의 일부, 즉 바퀴부분이나 날개부분 등을 보여주면 이 프로그램은 이 사진 또한 비행기라는 것을 인식할까요? 안타깝게도 인식하지 못할 것입니다. 그렇게 만들어졌으니까요.
그렇다면 이런 부분적인 사진에 대해서도 비행기라고 인식하도록 프로그램을 짜보았습니다. 그리고 입력값으로 날개가 달린 버스 사진을 줘보겠습니다.
컴퓨터는 이 사진이 비행기가 아닌 날개가 달린 버스라고 인식을 할까요? 아마 이 사진 또한 비행기로 인식할 것입니다.
이처럼 사람에게는 쉬운 작업이 기존의 방식으로는 컴퓨터에게 어렵거나 불가능한 작업 일 수도 있습니다.
머신러닝(Machine Learning, ML)은 이러한 기존의 (컴퓨터를 명시적으로 프로그래밍하는)방법이 아닌 컴퓨터가 많은 양의 데이터를 통해 스스로 학습하도록 하는 알고리즘입니다. '컴퓨터'와 '학습'이라는 단어가 같이 쓰이는 것이 어색합니다.
여기서 말하는 학습이란 쉽게 말해 '컴퓨터가 입력값과 출력값을 토대로 규칙을 찾아가는 것'이라고 할 수 있습니다. 사람의 '학습'과 의미가 비슷한 것 같습니다.
3 ) 머신러닝과 딥러닝
머신러닝은 크게 세 가지의 유형으로 분류합니다.
1) 지도 학습 (Supervised Learning)
- 어떤 현상에 대하여 입력값과 결과값을 토대로 학습을 합니다.
- 분류 (Classification), 회귀 (Regression), 예측 (Forecasting) 등이 있습니다.
2) 비지도 학습 (Unsupervised Learning)
- 결과값이 없는 데이터들을 이용하여 데이터들의 패턴을 찾습니다.
- 클러스터링 (Clustering), 차원 축소 (Dimension Reduction) 등이 있습니다.
3) 강화 학습 (Reinforcement Learning)
- 가장 좋은 보상을 산출하도록 학습을 합니다.
이 밖에도 준지도 학습(Semi-Supervised Learning) 등이 존재하지만 일반적으로 머신러닝을 분류할 때는 저 세가지로 분류를 합니다.
딥러닝은 머신러닝의 알고리즘 중 하나인 인공 신경망(Artificial Neural Network)을 겹겹히 쌓아 올리는 방식으로 구현한 알고리즘으로, 딥러닝 또한 머신러닝의 일종입니다. 하지만 데이터의 특징을 추출하여 입력으로 넣어주는 머신러닝의 기법과는 달리 딥러닝은 주어진 데이터의 특징을 추출하는 작업까지 알아서 합니다. 따라서 그림으로 보면 다음과 같은 관계가 성립하겠네요.
저는 딥러닝, 그 중에서도 여러 딥러닝 모델을 이용한 컴퓨터 비전 기술에 관심을 가지고 있고, 그쪽에 대한 공부를 주로 하고 있는 중입니다. 따라서 먼저 딥러닝에 대해 제가 공부한 것을 정리하여 올릴 예정입니다.
지금까지 간략하게 인공지능, 머신러닝 그리고 딥러닝에 관하여 글을 작성해 보았습니다. 역시 직접 글을 작성하다보니 제가 어느부분에 취약한지, 어떤 부분을 더 공부해야할지 감이 잡히는 것 같네요.
'AI 공부 > Machine Learning' 카테고리의 다른 글
머신러닝 - 회귀(Regression) VS 분류(Classification) (0) | 2021.10.13 |
---|---|
모델이 학습하는 방법 (3) - 확률적 경사하강법(Stochastic Gradient Descent, SGD)와 미니배치 경사하강법(mini-batch Gradient Descent) (0) | 2021.10.13 |
모델이 학습하는 방법 (2) - 경사하강법의 한계 (0) | 2021.10.12 |
모델이 학습하는 방법 (1) - 손실함수(Loss function)와 경사하강법(Gradient Descent) (2) | 2021.10.06 |
머신러닝과 딥러닝의 기초 (0) | 2021.10.05 |