天天看點

回歸問題--基本概念

緣起

回歸這個問題最先接觸的時候是在高中,在高中講了什麼關于回歸問題的,我們先回顧一下。

··首先先引入了一些單變量的,标量的期望方差等一些概念用來刻畫一些統計量。

··随後引入了散點圖,也就是給定一組(x,y),用作圖的方法來在圖上标出一系列的點。然後如果這些點的組合大約是一條直線的話,就說這些點滿足y=ax+b這樣的一個關系。

··然後稱這種分析為一進制線性回歸分析。然後根據提供的資料,去求出參數a,b 。這樣面對符合這個規律的x,我們都可以求出一個相應的y,這個y接近真實值。

··如何确定這個a,b呢?

··偉大的數學家們已經給我們指明了道路。首先想想我們的目的是啥?我們首先确定的是,這些點之間有某種關系,使得他們近似滿足這樣一條直線,又因為我們不知道的原因(其他變量等等原因),然後導緻他們不完全滿足這個函數。是以我們的目的是盡量減少其他因素的幹擾,還原其本身的這個方程。是以我們定義一個量,用這個量來辨識我們這個函數的拟合(使我們生成的函數,更符合這個函數本身)效果,這個量數學家們稱它為平方和誤差,說人話就是c=y1^2 +y2^2 +…+yn^2但是他經常被寫成這種形式,c=Σ yi^2 。從我們的直覺上來說,這應該是一種多數點的民主,就是這個量越小的話,就會使得更多的點接近我們的直線。我們的拟合效果就越好。

回歸問題--基本概念

··我們高中并沒有學習偏導數這一概念,是以我們妥協的使用如下方法來求a和b

這種方法的原理和優缺點就不再贅述。

回歸問題--基本概念
回歸問題--基本概念

進階

偏導

··先從确定a,b說起。我們高中沒學過偏導數等概念是以采用了一種比較簡陋的方式去求出參數,現在我們引進偏導數去求解。

首先先寫出上述我們用來确定拟合效果的函數損失函數

loss=Σ(wxi+b-yi)^2

我們想要使得loss達到最小,然後确定此時w和b的值。确定w和b的時候我們是知道一部分x和y的,這就是我們的樣本資料。如何使得loss最小呢?學過導數的就知道,這是一個二進制函數,我們用loss分别對w和b求偏導使得兩個偏導數為0,這樣的話,此時的w和b我們就可以确定了

∂ loss/∂ w=2x(wxi+b-yi)

∂ loss/∂ b=2(wxi+b-yi)

我們讓這兩個偏導數等于0進而解出來w和b就行了

··而有的時候我們可能并不是單變量的x,我們可能有多個x,就比如典型的回歸分析的案例,波士頓房價一樣。

····是以我們的公式變一下,變成 y=w1x1+w2x2+……+wnxn+b,這種的我們可以用向量的觀點簡化一下(w1,w2,w3,…,wn,b)(x1,x2,x3,…xn)這種寫法一方面是寫起來簡單,一方面是因為計算機擅長進性向量内積的運算。

····如果我們有多個變量來求的話,假設我們有20個因素印象也就是有20個x,在加上一個b的話,那一共就要有21個待求參數,如果我們想求解參數的話,我們必須最少有21個上述的偏導等于0的方程,與此同時最少有21個樣本。我們可以知道如果要進行圖像的某種預測的話,圖像一般都是rgb三個次元,每個次元就算是64*64的,那麼我們就有幾百個參數要進性求解。如果單純依靠求導的話,人是很辛苦的,如果依靠計算機的話,但是計算機并不擅長解方程。那該怎麼辦,偉大的數學家再一次站了出來,提出了梯度下降的方法,來避免求導,進而算出參數。

梯度下降法

··梯度下降法的思想不是很難,自然界中有一種現象,叫做水往低處流,然後梯度下降的方法也是差不多。假設在曲面上任意去一個點,那麼我們在在其周圍找一個微小距離,這樣我們就可以得到這個點周圍各個方向的變化率了,也就是我們知道沿那個方向可以更快速的接近最低點。那麼梯度下降法就是我先有個初始位置,一般采用标準高斯分布或者0來為初始值。然後算這個初始位置的周圍的導數,然後選擇梯度方向,到達新的位置之後在重複上述運算。這樣就可以找出該函數的最低點了。

回歸問題--基本概念

下面是公式上的推導

我們假設有個二進制函數z=f(x,y)

當x變化Δx,y變換Δy

下面是公式上的推導

我們假設有個二進制函數z=f(x,y)

當x變化Δx,y變換Δy的時候 那麼z就變化Δz

現在做一個推導

f’(x)=limΔx->0(f(x+Δx)-f(x))/Δx

因為根據我們的思路Δx和Δy都是一個微小量 那麼lim就可以去掉

f‘(x)=(f(x+Δx)-f(x))/Δx

上面這個公式就近似成立

是以

f(x+Δx)=f’(x)Δx+f(x)

上述就是近似公式的推導

那麼對于二進制函數來說應該是這樣的

f(x+Δx,y+Δy)=f(x,y)+∂f(x,y)*Δx/∂x+∂f(x,y)Δy/∂y

Δz=f(x+Δx,y+Δy)-f(x,y)

Δz=∂f(x,y)Δx/∂x+∂f(x,y)Δy/∂y

那麼對于多變量的近似公式來講

Δz=∂zΔx/∂x+∂zΔy/∂y+∂zΔw/∂w+……

然後這個式子有可以寫成向量的形式

▽(∂z/∂w,∂z/∂x,∂z/∂y) 和 Δg(Δw,Δx,Δy)

然後讓我們在回顧一下向量的知識

我們知道對于平面内的兩個向量,當夾角為180的時候,ab的内積最小,

也就是滿足

a=-kb

那麼對于兩個向量

▽(∂z/∂w,∂z/∂x,∂z/∂y)

Δg(Δw,Δx,Δy)來說

當-k▽(∂z/∂w,∂z/∂x,∂z/∂y)=Δg(Δw,Δx,Δy)的時候Δz達到最小。

其實當角度等于180和0都會使ab的内積的絕對值達到最大,那麼我們的Δz應該沿那個方向走呢?我們的目的是使得偏導數等于0,那麼我們應該沿着減小最大的方向走,也就是-k的方向,那麼0度的方式又是啥,其實這個就是梯度方向,我們的Δz沿着的是梯度反方向走的。

··上面我們說的微小位移,就是Δx,和Δy。根據上面公式我們知道,他們就等于-k▽(∂z/∂w,∂z/∂x,∂z/∂y)這個東西。是以我們成這個k叫做學習率

如果這個學習率過大,那麼可能會出現,越過最小值的問題,如果這個學習率比較小則可能出現到不了最小值的問題

回歸問題--基本概念

解決方案的話,好像還沒有明确的标準,隻能通過反複實驗

上述就是回歸問題的基本分析了,下一節是numpy實作這個回歸問題的求解。

繼續閱讀