티스토리 뷰

반응형

Chapter 11. 예측 모델 만들기 실습(2) - 머신러닝을 이용한 선형 회귀 모델

머신러닝 코드 및 결과 해석 설명

머신러닝 코드 실행 결과?
  - 기울기
  - Y절편

전통적 회귀와 비교하는 것이 포인트

# 기계학습용 라이브러리인 텐서플로를 임포트 합니다.

# 학습도구 : 예제 데이터
 -> 데이터 지정. 기울기=1, Y절편=0

# parameter : 기울기(slope)와 Y절편(intercept)
 -> 전통적인 회귀와 달라지는 지점 (여기부터!)
 -> 기울기와 Y절편에 랜덤 값을 지정

# 플레이스 홀더 선언. 지금은 뭔지 몰라도 됩니다

# 어떤 모델 만들겁니까? 네 단순선형회귀니까 1차방정식
  -> 학습 목적 설정

# 학습을 진행하려면 내가 현재까지 얼마나 틀리고 있는지 알아야 합니다.
# 그 틀린정도를 머신러닝에서는 cost(또는 loss) 라고 부릅니다. 이걸 정해줘야 학습을 하죠?
  -> 핵심 중의 핵심 코드
  -> 랜덤값으로 최적의 모델을 한방에 구할 수가 없다!
  -> 최초의 회귀선이 얼마나 틀렸는지 확인
  -> model=예측값, Y=실제값
  -> (예측값 - 실제값)를 제곱하고 평균을 구함
  -> MSE. 최소제곱법 이용
  => cost 최소 = 최적의 모델

# 틀린정도를 최소화 하도록 합니다. 경사하강 알고리즘을 사용합니다.
  -> cost를 최소로 하도록 Parameter 조정
  -> 경사하강 알고리즘.

#세션을 키고 초기화합니다. 지금은 이게 뭔지 모르셔도 됩니다

# 반복문을 돌리기 위해 변수를 선언해 둡니다. 이부분도 여러분들이 지금은 모르셔도 됩니다

# 자. 학습을 시켜 보겠습니다.
  -> range(2001) : 2000번 반복 학습
  -> (Paramater 변경 > Cost 감소 > ... ) X 2000   >   MSE 최소값

결과 분석
  - e-05 : 소수점을 왼쪽으로 5번 움직여라
  - cost가 줄어듬
  - X가 10일 때, Y도 10에 근사한 값이 출력됨
  -> Y = X

 

머신러닝을 이용한 예측

#1. 실행을 할 때마다 생기는 차이
  - 랜덤한 값을 넣고 실행을 하기 때문에 실행할 때마다 경미한 차이가 발생할 수 있음
  - 하지만 최적의 값에 근사한 값이 출력됨

#2. 아무도 알 수 없는 최적의 학습 횟수
  - 학습 횟수 ↓  ‥‥‥‥>  최적에 도달 X
     => 언더피팅(Under fitting)
  - 학습 횟수 ↑  ‥‥‥‥>  일반화 X
     => 오버피팅(Over fitting)

#3. 데이터 전처리 없이는 원하는 결과도 없다!
  - 오버슈팅(Overshooting) : cost가 너무 커서 발산해버리는 경우 (최소값으로 수렴하지 못함)

#4. 예측 모델은 인과관계를 알려주지 않는다!

 

정리

1. 전통적인 회귀와 머신러닝의 공통점
  - 목표 : 최적의 방정식, Parameter를 찾는 것
  - 알고리즘 : 최소제곱법(LMS) 사용
2. 전통적인 회귀와 머신러닝의 차이점
  - 구현 : 사람이 유도한 방정식 vs. 기계가 노가다로 직접 학습

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함