머신러닝을 실제로 적용하려면 머신러닝에 사용할 알고리즘을 선택해야 합니다. 지난 포스트에서 설명한 것과 같이 머신러닝은 회귀, 분류, 군집화 등 3가지 종류의 문제를 해결할 수 있는데, 이들 문제에 적합한 각각의 알고리즘이 있습니다. 한 가지 알고리즘으로 모든 종류의 문제를 해결할 수 없고, 알고리즘마다 특성이 달라서 원하는 것이 무엇인지를 명확하게 하고, 그 결과를 얻기 위해서는 어떤 종류의 문제에 속하는지 판별한 다음 머신러닝에 적용할 알고리즘을 선택해야 합니다.

적합한 알고리즘을 선택하기 위해서는 데이터의 크기와 데이터 타입 (문자, 숫자, 이미지 등), 데이터가 선형인지 비선형인지 등의 요소를 고려해야 합니다. 데이터에 대한 사전 지식 즉, 도메인 지식(Domain Knowledge)이 별로 없다면 최적의 결과를 보여주는 알고리즘을 선택하는 데 있어서 많은 시간과 노력을 필요로 할 수도 있습니다.

 

Scikit-learn에서 제공하는 알고리즘 Cheat-sheet

 

다음 그림은 파이썬의 유명한 라이브러리인 Scikit-learn에서 제공하는 알고리즘 Cheat-sheet으로 머신러닝을 이용해 원하는 결과를 얻기 위한 일반적인 절차를 보여주고 있습니다. 'Start'부터 시작해서 표시된 질문에 대한 응답으로 다음 과정이 차례로 제시되어 초심자들에게 어떤 머신러닝 알고리즘을 처음에 적용하고, 결과가 좋지 않은 경우 다음에 어떤 알고리즘을 적용해야 하는지를 알기 쉽게 표현하고 있습니다.

 

 


 

다음은 회귀, 분류, 군집화에 적용할 수 있는 대표적인 알고리즘들입니다.

 

1. 회귀

- 선형회귀 (Linear Regression)

- SGD 회귀 (Stochastic Gradient Descent Regression)

- 서포트 벡터 회귀 (SVR, Support Vector Regression)

- 랜덤 포레스트 회귀 (Random Forest Regression)

- 베이지안 회귀 (Bayesian Regression)

- 등위 회귀 (Isotonic Regression)

- 베이지안 ARD 회귀 (Bayesian Automatic Relevance Determination Regression)

 

2. 분류

- 로지스틱 회귀 (Logistic Regression)

- 서포트 벡터 머신 (SVM, Support Vector Machine)

- 랜덤 포레스트 (Random Forest)

- 의사결정 트리 (Decision Tree)

- 그레이디언트 부스팅 트리 (GBT, Gradient Boosting Tree)

- SGD 분류기 (SGD Classifier)

- AdaBoost

 

3. 군집화

- K - 평균 (최적분리) K-means

- 스펙트럼 군집화 (Spectral Clustering)

- 가우시안 혼합 (Gaussian Mixtures)

- 병합식 군집화 (Agglomerative Clustering)

- 친근도 전파 (Affinity Propagation)

- 평균 이동 (Mean Shift)


 

이외에도 많은 종류의 알고리즘이 있으므로 자신이 다루는 데이터 특성에 적합한 알고리즘을 선택해야 좋은 결과를 빨리 얻을 수 있습니다.

머신러닝 알고리즘은 수학적 이론과 그 내용을 아는 것은 특별한 경우가 아니라면 충분조건이지 필요 조건은 아닙니다. 예측을 위한 모델링은 사람이 직접 하는 것이 아니라 머신러닝 알고리즘 스스로 만들어 가도록 설계되어 있기 때문입니다. 따라서 해당 머신러닝 알고리즘을 사용하는 개발자는 머신러닝 알고리즘의 개념과 사용법, 알고리즘의 특성을 알고 이해하는 것이 중요합니다.

머신러닝으로 해결하려는 문제에 효과가 있다고 알려진 알고리즘이 없다면, 적용할 수 있는 모든 머신러닝 알고리즘을 하나씩 적용해 시행착오를 거쳐 가장 좋은 성능을 보여주는 것을 채택해 사용하면 됩니다.


 

※ 오늘은 '머신러닝 알고리즘'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

