PRML(3)--Chapter2(上)-概率分布-二元變量、多項式變量、高斯分布、指數族分布

PRML第二章上-概率估計

  • 2.1二元變量
    • 2.1.1 beta 分布
  • 2.2 多項式變量
  • 2.3 高斯分布
    • 2.3.1條件高斯分布、2.3.2邊緣高斯分布
    • 2.3.3 高斯變量的貝葉斯定理
    • 2.3.4 高斯分布的最大似然估計
    • 2.3.5 順序估計
    • 2.3.6 高斯分布的貝葉斯推斷
    • 2.3.7 學生t分布
    • 2.3.8周期性變量
    • 2.3.9混合高斯分布
  • 2.4 指數族分布

簡單的模型中討論一些關鍵的統計學概念–貝葉斯推斷

本章討論概率分布是為了實現密度估計:給定有限次觀測x1,...,xN\bm{x}_1,...,\bm{x}_Nx1?,...,xN?,對隨機變量x\bm{x}x的概率分布p(x)p(\bm{x})p(x)建模。

密度估計本來是病態的,因為產生觀測數據集合的概率分布可能有無限種。

本章主要內容:
1.參數分布:擁有少量可以調節的參數,控制了整個分布。密度估計就是確定參數的過程–離散隨機變量的二項分布、多項式分布、連續隨機變量的高斯分布

2.共軛性質:后驗概率分布與先驗概率分布有相同的函數形式,主要實現方式選取和似然函數結構一致的先驗,(先驗需要與似然相乘才會變成后驗,只要與似然形式相同,后驗似然和先驗三者的形式都是相同的)

3.非參數分布:直方圖,最近鄰,核函數

2.1二元變量

二元隨機變量:取值只有0,1
扔硬幣的demo:損壞的硬幣,正反面出現的概率不相同。x=1,出現正面向上的概率為μ\muμ,出現反面向上的概率則為1?μ1-\mu1?μ,這個分布為伯努利分布,對應的概率密度函數為:
Bern(x∣μ)=μx(1?μ)(1?x)Bern(x|\mu) = \mu^x(1-\mu)^(1-x)Bern(xμ)=μx(1?μ)(1?x)

假定擁有xxx的觀測數據集D={x1,...,xN}\mathcal{D}=\{x_1,...,x_N\}D={x1?,...,xN?}。構造關于μ\muμ的似然函數
p(D∣μ)=∏n=1Nμxn(1?μ)1?xnp(\mathcal{D|\mu})=\prod_{n=1}^N\mu^{x_n}(1-\mu)^{1-x_n}p(Dμ)=n=1N?μxn?(1?μ)1?xn?

頻率學家最大對數似然求解μ\muμ
ln?p(D∣μ)=∑n=1N{xnln?μ+(1?xn)ln?(1?μ)}\ln p(\mathcal{D|\mu})=\sum_{n=1}^N\{x_n\ln\mu+ (1-x_n)\ln(1-\mu)\}lnp(Dμ)=n=1N?{xn?lnμ+(1?xn?)ln(1?μ)}

μ\muμ求導,令導數為0;得到關于μ\muμ的最大似然估計
μML=1N∑n=1Nxn\mu_{ML}=\frac{1}{N}\sum_{n=1}^Nx_nμML?=N1?n=1N?xn?

最大似然的結果表明μ\muμ的大小依賴于觀測數據集中正面朝上的概率,當觀測樣本數量較少時,容易出現極端概率現象。(后續會看到,引入μ\muμ的先驗,會得到一個更合理的結論)

二項分布:(在二元變量的基礎上)觀測數據集的規模為N,求x=1出現m次的概率分布。
Bin(m∣N,μ)=CNmμm(1?μ)(N?m)Bin(m|N,\mu)=C^m_N\mu^m(1-\mu)^(N-m)Bin(mN,μ)=CNm?μm(1?μ)(N?m)

其中的組合數為:
CNm=N!(N?m)!m!C^m_N=\frac{N!}{(N-m)!m!}CNm?=(N?m)!m!N!?

