일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 인공지능
- webhacking.kr
- 리버싱 문제
- php
- 알고리즘
- 회귀 수식
- 어셈블리어
- 백준
- 넘파이
- 자바스크립트
- 리버싱 워게임
- 웹해킹
- webhacking
- MySQL
- 해킹
- C언어
- abex crackme
- 백준 알고리즘
- CodeEngn
- writeup
- 머신러닝
- 리버싱
- 워게임
- 리액트
- 보안
- 웹
- sql injection
- 컴퓨터 구조
- html
- 리눅스
- Today
- Total
인공지능 개발일지
[머신러닝] 회귀의 이해(선형 회귀, 다항 회귀, 다중 회귀)와 시그모이드 함수의 역할 본문
안녕하세요! 이번 시간에는 선형 회귀와 다항 회귀에 대해 알아봅시다.
선형 회귀와 다항 회귀에 대해 알아보기 전에 먼저 회귀가 전체 머신러닝 구조도 중에 어디에 있는지 알아봅시다.
(저는 학습을 할 때 전체 중에 어디를 배우고 있는지 아는 것을 중요하게 생각합니다)
머신러닝은 크게 지도 학습, 비지도 학습, 강화 학습으로 나뉘는데 우리는 그중에서 지도 학습을 봅시다.
지도 학습은 아래와 같이 분류할 수 있습니다. 분류는 라벨이 이산적인 분포일 때 사용하고, 회귀는 라벨이 연속적인 분포일 때 사용합니다. 그리고 이진 분류는 정답(라벨)이 둘 중 하나일 때 사용하고 멀티 라벨 분류는 정답이 여러 개 중 하나일 때 사용합니다. 비유하면 정답의 형태가 분류는 객관식(선택), 회귀는 주관식이라고 할 수 있겠네요
그럼 이제 회귀를 자세히 봅시다.
1. 회귀(Regression)란?
회귀란 둘 이상의 변수 간의 관계를 나타내는 선을 긋는 것이 목적입니다. 그 데이터를 가장 잘 나타내는 선을 긋는다고도 하죠. 또한 그 선을 통해 정답을 예측하는 일을 합니다. 아래 예시를 봅시다. 예를 들어 어느 데이터의 분포를 그래프에 찍으면 아래 파란 점과 같이 나올 때 이 데이터들을 가장 "잘 나타내는 선"을 긋는 것이 목적입니다.
그래서 이 선을 통해 새로운 Unknown Data가 들어왔을 때 지금까지의 분포는 이 위치의 값은 이 정도 될 것이다. 하고 예측을 할 수가 있겠죠?
그럼 이때 선은 어떻게 그을까요? 그 선은 수식을 통해서 그을 수가 있습니다. 물론 우리가 수식을 이해하면 사이킷런의 LogisticRegressioin 같은 클래스가 그어줍니다. 그래도 우리는 어떻게 이 함수가 값을 예측하는지 알아야겠죠? 바로 봅시다. 먼저 회귀는 크게 아래와 같이 3가지로 나눌 수 있습니다.
그전에 아래 식에서 나오는 x, y의 용어는 아래와 같이 정리할 수 있습니다.
우선 x는 입력 값으로 다른 x와 무관하므로 독립 변수예요. 그리고 보통 데이터의 feature에 해당해서 설명변수라고도 해요. y는 x값에 의해 값이 결정되기 때문에 종속 변수예요. 그리고 구하려는 정답이기 때문에 목적 변수라 고도해요.
변수 | 뜻 |
x | 독립 변수, 설명 변수, 입력 값(데이터의 feature) |
y | 종속 변수, 목적 변수, 예측하려는 정답(target,class,label) |
우선 다중 회귀 분석과 다항 회귀 분석의 용어가 비슷해서 많이들 헷갈리시는데 다중 회귀 분석은 여러 독립변수 x가 x1, x2, x3과 같이 더해져서 연속적인 곡선을 표현할 수 있습니다. 그럼 차례로 봅시다.
- 단순 회귀 분석(선형 회귀)
단순 회귀는 일반적으로 선형 회귀라고 불리고 수식은 아래와 같습니다. 선형 회귀라는 이름에 걸맞게 직선으로 데이터를 표현합니다. 아래 식에서 w는 Weight로 가중치, x는 입력 값 그리고 b는 bias로 편향을 뜻합니다.
따라서 해석하면 가중치를 고려하여 입력 값을 통해 정답을 예측한다고 할 수 있습니다.
- 다중 회귀 분석
다음으로 다중 회귀 분석은 단순 회귀에서 독립 변수가 2개 이상으로 늘어나면 다중 회귀 분석이 됩니다.
아래 식에서 x, w, y의 의미는 위와 동일합니다. 그러나 입력 변수가 늘어났다는 점에서 여러 특성을 고려하여 정답을 예측하는 것을 뜻합니다. 여기서 x는 데이터의 feature가 들어가게 됩니다. 가령 feature 칼럼이 3개라면 아래 입력 변수도 x1, x2, x3까지 세 개의 독립변수가 입력으로 들어가게 됩니다.
예를 들어서 시험 성적을 예측하기 위해 공부 시간과 푼 문제 개수를 고려해서 시험 성적을 예측한다고 하면
이때 공부시간과 푼 문제 개수가 입력 변수 x1, x2가 되고 이때의 결과 값인 성적이 y가 됩니다.
즉 정답 y를 구하는데 관련된 여러 특성 x를 고려하는 간단한 원리를 식으로 녹여낸 게 위 식이 됩니다.
이때 앞에 붙은 w는 마찬가지로 가중치로 입력 변수의 중요도를 고려하여 결과를 산출해낼 수 있게 해 주고
실제 코드에서 이는 기계가 계산을 해줍니다.
- 다항 회귀 분석(곡선)
마지막으로 다항 회귀는 곡선으로 x, y 간의 관계를 표현할 수 있어서 복잡한 함수의 회귀선을 그을 때 사용합니다.
그래서 정리하면 회귀에서 독립변수 X를 통해 종속변수 y를 예측한다고 할 수 있겠네요.
이때 f(x)의 식이 회귀 식이 됩니다. 그럼 여기까지 회귀란 무엇인가, 그리고 회귀의 종류에 대해 알아봤습니다.
시그모이드 함수
그러면 이제 다음으로 활성 함수의 일부인 시그모이드 함수에 대해 알아봅시다. 보통 시그모이드 함수라고 하면 로지스틱 함수를 가르키는데 로지스틱 함수는 음의 무한대부터 양의 무한대까지의 실수값을 0부터 1사이의 실수값으로 1 대 1 대응시키는 시그모이드함수에요.
시그모이드 함수의 수식과 형태는 아래와 같습니다. 여기서 y값의 범위를 잘 보시면 0에서 1 사이로 이루어져 있습니다.
그래서 입력 값으로 불특정 범위의 x가 들어가면 0에서 1 사이의 값으로 정규화해주는 역할을 합니다.
그래서 정리하면 아래와 같이 불특정 한 범위의 입력 값이 들어와도 시그모이드 함수는 이를 0에서 1 사이의 표준화된 값으로 압축해준다고 할 수 있습니다. 이는 실제 사이킷런의 Logisticregression이라는 분류 메서드에서 시그모이드가 동작하고 있는 방식입니다. 이에 대한 자세한 예는 조만간 예제와 함께 들고 오겠습니다.
그럼 지금까지 회귀의 종류와 그에 대한 개념과 수식 그리고 시그모이드 함수와 그의 역할에 대해 알아보았습니다.
궁금한 점이나 수정할 부분이 있다면 얼마든지 댓글로 의견을 주시면 감사하겠습니다.
그럼 좋은 하루 보내세요!!
'인공지능 > 머신러닝' 카테고리의 다른 글
[기계학습] 레이블의 분포도를 유지하여 데이터 분리와 교차검증 Stratified K-Fold,cross_val_score (0) | 2022.05.22 |
---|---|
[머신러닝] 로지스틱 회귀(Logistic Regression)으로 분류 실습 - 생선 종류 예측 (0) | 2022.05.07 |
[머신러닝] fit(X,y)에서 변수 X,y의 의미와 지도학습의 흐름 및 머신러닝 용어정리 (data feature,data class) (2) | 2022.04.10 |
[머신러닝] Numpy 기본 사용법 총 정리 (0) | 2021.10.08 |
[머신러닝] AI 공부 방황기 겸 정리 (0) | 2021.08.23 |