EM算法(Expectation Maximization Algorithm)


文章目錄
  1. 1. 前言
  2. 2.基礎數學知識
    1. 2.1.凸函數
    2. 2.2.Jensen不等式
  3. 3.EM算法所解決問題的例子
  4. 4.EM算法
    1. 4.1.模型說明
    2. 4.2.EM算法推導
    3. 4.3.EM算法收斂性證明
    4. 4.4. EM算法E步說明
  5. 5.小結
  6. 6.主要參考文獻

1. 前言

??這是本人寫的第一篇博客(2013年4月5日發在cnblogs上,現在遷移過來),是學習李航老師的《統計學習方法》書以及斯坦福機器學習課Andrew Ng的EM算法課后,對EM算法學習的介紹性筆記,如有寫得不恰當或錯誤的地方,請指出,并多多包涵,謝謝。另外本人數學功底不是很好,有些數學公式我會說明的仔細點的,如果數學基礎好,可直接略過。

2.基礎數學知識

??在正式介紹EM算法之前,先介紹推導EM算法用到的數學基礎知識,包括凸函數,Jensen不等式。

2.1.凸函數

??對于凸函數,凹函數,如果大家學過高等數學,都應該知道,需要注意的是國內教材如同濟大學的《高等數學》的這兩個概念跟國外剛好相反,為了能更好的區別,本文章把凹凸函數稱之為上凸函數,下凸函數,具體定義如下:

上凸函數:函數 $f(x)$ 滿足對定義域上任意兩個數 $a$ , $b$ 都有 $f[(a+b)/2] ≥ [f(a)+f(b)]/2$
下凸函數:函數 $f(x)$ 滿足對定義域上任意兩個數 $a$ , $b$ 都有 $f[(a+b)/2] ≤ [f(a)+f(b)]/2$

??更直觀的可以看圖2.1和2.2:

%E4%B8%8A%E5%87%B8%E5%87%BD%E6%95%B0.png
%E4%B8%8B%E5%87%B8%E5%87%BD%E6%95%B0.png
圖2.1. 上凸函數圖2.2. 下凸函數

??可以清楚地看到圖2.1上凸函數中,$f[(a+b)/2] ≥ [f(a)+f(b)]/2$,而且不難發現,如果f(x)是上凸函數,那么 $-f(x)$ 是下凸函數。
??當 $a≠b$ 時,$f[(a+b)/2] > [f(a)+f(b)]/2$ 成立,那么稱 $f(x)$ 為嚴格的上凸函數,等號成立的條件當且僅當 $a=b$,下凸函數與其類似。

2.2.Jensen不等式

??有了上述凸函數的定義后,我們就能很清楚的Jensen不等式的含義,它的定義如下:

如果f是上凸函數,$X$ 是隨機變量,那么 $f(E[X]) ≥ E[f(X)]$
特別地,如果f是嚴格上凸函數,那么 $E[f(X)] = f(E[X])$ 當且僅當 $p(X=E[X])=1$,也就是說 $X$ 是常量。

??那么很明顯 $\log x$ 函數是上凸函數,可以利用這個性質。
??有了上述的數學基礎知識后,我們就可以看具體的EM算法了。

3.EM算法所解決問題的例子

??在推導EM算法之前,先引用《統計學習方法》中EM算法的例子:

例1. (三硬幣模型)假設有3枚硬幣,分別記作 $A,B,C$ 。這些硬幣正面出現的概率分別為 $π$,$p$ 和 $q$。投幣實驗如下,先投 $A$,如果 $A$ 是正面,即 $A=1$,那么選擇投 $B$;$A=0$,投 $C$。最后,如果 $B$ 或者 $C$ 是正面,那么 $y=1$;是反面,那么 $y=0$;獨立重復 $n$ 次試驗 $(n=10)$,觀測結果如下: $1,1,0,1,0,0,1,0,1,1$ 假設只能觀測到投擲硬幣的結果,不能觀測投擲硬幣的過程。問如何估計三硬幣正面出現的概率,即 $\pi$,$p$ 和 $q$ 的值。