(獨立事件:加和事件的均值=單獨事件均值的家和,加和事件的方差=單獨事件方差的加和)

2.1.1 beta 分布

為了使用貝葉斯的觀點看二項式分布中μ\muμ問題的求解,需要引入一個與似然形式一致的先驗–beta分布
beta(μ∣a,b)=Γ(a+b)Γ(a)(b)μa?1(1?μ)b?1beta(\mu|a,b)=\frac{\Gamma(a+b)}{\Gamma(a)(b)}\mu^{a-1}(1-\mu)^{b-1}beta(μa,b)=Γ(a)(b)Γ(a+b)?μa?1(1?μ)b?1

其中gamma分布為:(就很抽象呀
Γ(x)=∫0∞ux?1e?udu(1.141)\Gamma(x)=\int_0^\infty u^{x-1}e^{-u}du\tag{1.141}Γ(x)=0?ux?1e?udu(1.141)

用貝葉斯觀點作下一次預測(核心如何利用前面的公式計算對應的值,并解釋和最大似然估計的差別):
p(x=1∣D)=∫01p(x=1∣μ)p(μ∣D)dμ=∫01μp(μ∣D)dμ=E[μ∣D]p(x=1|D)=\int_0^1p(x=1|\mu)p(\mu|D)d\mu=\int_0^1\mu p(\mu|D)d\mu=\mathbb{E}[\mu|D]p(x=1D)=01?p(x=1μ)p(μD)dμ=01?μp(μD)dμ=E[μD]

一個非貝葉斯學習公有屬性:隨著觀測數據越多,后驗概率表示的不確定性必然會持續下降。(平均意義下,在某個特定的觀測數據集,后可能后驗方差大于先驗方法)

2.2 多項式變量

一個量的可能取值有K種,用一個K維向量來表示這個量。one-hot 編碼表示方式,其中僅有一個元素xk=1x_k=1xk?=1,其余元素都為0。
∑k=1Kxk=1\sum_{k=1}^Kx_k=1k=1K?xk?=1

μk\mu_kμk?表示維度xkx_kxk?為1的概率,那么該量x\bm{x}x出現的概率為:
p(x∣μ)=∏k=1Kμkp(\bm{x}|\bm{\mu})=\prod_{k=1}^K\mu_kp(xμ)=k=1K?μk?

μk\mu_kμk?滿足歸一化約束∑k=1Kμk=1\sum_{k=1}^K\mu_k=1k=1K?μk?=1

考慮N個獨立的觀測值x1,x2,...xN\bm{x}_1,\bm{x}_2,...\bm{x}_Nx1?,x2?,...xN?組成的數據集D\mathcal{D}D, 該數據集出現的似然函數為:
p(D∣μ)=∏i=1N∏k=1Kμkxki=∏k=1Kμk∑i=1Nxki=∏k=1Nμkmk(2.29)p(D|\bm{\mu})=\prod_{i=1}^N\prod_{k=1}^K\mu_k^{x^i_k}=\prod_{k=1}^K\mu_k^{\sum_{i=1}^Nx_k^i}=\prod_{k=1}^N\mu_k^{m_k}\tag{2.29}p(Dμ)=i=1N?k=1K?μkxki??=k=1K?μki=1N?xki??=k=1N?μkmk??(2.29)
其中mkm_kmk?為所有樣本第k維出現1的次數,通過最大化帶μk\mu_kμk?歸一化約束的對數似然函數,可求得μk\mu_kμk?的最大似然估計為–N次觀測種k維出現1的頻率值:
μkML=mkN\mu_k^{ML}=\frac{m_k}{N}μkML?=Nmk??

**多項式分布:**考慮m1,m2,...,mkm_1,m_2,...,m_km1?,m2?,...,mk?的概率:
Mult(m1,m2,...,mk)=N!m1!m2!...mk!∏k=1KμkmkMult(m_1,m_2,...,m_k)=\frac{N!}{m_1!m_2!...m_k!}\prod_{k=1}^K\mu_k^{m_k}Mult(m1?,m2?,...,mk?)=m1?!m2?!...mk?!N!?k=1K?μkmk??

N!m1!m2!...mk!\frac{N!}{m_1!m_2!...m_k!}m1?!m2?!...mk?!N!?為將N個物體,劃分為m1,m2,...,mkm_1,m_2,...,m_km1?,m2?,...,mk?組數據方案總數。

**狄利克雷分布:**多項式分布的共軛先驗
Dir(μ∣α)Γ(α0)Γ(α1)Γ(α2)Γ(αK)∏k=1Kμkαk?1(2.38)Dir(\bm{\mu}|\bm{\alpha})\frac{\Gamma(\alpha_0)}{\Gamma(\alpha_1)\Gamma(\alpha_2)\Gamma(\alpha_K)}\prod_{k=1}^K\mu_k^{\alpha_k-1}\tag{2.38}Dir(μα)Γ(α1?)Γ(α2?)Γ(αK?)Γ(α0?)?k=1K?μkαk??1?(2.38)

貝葉斯上場:數據集似然(2.29)乘以參數先驗,得到參數μ\bm{\mu}μ的后驗,與狄利克雷分布具有相同的形式,狄利克雷分布種的αk\alpha_kαk?可以看作k維度出現1次數的先驗信息,然后通過數據集矯正該先驗信息。

2.3 高斯分布

高斯分布產生1-使熵最大的分布通過拉格朗日乘子法求出來的分布就是高斯分布
高斯分布產生2-一組隨機變量的和 構成的隨機變量在 求和變量數量增多時,和隨機變量會趨向于高斯分布(拉普拉斯提出的中心極限定理)

主要考察DDD維高斯分布,其通過一下的二次型與x\bm{x}x產生聯系:
Δ2=(x?μ)TΣ?1(x?μ)\Delta^2=(\bm{x}-\bm{\mu})^T\Sigma^{-1}(\bm{x}-\bm{\mu})Δ2=(x?μ)TΣ?1(x?μ)

通過考慮協方差矩陣的特征向量,將二次型變成了橢球二次型(橢球面上為一個常量)
Δ2=∑i=1Dyi2λi\Delta^2=\sum_{i=1}^D\frac{y_i^2}{\lambda_i}Δ2=i=1D?λi?yi2??

yiy_iyi?實際為xix_ixi?經過平移旋轉后的新坐標

如果再計算協方差矩陣行列式的平方根:
∣Σ∣12=∏j=1Dλj12|\Sigma|^{\frac{1}{2}}=\prod_{j=1}^D\lambda_j^{\frac{1}{2}}Σ21?=j=1D?λj21??

那么高斯分布在y\bm{y}y變量表示下就會變成D個高斯分布乘積。特征向量因此定義了一個新的旋轉、平移的坐標系。在這個坐標系下聯合概率分布可以分解成獨立概率分布的乘積。

計算高斯分布的一階矩(期望),二階矩協方差。

高斯分布局限1–協方差矩陣關系到高斯模型參數的數量,和對應的等概率面形狀

  1. 對稱矩陣-坐標軸不對齊橢球
  2. 對角矩陣-坐標軸對齊橢球
  3. 正比于單位陣的矩陣-坐標軸對齊球

高斯分布局限2: 單峰,不能近似多峰分布

  1. 解決思路–引入隱變量,變成混合高斯模型

2.3.1條件高斯分布、2.3.2邊緣高斯分布

多元高斯分布的一個重要性質:如果兩組變量的聯合分布是高斯分布,那么以一組變量為條件,另一組變量同樣是高斯分布。一組變量的邊緣分布還是高斯分布

xa\bm{x}_axa?]x]\bm{x}]x的前M個分量,令xb\bm{x}_bxb?為剩余的D-M個分量,對應隨機變量,均值向量,協方差矩陣,精度矩陣的劃分分別為:
x=[xaxb]\bm{x}= \left[ \begin{array}{ccc} \bm{x}_a \\ \bm{x}_b \\ \end{array} \right] x=[xa?xb??]

