이전 포스팅에서 머신러닝은 학습방식에 따라 지도학습, 비지도학습 그리고 강화학습이라는
3가지로 카테고리로 분류할 수 있다고 했다.
이번 포스팅에서는 지도학습의 목표 2가지에 대해서 정리해보고,
각 목표를 달성하기 위해 사용하는 주요 알고리즘을 정리한다.
추가적으로!
지도학습 소속 알고리즘들은 활성화함수와 손실함수라는 개념을 사용하는데,
우리는 이 함수들을 문제의 특성에 따라 (달성하려는 목표에 따라) 적절하게 선별해서 사용해야한다.
활성화함수와 손실함수의 개념에 대해서는 다음에 자세하게 다루도록 하고,
이번 포스팅에서는 각 문제별로 어떤 함수들이 적합한지 정리하겠다.
지도학습의 목표는 2가지로 나눌 수 있다.
회귀와 분류이다.
회귀는 연속적인 숫자(실수)를 예측하는 것을 말한다.
반면 분류는 미리 정의된, 가능성이 있는 여러 클래스 중 하나를 예측하는 것을 의미한다.
분류 문제는 '과일' '자동차' 처럼 딱딱 떨어지는 결과값을 예측하는 반면,
수치 예측 문제는 23.5, 32.8 같이 연속성 있는 숫자를 예측한다.
+) 사실 분류 문제도 수치 예측 문제의 일부 아닐까..? 분류를 하기 위해서는 특정 레이블일 확률을 구하는 수치 예측이 선행되어야하기 때문이다. 분류 문제는 각 클래스일 확률 구하기(수치예측) + 가장 높은 확률을 가진 레이블 구하기 형태로, 수치예측에서 한 단계가 추가된 형태가 아닐까 싶다..
각 분야별로 좀 더 자세하게 살펴보자.
| 1. 회귀 (Regression)
1) 개념 및 예시
회귀는 연속하는 숫자를 예측하는 분야이다.
예컨대, '기온 예측'이나 '당뇨병 환자의 1년 후 병의 진전된 정도 예측' 등이 있을 수 있다.
구름의 양 | 습도 | 온도 |
적음 | 20% | 32.5 |
많음 | 50% | 23.5 |
... | ... | ... |
많음 | 30% | ??? |
2) 대표 알고리즘 - 선형회귀(Linear Regression)
선형회귀는 머신러닝 알고리즘 중 가장 간단한 알고리즘 중 하나이다.
선형회귀 = 선형 + 회귀이다.
이게 무슨 뜻일까?
우선, 선형회귀는 1차함수로 표현할 수 있다.
1차 함수에 대해서 기억하는가?
기울기가 a이고, 절편이 b인 1차함수는 아래와 같이 표현할 수 있다.
y = ax + b
어떤 모양인가?
길쭉한 선 모양이다.
길쭉한 선 모양(선형) 으로 수치를 예측(회귀)한다고 해서 붙여진 이름이 바로 선형회귀이다.
수치를 예측한다는 것은 주어진 입력값(x)에 대한 출력값(y)을 구한다는 의미이다.
미지의 x에 대한 y를 구하기 위해서는 무엇을 필요할까?
바로 절편(b)과 기울기(a)값을 알아야한다.
그래서 선형회귀 알고리즘은 '1차함수에서 절편과 기울기를 찾는 방법'이다.
구체적으로 어떻게 절편과 기울기를 찾는지에 대해서는 다음 포스팅에서 다루기로 하고,
이번 포스팅에서는 선형회귀에서는 어떤 활성화함수와 손실함수를 쓰는지 언급만 하겠다.
3) 활성화함수와 손실함수
활성화함수 | 손실함수 |
사용하지 않음 | 제곱오차 함수 |
| 2. 분류 - 이진분류(Binary Classification) 와 다중분류(Mulitple Classification)
1) 개념 및 예시
분류 문제는 크게 이진분류와 다중분류로 나눌 수 있다.
이진분류는 2가지 중 하나로 분류하는 것이다.
예컨대, 종양 샘플이 악성이냐 정상이냐를 분류하는 것이 있다.
종양의 크기 | 종양의 무게 | 악성이냐 ? 정상이냐 ? |
15 | 0.5 | 악성 |
10 | 0.2 | 정상 |
... | ... | ... |
20 | 0.5 | ??? |
다중분류는 3가지 이상 중 하나로 분류하는 것이다.
예를 들면, 특정 이미지가 자동차냐 새냐 아니면 강아지냐로 분류하는 것이 있다.
키 | 몸무게 | 결과 |
166 | 52 | 정상 |
152 | 30 | 미달 |
172 | 98 | 과체중 |
... | ... | ... |
158 | 42 | ??? |
2) 주요 알고리즘 - 로지스틱 회귀(단일층 신경망)과 다층신경망
분류 문제에서는 로지스틱 회귀(단일층 신경망)와 다층신경망 알고리즘을 주로 사용한다.
신경망의 개념에 대해서는 아래 포스팅에서 자세하게 다뤘다.
로지스틱 회귀를 구현하면 입력층과 출력층의 형태로 표현되는데,
이렇게 입력층과 출력층만 있는 경우를 단일층 신경망이라고 한다.
다층신경망은 입력층과 출력층 사이에 은닉층이 있는 구조이다.
로지스틱 회귀 알고리즘이 여러 번 사용되는 경우라고 볼 수 있다.
① 완전 연결 신경망이란?
다층신경망 중에서도 입력층과 은닉층, 은닉층과 출력층 사이의 뉴런들이
모두 연결되어 있으면 완전 연결(fully-connected) 신경망이라고 한다.
완전연결신경망은 다층퍼셉트론으로도 불리고,
뉴런들이 빠짐없이 연결되어 있어 밀집연결(densely-connected) 신경망
또는 층과 층 사이의 데이터 흐름이 한쪽 방향으로만 진행되는 특징이 있어
피드 포워드(feed foward) 신경망으로도 불린다.
② 이진분류와 다중분류 알고리즘의 구분기준
이진분류와 다중분류를 구분하는 기준은 출력층 뉴런의 수이다.
출력층에 뉴런이 1개 있으면 이진분류 알고리즘,
2개 이상이면 다중 분류 알고리즘이다.
마지막으로 분류 구분에 따라 어떤 활성화함수와 손실함수가 적합한지 정리해보겠다.
3) 활성화 함수와 손실함수
활성화함수 | 손실함수 | |
이진분류 | 시그모이드 함수 | 로지스틱 손실 함수 |
다중분류 | 소프트맥스 함수 | 크로스 엔트로피 손실 함수 |
이렇게 지도학습의 2가지 목표인 회귀와 예시에 대해서 살펴보았다.
다음 포스팅에서 선형회귀 알고리즘에 대해서 구체적으로 살펴보겠다.
'Deep Learning > [Books] Do it! 정직하게 코딩하며 배우는 딥러닝 입문' 카테고리의 다른 글
[모델 구축] 경사하강법을 구현하는 방법 - ② 손실함수 미분하기 (7) | 2020.06.29 |
---|---|
[모델 구축] 경사하강법을 구현하는 방법 - ① 직접 변화율 계산하기 (9) | 2020.06.25 |
5. 머신러닝, 딥러닝 구현을 위한 기초 패키지 2가지 (numpy, matplotlib) (2) | 2020.06.18 |
4. 머신러닝, 딥러닝 구현 위한 개발 툴 2가지 (Jupyter notebook, Colab) (3) | 2020.06.15 |
3. 머신러닝 학습방식 3가지 (지도학습, 비지도학습, 강화학습) (7) | 2020.06.11 |