:設隨機變量 $y$ 是觀測變量,則投擲一次的概率模型為:$$P(y|\theta)=\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}$$有 $n$ 次觀測數據 $Y$,那么觀測數據 $Y$ 的似然函數為:$$P(Y|\theta) = \prod_n^{j=1}[\pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j}]$$那么利用最大似然估計求解模型解,即
\begin{align}
\widehat{\theta}& = \arg \max_{\theta} \log P(Y|\theta)\label{ex:loglikelihood1} \\
& = \arg \max_{\theta} \sum_{j=1}^{10} \log P(y^j|\theta)\label{ex:loglikelihood2} \\
& = \arg \max_{\theta} \sum_{j=1}^{10} \log [\pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j}]\label{ex:loglikelihood3}
\end{align} 這里將概率模型公式和似然函數代入 $\eqref{ex:loglikelihood1}$ 式中,可以很輕松地推出 $\eqref{ex:loglikelihood1} \Rightarrow \eqref{ex:loglikelihood2} \Rightarrow \eqref{ex:loglikelihood3}$,然后選取 $\theta(\pi,p,q)$,使得 $\eqref{ex:loglikelihood3}$ 式值最大,即最大似然。然后,我們會發現因為 $\eqref{ex:loglikelihood3}$ 中右邊多項式 $+$ 符號的存在,使得 $\eqref{ex:loglikelihood3}$ 直接求偏導等于 $\theta$ 或者用梯度下降法都很難求得 $\theta$ 值。
這部分的難點是因為 $\eqref{ex:loglikelihood3}$ 多項式中 $+$ 符號的存在,而這是因為這個三硬幣模型中,我們無法得知最后得結果是硬幣 $B$ 還是硬幣 $C$ 拋出的這個隱藏參數。那么我們把這個latent 隨機變量加入到 log-likelihood 函數中,得
\begin{align}
l(\theta)& = \sum_{j=1}^{10}log\: \sum_{i=1}^{2}P(y_{j},z_{i}\mid \theta )\label{ex:latentlog1} \\
& = \sum_{j=1}^{10}log\: \sum_{i=1}^{2}Q_j(z_{i})\frac{P(y_{j},z_{i}\mid \theta )}{Q_j(z_{i})}\label{ex:latentlog2} \\
& \geq \sum_{j=1}^{10} \sum_{i=1}^{2}Q_j(z_{i})log\:\frac{P(y_{j},z_{i}\mid \theta )}{Q_j(z_{i})}\label{ex:latentlog3}
\end{align}
略看一下,好像很復雜,其實很簡單,首先是公式 $\eqref{ex:latentlog1}$,這里將 $z_i$ 做為隱藏變量,當 $z_1$ 為結果由硬幣 $B$ 拋出,$z_2$ 為結果由硬幣C拋出,不難發現:$$\sum_{i=1}^{2}P(y_{j},z_{i}\mid \theta )=P(y_{j}\mid \theta )
=\pi p^{y_{j}}(1-p)^{1-y_{j}}+\pi q^{y_{j}}(1-q)^{1-y_{j}}$$ ??接下來公式說明 $\eqref{ex:latentlog1} \Rightarrow \eqref{ex:latentlog2}$ (其中 $\eqref{ex:latentlog2}$ 中 $Q(z)$ 表示的是關于 $z$ 的某種分布,$\sum_iQ_j(z_i)=1$,很直接,在 $P$ 的分子分母同乘以 $Q_(z_i)$。最后是 $\eqref{ex:latentlog2} \Rightarrow \eqref{ex:latentlog3}$,到了這里終于用到了第二節介紹的Jensen不等式,數學好的人可以很快發現,$\sum_{i=1}^2Q_j(z_i)\frac{P(y_j,z_i|\theta)}{Q_j(z_i)}$ 就是 $[\frac{P(y_j,z_i|\theta)}{Q_j(z_i)}]$ 的期望值(如果不懂,可google期望公式并理解),且log是上凸函數,所以就可以利用Jensen不等式得出這個結論。因為我們要讓log似然函數 $l(\theta)$最大,那么這里就要使等號成立。根據Jensen不等式可得,要使等號成立,則要使 $\frac{P(y_j,z_i|\theta)}{Q_j(z_i)} =c$ 成立。
??再因為$\sum_iQ_j(z_i)=1$,所以得$\sum_iP(y_j,z_i|\theta)=c$,$c$ 為常數,那么(這里感謝網友@無影隨想指出錯誤)$$Q(z_{i})=P(y_{j},z_{i}\mid \theta )/\sum_{i}P(y_{j},z_{i}\mid \theta )
=P(y_{j},z_{i})/P(y_{j}\mid \theta ) =P(z_{i}\mid y_{j},\theta)$$這里可以發現$$Q_j(z_{1}) =\frac{\pi p^{y_{j}}(1-p)^{1-y_{j}}}{\pi p^{y_{j}}(1-p)^{1-y_{j}}+(1-\pi) q^{y_{j}}(1-q)^{1-y_{j}}}\\
Q_j(z_{2} ) =\frac{(1-\pi) q^{y_{j}}(1-q)^{1-y_{j}}}{\pi p^{y_{j}}(1-p)^{1-y_{j}}+(1-\pi) q^{y_{j}}(1-q)^{1-y_{j}}}$$ ??OK,到這里,可以發現公式 $\eqref{ex:latentlog3}$ 中右邊多項式已經不含有“+”符號了,如果知道 $Q(z)$ 的所有值,那么可以容易地進行最大似然估計計算,但是 $Q$ 的計算需要知道 $\theta$ 的值。這樣的話,我們是不是可以先對θ進行人為的初始化 $\theta_0$,然后計算出 $Q$ 的所有值 $Q_1$ (在 $\theta_0$ 固定的情況下,可在 $Q_1$ 取到公式 $\eqref{ex:latentlog3}$ 的極大值),然后在對公式 $\eqref{ex:latentlog3}$ 最大似然估計,得出新的 $\theta_1$ 值(在固定Q1的情況下,取到公式 $\eqref{ex:latentlog3}$ 的極大值),這樣又可以計算新的 $Q$ 值 $Q_1$,然后依次迭代下去。答案當然是可以。因為 $Q_1$ 是在 $\theta_0$ 的情況下產生的,可以調節公式 $\eqref{ex:latentlog3}$ 中 $\theta$ 值,使公式 $\eqref{ex:latentlog3}$ 的值再次變大,而 $\theta$ 值變了之后有需要調節 $Q$ 使 $\eqref{ex:latentlog3}$ 等號成立,結果又變大,直到收斂(單調有界必收斂),如果到現在還不是很清楚,具體清晰更廣義的證明可以見下部分EM算法說明。
??另外對公式 $\eqref{ex:latentlog3}$ 進行求偏導等于 $\theta$,求最大值,大家可以自己練習試試,應該很簡單的,這里不做過多陳述。
??在《統計學習方法》書中,進行兩組具體值的計算

  • $\pi_0=0.5,\ p_0=0.5,\ q_0=0.5$,迭代結果為 $\pi=0.5,\ p=0.6,\ q=0.5$
  • $\pi_0=0.4,\ p_0=0.6,\ q_0=0.7$,迭代結果為 $\pi=0.4064,\ p=0.5368,\ q=0.6432$

兩組值的最后結果不相同,這說明EM算法對初始值敏感,選擇不同的初值可能會有不同的結果,只能保證參數估計收斂到穩定點。因此實際應用中常用的辦法就是選取多組初始值進行迭代計算,然后取結果最好的值。

??在進行下部分內容之前,還需說明下一個東西。在上面的舉例說明后,其實可以發現上述的解決方法跟一個簡單的聚類方法很像,沒錯,它就是K-means聚類。K-means算法先假定k個中心,然后進行最短距離聚類,之后根據聚類結果重新計算各個聚類的中心點,一次迭代,是不是很像,而且K-means也是初始值敏感,因此其實K-means算法也包含了EM算法思想,只是這邊EM算法中用P概率計算,而K-means直接用最短距離計算。所以EM算法可以用于無監督學習。在下一篇文章,我準備寫下典型的用EM算法的例子,高斯混合模型(GMM,Gaussian Mixture Model)

4.EM算法

4.1.模型說明

??考慮一個參數估計問題,現有 ${y_1,y_2,…,y_n}$ 共 $n$ 個訓練樣本,需有多個參數 $\pi$ 去擬合數據,那么這個 $\log$ 似然函數是:$$l(\theta) = \sum_{j=1}^{n} \log P(y_j|\theta)$$??可能因為 $\theta$ 中多個參數的某種關系(如上述例子中以及高斯混合模型中的3類參數),導致上面的 $\log$ 似然函數無法直接或者用梯度下降法求出最大值時的 $\theta$ 值,那么這時我們需要加入一個隱藏變量 $z$,以達到簡化 $l(\theta)$,迭代求解 $l(\theta)$ 極大似然估計的目的。

4.2.EM算法推導

??這小節會對EM算法進行具體推導,許多跟上面例子的解法推導是相同的,如果已經懂了,可以加速閱讀。首先跟“三硬幣模型”一樣,加入隱變量 $z$ 后,假設 $Q(z)$ 是關于隱變量 $z$ 的某種分布,那么有如下公式:
\begin{align}
l(\theta)& = \sum_{j=1}^{n}log\: \sum_{i=1}P(y_{j},z_{i}\mid \theta )\label{infer1}\\
& = \sum_{j=1}^{n}log\: \sum_{i=1}Q(z_{i})\frac{P(y_{j},z_{i}\mid \theta )}{Q(z_{i})}\label{infer2}\\
& \geq \sum_{j=1}^{n} \sum_{i=1}Q(z_{i})log\:\frac{P(y_{j},z_{i}\mid \theta )}{Q(z_{i})}\label{infer3}
\end{align}??公式 $\eqref{infer1}$ 是加入隱變量,$\eqref{infer1} \Rightarrow \eqref{infer2}$ 是在基礎上分子分母同乘以,$\eqref{infer2} \Rightarrow \eqref{infer3}$ 用到Jensen不等式(跟“三硬幣模型”一樣),等號成立的條件是,$c$ 是常數。再因為,則有如下 $Q$ 的推導:
\begin{equation*}\sum_{i}P(y_{j},z_{i}\mid \theta )/c=1\\
\Rightarrow \sum_{i}P(y_{j},z_{i}\mid \theta )=c\\
\qquad \qquad \qquad \qquad \Rightarrow Q_{j}(z_{i})=P(y_{j},z_{i}\mid \theta )/\sum_{i}P(y_{j},z_{i}\mid \theta )\\
\qquad \qquad \qquad \qquad \qquad =P(y_{j},z_{i}\mid \theta )/P(y_{j}\mid \theta )\\
\qquad \qquad \qquad =P(z_{i}\mid y_{j},\theta )
\end{equation*}??再一次重復說明,要使 $\eqref{infer3}$ 等式成立,則 $Q_j(z_i)$ 為 $y_j,\ z$的后驗概率。算出 $Q_j(z_i)$ 后對 $\eqref{infer3}$ 就可以進行求偏導,以剃度下降法求得 $\theta$ 值,那么又可以計算新 $Q_j(z_i)$ 的值,依次迭代,EM算法就實現了。

EM 算法(1)
選取初始值 $\theta_0$ 初始化 $\theta$,$t=0$
Repeat {
??E步:
\begin{equation*}
\begin{split}
Q_{j}^{t}(z_{i})& =P(y_{j},z_{i}\mid \theta^{t} )/\sum_{i}P(y_{j},z_{i}\mid \theta^{t} )\\
& =P(y_{j},z_{i}\mid \theta^{t} )/P(y_{j}\mid \theta^{t} )\\
& =P(z_{i}\mid y_{j},\theta^{t} )
\end{split}
\end{equation*}??M步:
\begin{equation*}
\begin{split}
\theta^{t+1}& =arg\: max_{\theta }\: \sum_{j=1}^{n} \sum_{i}Q_{j}^{t}(z_{i})log\:\frac{P(y_{j},z_{i}\mid \theta )}{Q_{j}^{t}(z_{i})}\\
t& =t+1
\end{split}
\end{equation*}}直到收斂

4.3.EM算法收斂性證明

??當 $\theta$ 取到 $\theta_t$ 值時,求得$$\theta^{t+1} =arg\: max_{\theta }\: \sum_{j=1}^{n} \sum_{i}Q_{j}^{t}(z_{i})log\:\frac{P(y_{j},z_{i}\mid \theta )}{Q_{j}^{t}(z_{i})}$$那么可得如下不等式:\begin{align}
l(\theta^{t+1} )& = \sum_{j=1}^{n}log\: \sum_{i}Q_{j}^{t}(z_{i})\frac{P(y_{j},z_{i}\mid \theta^{t+1} )}{Q_{j}^{t}(z_{i})}\label{orderProof1}\\
& \geq \sum_{j=1}^{n}\sum_{i}Q_{j}^{t}(z_{i})log\: \frac{P(y_{j},z_{i}\mid \theta^{t+1} )}{Q_{j}^{t}(z_{i})}\label{orderProof2}
\\
& \geq \sum_{j=1}^{n}\sum_{i}Q_{j}^{t}(z_{i})log\: \frac{P(y_{j},z_{i}\mid \theta^{t} )}{Q_{j}^{t}(z_{i})}\label{orderProof3}
\end{align}??$\eqref{orderProof1} \Rightarrow \eqref{orderProof2}$是因為Jensen不等式,因為等號成立的條件是 $\theta$ 為 $\theta_t$ 的時候得到的,而現在中的 $\theta$ 值為 $\theta_{t+1}$,所以等號不一定成立,除非 $\theta_{t+1} = \theta_t$,
??$\eqref{orderProof2} \Rightarrow \eqref{orderProof3}$ 是因為 $\theta_{t+1}$ 已經使得 $\sum_{j=1}^{n}\sum_{i}Q_{j}^{t}(z_{i})log\: \frac{P(y_{j},z_{i}\mid \theta^{t} )}{Q_{j}^{t}(z_{i})}$ 取得最大值,那必然不會小于 $\eqref{orderProof3}$ 式。
??所以 $l(\theta)$ 在迭代下是單調遞增的,且很容易看出 $l(\theta)$ 是有上界的 (單調有界收斂) ,則EM算法收斂性得證。

4.4. EM算法E步說明

??上述EM算法描述,主要是參考Andrew NG教授的講義,如果看過李航老師的《統計方法學》,會發現里面的證明以及描述表明上有些許不同,Andrew NG教授的講義的說明(如上述)將隱藏變量的作用更好的體現出來,更直觀,證明也更簡單,而《統計方法學》中則將迭代之間θ的變化羅列的更為明確,也更加準確的描述了EM算法字面上的意思:每次迭代包含兩步:E步,求期望;M步,求極大化。下面列出《統計方法學》書中的EM算法,與上述略有不同:

EM算法 (1):
選取初始值θ0初始化θ,t=0
Repeat {
??E步:
\begin{equation}
\begin{split}
\label{Estep}
H(\theta ,\theta ^{t})& =E_{z}[logP(Y,Z\mid \theta )\mid Y,\theta^{t}]\\
& =\sum_{z}P(Z\mid Y,\theta ^{t})logP(Y,Z\mid \theta )
\end{split}
\end{equation}??M步:$$\theta^{t+1} = arg\: max_{\theta } \: H(\theta ,\theta^{t})$$}直到收斂

??$\eqref{Estep}$ 式中,$Y={y_1,y_2,…,y_m},\ Z={z_1,z_2,…,z_m}$,不難看出將 $\eqref{infer3}$ 式中兩個 $\sum$ 對換,就可以得出 $\eqref{Estep}$ 式,而 $\eqref{Estep}$ 式即是關于分布 $z$ 的一個期望值,而需要求這個期望公式,那么要求出所有的EM算法 (1) 中E步的值,所以兩個表明看起來不同的EM算法描述其實是一樣的。

5.小結

??EM算法的基本思路就已經理清,它計算是含有隱含變量的概率模型參數估計,能使用在一些無監督的聚類方法上。在EM算法總結提出以前就有該算法思想的方法提出,例如HMM中用的Baum-Welch算法就是。
??在EM算法的推導過程中,最精妙的一點就是 $\eqref{orderProof1}$ 式中的分子分母同乘以隱變量的一個分布,而套上了Jensen不等式,是EM算法順利的形成。

6.主要參考文獻

[1]:Rabiner L, Juang B. An introduction to hidden markov Models. IEEE ASSP Magazine, January 1986,EM算法原文

[2]:http://v.163.com/special/opencourse/machinelearning.html,Andrew NG教授的公開課中的EM視頻

[3]:http://cs229.stanford.edu/materials.html, Andrew NG教授的講義,非常強大,每一篇都寫的非常精煉,易懂

[4]:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html, 一個將Andrew NG教授的公開課以及講義理解非常好的博客,并且我許多都是參考他的

[5]:http://blog.csdn.net/abcjennifer/article/details/8170378, 一個浙大研一的女生寫的,里面的博客內容非常強大,csdn排名前300,ps:本科就開博客,唉,我的大學四年本科就給了游戲,玩,慚愧哈,導致現在啥都不懂。

轉載于:https://www.cnblogs.com/mindpuzzle/p/3659444.html

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

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

相關文章

Julia語言:讓高性能科學計算人人可用

摘要:一群科學家對現有計算工具感到不滿:他們想要一套開源系統,有C的快速,Ruby的動態,Python的通用,R般在統計分析上得心應手,Perl的處理字符串處理,Matlab的線性代數運算能力……易…

View Animation

轉載一篇關于view animation的文章 http://blog.csdn.net/nerohoop/article/details/7245909 補充:當啟用animation來改變值的時候,值是立刻就改變了的,然后才開始動畫。 轉載于:https://www.cnblogs.com/mystory/archive/2012/12/18/2824029…

編程能力的四種境界

人類心理學研究中的一個基礎支撐科目就是分析人的潛意識和意識。 弗洛伊德是最早的一位能夠清楚的認定和描述我們的心理活動“領域”的人。 在他這著名的一生的早期,他就指出我們的意識里分“潛意識”,“前意識”,“意識”。 如 果我們想能清…

ファイルアップロード関連のjQueryプラグイン10攻略

ファイルアップロード関連のjQueryプラグイン10ファイルアップロードといってもSWFを使ったりAJAXを使ったりと方法が色々あって、いろんなやり方ができるjQueryプラグインです。望みの挙動に近いものを選んでカスタマイズすれば作りたいものが最速で作れ…

HTTP報文(轉)

HTTP報文http://www.cnblogs.com/kissdodog/archive/2013/04/01/2993228.html之前寫過一篇HTML報文,但是感覺寫完之后還是不懂,最近終于有時間開始看《HTTP權威指南》,看完之后覺得還是比之前的理解更加深入了,提取HTTP報文出來做…

C#基礎-應用程序域

文章導讀同一臺計算上的應用程序是通過進程來隔離的,每個應用程序都是加載到不同的進程中,從而達到應用程序的互不影響。操作系統【OS】通過進程控制塊【PCB】感知進程的存在,分析【PCB】的數據結構可以發現,【PCB】維護進程運行的…

Java生鮮電商平臺-微服務入門與服務的拆分架構實戰

Java生鮮電商平臺-微服務入門與服務的拆分架構實戰 剛開始進入軟件行業時還是單體應用的時代,前后端分離的概念都還沒普及,開發的時候需要花大量的時間在“強大”的JSP上面,那時候SOA已經算是新技術了。現在,微服務已經大行其道&a…

詳解MTK系統中字符轉換問題

詳解MTK系統中字符轉換問題 2011-09-05 19:02 佚名 互聯網 字號:T | TMTK系統中字符轉換問題是本文要介紹的內容,主要是來了解并學習MTK中一些小案例的應用,具體內容來看本文詳解。 AD:2014WOT全球軟件技術峰會北京站 課程視頻發布…

Java生鮮電商平臺-微服務架構概述

Java生鮮電商平臺-微服務架構概述 單體架構存在的問題 在傳統的軟件技術架構系統中,基本上將業務功能集中在單一應用內,或者是單一進程中。盡管現代化的軟件架構理論以及設計原則已推廣多年,但實際技術衍化的速度遲緩并且變革動力不足。 其中…

Jensen不等式及其證明

? 詹森不等式以丹麥數學家約翰詹森(JohanJensen)命名。它給出積分的凸函數值和凸函數的積分值間的關系。 關于凸函數: if (-f)是凸函數(convex),則f是凹的(concave…

ios自帶NSURLConnection下載文件

//同步下載,同步請求的主要代碼如下 - (IBAction)downLoad:(id)sender { NSString *urlAsString"http://7jpnsh.com1.z0.glb.clouddn.com/TravelDemo.plist";//文件地址 NSURL *url[NSURL URLWithString:urlAsString]; NSURLRequest *request[NSURLRequest requestWi…

國外程序員整理的機器學習資源大全

本列表選編了一些機器學習領域牛B的框架、庫以及軟件(按編程語言排序)。 C 計算機視覺 CCV —基于C語言/提供緩存/核心的機器視覺庫,新穎的機器視覺庫 OpenCV—它提供C, C, Python, Java 以及 MATLAB接口,并支持Windo…

五款幫助創業者迅速熟悉互聯網創業的在線學習工具

相信很多有志青年都想借助互聯網開拓自己的事業,可是經常面臨一個很現實的問題——缺乏一定的專業知識和技能。沒關系,互聯網中的豐富教育資源就可以讓你迅速地跨越這一障礙,熟悉與創業相關的運營、管理、融資等操作技巧。下面介紹的五個在線…

C++ 中復雜的聲明

1、方法也是有類型的,方法的類型由返回類型和形參表決定。比如int F (int)的類型就是去掉方法名,int (int)。 2、對于方法類型,在返回類型和形參表之間,加上一個名稱F,就表示一個特定的方法F。 3、思考,如果…

caffe 下測試 MNIST數據

詳細說明可參考網頁:http://blog.csdn.net/wangchuansnnu/article/details/44341753http://blog.sina.com.cn/s/blog_49ea41a20102w4uu.htmlhttp://www.cnblogs.com/yymn/p/4553671.html caffe 下 mnist 進行實驗: MNIST,一個經典的手寫數字庫…

Java生鮮電商平臺-秒殺系統微服務架構設計與源碼解析實戰

Java生鮮電商平臺-秒殺系統微服務架構設計與源碼解析實戰 Java生鮮電商平臺- 什么是秒殺 通俗一點講就是網絡商家為促銷等目的組織的網上限時搶購活動 比如說京東秒殺,就是一種定時定量秒殺,在規定的時間內,無論商品是否秒殺完畢&#xff0c…

LInux 下安裝 python notebook 及指向路徑,運行計時,炫酷的深藍午夜主題,本地登陸遠程服務器

1. 安裝 pip工具 sudo apt-get install pyton-pip 2. 安裝ipython及其依賴包 sudo apt-get install ipython ipython-notebook 3. 安裝可選的附加工具(需要時間較長) sudo apt-get install python-matplotlib python-scipy python-pandas python-sympy python-nose 4. 測試i…

對TypeScript進行研究

1.npm install -g typescript 在編輯器,將下面的代碼輸入到greeter.ts文件里: function greeter(person) {return "Hello, " person; } let user "Jane User"; document.body.innerHTML greeter(user); 我們使用了.ts擴展名&…

caffe 提取特征并可視化(已測試可執行)及在線可視化

網絡結構在線可視化工具 http://ethereon.github.io/netscope/#/editor 參考主頁: caffe 可視化的資料可在百度云盤下載 鏈接: http://pan.baidu.com/s/1jIRJ6mU 提取密碼:xehi http://cs.stanford.edu/people/karpathy/cnnembed/ http://lijianch…

ncnn:提取所有層特征值

官方代碼托管地址&#xff1a;https://github.com/Tencent/ncnn 在Extractor類中添加以下方法&#xff1a; int Extractor::extract_all_blobs() {for (int blob_index 0; blob_index < blob_mats.size(); blob_index){Mat outMat;extract(blob_index, outMat);// write to…