μ=[μaμb]\bm{\mu}= \left[ \begin{array}{ccc} \bm{\mu}_a \\ \bm{\mu}_b \\ \end{array} \right] μ=[μa?μb??]

Σ=[ΣaaΣabΣbaΣbb]\bm{\Sigma}= \left[ \begin{array}{ccc} \bm{\Sigma}_{aa} & \bm{\Sigma}_{ab} \\ \bm{\Sigma}_{ba} & \bm{\Sigma}_{bb} \\ \end{array} \right] Σ=[Σaa?Σba??Σab?Σbb??]

Λ=[ΛaaΛabΛbaΛbb]\bm{\Lambda}= \left[ \begin{array}{ccc} \bm{\Lambda}_{aa} & \bm{\Lambda}_{ab} \\ \bm{\Lambda}_{ba} & \bm{\Lambda}_{bb} \\ \end{array} \right] Λ=[Λaa?Λba??Λab?Λbb??]
Σ\SigmaΣΛ\LambdaΛ之間的關系通過分塊矩陣的逆矩陣恒等式產生聯系。

主要依據二次型來尋找高斯分布的協方差矩陣和均值矩陣。

條件高斯分布使用精度矩陣來表示方便:
p(xa∣xb)=N(xa∣μa∣b,Λaa?1)(2.96)p(\bm{x}_a|\bm{x}_b)=\mathcal{N}(\bm{x}_a|\bm{\mu}_{a|b},\bm{\Lambda^{-1}_{aa}})\tag{2.96}p(xa?xb?)=N(xa?μab?,Λaa?1?)(2.96)

