본문 바로가기
머신러닝과 딥러닝/기초 이론

머신 러닝과 딥러닝 기초

by Bentist 2020. 1. 30.

머신러닝 정의 (인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝)

1959년에 아서 사무엘은 머신러닝(기계 학습)을 “기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야”라고 정의하였다. 

쉽게 말해 머신러닝데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법이다. 

 

머신러닝의 분류

머신러닝은 학습하려는 문제의 유형에 따라 크게 다음과 같은 세 가지로 분류할 수 있습니다.

머신러닝 - 데이터의 특징들을 사람이 먼저 추출한 뒤, 컴퓨터에 전달
1. 지도 학습(Supervised Learning): 분류, 회귀, 추천 시스템, 시각/음성 감지/인지, 텍스트 분석, NLP 

딥러닝 - 데이터를 있는 그대로 컴퓨터에 전달

2. 비지도 학습(Unsupervised Learning): 클러스터링, 차원 축소
3. 강화학습

머신러닝과 딥러닝의 차이

딥러닝(심층학습)이란 일반적인 머신러닝(기계학습)과 구별되는 두가지 큰 특징을 뽑으면 다음과 같다.

    1. 데이터의 특징을 사람이 추출하지 않는다. (데이터 전체를 학습시키고, 특징 추출부터 패턴까지 인공지능이 수행)
    2. 주로 인공신경망 구조를 사용하여 학습한다.

첫번째 ‘데이터의 특징을 사람이 추출하지 않는다.’ 라는 것은 데이터에서 일부 특징들만 사람이 뽑아서 기계에게 전달해 학습시키는 것이 아니라, 데이터 자체를 컴퓨터에게 전달한다는 것이다.


예를 들면 특정사진의 동물이 개인지 고양이인지 분류하도록 한다면?

머신러닝의 경우 개와 고양이의 구별되는 큰 특징들만 뽑아 컴퓨터에게 전달 시키지만,

딥러닝은 개, 고양이 사진 자체를 컴퓨터가 학습하도록 하는 것이다.


1. 지도 학습(Supervised Learning)

: 정답을 알려주며 학습시키는 것

예를들면 고양이, 강아지 사진을 주고(Train data), 이 사진은 고양이, 강아지(정답지- label data)야. 라고 학습시킨 다음

새로운 사진을 주면 고양이인지 강아지인지 판별할 수 있게 된다.

또는 3X5 = 15, 4X6(input data) = 24(label Y)를 알려주고 9X3의 input을 우리가 만든 신경망에 넣으면 Y값이 나온다.

또는 영어 문장과 매칭되는 중국어를 학습시켜, 영어 문장을 신경망에 넣으면 중국어로 자동 번역하게 한다.

또는 음성파일을 신경망에 입력으로 넣으면, 텍스트 대본으로 출력하게 한다.

레이블링한 훈련 데이터로 훈련 받은 지도학습 알고리즘은 레이블링 되지 않은 데이터를 받아도 고양이와 개를 적절히 구분할 수 있게 된다. 이 때 레이블링 되지 않은 데이터를 테스트 데이터(Test set)라고 부른다.

 

지도학습은 산업 분야마다 조금씩 다른 신경망 알고리즘을 적용하고 있다.

부동산이나 온라인 광고는 표준 신경망 알고리즘을, 이미지 분야는 CNN 알고리즘 사용하고,

음성 인식/번역은 단어들의 연속된 문맥을 이해해야 하는 시퀀스 데이터이기 때문에 KNN을 주로 사용한다.

출처: 앤드류 응(Andrew Ng) 교수님 머신러닝 강의

 

[ 지도 학습의 2가지 알고리즘 ]

왼쪽: ㅁ와 x로 명확히 구분(분류 모델) / 오른쪽: 회귀 모델

1) 분류(Classification) 모델: 데이터를 각각 완전히 구분할 수 있는 범주형(categorical) 데이터를 예측하는 것

- KNN, 결정트리, 랜덤 포레스트, SVM, Naive Bayes, 로지스틱 회귀, 신경망(Neural Networks)

* 이진 분류(로지스틱 회귀)

어떤 데이터에 대해 두 가지 중 하나로 분류할 수 있는 것

ex-1) Q: 이 글은 스팸이야?  A: [예 or 아니오]

ex-2) 로지스틱 회귀 : S자 곡선을 이용하여 선형 회귀의 분류 정확도를 향상(sigmoid 함수 사용)

선형 회귀식과 달리 최소값과 최대값이 0과 1 사이에 있어서 분류가 가능하다. 

* 다중 분류(softmax 함수 사용)

어떤 데이터에 대해 여러 값 중 하나로 분류할 수 있는 것

ex) Q: 이 동물은 뭐야?  A: [고양이 or 사자 or 강아지 or 기린]

 

2) 회귀(Regression) 모델: 어떤 데이터들의 특징(feature)을 토대로 연속값을 예측하는 것

- 선형 회귀

ex) Q: 어디 동네에 어떤 평수 아파트면 집 값이 어느정도야?

A: 어디 동네에 24평이면 얼마, 어디 동네에 32평이면 얼마정도.

  • 선형 회귀: 임의로 분포한 데이터를 하나의 직선으로 일반화 -> 각 데이터 별 값과 직선까지의 거리 분산을 최소화 하도록 직선의 모양을 결정, 이것을 최소제곱법이라 부르고 이를 이용해 1차함수(회귀식)을 만든다. 

빨간색로지스틱 회귀 함수는 최소값과 최대값이 수렴하기 때문에, 범주형으로 완전히 분리된 값을 구분하기 좋다.

 

 

2. 비지도 학습

: 라벨링(정답지)없이 컴퓨터 스스로 입력 데이터의 패턴을 학습 

답지를 주지 않으므로, 비지도 학습은 답을 맞히는 목적으로 학습하지는 않는다. 어떤 데이터들이 서로 비슷한지 그룹지어 주거나, 어떤 성질이 데이터를 잘 정의해주는 지를 판단하는 역할을 해준다.

비지도 학습은 어느 사진이 개인지, 고양이인지 알려주지는 않는다. (즉, 레이블링을 하지 않음) 

대신 알고리즘은 사진을 보고 어떤 사진끼리 비슷한지 파악하여 그룹으로 구분한다. 잘 구분된 집단은 사용자가 개인지 고양인지 판단할 수 있는 근거를 만들어주는 것이다. 

 

  • 군집 분석(Clustering) : 입력된 데이터들의 값에 따라 비슷한 성질을 파악하여 비슷한 것들끼리 군집으로 묶는 것 군집 분석 알고리즘에는 계층적 군집분석과 비계층적 군집분석이 있다. 

계층적 군집 분석

 

계층적 군집 분석은 한 군집이 다른 군집을 포함할 수 있는 구조이다. 

비계층적 군집 분석 K_means VS DB_SCAN

비계층적 군집 분석은 군집끼리 포함관계를 이루지 않고 서로 독립적인 한 군집으로 만드는 기법이다.

비계층적 군집 분석은 거리를 기반으로 군집화하는 K_means과 밀도를 기반으로 군집화하는 방법(DB_SCAN)이 있다.

K_means는 미리 몇 개의 군집을 만들 것인지 정의해줘야 한다.

신한카드는 고객 정보와 결제내역을 바탕으로 고객을 18가지로 분류하고 각 분류별로 특화된 카드 상품을 출시.

  • 주성분 분석(PCA) : 데이터 입력값의 특성을 분석해서 출력값을 더 잘 설명해줄 수 있는 새로운 독립적인 입력 특성을 추출하는 방법이다. 

댓글