#인공지능 #컴퓨터공학 #AI #머신러닝 #머신러닝알고리즘 #회귀 #분류 #군집화

 

 

군집화는 데이터를 유사한 특성을 가진 무리(Cluster)로 묶는 것을 의미합니다. 군집화는 비지도 학습에서 사용하는 것으로 출력데이터 없이 입력 데이터만으로 이뤄지며, 일반적으로 데이터의 특성을 파악하거나 이해하기 위해 많이 적용되고 있습니다.

예를 들어, 마케팅 캠페인을 진행하는데 어떤 특성을 가진 사람들이 마케팅 캠페인에 반응하는지를 알고 싶다고 가정을 해봅시다. 마케팅 캠페인을 처음 시행해서 연관성 있는 데이터는 가지고 있지만, 어떤 기준으로 대상자를 선정하는 것이 좋을지 모른다면 이러한 문제를 해결하는 데 군집화가 효과적으로 적용될 수 있습니다.

군집화는 주어진 데이터들의 유사도를 계산해 비슷한 특성이 있다고 판단되는 것끼리 군집으로 분류하는 것으로, 이러한 작업을 효율적으로 할 수 있습니다. 마케팅에 반응한 사람들의 데이터를 모아 군집화를 실시하면 유사한 특성을 가진 사람들을 묶어 몇 개의 군집인지 알 수 있고, 각각의 군집에 속한 사람들의 공통점을 파악하면 원래의 문제인 마케팅에 반응하는 사람들의 유형과 그들의 특성을 발견할 수 있습니다.

 

 

 

군집화를 실시해 위의 그림과 같은 결과를 얻었다면 잠정적으로 마케팅 캠페인에 반응하는 사람의 군집은 2개가 되므로 이들 군집에 속한 사람들의 특성을 분석하면 됩니다.


 

군집 문제의 예는 아래와 같습니다.

* 유사한 음악 취향을 가진 사용자를 묶습니다.

* 천문학 데이터를 이용해 유사한 특성을 가진 별을 찾습니다.

* 전자상거래 사용자가 좋아할 만한 물건을 추천합니다.


※ 오늘은 '군집화(Clustering)'에 대하여 알아보았습니다.

 

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

#인공지능 #컴퓨터공학 #AI #머신러닝 #Machinelearning #데이터사이언스 #Datascience #군집화 #Clustering

분류는 단어가 의미하는 대로 데이터를 나누는 것을 의미합니다. 분류에 대한 이해를 하기 위해서 아이리스의 예제를 한번 살펴보겠습니다.

꽃잎의 너비와 높이 데이터를 이용해 주어진 아이리스가 Sentosa, Virginica, Versicolor 3 종류 중 어떤 품중에 속하는지를 판별해야 한다고 가정을 해봅시다. 이 문제는 저번 포스트에서 설명한 회귀와는 다르게 어떤 값을 예측하는 것이 아니고 어떤 종류에 속하는지를 파악하는 문제입니다. 회귀 문제와 마찬가지로 분류 역시 산점도를 그려 아이리스 품종별로 꽃잎의 너비와 높이가 어떤 관계가 있는지를 파악해야 합니다.

 

 

 

 

위의 그림을 살펴보면 Sentosa 품종은 화면에 네모로 왼쪽 아래에 위치하고, Virginica는 원으로 오른쪽 위에 위치하며, 그 중간에 삼각형으로 Versicolor 품종이 있음을 알 수 있습니다. 해결하려는 문제는 주어진 꽃잎의 너비와 데이터만으로 어떤 품종인지를 파악하는 것이므로 3가지 품종을 구분하는 방법이 필요합니다. 만약 어떤 모델이 있고 이 모델을 이용해 꽃잎의 너비와 높이에 따라 품종을 구분할 수 있게 된다면 새로운 데이터로 너비와 높이 데이터만을 입력해도 품종을 구분할 수 있습니다.

 

 

 

 

위의 그림과 같이 2개의 선을 이용해 Sentosa, Virginica, Versicolor로 영역을 나눈 다음 새롭게 주어진 데이터가 3개의 영역 중 어디에 위치하는지를 안다면 자연스럽게 아이리스 품종을 분류할 수 있습니다. 따라서 분류는 주어진 데이터들을 이용해 아이리스를 잘 구분 지을 수 있는 2개의 'Y = aX + b ' 를 찾는 것이라 할 수 있습니다.

