之前總是先上手一些比較高級(jí)的神經(jīng)網(wǎng)絡(luò)算法,CNN化焕,RNN等萄窜。可是總覺(jué)得有些知識(shí)原理總是羈絆著我進(jìn)一步理解撒桨。這才意識(shí)到基礎(chǔ)的重要性查刻。所以,就一點(diǎn)一點(diǎn)的從基礎(chǔ)數(shù)學(xué)最小二乘法開(kāi)始凤类。這里用到的就是咱們小學(xué)或初中學(xué)到的知識(shí)穗泵。我們也都知道深度學(xué)習(xí)就是矩陣的各種計(jì)算。所以這里我們將那些知識(shí)和大學(xué)的線性代數(shù)進(jìn)行簡(jiǎn)單結(jié)合谜疤。
我們先了解向量之間的投影
IMG_20170814_202945.jpg
比如這張圖
已知:這是2維空間佃延,A[3, 1],? B[1, 3], 求B到A最短距離的點(diǎn)(也就是B到A的投影P的向量)。
我們可以先用A來(lái)表示P:P = Ax? = [3, 1].T * x? (x 是 A的線性組合的系數(shù)茎截,是個(gè)變量苇侵,就是我們要求的實(shí)數(shù))
若使BP距離最短,則使||P - B||^2最小就行企锌,即 使||A
x - B||^2最小榆浓。
化解:
||Ax - B||^2 = (Ax)^2 - 2AB*x + B^2
對(duì)之求導(dǎo)并使之等于0,求最小值x
得:
2A^2x - 2AB = 0
即
A^2x = AB
因?yàn)檫@是矩陣運(yùn)算撕攒,左成A^2的逆
則寫(xiě)成x = (A2)(-1) * AB
則P = A * x = A * (A2)(-1) * AB
代碼實(shí)現(xiàn)
注意區(qū)別點(diǎn)乘和叉乘
importnumpyasnpfrommatplotlibimportpyplotaspltA = np.array([[3], [1]])B = np.array([[1], [3]])P = A * np.linalg.inv(A.T.dot(A)) * (A.T.dot(B))# print(P)plt.plot(A[0], A[1],'k-o')plt.plot(B[0], B[1],'r-o')plt.plot(P[0], P[1],'r-o')plt.plot([B[0], P[0]], [B[1], P[1]],'y-o')plt.plot([0, A[0]], [0, A[1]],'k-')plt.ylim(0,3)plt.xlim(0,3.5)plt.text(A[0]+0.1, A[1],'A')plt.text(B[0], B[1]-0.1,'B')plt.text(P[0]+0.1, P[1]+0.1,'P')plt.show()
F44F3FD6-961B-41ED-A73B-BCAEF816EBE2.png
給定一堆點(diǎn)陡鹃,求一條線來(lái)擬合這些點(diǎn)
這里我們用到兩點(diǎn)的距離,比如上例子B向量到P向量的距離就是|B-P|
比如有n個(gè)點(diǎn)(X1, Y1), ..., (Xn, Yn)
我們選取特征函數(shù) y = ax^2 + bx + c
(
特征函數(shù)的選取可以任意函數(shù)抖坪,根據(jù)經(jīng)驗(yàn)選取特征函數(shù)萍鲸,比如也可以是y = ax^2 + bx + csinx+ de^2 + f等
)
那我們就有以下矩陣表示:
1502725546795.jpg
代碼實(shí)現(xiàn):
importnumpyasnpfrommatplotlibimportpyplotaspltx = np.linspace(-1,1,100)y =2.3*x*x +3.5*x +0.04y_ = y + np.random.rand(len(x)) -0.5A = []times =2foriinrange(times+1):? ? A.append(x**(times-i))? ? A = np.array(A).TB = y_.reshape(y_.shape[0],1)w = np.linalg.inv(A.T.dot(A)).dot(A.T).dot(B)pred_y = A.dot(w)print(w)plt.scatter(x, y_)plt.plot(x, y,'k-')plt.plot(x, pred_y,'r-')plt.show()
結(jié)果系數(shù)輸出:
[[2.28283947] [3.46918764] [0.05473155]]
5.png
黑線為理想曲線,紅色為擬合曲線擦俐。
這樣看脊阴,效果還是可以的。
作者:zenRRan
鏈接:http://www.reibang.com/p/92de36fc6cb6
來(lái)源:簡(jiǎn)書(shū)
簡(jiǎn)書(shū)著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處嘿期。