邊緣高斯分布使用協方差矩陣表示方便:
p(xa)=N(xa∣μa,Σaa)(2.98)p(\bm{x}_a)=\mathcal{N}(\bm{x}_a|\bm{\mu}_a,\bm{\Sigma}_{aa})\tag{2.98}p(xa?)=N(xa?μa?,Σaa?)(2.98)

2.3.3 高斯變量的貝葉斯定理

給定一個邊緣高斯分布p(x)p(\bm{x})p(x)和條件高斯分布p(y∣x)p(\bm{y}|\bm{x})p(yx),求另一邊緣高斯分布p(y)p(\bm{y})p(y)和條件高斯分布p(x∣y)p(\bm{x}|\bm{y})p(xy)

重要特點:p(y∣x)p(\bm{y}|\bm{x})p(yx) 的均值為x\bm{x}x線性函數,協方差與x\bm{x}x無關。

利用貝葉斯定理p(z)=p(x)?p(y∣x)p(z)=p(\bm{x})*p(\bm{y}|\bm{x})p(z)=p(x)?p(yx),尋找二次型中與zzz相關項,求出對應的協方差和均值矩陣。
E(z)=[μAμ+b]\mathbb{E}(z)= \left[ \begin{array}{ccc} \bm{\mu} \\ \bm{A\mu}+\bm{b} \\ \end{array} \right] E(z)=[μAμ+b?]

Λ=[Λ?1Λ?1ATAΛ?1L?1+AΛ?1AT]\bm{\Lambda}= \left[ \begin{array}{ccc} \bm{\Lambda}^{-1} & \bm{\Lambda}^{-1}\bm{A}^T \\ \bm{\bm{A}\Lambda}_{-1} & \bm{L}^{-1} + \bm{A}\bm{\Lambda}^{-1}\bm{A}^{T} \\ \end{array} \right] Λ=[Λ?1AΛ?1??Λ?1ATL?1+AΛ?1AT?]
依據多元高斯變量中一組隨機變量邊緣分布依舊是高斯分布,以及均值和方差的關系式(2.98)式可得:
E(y)=Aμ+b\mathbb{E}(\bm{y})=\bm{A\mu}+\bm{b}E(y)=Aμ+b

cov[y]=L?1+AΛ?1ATcov[\bm{y}]=\bm{L}^{-1} + \bm{A}\bm{\Lambda}^{-1}\bm{A}^{T}cov[y]=L?1+AΛ?1AT