분류는 이와 같은 과정을 거쳐 데이터를 구분할 수 있게 하는 것으로 머신러닝에서 매우 광범위하게 사용되고 있기도 합니다. 회귀는 연속적인 데이터(Continuous Data)에 적용할 수 있지만, 분류는 범주형 데이터 (Categorical Data)에 적용할 수 있습니다.

분류 문제의 예는 아래와 같습니다.

* 스팸메일 분류

* 이미지 인식

* 음성 인식

* 질병 발생 여부 판별

 


 

※ 오늘은 '분류(Classification)'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

#인공지능 #컴퓨터공학 #AI #머신러닝 #분류 #범주형데이터 #Classification

 

 

회귀는 연속적인 숫자(Continuous Number) 변수들 강의 상관관계를 파악하는 것으로, 특히 종속변수와 독립변수(Independent Variable) 사이의 연관성을 분석하는 것을 주된 목적으로 합니다. 회귀에 대한 이해를 돕기 위해 주택가격에 대한 한 가지 예를 들어 보겠습니다.

살고 있는 집을 팔고 싶은데 도대체 얼마를 받아야 하는지를 알고 싶다고 가정합니다. 그런데 팔려는 집과 동일한 크기의 주택은 사례가 없어서 주택가격을 얼마로 결정해야 하는지 애매하다면 다른 크기의 주택가격 데이터와 회귀 분석을 통해 합리적인 주택가격을 산정할 수 있습니다.

회귀분석을 시작할 때 가장 먼저 해야 할 일은 데이터의 상관정도를 직관적으로 파악하게 종속변수와 독립변수의 산점도(Scatter Plot)를 그리는 것입니다.

 


 

 

주택 크기와 가격 산점도

 

위의 그림에서도 알 수 있듯이 주택가격과 크기는 일정한 관계, 즉 선형적인 관계가 있음을 쉽게 파악할 수 있습니다. 해결하고 싶은 문제는 크기에 따른 주택가격인데, 산점도를 보면 크기가 클수록 가격이 높아지는 선형적인 관계가 있으므로 다음과 같은 모델(수식)을 떠올릴 수 있습니다.

 

 

Y = aX  + b

 

 

Y는 주택가격으로 '종속변수'라 하고, X는 크기로 '독립변수'라고 합니다. 가정한 모델이 1차 함수이므로 'a'는 기울기, 'b'는 절편을 의미하고 있습니다. 주어진 데이터를 이용해 a 값과 b값을 찾게 된다면 주택 가격 결정을 위한 모델을 완성할 수 있고, 완성된 모델의 X에 팔려는 집의 크기를 입력하면 주택가격을 알 수 있습니다. 프로그램을 이용해 a의 값이 0.65, b의 값이 0.89일 때 앞서 보았던 산점도를 가장 잘 표현할 수 있다면 '주택가격 = 0.65 X 크기 + 0.89라는 관계가 성립한다고 할 수 있습니다.

이제 주택가격과 크기의 관계를 알았으니 크기만 알면 앞의 식에 넣어 적절한 주택가격이 얼마인지를 산정할 수 있게 됩니다.

 

 

 

회귀 분석

 


 

이처럼 주어진 변수 간의 상관관계를 파악하는 것이 회귀입니다. 회귀의 문제의 예는 다음과 같습니다.

1. 과거의 온도 데이터를 이용해 내일 온도를 예측합니다.

2. 주식시세 정보를 이용해 미래의 주식가격을 예측합니다.

3. 유동인구, 날씨, 가격정보 등을 이용해 음식점의 매출을 예측합니다.

4. 구매자의 나이와 연 소득을 이용하여 특정 제품의 판매량을 예측합니다.

 


 

※ 오늘은 '회귀(Regression)'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

#인공지능 #컴퓨터공학 #AI #머신러닝 #Machinelearning #데이터사이언스 #Datascience #회귀 #Regression

 

 

자동차 자율주행, 고양이 사진인식, 이미지 자막 넣기 (Image Captioning)등 최근 머신러닝이 보여주는 엄청난 성과를 보면 머신러닝이 고도의 수학적 배경과 정교한 알고리즘으로 무장해 내가 원하는 많은 문제를 해결할 것으로 믿을 수도 있습니다. 하지만 아직까지 머신러닝이라는 마법으로 해결할 수 없는 문제가 많지 않으며, 그마저도 엄청난 노력과 시간을 대가로 요구합니다.

