1. 머신러닝이란?
아서 새뮤얼(Artuhr Samuel, 1959)
"머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야"
톰 미첼(Tom Michell, 1977)
"어떤 작업 T에 대하여 컴퓨터 프로그램의 성능을 P로 측정했을 때, 경험 E로 인해 성능이 향상되었다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로부터 학습한다고 말한다."
많은 컴퓨터 공학자들은 머신러닝에 대하여 다양한 정의를 내리고 분석하고 있습니다. 기계 학습이라고도 불리는 머신러닝은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구이며, 인공지능(AI)의 한 분야로 간주되고 있습니다. 컴퓨터가 학습할 수 있도록 알고리즘과 기술을 개발하는 것으로 기계 학습을 통해서 수신한 이메일이 스팸메일인지 아닌지를 구분할 수 있도록 훈련하며, 이미지를 분석하여 사물인지 동물인지 또는 어떤 사물 또는 동물인지 구분할 수 있도록 훈련할 수 있습니다.
이러한 머신러닝의 핵심은 표현과 일반화(Representation and Generalization)에 있습니다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리입니다. 이는 전산 학습 이론 분야이기도 하며 다양한 머신러닝의 응용이 존재하고 있습니다. 문자 인식은 이를 이용하여 가장 잘 알려진 사례이기도 합니다.
머신러닝을 학습하기 위해 기본적으로 아래 두 가지의 용어를 잘 다룰 줄 알아야 합니다.
- 훈련 세트(Training set) : 머신러닝 프로그램이 훈련(학습)하는 데 사용하는 데이터 집합
- 사례(샘플, Sample) : 각각의 훈련 데이터
2. 머신러닝을 사용하는 이유
머신러닝을 사용하는 이유는 머신러닝이 등장하기 이전에는 문제를 어떻게 해결하였는지를 들여다보면 알 수 있습니다. 머신러닝이 등장하기 이전에는 전통적인 프로그래밍을 통해 문제를 해결하였습니다. 전통적인 프로그래밍의 접근 방법은 다음과 같습니다.
- 문제 연구 : 문제를 해결하기 위한 해결책을 찾음
- 규칙 작성 : 결정된 규칙을 개발자가 프로그램 작성
- 평가 : 만들어진 프로그램 테스트
- 문제가 없다면 통과, 문제가 있다면 오차를 분석한 후 처음부터 다시 실시
전통적인 프로그래밍의 문제점은 지속적인 업데이트가 필요할 때, 효율적이지 못한 프로그래밍 방법을 사용하고 있습니다. 예를 들어 스팸 메일을 분류하는 프로그램을 작성한다고 가정해 봅니다.
스팸 메일을 분류하기 위해서는 특정 단어를 분석하여 스팸 메일로 처리해야 합니다. 전통적인 프로그래밍에서는 프로그램이 통과된 이후 새로운 스팸단어가 생겼을 때 소프트웨어는 이 단어를 자동으로 분류할 수가 없게 됩니다. 그럼 개발자는 새로운 규칙을 업데이트시켜야 하고, 업데이트 이전에는 사용자가 스팸메일을 통해 피해를 입을 수 있게 됩니다.
하지만, 머신러닝을 사용하게 된다면 사용자가 스팸으로 지정한 메일들의 정보를 받아 모든 메일의 단어를 머신러닝 알고리즘을 통해 분석하여 자동으로 인식하고 메일을 스팸으로 분류하도록 프로그램이 스스로 학습할 수 있습니다. 즉, 수많은 사용자가 지정한 스팸메일들을 머신러닝을 통해 자동적으로 분석하고 학습하여 스팸메일의 단어, 패턴 등을 분류할 수 있게 되는 것입니다. 이는 전통적인 프로그래밍과는 다르게 추가적으로 업데이트를 할 필요가 없으며 데이터를 어떻게 분석하여 스팸메일을 분류하는지 선정하고 스팸메일을 효율적으로 다룰 수 있게 됩니다. 머신러닝의 학습을 자동화하기 위해 작업 흐름 전체를 머신러닝 파이프라인을 사용하고 있습니다.
3. 머신러닝의 장점
- 머신러닝은 전통적인 방식으로는 해결 방법이 없는 복잡한 문제를 해결해 줍니다.
- 새로운 데이터에 쉽게 적응이 가능한 시스템입니다.
- 데이터 마이닝(data mining)을 통해 복잡한 문제와 대량의 데이터에서 학습하여 통찰할 수 있습니다.
- 사람이 만든 모델보다 좋은 결과를 보여줄 수 있습니다.
- 자동화가 가능하여 프로그램으로 머신러닝을 학습시키고 최적의 파라미터를 찾아 결과에 대한 평가 등을 자동화하여 진행할 수 있습니다.
[다음글]
[ML] 2-1. 머신러닝의 종류 및 적용 사례
'Computer Engineering > 머신러닝(ML: Machine Learning)' 카테고리의 다른 글
[ML] 4-1. 머신러닝에서의 하이퍼파라미터란 무엇일까? (파라미터 vs 하이퍼파라미터) (0) | 2021.05.08 |
---|---|
[ML] 3-2. 머신러닝의 훈련 조건 (과대적합과 과소적합) (0) | 2021.04.24 |
[ML] 3-1. 머신러닝의 훈련 조건 (좋은 데이터와 나쁜 데이터) (0) | 2021.04.24 |
[ML] 2-2. 머신러닝의 종류 및 적용 사례 (배치 학습, 온라인 학습, 사례 기반 학습, 모델 기반 학습) (0) | 2021.04.14 |
[ML] 2-1. 머신러닝의 종류 및 적용 사례 (지도 학습, 비지도 학습, 준지도 학습, 강화 학습) (0) | 2021.04.14 |