에프[ f( x ) ] = ∫ㅏ비에프( x ) g( x ) d엑스
지( x )에프나는( x ) , i = 0 , … , M 에프[ f나는( x ) ]에프[ f( x ) ] = Δ x [ f0지02+ f1지1+ . . . + f엔− 1지엔− 1+ f엔지엔2]
에프[ f( x ) ]Δ x= y= f0지02+ f1지1+ . . . + f엔− 1지엔− 1+ f엔지엔2
에프0= a , f 1= f( x1) , . . . , f 엔− 1= f( x엔− 1) , f 엔= b ,
a < x1< . . . < x엔− 1< b , Δ x = x j + 1− x제이
미디엄에프나는( x ) , i = 1 , … , M 나는에프[ f나는( x ) ]Δ x= y나는= f나는 0지02+ f나는 1지1+ . . . + fI , N− 1지엔− 1+ f나는 N지엔2
지0, … , g엔엑스= ⎡⎣⎢⎢⎢⎢에프00/ 2에프10/ 2…에프미디엄0/ 2에프01에프11…에프미디엄1…………에프0 , N− 1에프1 , N− 1…에프미디엄, N− 1에프0 N/ 2에프1 N/ 2…에프미디엄엔/ 2⎤⎦⎥⎥⎥⎥
와이= [ y0, … , y미디엄]
지( x )
import numpy as np
def Gaussian(x, mu, sigma):
return np.exp(-0.5*((x - mu)/sigma)**2)
x ∈ [ a , b ]
x = np.arange(-1.0, 1.01, 0.01)
dx = x[1] - x[0]
g = Gaussian(x, 0.25, 0.25)
우리의 훈련 기능으로 다른 주파수를 가진 사인과 코사인을 보자. 목표 벡터 계산
from math import cos, sin, exp
from scipy.integrate import quad
freq = np.arange(0.25, 15.25, 0.25)
y = []
for k in freq:
y.append(quad(lambda x: cos(k*x)*exp(-0.5*((x-0.25)/0.25)**2), -1, 1)[0])
y.append(quad(lambda x: sin(k*x)*exp(-0.5*((x-0.25)/0.25)**2), -1, 1)[0])
y = np.array(y)/dx
이제 회귀 행렬
X = np.zeros((y.shape[0], x.shape[0]), dtype=float)
print('X',X.shape)
for i in range(len(freq)):
X[2*i,:] = np.cos(freq[i]*x)
X[2*i+1,:] = np.sin(freq[i]*x)
X[:,0] = X[:,0]/2
X[:,-1] = X[:,-1]/2
선형 회귀:
from sklearn.linear_model import LinearRegression
reg = LinearRegression().fit(X, y)
ghat = reg.coef_
import matplotlib.pyplot as plt
plt.scatter(x, g, s=1, marker="s", label='original g(x)')
plt.scatter(x, ghat, s=1, marker="s", label='learned $\hat{g}$(x)')
plt.legend()
plt.grid()
plt.show()
지( x )
from scipy.signal import savgol_filter
ghat_sg = savgol_filter(ghat, 31, 3) # window size, polynomial order
plt.scatter(x, g, s=1, marker="s", label='original g(x)')
plt.scatter(x, ghat, s=1, marker="s", label='learned $\hat{g}$(x)')
plt.plot(x, ghat_sg, color="red", label='Savitzky-Golay $\hat{g}$(x)')
plt.legend()
plt.grid()
plt.show()
에프[ f( x ) ]에프( x )에프[ f( x ) ] = ∫ㅏ비패 ( F( x ) ) d엑스
에프0, f1… , f엔엑스에프[ f( x ) ] = ∫ㅏ비패 ( F( x ) , f'( x ) ) d엑스
에프'에프0, f1… , f엔엘에프0, f1… , f엔아마 선형 네트워크처럼 쉽지는 않지만 신경망이나 SVM과 같은 비선형 방법으로 학습하려고 시도 할 수 있습니다.