머신러닝을 적용해 무언가에 대한 결과를 얻는 것은 생각보다 많은 시간이 필요합니다. 하나의 완성물을 얻으려면 수십 번, 수백 번 반복을 통해 조금씩 개선해가고, 때에 따라서 모델을 새롭게 만들거나 전혀 새로운 시각으로 접근해야 합니다. 더욱 머신러닝으로 특정문제를 해결하려면 그 특정 문제를 머신러닝에 적합한 형태로 바꿔야 원하는 결과를 얻을 수 있습니다. 따라서 머신러닝을 제대로 활용하려면 머신러닝이 잘 할 수 있는 것과 그렇지 않은 것을 아는 것이 중요합니다.

스팸메일을 필터링하고, 글자와 음성을 인식하는 머신러닝을 보면 다양한 일을 처리할 수 있을 것이라 생각하겠지만, 크게 3 가지 종류의 일을 처리할 수 있습니다. 변수 간의 관계를 파악하는 회귀(Regression), 데이터를 분류하는 분류(Classificaiton), 데이터를 연관있는 것끼리 묶어주는 군집화(Clustering)이 있습니다.

머신러닝은 이 3 가지를 이용해 다양한 문제를 해결합니다. 회귀와 분류는 모든 머신러닝 알고리즘의기본이 되는 중요한 개념입니다.

 


 

※ 오늘은 '머신러닝이 할 수 있는 것'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

머신러닝은 학습방법에 따라 크게 3가지 종류로 나뉠수 있습니다.

 

사람이 입력과 출력을 모두 제공하는 지도학습(Supervised Learning), 입력만 제공하는 비지도학습(Unsupervised Learning), 어떤 환경에서 특정목표를 달성하기 위해서 스스로 학습하는 강화학습(Reinforcement Learning)입니다.

 

 

 

 

현시점에서 활용빈도로 보면 지도학습이 가장 많고, 그 다음이 비지도학습, 마지막은 강화학습이 되겠습니다.

 


 

 

1) 지도학습 (Supervised Learning)

 

- 지도학습은 가장 많이 활용되는 머신러닝의 종류로 스팸메일 필터링, OCR 문자 인식 등이 이에 해당됩니다. 지도학습은 머신러닝에 입,출력을 모두 제공하여 학습하게 하는 거승로, 일종의 최적 (Optimization) 문제로도 생각을 할 수 있습니다. 이는 지도학습 알고리즘이 주어진 입력값을 분석해 출력값을 만들어내기 위한 최적의 모델을 만들기 때문입니다. 예를 들어, 고양이의 이미지를 구분할 수 있는 머신러닝 프로그램을 개발한다고 가정을 합니다. 지도학습은 입력과 출력을 모두 제공해야 하므로 고양이 사진과 함께 고양이라는 것을 알려주어야 합니다. 고양이가 있는 사진에 '고양이'라는 출력 결과도 같이 제공해야 합니다.

 

따라서 지도학습에서는 하나의 데이터는 입력과 출력이 같이 묶여있는 튜플(Tuple)형태로 이루어집니다.

 

 

 

2) 비지도학습 (Unsupervised Learning)

 

- 위에서 설명한 지도학습이 입력을 분석해 출력을 만들어내는 최적화 문제라면 비지도 학습은 입력 데이터의 구조를 파악하거나 관계를 분석하는 방법이라고 할 수 있습니다. 비지도 학습은 '지식 발견 (Knowledge Discovery)'라고도 하는데, 이는 학습결과로 생각하지 못한 지식을 발견하거나 입력 데이터 간의 그룹 또는 특성 들을 발견할 수 있어서입니다.

지도학습과 구분되는 또 하나의 특징은 학습결과에 대한 평가가 힘들다는 점이 있습니다. 이는 학습결과가 명확한 목적, 즉 출력이 없어서 평가기준을 잡을 수 없기 때문입니다. 지도학습에서 데이터를 제공할 때 하나의 데이터마다 입력과 출력이 튜플로 제공되지만, 비지도 학습에서는 출력 없이 입력만 제공됩니다.

 

 

앞의 지도학습에서는 고양이 사진과 이름이 주어졌지만, 다음 그림처럼 비지도학습에서는 이름 없이 고양이 사진만으로 학습이 이루어집니다.

 


 

