_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

TIL | 10.7.금 [머신러닝]
woncoding/TIL

TIL | 10.7.금 [머신러닝]

2022. 10. 11. 15:24

- 실전 머신러닝 적용

 

1. 머신러닝

 

[문제]

모든 문제에는 input값과 output값이 정의되어야 한다.

 

 

[알고리즘]

알고리즘이란? 어떤 문제를 해결하기 위한 공식이나 해결책을 말한다.

알고리즘을 통해 결과값을 도출해낼때 예측값을 벗어나는 경우엔 우리가 흔히 아는 알고리즘으로 해결책을 찾지 못한다. 이때 사용하는 것이 머신러닝 기술이다.  (학습을 통해 결과값을 도출)

 

 

[문제해결방법]

  • 회귀
    • 출력값이 연속적일때 (주로 소수점 단위로 연속되는 값을 도출해낼 때)
  • 분류
    • 출력값이 비연속적일때
    • Binary Classification (주로 T/F 값으로 나뉨)
    • Multi-lable Classification

👉 회귀와 분류 중 어떤 방법을 쓸것인가? 에 따라 머신러닝 문제 해결의 모델 설계방법이 달라진다.

 

 

[머신러닝 학습 방법]

  • 지도 학습 : 정답을 알려주면서 학습시키는 방법
  • 비지도 학습 : 정답을 알려주지 않고 군집화(Clustering)하는 방법
  • 강화 학습 : 주어진 데이터없이 실행과 오류를 반복하면서 학습하는 방법 (aka. 알파고)

 

 

 


 

 

2. 회귀 (머신러닝의 문제해결방법)

 

[선형회귀 | Linear Regression]

데이터의 관계가 서로 직선 형태를 띠는 함수로

1차 함수의 형태로 가설을 만들어 정닶값에 최대한 정확하게 접근 할 수 있도록 하는 문제 해결방법

 

  • 가설 : H(x) = Wx + b
  • 손실함수(cost function) : 가설과 정답값 간의 거리 차이 → 손실이 높을 수록 오차도 크다는 의미

👉 a의 제곱값 = 손실

→ a의 제곱값 즉, 손실 or 오차 값을 출여가면서 학습해 나아가는 것이 선형 회귀의 문제 해결 방식

 

 


 

 

[다중선형회귀 | Multi-variable linear regression]

선형회귀는 input값이 1개 였다면 다중선형회귀는 input값이 2개 이상인것을 말한다.

1차 함수 형태가 아닌 2차, 3차원 형태의 그래프로 나타 낼 수 있음.

 

  • 가설 : H(x_1, x_2, ..., x_n) = w_1x_1 + w_2x_2 + ... + w_nx_n + b
  • 손실함수(cost function) : 가설과 정답값 간의 거리 차이 → 손실이 높을 수록 오차도 크다는 의미

 

 


 

 

 

[경사 하강법]

문제 해결의 목표는 손실함수를 최소화 시키는 것.

그럼, 손실 함수의 그래프가 있다면 제일 적은 손실이 나는 구간이 제일 정답값에 다가갔다는 의미 (+ 학습 종료)

  • Learning rate : 제일 적은 손실이 나는 구간을 찾을때 줄여나아가는 비율을 나타낸다
    • 비율이 너무 작다면 제일 적은 손실이 나는 구간을 찾는데 너무 오래 걸릴것이고, 비율이 너무 크다면 제일 적은 손실이 나는 구간을 왔다 갔다 지나쳐가면서 진동현상이 발생 할 수 있다.

 

→ 목표는 이 손실 함수의 최소점인 Global cost minimum을 찾는 것이므로, Global cost minimum을 찾기 위해 좋은 가설과 / 좋은 손실함수를 만들어 기계를 잘 학습시키는 것이 머신러닝이라고 할 수 있다.

 

 

 

 

 

 


 

 

 

3. 데이터 셋

학습 | Training set 머신러닝 모델을 학습시키는 용도로 사용 되는 데이터 (80%)
검증 | Validation set 머신러닝 모델 성능 검증 / 튜닝에 이용되는 데이터 (20%)
테스트 데이터 | Test set  정답이 없는 실제 환경에서의 평가 데이터 (실제 유저의 환경)

 

 

 

 

 

 


 

 

 

+ Google colab | 선형 회귀 실습

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

 

 

 

 

 

 

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

'woncoding > TIL' 카테고리의 다른 글

TIL | 10.12.수 [머신러닝 / Django🐢]  (0) 2022.10.12
TIL | 10.11.화 [Django🐢]  (0) 2022.10.11
TIL | 10.6.목 [Django Project]  (0) 2022.10.06
TIL | 10.5.수 [Django Project]  (0) 2022.10.06
TIL | 10.4.화 [Django Project]  (0) 2022.10.05
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 10.12.수 [머신러닝 / Django🐢]
    • TIL | 10.11.화 [Django🐢]
    • TIL | 10.6.목 [Django Project]
    • TIL | 10.5.수 [Django Project]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바