依據貝葉斯定理能夠求出條件高斯分布(聯合分布p(x,y)除以邊緣分布p(y))
p(x∣y)=N(x∣Σ{ATL(y?b)+Λμ},Σ)p(\bm{x}|\bm{y})=\mathcal{N}(\bm{x}|\mathcal{\Sigma}\{\bm{A}^T\bm{L}(\bm{y}-\bm{b})+\Lambda\mu \},\bm{\Sigma})p(xy)=N(xΣ{ATL(y?b)+Λμ},Σ)

2.3.4 高斯分布的最大似然估計

這一節主要講多元高斯分布均值和協方差矩陣的最大似似然估計,均值是無偏估計,協方差矩陣估計是有偏估計,會小于實際值:
μML=1N∑n=1Nxn\bm{\mu}_{ML}=\frac{1}{N}\sum_{n=1}^N\bm{x}_nμML?=N1?n=1N?xn?

ΣML=1N∑n=1N(xn?μML)(xn?μML)T\bm{\Sigma}_{ML}=\frac{1}{N}\sum_{n=1}^N(\bm{x}_n-\bm{\mu}_{ML})(\bm{x}_n-\bm{\mu}_{ML})^TΣML?=N1?n=1N?(xn??μML?)(xn??μML?)T

2.3.5 順序估計

最大似然的順序估計:允許每次處理一個數據點,然后丟棄這個點。對于在線學習具有十分重要的意義。

最大似然均值估計探索μML(N)\bm{\mu}_{ML}^{(N)}μML(N)?μML(N?1)\bm{\mu}_{ML}^{(N-1)}μML(N?1)?以及xN\bm{x}_NxN?的關系:
μML(N)=1N∑n=1Nxn=μML(N?1)+1N(xN?μMLN?1)(2.126)\bm{\mu}_{ML}^{(N)}=\frac{1}{N}\sum_{n=1}^N\bm{x}_n\\ =\bm{\mu}_{ML}^{(N-1)}+\frac{1}{N}(\bm{x}_N-\bm{\mu}_{ML}^{N-1})\tag{2.126} μML(N)?=N1?n=1N?xn?=μML(N?1)?+N1?(xN??μMLN?1?)(2.126)

引出更一般的順序算法Robbins-Monro算法:一對隨機變量z和θ\thetaθ,當θ\thetaθ已知時,z的條件期望定義了一個確定的函數f(θ)f(\theta)f(θ)。目標是尋找使f(θ)=0f(\theta)=0f(θ)=0的根值θ?\theta^*θ?為啥目標是這個?

假定每次觀測到一個z值,如何使用順序估計的方法來將θ\thetaθ估計出來呢?
Robbins-Monro順序估計序列
θN=θN?1?αN?1z(θ)\theta^{N}=\theta^{N-1}-\alpha_{N-1}z(\theta)θN=θN?1?αN?1?z(θ)

實際應用中最大似然估計求解過程中,最大似然解其實是負對數似然函數的的駐點。套用公式,最后能夠得到式(2.126)一樣的結果。

2.3.6 高斯分布的貝葉斯推斷

高斯分布的均值和方差是一個分布,這個分布通過選擇合適的先驗信息可以構成成高斯分布,該高斯分布的均值由先驗均值和最大似然估計給出,方差由先驗精度和最大似然精度加和給出。

2.3.7 學生t分布

高斯分布和精度的伽馬分布相乘,對精度進行積分,通過變量代換后得到學生t 分布。

學生t分布又一個重要的性質:魯棒性,使用t分布對數據建模時,對數據集里的離群點不敏感。高斯分布就比較敏感。(表現為多幾個離群點,分布就嚴重變形)

2.3.8周期性變量

使用正常的高斯分布建模并不合適,周期性變量θ\thetaθ其概率密度函數要滿足一下三個條件。
p(θ)≥0p(\theta)\geq0p(θ)0

∫02πp(θ)dθ=1\int_0^{2\pi}p(\theta)d\theta=102π?p(θ)dθ=1

p(θ+2π)=p(θ)p(\theta + 2\pi) = p(\theta)p(θ+2π)=p(θ)

二元高斯變量,當協方差矩陣為單位陣時,通過概率密度為確定數的輪廓線是圓形。通過構造可以得到想要的高斯分布(具體構造過程過)

2.3.9混合高斯分布

K個高斯密度的疊加:
p(x)=∑k=1KπkN(x∣μk,Σk)p(\bm{x})=\sum_{k=1}^K\pi_k\mathcal{N}(\bm{x}|\bm{\mu}_k,\bm{\Sigma}_k)p(x)=k=1K?πk?N(xμk?,Σk?)

依據概率密度歸一化要求:∑k=1Kπk=1\sum_{k=1}^K\pi_k=1k=1K?πk?=1,0≤πk≤10\le\pi_k\le10πk?1

πk\pi_kπk?可以看作選擇第k個成分的先驗概率。

混合高斯模型,由于似然函數取對數操作中存在求和式子,所以參數的最大似然估計不再有閉式解。兩種最大化混合高斯分布似然函數的方法:1.迭代數值優化方法;2.期望最大法。

2.4 指數族分布

伯努利分布,多項式分布,高斯分布都是指數族分布
指數族分布:
p(x∣μ)=h(x)g(η)exp{ηTu(x)}p(\bm{x}|\bm{\mu})=h(\bm{x})g(\bm{\eta})exp\{\eta^Tu(\bm{x})\}p(xμ)=h(x)g(η)exp{ηTu(x)}
其中:η\bm{\eta}η為變量x\bm{x}x的參數,被稱作概率分布的自然參數, g(η)g(\bm{\eta})g(η)可以被看成系數,確保概率是歸一化的 。

通過變化,能夠找到伯努利分布、多項式分布、高斯分布中h(x)h(\bm{x})h(x), g(η)g(\bm{\eta})g(η),u(x)u(\bm{x})u(x)的具體表現形式。

其中推到的過程中推出了logistic sigmoid 函數和softmax 函數還是蠻意外的。
2.4.1-最大似然估計與充分統計量
2.4.2-共軛先驗
2.4.3-無信息先驗
在某些情況下,我們可能對分布應該具有的形式幾乎完全不知道,這時,我們可以尋找一種形式先驗分布,其目的是盡可能對后驗分布產生較小的影響。–無信息先驗

例如將先驗分布p(λ)=常數p(\lambda)=常數p(λ)=設置為一個常數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444707.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444707.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444707.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode27 移除元素

給定一個數組 nums 和一個值 val,你需要原地移除所有數值等于 val 的元素,返回移除后數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組并在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮數組中超出新…

Harris的角點檢測和特征匹配

一.特征檢測(提取) 基于特征的圖像配準方法是圖像配準中最常見的方法之一。它不是直接利用圖像像素值,二十通過像素值導出的符號特征(如特征點、特征線、特征區域)來實現圖像配準,因此可以克服利用灰度信息…

開始入坑深度學習(DeepLearning)

現在游戲越來越難做,國家廣電總局審核越來越變態,國家各種打壓游戲,游戲產業也成為教育失敗的背鍋俠,所以本人現在開始做深度學習方向。 深度學習研究的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、The…

PRML(4)--Chapter2(下)-非參數估計

PRML第二章下-非參數估計1.直方圖2. 核方法3. K近鄰概率密度建模-參數化方法-概率密度的形式一定,由數據集確定密度中的參數即可。 局限性–概率模型選的不對,不能夠描述數據模態 此時,介紹一下非參數方法–直方圖,核方法&#…

《盤點那些秀你一臉的秒天秒地算法》(1)

本系列堅持格式:1個抖機靈算法2個較簡單但是天秀的算法1個較難天秀算法。 bogo排序 Bogo排序(Bogo-sort),又被稱為猴子排序,是一種惡搞排序算法。 將元素隨機打亂,然后檢查其是否符合排列順序,若否,則繼續…

caffe安裝篇(一)

caffe我選擇使用ubuntu源碼安裝,所以先執行: sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev protobuf-compiler libhdf5-serial-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev prot…

caffe2安裝篇(三)通過docker安裝

用普通的安裝方式走了不少彎路,感覺還是用docker方便: 參考的是https://hub.docker.com/r/caffe2ai/caffe2/ Latest docker pull caffe2ai/caffe2 Comes with GPU support, CUDA 8.0, cuDNN 7, all options, and tutorial files. Uses Caffe2 v0.8.1. GPU images (for us…

《盤點那些秀你一臉的秒天秒地算法》(3)

斐波那契之美 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。 這個數列就是1、1、2、3、5、8、13…

Linux(15)-

Linux下的編程開發

《盤點那些秀你一臉的秒天秒地算法》(4)

防止新手錯誤的神級代碼 #define ture true #define flase false #difine viod void #define mian main #define ; ; 以后有新手問題就把這幾行代碼給他就好啦。 不用額外空間交換兩個變量 a 5 b 8 #計算a和b兩個點到原點的距離之和,并且賦值給…

Linux(16)-

Vim編輯器的使用

php生成有復雜結構的excel文檔

以前都用PHPExcel等工具來生成Excel,但是我們有時候需要非常復雜的樣式,比如有合并單元格和拆分單元格,甚至有顏色,行間距之類的,這樣做起來很費勁,而且你如果使用插件,你也需要學習這里我們可以…

caffe2安裝篇(二) ubuntu16.04 安裝方法

caffe2 ubuntu16.04 安裝方法 Caffe2的安裝相比于caffe在安裝的時候更加簡便,略去了Makefile.config的各種配置,對于有無GPU以及各種可選庫例如opencv,anaconda的支持也更簡單。(其實你直接裝好庫以后make就好,以GPU為例,在make的時候,自動檢測你是否安裝了CUDA,若沒有…

為啥用redis解決會話呢?

什么是會話? 會話可簡單理解為:用戶開一個瀏覽器,點擊多個超鏈接,訪問服務器多個web資源,然后關閉瀏覽器,整個過程稱之為一個會話。 ?會話過程中要解決的一些問題? –每個用戶不可避免各自會…

推薦系統(5)-深度推薦模型-AutoRec、DeepCrossing、NeuralCF、PNN、WideDeep、FNN、DeepFM、NFM

GBDTLR1. AutoRec-20152. Deep Crossing-20163. NeuralCF-20164. PNN-20165. Wide&Deep-20166. Deep&Cross-20177.FM深度學習7.1 FNN-20167.2 DeepFM-20177.3 NFM-2017《深度學習/推薦系統》讀書筆記2016年開始,推薦系統和計算廣告全面進入深度學習時代。 &…

關于在安裝caffe2環境中遇到的坑整理(歡迎入坑討論)

1.ImportError: cannot import name caffe2_pb2 測試caffe2的pytorch環境是否正常的時候使用 root@lxsj-ThinkStation:~/pytorch# python Python 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", &…

leetcode172. 階乘后的零 最快算法

給定一個整數 n,返回 n! 結果尾數中零的數量。 示例 1: 輸入: 3 輸出: 0 解釋: 3! 6, 尾數中沒有零。 示例 2: 輸入: 5 輸出: 1 解釋: 5! 120, 尾數中有 1 個零. 說明: 你算法的時間復雜度應為 O(log n) 。 思路:102*5,而因數中2一定比…

Win10 連接 Ubuntu16.04.3(通過Xdrp連接xfce4界面)

Win10 連接 Ubuntu16.04.3(通過Xdrp連接xfce4界面) sudo apt-get install xrdp sudo apt-get install vnc4server sudo apt-get install xubuntu-desktop echo "xfce4-session" >~/.xsession sudo apt-get install dconf editor sudo dconf editor(或者在搜索…

Linux(17)-

Make編譯機制,Configure

聽說你還在糾結自己沒訪問量?成不了“博客專家”?

一、提高瀏覽量的技巧 相信很多人都這么想過:“我文章寫的這么好,怎么就沒人看呢?”; 或者這樣想過:“這文章寫得明明比我爛很多,憑什么這么多瀏覽量?”; 雖然在我看來這是極其嚴…