※ 오늘은 '머신러닝의 종류'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

 

머신러닝에 대한 개념이나 각종 성공사례를 처음 접하면 머신러닝이 마치 천하의 보검처럼 느껴져 어떠한 문제라도 머신러닝으로 해결할 수 있을 것 같은 느낌을 받습니다. 그리고 예제로 제공되는 코드들을 실행해보면 그리 길지 않은 코드로 신기하게 그림에서 문자를 인식하고 아이리스 꽃의 종류를 분별하는 등, 기존 프로그래밍 방법으로는 막막한 것들을 너무도 쉽게 해내 놀랍기 그지없습니다.

하지만 머신러닝은 한 번 휘두르면 모든 적을 제압할 수 있는 천하의 보검이 아니라는 것을 분명히 알고, 역시 예제는 예제라는 만고의 진리를 깨닫게 되는 데는 그리 오랜 시간이 걸리지 않을 것입니다. 이러한 결과는 머신러닝에 사용한 데이터가 잘못되었거나 엉뚱한 알고리즘을 적용하였거나 머신러닝에 적합하지 않은 문제 때문에 벌어졌을 가능성이 큽니다.

머신러닝을 제대로 사용하려면 머신러닝의 장단점을 파악해 해결하려는 문제가 머신러닝에 적합한 것인지, 적합하지 않은 것이라면 어떻게 문제를 재정의해야 하는지, 어떤 데이터를 사용해야 하는지 등을 고민해봐야 할 것입니다.

 

 

 


 

 

 

※ 머신러닝의 장점

1) 학습을 위해 지식 표현이 필요 없습니다. 컴퓨터가 지식을 이해하게 하기 위한 표현은 어려운 문제입니다.

2) 충분한 데이터와 적합한 알고리즘을 사용한다면 사람이 만든 모델보다 좋은 결과를 보여줄 수 있습니다.

3) 고도의 수학적 지식이나 프로그래밍 능력을 요구하지 않습니다. 기본적인 지식과 능력으로도 충분히 머신러닝을 이용할 수 있습니다.

4) 자동화가 가능합니다. 프로그램으로 머신러닝을 학습시키고 최적의 파라미터를 찾아 그 결과에 대한 평가 등을 자동화하여 진행할 수 있습니다.

5) 저렴하고 유연합니다. 데이터를 제외한 나머지 과정은 자동화가 가능하므로 저렴하게 실행할 수 있습니다.

6) 프로그램을 이용해 자신이 원하는 대로 사용할 수 있습니다.

 

 

※ 머신러닝의 단점

1) 데이터 준비에 많은 노력이 들어갑니다. 지도학습(Supervised Learning)의 경우 모든 개별 데이터에 결과치를 만들어 주어야 합니다.

2)오류 발생이 쉽습니다(Error Prone). 일반적으로 정확도가 높은 모델을 만들기가 어렵습니다.

3) 생성된 모델이 블랙박스(Black Box)이기 때문에 이를 해석하기 어렵습니다. 정확도를 높이려면 모델을 수정하거나 개선할 수 있어야 하는데, 대부분의 머신러닝 알고리즘은 학습결과로 생성된 모델을 이해하기 어렵고 모델 자체를 개선할 수 없습니다.

4) 과적합(Overfitting) 문제가 종종 발생합니다. 주어진 데이터에 너무 최적화되어 학습에 사용된 데이터는 높은 예측력(Predictive Power)을 보여주지만, 그렇지 않은 데이터에는 좋지 않은 예측력을 보여줍니다.

 


 

※ 오늘은 '머신러닝의 장.단점'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

 

#인공지능 #컴퓨터공학 #AI #머신러닝 #Machinelearning #머신러닝의장단점 #데이터사이언스 #Datascience

 

 

 

머신러닝(Machine Learning)은 우리의 통념보다 오래된 기술이고, 이미 우리가 사용하는 많은 서비스와 상품에 직,간접적으로 활용되고 있습니다. 매일 쏟아지는 스팸메일로부터 우리를 보호하는 스팸메일 필터링 기술, 전자상거래 사이트에서 적합한 물건을 추천해주는 서비스, 애플의 시리와 같이 사람의 음성을 듣고 이를 인식하는 서비스 등 우리 곁에는 많은 서비스가 자리를 잡고 있습니다.

 

 


 

 

 

