固定基函式的侷限性
介紹
固定基函式是幫助我們將機器學習中的線性模型擴充套件到更高維度的方法,透過對非線性函式進行線性組合來實現。由於線性模型依賴於引數的線性組合,因此它們存在一個顯著的侷限性。
徑向基函式透過利用資料中的非線性來幫助建模這類模型,同時保持引數的線性。
線性迴歸透過建立複雜的函式,使用固定基函式的不同線性組合。
在本文中,讓我們深入瞭解固定基函式及其侷限性。
固定基函式
線性迴歸模型可以用以下方程表示:
$$\mathrm{y(x\:,\:y)\:=\:w^{T}\:x}$$
上述模型表示引數和輸入特徵之間的線性關係。
它無法處理非線性關係。為了使上述模型能夠處理非線性關係,可以使用基函式或基函式的組合來代替輸入變數。整個模型仍然保持其線性的本質,如下所示:
$$\mathrm{y(x\:,\:y)\:=\:w_{o}\theta_{0}(x)\:+\:w_{1}\theta_{1}(x)\:+\:w_{2}\theta_{2}(x)\:......\:w_{N-1}\theta_{N-1}(x)}$$
$$=\mathrm{\displaystyle\sum\limits_{n=0}^{N-1}w_{n}\theta_{n}(x)}$$
$$=\mathrm{w^{T}\theta(x)}$$
因此,可以使用非線性固定基函式來處理x的非線性關係。
固定基函式的侷限性
固定基函式通常將輸入轉換為更高維度。它們的一些侷限性包括:
固定基函式無法消除兩個類別之間已存在的重疊,但它們可能會增加重疊。
有時固定基函式不適合某項任務,因為很難判斷這些函式是否最適合該模型。
這些函式可能會導致過擬合,因為我們可能想要使用固定函式,並且我們可能會嘗試很多函式。
示例
線性固定基函式的程式碼實現
## fixed basis import numpy as np def gb(x_arr, mue, gam=1): return np.exp(-gam * np.linalg.norm(mue-x_arr)**2) x_arr = np.array([-0.5, -1, -0.5, -0.3, -0.1, 0, 0.4, 0.3, 0.6, 0.7, 1]) t_arr = np.array([-3.9, -3.6, -2.0, 0.8, 0.5, -1.9, -1.6, 0.7, 2.2, 2.8, 6.6]) N = 5 l = 0.0001 # phi matrix phi = np.ones((t_arr.shape[0], N)) for n in range(N-1): mue = n/N phi[:, n+1] = np.vectorize(gb)(x_arr, mue) # alpha & w calculation W = np.linalg.inv(l * np.identity(N) + phi.T @ phi) @ phi.T @ t_arr alp = sum((t_arr - phi @ W)**2) / len(t_arr) print(alp)
輸出
2.090565904553811
結論
固定基函式在對使用非線性基函式組合的線性方程進行建模時是一種流行的選擇。但是,使用固定基函式存在一些侷限性:它們在存在類別重疊的情況下並不適用,並且有時會存在過擬合問題,因為有時我們可能會同時嘗試很多函式。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP