BuNa_
IT Story
BuNa_
전체 방문자
오늘
어제
  • 분류 전체보기 (117)
    • CS (14)
      • 운영체제 (8)
      • 네트워크 (0)
      • Design Pattern (1)
      • OOP (4)
    • 대외활동 (24)
      • 우아한테크코스 (14)
      • DND 동아리 (4)
      • UMC 동아리 (5)
      • 해커톤 (1)
    • Android (29)
      • MVVM (2)
      • 스터디 (11)
      • Compose (3)
      • Unit Test (1)
    • Project (5)
      • 어따세워 (5)
      • DnD 과외 서비스 (0)
    • Programming (11)
      • Kotlin (4)
      • 파이썬 (7)
    • Git (1)
    • 인공지능 (22)
    • 백준 (8)
    • 기타 (3)
      • IntelliJ (1)
      • 일상 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 어따세워
  • External fragmentation
  • 원시값 포장
  • MVVM
  • 우테코 프리코스
  • 인공지능
  • 객체지향 생활체조
  • 백준
  • Android
  • 셀레니움
  • Baekjoon
  • 딥러닝
  • Compose
  • 우아한테크코스
  • 컴공선배
  • 인공지능 분류
  • K-means
  • 다이나믹 프로그래밍
  • Ai
  • 외부 단편화
  • k-means++
  • 파이썬
  • 우테코
  • 우테코 5기
  • 선형회귀
  • UMC
  • ViewModel
  • 안드로이드
  • RecyclerView
  • 운영체제

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
BuNa_

IT Story

[인공지능][개념] 선형회귀(Linear Regression)에 대해 알아보자
인공지능

[인공지능][개념] 선형회귀(Linear Regression)에 대해 알아보자

2021. 5. 10. 08:37

 

선형회귀 (Linear Regression)


 

 

 

이번 글에서는, 선형회귀 (Linear Regression)에 대한 개념을 알아보려고 한다.

 

 

선형회귀 그래프 방정식
선형회귀 그래프 (Linear Regression Graph)

 

선형회귀란, 위 그래프를 보면 알 수 있듯이, x와 y의 선형적인 관계를 구해 값을 예측하는 것이다.

x는 변수이므로 어떠한 값이든 적용될 수 있지만, 기울기 a와 절편 b는 모르는 상태이다.

그 말은 즉, 기울기와 절편의 값을 알게 된다면, 원하는 x값을 대입했을 때 y값을 얻을 수 있다는 말과 동일하다.

중학교 수학 과정에서 배운 방정식 (y = ax+b) 개념을 적용하여 이해하면 쉽다.

 

인공지능에서는 방정식에서의 기울기 a를 w(weight)라는 변수로 표현하며, 가중치 또는 계수라고 부르고,

b(bias)는 수학에서와 동일하게 절편이라고 부른다.

 

 

그렇다면 가중치와 계수를 어떻게 구할 수 있을까?

 

선형회귀에서는 가중치와 절편을 평균제곱오차 (Mean Squared Error - MSE)를 최소화하는 방법으로 구할 수 있다.

 

평균제곱오차 (Mean Squared Error-MSE) 그래프
평균제곱오차 (Mean Squared Error - MSE)

 

평균제곱오차란, 데이터의 오차를 제곱하여 데이터의 개수만큼 나눈 값을 의미한다.

조금 더 쉽게 이해할 수 있도록, 그래프에서 오차가 5인 점(dot)을 살펴보자.

실제 데이터의 값은 9이지만, 방정식은 4라고 인지하고 있다. 이럴 경우, 오차는 +5가 된다.

그 다음으로 오차가 -2인 점을 살펴보면, 실제 값은 3인데 방정식에서는 5라고 인지하고 있다.

 

이렇게 오차는 음수가 될 수도 있고, 양수가 될 수도 있기 때문에 오차에 제곱을 해주는 것이며,

오차의 평균치를 구하기 위해 데이터의 개수로 나누어 주는 것이다.

따라서, 이 오차를 최소화하는 방정식을 구한다면, 우리는 y값을 예측할 수 있는 최적의 모델을 만들어낼 수 있다.

 

 


 

 

어느정도, 이해가 됐다면 예시를 통해 선형회귀를 더 확실히 알아보도록 하자!

 

예를 들어, 많은 양의 생선 무게와 길이 *데이터셋(Data Set)을 가지고 있는 상태에서,

특정 생선의 길이만으로 이 생선의 무게가 몇g 인지 알아보고 싶다고 가정해보자.

*(데이터 모음을 데이터셋 (Data Set)이라고 한다.)

 

 

농어 이미지
'농어 (Perch)'

 

일반적으로 생선의 길이가 길 수록 무게는 많이 나갈 것이다.

즉, 비례관계라는 것이다.

그렇다면 생선의 길이를 구하는 임의의 방정식 (길이 = w * 무게 + b) 을 세울 수 있게 된다.

 

선형 방정식
생선의 길이를 구하는 임의의 방정식

 

 

생선의 데이터도 있을 뿐더러, 방정식 (길이 = w * 무게 + b) 까지 알고 있으니, 이제 인공지능에게 학습을 시켜 평균제곱오차를 최소화하는 최적의 w(가중치)와 b(절편)를 찾아내기만 하면 된다.

그럼 자연스럽게 생선의 무게만으로 길이까지 예측할 수 있을 것이다.

파이썬의 케라스 라이브러리에서는 데이터셋을 입력값으로 주면, 학습을 통해 최적의 가중치와 절편을 찾아주는 함수를 제공한다.

 

다음 글에서는, 생선의 데이터를 통해 직접 생선의 무게를 예측할 수 있는 모델을 만들어보도록 하자.

 

 

 

(이해가 다소 힘들거나, 틀린 부분이 있다면 댓글 부탁드리겠습니다! 😊)

💖댓글과 공감은 큰 힘이 됩니다!💖

저작자표시 비영리 변경금지 (새창열림)

'인공지능' 카테고리의 다른 글

[인공지능][개념] 로지스틱 회귀(Logistic Regression)는 무엇이며, 시그모이드(Sigmoid) 함수는 왜 사용하는 것일까?  (3) 2021.05.13
[인공지능][실습] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression)를 활용하여 생선의 무게를 예측해보자  (1) 2021.05.12
[인공지능][개념] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression) + 규제(Regularization)에 대해 알아보자  (0) 2021.05.11
[인공지능][실습] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자  (4) 2021.05.10
[인공지능] 싸지방 코딩 학습주제 정하기  (6) 2021.05.07
    '인공지능' 카테고리의 다른 글
    • [인공지능][실습] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression)를 활용하여 생선의 무게를 예측해보자
    • [인공지능][개념] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression) + 규제(Regularization)에 대해 알아보자
    • [인공지능][실습] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자
    • [인공지능] 싸지방 코딩 학습주제 정하기
    BuNa_
    BuNa_
    안드로이드 개발자를 향해 달리고 있는 공대생입니다! 🧑 Android, Kotlin, Java, Python 등 학습하고 있는 내용과 프로젝트를 주로 업로드하고 있습니다. 지적과 조언은 언제나 환영입니다!😊 github : https://github.com/tmdgh1592

    티스토리툴바