"머신러닝은 인공지능의 패턴인식과 계산학습 이론에서 발전한 컴퓨터과학의 한 분야다. 머신러닝은 데이터로부터 학습하고, 예측할 수 있는 알고리즘을 연구한다. 이러한 알고리즘은 정적으로 주어진 프로그램이 아닌 입력된 데이터로부터 모델을 만들어 예측이나 결정을 내린다" (wiki)

 

 

여기서 알 수 있듯이 머신러닝의 정의에서 제일 중요한 부분은 주어진 데이터를 이용해 스스로 학습하고 적합한 모델을 만든다는 점입니다. 일반적으로 컴퓨터로 어떤 일을 하게 하려면 사람이 컴퓨터에 소상히 Input(데이터는 무엇인지), Program(이런 데이터가 들어오면 어떻게 처리해야 하는지), Output(결과를 어떻게 표현해야 하는지) 등을 모두 정의해야 합니다.

컴퓨터가 이해할 수 있도록 정의하는 것이 프로그래머가 프로그램을 개발하는 과정이며 Input(입력), Program(프로그램), Output(출력)을 어떻게 처리해야 하는지 명령어를 이용해 코딩을 합니다. 컴퓨터는 지능이 없으므로 입력, 프로그램, 출력에 대한 상세한 내용을 논리적 모순 없이 프로그램으로 작성해야만 원하는 결과를 얻을 수 있습니다.

하지만 머신러닝에서는 전혀 다른 방법을 적용하고 있습니다. 사람은 입력과 출력만 제공하고, 프로그램은 머신러닝 스스로 만들게 하는 것입니다. 적절한 데이터가 준비되어 있다면 기존의 접근방법에서는 프로그램을 작성하는 데 상당한 노력과 시간을 보내야 하지만, 머신러닝 접근방법에서는 이러한 수고가 필요가 없습니다. 원하는 결과를 머신러닝에 출력으로 지정하면 나머지 작업은 머신러닝에 의해 스스로 프로그램을 작성하기 때문에 사람은 충분한 양의 잘 정돈된 데이터와 머신러닝을 적용하는 데 필요한 컴퓨팅 파워만 제공해주면 됩니다.

 


 

 

기존 접근방법과 머신러닝 접근방법의 비교

 

다음은 머신러닝의 접근방법과 기존 접근방법을 보여주는 그림으로, 각 접근방법이 어떻게 다른지를 확실히 보여주고 있습니다.


 

머신러닝은 데이터에 기반을 두기 때문에 계산 통계(Computational Statistics)와 많은 연관성이 있습니다. 데이터로부터 학습한다는 것은 머신러닝의 관점에서 보면, 주어진 데이터를 이용해 확률을 계산하고 특정 데이터를 줬을 때 이미 과거의 데이터를 이용해 계산된 확률로 결과치를 만들기 때문입니다.

이러한 특성은 머신러닝에서 데이터가 얼마나 중요한지 강력하게 알수 있습니다. 아무리 좋은 머신러닝 알고리즘이라 하더라도 제공되는 데이터의 양이 적절하지 않거나 품질이 떨어진다면 결코 좋은 결과를 기대할 수 없습니다. 그 유명한 'Garbage in, Garbage Out' 원칙은 머신러닝에서도 당연히 적용됩니다.

 

데이터가 머신러닝 결과물에 막대한 영향을 미치기 때문에 머신러닝에서는 데이터를 탐색하고 정리하는 데이터 마이닝(Data Mining)이 아주 중요합니다. 데이터 마이닝을 통해 입력 데이터로 사용할 적합한 입력변수를 선택하고, 이 입력변수에 빠진 데이터를 보충하거나 이상치(Outlier)를 제거하고, 적절한 양의 데이터를 선택하는 과정이 사실상 머신러닝에서 제일 중요한 과정이어서 그 중요성은 아무리 강조해도 지나치지 않습니다.

 

 

 

 


 

※ 오늘은 '머신러닝이란 무엇인가?'에 대하여 알아보았습니다. 다음 번 포스트에는 머신러닝의 장단점 에 대하여 다루어 보겠습니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능, 머신러닝 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

인공지능 #컴퓨터공학 #AI #머신러닝 #데이터사이언스 #데이터마이닝 #Machinelearning #Datamining #Datascience

+ Recent posts