본문 바로가기

파이썬 프로그래밍59

21. 경사하강법의 개선 - Adam 저번 시간에 단순경사하강법을 개선한 Momentum과 RMSprop를 알아보았다. Momentum은 기울기를 변화시키는 방법으로 지역 최소점에 빠지지 않게 도와주었고 RMSprop는 학습률을 변화시키는 방법으로 진동을 줄여 빠른 시간내에 수렴할 수 있도록 도와주었다. 이 둘을 합치면 더 좋은 성능을 낼 수 있지 않을까? Adam은 Momentum과 RMSprop를 합친 최적화 방법이다. 즉 Momentum의 직진성과 RMSprop의 감쇠가 합쳐진 것으로 생각해 볼 수 있다. 수식을 보자 Adam 방법은 위의 수식에서 볼 수 있듯이 Momentum과 RMSprop를 합친 경사하강법이다. 그런데 이 식을 그대로 사용하다간 작은 문제가 생긴다. 바로 초기값 v = 0, s = 0이 문제다. 초기값에 따라 지수.. 2022. 2. 5.
20. 경사하강법의 개선 - Momentum, RMSprop 지난 시간에 단순 경사하강법은 수렴 가능성이 생각보다 낮다는 것을 보여주었다. 이번 시간은 경사하강법을 개선하여 빠르게 수렴하면서 지역 최소점에 수렴하지 않도록 할 수 있는지 보여줄 것이다. 저번 포스트에서 처럼 아래와 같은 오차 함수에 대해 단순 경사하강법을 진행하였다. 단순 경사하강법(GD)로는 시작 위치 -8일 때 움직임은 다음과 같다. (1) learning rate = 1 이상부터 지역최소점 통과 (2) learning rate = 1.4 이상부터 전체 최소점 또는 지역 최소점 근처에서 진동하고 제대로 수렴하지 않는다. (3) learning rate = 2.2 이상부터 overflow, 튕겨버린다. 1. Momentum 일반적으로 물리에서 Momentum(모멘텀) 이라 함은 '운동량'을 뜻한다.. 2022. 2. 4.
19. 경사하강법과 단순 경사하강법의 문제점 경사하강법(Gradient descent)은 오차함수의 기울기를 구하고 기울기의 절대값이 낮은 쪽으로 계속 이동시켜 오차를 최소화하는 방법이다. 지금까지 사용한 경사하강법 방법은 아래와 같이 오차함수의 기울기를 구하고 Weight값과 Bias 값을 수정하였다. for i in range(Epochs): dL_dW1, dL_dB1, dL_dW2, dL_dB2, dL_dW3, dL_dB3 = loss_gradient(inputs, targets, W1, B1, W2, B2, W3, B3) W1 = W1 + -1*learning_rate * dL_dW1 B1 = B1 + -1*learning_rate * dL_dB1 W2 = W2 + -1*learning_rate * dL_dW2 B2 = B2 + -1*lea.. 2022. 1. 28.
지수가중이동평균(Exponentially Weighted Moving Average)-2 이번 시간에는 2017년 서울의 1년 평균 기온 그래프를 분석하고 numpy를 이용해 표현하는 방법을 알아볼 것이다. 이 글을 처음 읽는다면 지수가중이동평균(Exponentially Weighted Moving Average)-1 을 먼저 읽고 오길 바란다. (같이 보면서 읽는다면 더 좋다) 위 자료는 Daily Temperature of Major Cities 라는 자료에서 발췌한 것이다. 1. 데이터 확인 위 자료를 내려받고 임포트한 다음 matplotlib로 그려보자. 코드는 아래와 같다. import numpy as np import matplotlib.pyplot as plt from numpy import genfromtxt data = genfromtxt('2017_seoul_temperat.. 2022. 1. 24.