A. bp演算法在人工神經網路中的作用是什麼
BP(Back Propagation)演算法是一種常用的人工神經網路訓練演算法,是通過反向傳播來調整神經網路權值的演算法。在人工神經網路中,BP演算法的作用是幫助神經網路對輸入的數據進行學習,並通過學習來調整神經網路的權值,以使得神經網路能夠較好地對未知數據進行預測。
B. 卷積神經網路參數解析
(1)現象:
(1-1)一次性將batch數量個樣本feed神經網路,進行前向傳播;然後再進行權重的調整,這樣的一整個過程叫做一個回合(epoch),也即一個batch大小樣本的全過程就是一次迭代。
(1-2)將訓練數據分塊,做成批(batch training)訓練可以將多個訓練數據元的loss function求和,使用梯度下降法,最小化 求和後的loss function ,進而對神經網路的參數進行優化更新
(2)一次迭代:包括前向傳播計算輸出向量、輸出向量與label的loss計算和後向傳播求loss對權重向量 w 導數(梯度下降法計算),並實現權重向量 w 的更新。
(3)優點:
(a)對梯度向量(代價函數對權值向量 w 的導數)的精確估計,保證以最快的速度下降到局部極小值的收斂性;一個batch一次梯度下降;
(b)學習過程的並行運行;
(c)更加接近隨機梯度下降的演算法效果;
(d)Batch Normalization 使用同批次的統計平均和偏差對數據進行正則化,加速訓練,有時可提高正確率 [7]
(4)現實工程問題:存在計算機存儲問題,一次載入的batch大小受到內存的影響;
(5)batch參數選擇:
(5-1)從收斂速度的角度來說,小批量的樣本集合是最優的,也就是我們所說的mini-batch,這時的batch size往往從幾十到幾百不等,但一般不會超過幾千
(5-2)GPU對2的冪次的batch可以發揮更佳的性能,因此設置成16、32、64、128...時往往要比設置為整10、整100的倍數時表現更優
(6)4種加速批梯度下降的方法 [8] :
(6-1)使用動量-使用權重的 速度 而非 位置 來改變權重。
(6-2)針對不同權重參數使用不同學習率。
(6-3)RMSProp-這是Prop 的均方根 ( Mean Square ) 改進形式,Rprop 僅僅使用梯度的符號,RMSProp 是其針對 Mini-batches 的平均化版本
(6-4)利用曲率信息的最優化方法。
(1)定義:運用梯度下降演算法優化loss成本函數時,權重向量的更新規則中,在梯度項前會乘以一個系數,這個系數就叫學習速率η
(2)效果:
(2-1)學習率η越小,每次迭代權值向量變化小,學習速度慢,軌跡在權值空間中較光滑,收斂慢;
(2-2)學習率η越大,每次迭代權值向量變化大,學習速度快,但是有可能使變化處於震盪中,無法收斂;
(3)處理方法:
(3-1)既要加快學習速度又要保持穩定的方法修改delta法則,即添加動量項。
(4)選擇經驗:
(4-1)基於經驗的手動調整。 通過嘗試不同的固定學習率,如0.1, 0.01, 0.001等,觀察迭代次數和loss的變化關系,找到loss下降最快關系對應的學習率。
(4-2)基於策略的調整。
(4-2-1)fixed 、exponential、polynomial
(4-2-2)自適應動態調整。adadelta、adagrad、ftrl、momentum、rmsprop、sgd
(5)學習率η的調整:學習速率在學習過程中實現自適應調整(一般是衰減)
(5-1)非自適應學習速率可能不是最佳的。
(5-2)動量是一種自適應學習速率方法的參數,允許沿淺方向使用較高的速度,同時沿陡峭方向降低速度前進
(5-3)降低學習速率是必要的,因為在訓練過程中,較高學習速率很可能陷入局部最小值。
參考文獻:
[1] Simon Haykin. 神經網路與機器學習[M]. 機械工業出版社, 2011.
[2] 訓練神經網路時如何確定batch的大小?
[3] 學習筆記:Batch Size 對深度神經網路預言能力的影響
[4] 機器學習演算法中如何選取超參數:學習速率、正則項系數、minibatch size. http://blog.csdn.net/u012162613/article/details/44265967
[5] 深度學習如何設置學習率 . http://blog.csdn.net/mao_feng/article/details/52902666
[6] 調整學習速率以優化神經網路訓練. https://zhuanlan.hu.com/p/28893986
[7] 機器學習中用來防止過擬合的方法有哪些?
[8] Neural Networks for Machine Learning by Geoffrey Hinton .
[9] 如何確定卷積神經網路的卷積核大小、卷積層數、每層map個數
[10] 卷積神經網路的卷積核大小、卷積層數、每層map個數都是如何確定下來的呢?
C. 人工神經網路預測信貸的意義
人工神經網路演算法的信用風險預測
信用風險或信用違約表明未償還已提供給客戶的銀行金融服務的可能性。信貸風險一直是銀行貸款決策中廣泛研究的領域。信用風險對銀行和金融機構,特別是對商業銀行而言,起著至關重要的作用,並且始終難以解釋和管理。由於技術的進步,銀行已經設法降低成本,以便開發強大而復雜的系統和模型來預測和管理信貸風險。
為了預測信用違約,已經創建並提出了幾種方法。方法的使用取決於銀行和金融機構的復雜程度,貸款的規模和類型。常用的方法是判別分析。這種方法使用了有助於決策的得分函數,而一些研究人員由於其限制性假設而對區分分析的有效性表示懷疑。變數之間的正態性和獨立性[4]。人工神經網路模型的創建是為了克服其他效率低下的信用違約模型的缺點。
本文的目的是研究神經網路演算法解決預測信用違約問題的能力,該能力衡量一段時間內貸款申請的信用度。前饋神經網路演算法被應用於銀行的住宅抵押貸款應用的小型數據集,以預測信用違約。模型的輸出將生成一個二進制值,該值可用作分類器,以幫助銀行識別借款人是否違約。本文將採用一種經驗方法,該方法將討論兩個基於神經網路的模型,並且將通過訓練和驗證有關住宅抵押貸款申請的模型來報告實驗結果。作為該方向的最後一步,還對數據集執行了線性回歸方法。
2方法論
2.1數據
數據是從kaggle.com(貸款俱樂部貸款數據)收集的,其中包含850萬條記錄。從數據集中抽取了60
因變數: loan_status(0和1);如果借款人將違約,那麼投資將是不良的;如果借款人不違約,則他或她將能夠償還全部貸款額。因此,要區分神經網路,0表示借方將違約,而1表示借方將不違約。
自變數:以下變數被視為自變數,loan_amnt,funded_amnt,emp_length,等級,funded_amnt_inv,期限,int_rate,分期付款,year_inc,issue_d和application_type
2.2模型
在這項研究中,使用了經典的前饋神經網路。前饋網路由一個具有10個輸入變數的輸入層,7個隱藏層和一個具有代表分類器的神經元的輸出層組成。使用監督學習演算法(反向傳播演算法)對網路進行訓練。該演算法通過最小化實際和期望輸出之間的誤差來優化神經元權重。對於神經元i,權重將通過公式進行更新,其中f為學習系數是隱藏層的輸出,演算法將一直運行到找到停止標准為止。
對於圖3所示的神經網路演算法,必須仔細選擇參數,例如f的值以及神經元數和隱藏層數。在圖3中,連接由每層之間的黑線表示和權重,藍線顯示每個步驟中的偏差(模型的截距)。網路是一個黑匣子,訓練演算法可以在融合時隨時使用。同樣,已經從提取的數據集中為網路演算法創建了一個隨機樣本。然後創建一個訓練和測試數據集,分別用於訓練模型和驗證模型的性能。
圖3:信用違約模型的神經網路圖
3實驗與結果
已將10個歸一化變數作為按順序排列的輸入作為網路輸入。網路的輸出是一個分類器,結果為0和1。首先,已檢查數據是否缺少數據點值,沒有數據丟失;無需修復數據集。輸入的相關矩陣如圖4所示。
圖4:輸入數據集的相關圖
訓練完數據集後,將在測試數據集上對其進行測試。為了基於其他輸入來計算輸出,已使用了計算功能。將7個隱藏層添加到網路並創建了模型。網路已生成以下結果矩陣:
表1:經典前饋神經網路的結果矩陣
屬性
值
錯誤
322.833
達到閾值
0.0998
腳步
6765
總共需要6765個步驟,直到誤差函數的所有導數都小於默認閾值(0.01)。在實現經典的前饋演算法之後,通過使用學習速率為0.01的反向傳播演算法實現了另一個模型。經典過程和反向傳播過程具有幾乎相同的錯誤率。因此,經典模型擬合不如反向傳播演算法令人滿意。
圖5:輸入的廣義權重
表2:預測輸出與期望輸出的比較
實際
預測
火柴
0
0.0032
真正
0
0.00017
真正
0
0.0114
真正
1個
0.985
真正
0
0.0060
真正
0
0.0132
真正
0
0.9704
假
0
0.0101
真正
1個
0.00128
真正
最後,將線性回歸應用於數據集以比較兩種演算法的准確性。glm()函數已用於擬合線性回歸模型。對於回歸,已分配了大於0.5的概率,如果回歸中的預測值大於0.5,則該值為1,否則為0。已經通過合並錯誤分類誤差來計算準確性,並且混淆矩陣的計算也如圖6所示。 。
圖6:混淆矩陣和線性回歸統計
為了強調比較,已計算了線性回歸和神經網路的均方誤差,如表3所示。從表中可以看出,兩個過程的均方誤差大致相同,因此兩個過程都相同工作。有必要知道,MSE中的偏差取決於訓練和測試劃分。
表3:兩個過程的均方誤差
MSE神經網路
MSE線性回歸
0.0220449
0.0227334
4。結論
本文研究了人工神經網路和線性回歸模型來預測信用違約。兩種系統都已經過kaggle.com提供的貸款數據培訓。兩種系統的結果對數據集均顯示出相同的效果,因此非常有效,通過人工神經網路的准確率為97.67575%,准確率為97.69609%。系統對輸出變數的分類正確,誤差很小。因此,這兩個過程都可以用來識別信用違約率。而且,神經網路代表黑匣子方法,因此與線性回歸模型相比,難以解釋結果。因此,使用哪種模型取決於必須使用的應用程序。此外,在使用神經網路過程擬合模型時,用戶需要格外注意屬性和數據規范化以提高性能。總之,神經網路提供了強有力的證據來有效預測貸款申請的信用違約。
神經網路演算法具有廣泛的應用范圍,不僅對住宅抵押至關重要。其他應用可以是由公司發行的債券評級,通常稱為債券評級,對可以持續使用長達一年的短期投資進行評級,對本地和外幣的長期和短期評級,主權或國家評級。通過使用適當的演算法和技術,可以進一步增強預測系統,以為應用程序分配信用等級。
題庫
D. 交易策略的七種類型
交易系統的生命來源於交易策略。只見樹林,不見森林;只見森林,不見生態,這也是我們常做的事。在交易策略這個問題上,我相信現在還沒有多少人能見到森林。從最近的暢銷書排行榜就能看出,我們中間多數人對交易策略的認識還只盯在跟庄這一種類型。實際上,據我的理解,理性的交易策略應該包括以下7種基本類型:
價值型策略
即著眼於股票的內在價值。最典型的是巴菲特,完全從公司基本面上尋找投資機會。還有一個奧尼爾的CANSLIM模型,其中多半要素也屬於價值范圍。如果細分,可以說巴菲特是價值挖掘型,而奧尼爾是價值增長型。
趨勢型策略
通俗地說,就是追漲殺跌。從眾心理是趨勢的主要基礎。趨勢也是股市運行的最明顯特徵。雖然牛市上具有明顯上漲趨勢的時間只佔總時間的15%左右,但由於它的特徵顯著,還是受到眾多的投資者偏愛。
順便提醒炒股時間不長的朋友,運用趨勢型策略最關鍵的是資金管理和止損,而不是信號的成功率。
趨勢型策略的典型人物一個是索羅斯,他不僅運用趨勢,還提出走在趨勢的前面,就是找趨勢轉折點。另一個是范·撒凱在《通向金融王國的自由之路》一書中提到的巴索,建議大家都去找一下這本書看看,理解一下R系數的理念會使您對趨勢型策略有全新的認識。
能量型策略
前面的趨勢型主要關注價格,而能量型主要關注的是成交量。成交量是股價的元氣,這句話十分到位地表達了這類策略的觀點。例如OBV指標就是一個最簡單的能量型策略的例子。
周期型策略
螺旋式上升是世界上最常見的發展方式,股市也不例外。一個螺旋就是一個周期。我們常說的波段,它的學名應該也叫周期。周期型策略的代表人物我認為第一個是艾略特,波浪就是周期嘛,只不過他那裡的波浪還只是非理性的,靠肉眼看,就像看雲彩似的。好在現在有了不怕苦不怕累的電腦,能夠代替我們把波浪數得更統一,如果再加上神經網路技術,波浪的前景應該很光明的。
突變型策略
我不是在說突變論的突變,這里我們不需要那麼復雜的。這里說的突變就是價格發生突然變化的意思。突變往往是容易把握的好機會。只不過全國80%的個人投資者都是業餘股民、上班族,用不上,所以不多說了。
跟庄型策略
我把這個策略排在第六位,也是想請各位注意,除它之外,還有其他可能是更好的策略。
數理型策略
不是數理化的數理,而是數術之理的意思。我對此一竅不通,曾有朋友想教化我,但我一看就暈,學不了。
請注意,以上說的是7種基本類型。所謂「基本」,就是指它是一種在理想模型中抽象概括出的東西。在實際中,大可不必說我只用一種基本策略。把不同的策略組合進一個交易系統一般能得到更好的甚至是出奇好的效果。
E. 完全不懂金融,想學習量化投資需要學習哪些金融科目
我個人認為學習量化投資在金融方面需要具備兩個方面的知識:
1、首先是要了解金融市場與金融產品,只有這樣才能在眾多市場與標的中選擇合適的來構建投資組合,這一方面需要了解的基礎知識有:金融市場與金融機構、投資學、金融衍生品等等;
2、其次是需要了解如何量化,相信你應該有足夠的IT背景,編程沒啥問題,其次的話就是要了解數理來溝通金融產品選擇與編程落地,需要了解的科目有:概率論、統計學、計量經濟學、金融經濟學、數理金融等。
F. 外匯中所說的EA是什麼
什麼是EA?
EA是一個專門針對MetaTrader平台所編寫的軟體,EA可以建議交易者進行交易,也可以被編程出來自動執行賬戶上的交易,我們通常都是在指後者。
那麼EA是什麼呢?
EA就是將您自己或別人的外匯交易策略用特殊的編程語言(MQL)編寫成一個電腦軟體程序, 讓電腦按照您事先設定好的條件自動地為您買賣與交易,當然盈虧結果取決於您的自動交易系統設計得好壞。
EA的主要執行過程可分為:盯盤--開倉--再盯盤--平倉,如此循環執行的過程。
而一個EA主要包括三個要素:訂單執行、風險管理和資金管理
訂單執行:就是什麼時候進場下單,什麼時候平倉賣出,主要依據的是指標組合。
風險管理:在外匯交易中風險管理和資金管理都是非常重要的,風險管理通常就是設置止盈止損。
資金管理:資金管理就是倉位管理,每次下單多少手,是固定的手數還是基於總資金的一個比例?
G. 什麼是神經網路
神經網路是機器學習的一個流派。這是現今最火的一個學派。我們在第一講中,已經知道人學習知識是通過神經元的連接,科學家通過模仿人腦機理發明了人工神經元。技術的進一步發展,多層神經元的連接,就形成了神經網路。那麼神經網路是怎麼搭建起來的呢?神經元是構建神經網路的最基本單位, 這張圖就是一個人工神經元的原理圖,非常簡單,一個神經元由一個加法器和一個門限器組成。加法器有一些輸入,代表從其他神經元來的信號,這些信號分別被乘上一個系數後在加法器里相加,如果相加的結果大於某個值,就「激活」這個神經元,接通到下個神經元,否則就不激活。原理就這么簡單,做起來也很簡單。今天所有的神經網路的基本單元都是這個。輸入信號乘上的系數,我們也叫「權重」,就是網路的參數,玩神經網路就是調整權重,讓它做你想讓它做的事。 一個神經元只能識別一個東西,比如,當你訓練給感知器會「認」數字「8」,你給它看任何一個數字,它就會告訴你,這是「8」還不是「8」。為了讓機器識別更多更復雜的圖像,我們就需要用更多的神經元。人的大腦由 1000 億個神經元構成,人腦神經元組成了一個很復雜的三維立體結構。
H. 神經網路——BP演算法
對於初學者來說,了解了一個演算法的重要意義,往往會引起他對演算法本身的重視。BP(Back Propagation,後向傳播)演算法,具有非凡的歷史意義和重大的現實意義。
1969年,作為人工神經網路創始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一書,論證了簡單的線性感知器功能有限,不能解決如「異或」(XOR )這樣的基本問題,而且對多層網路也持悲觀態度。這些論點給神經網路研究以沉重的打擊,很多科學家紛紛離開這一領域,神經網路的研究走向長達10年的低潮時期。[1]
1974年哈佛大學的Paul Werbos發明BP演算法時,正值神經外網路低潮期,並未受到應有的重視。[2]
1983年,加州理工學院的物理學家John Hopfield利用神經網路,在旅行商這個NP完全問題的求解上獲得當時最好成績,引起了轟動[2]。然而,Hopfield的研究成果仍未能指出明斯基等人論點的錯誤所在,要推動神經網路研究的全面開展必須直接解除對感知器——多層網路演算法的疑慮。[1]
真正打破明斯基冰封魔咒的是,David Rumelhart等學者出版的《平行分布處理:認知的微觀結構探索》一書。書中完整地提出了BP演算法,系統地解決了多層網路中隱單元連接權的學習問題,並在數學上給出了完整的推導。這是神經網路發展史上的里程碑,BP演算法迅速走紅,掀起了神經網路的第二次高潮。[1,2]
因此,BP演算法的歷史意義:明確地否定了明斯基等人的錯誤觀點,對神經網路第二次高潮具有決定性意義。
這一點是說BP演算法在神經網路領域中的地位和意義。
BP演算法是迄今最成功的神經網路學習演算法,現實任務中使用神經網路時,大多是在使用BP演算法進行訓練[2],包括最近炙手可熱的深度學習概念下的卷積神經網路(CNNs)。
BP神經網路是這樣一種神經網路模型,它是由一個輸入層、一個輸出層和一個或多個隱層構成,它的激活函數採用sigmoid函數,採用BP演算法訓練的多層前饋神經網路。
BP演算法全稱叫作誤差反向傳播(error Back Propagation,或者也叫作誤差逆傳播)演算法。其演算法基本思想為:在2.1所述的前饋網路中,輸入信號經輸入層輸入,通過隱層計算由輸出層輸出,輸出值與標記值比較,若有誤差,將誤差反向由輸出層向輸入層傳播,在這個過程中,利用梯度下降演算法對神經元權值進行調整。
BP演算法中核心的數學工具就是微積分的 鏈式求導法則 。
BP演算法的缺點,首當其沖就是局部極小值問題。
BP演算法本質上是梯度下降,而它所要優化的目標函數又非常復雜,這使得BP演算法效率低下。
[1]、《BP演算法的哲學思考》,成素梅、郝中華著
[2]、《機器學習》,周志華著
[3]、 Deep Learning論文筆記之(四)CNN卷積神經網路推導和實現
2016-05-13 第一次發布
2016-06-04 較大幅度修改,完善推導過程,修改文章名
2016-07-23 修改了公式推導中的一個錯誤,修改了一個表述錯誤
I. (BP進階1)從M-P模型到BP神經網路
經過兩天的研究,終於更加清晰地搞明白了所謂BP,做此記錄。
M-P模型,其實就是按照生物神經元的結構和工作原理來構造出來的比較簡單的模型。下圖為M-P模型的示意圖:
具體的推論詳見 http://blog.csdn.net/u013007900/article/details/50066315
拋去繁重的公式,我們可以把這個模型理解為:
要想下一個神經元接收到信息,那麼接收到的信號一定要大於某一個闕值θ才能由輸出信號yj輸出,該闕值由具體的神經元決定;也就是說,輸入的信號總和在經過神經元後失去了闕值θ的信號以後,轉化為輸出信號輸出。
我們假每一個輸出信號x都輸入一定的神經元Wij,那麼該神經元共接收到的輸入信號即為
這個公式不難理解,於是在神經元中失去了闕值量θ後:
經過信號轉化(激活函數f(x)的作用)為輸出信號:
然而神經元突觸的信號類型又分為興奮和抑制兩種狀態,於是,在M-P模型中,這種性質體現為權值w的正負,如果權值是負,那麼輸出y值就也為負,體現為抑制狀態;如果權值是正,那麼輸出y值就也為正,體現為興奮狀態。
這種「閾值加權和」的神經元模型稱為M-P模型 ( McCulloch-Pitts Model ),也稱為神經網路的一個處理單元( PE, Processing Element )。
常用的激活函數有五種:
線性激活函數:
非線性激活函數:
在進行BP神經網路進行訓練的時候,我們常用的函數是S形函數。
簡單來說,感知器就是一個簡單的神經網路模型,以下是感知器的拓撲結構圖:
而oi表現形式為兩種,1和-1,來表示興奮和抑制。
因此,單層感知器的作用為可以使用一條直線來對輸入數據進行線性分類,如果仍舊不太明白的話,可以從公式入手來進行分析:
所以可以得知,這是一個關於x1,x2的線性函數,而在圖1中用於分類的紅色直線,則是與函數w1j x1+w2j x2-θj=0成線性關系的函數。
到此,我們已經講解了單層感知器的實現分類原理,引入多層分類器的原因在於,單層感知器的局限性只能區分二維平面中的線性函數,而對於多維平面,或著非線性函數來說,則無法實現分類。
可以看出,在加入了隱層以後輸入層的數據不再直接經過簡單的權值激活運算就直接進入輸出層,而是在多層的隱層經過復雜計算後,再輸入層輸出,這樣的計算方法,可以保證輸出的o和輸入信號x1,x2,不再是簡單的線性關系,而其中的計算也將會隨著隱層的增加而無限度地復雜化。
我們可以比較一下單層感知器和多層感知器的分類能力:
由上圖可以看出,隨著隱層層數的增多,凸域將可以形成任意的形狀,因此可以解決任何復雜的分類問題。實際上,Kolmogorov理論指出:雙隱層感知器就足以解決任何復雜的分類問題。
異或問題的解決:
在M-P模型中,我們得知,為了實現有效的分類,需要加入一定數量的隱層來加強演算法的復雜性,而在隱層內部的計算我們是無法得知的,因此,我們需要進行神經網路的訓練。
這樣說可能有點突兀,我們不妨這樣想,我們已知的是一組數據和它們相對應的分類狀況,求解的是如何可以用同類的數據來得到正確的分類。
或者這樣說,我們已知:
x1=2,x2=3時,y=5,x1=4,x2=5時,y=9,那麼,求解x1=8,x2=0時,y的值,這樣是不是好理解很多?
總之,我們需要的是一個可以滿足當前條件的「公式」,讓它可以計算出更多的數據,這在我們的小學數學里叫做解算式,在這里就可以叫做訓練。
我們需要知道這些數據在隱層里是經過怎樣的計算,才得到了輸出結果,於是,我們需要先進性數據的訓練,然後再根據現有未知結果的數據套進去,得到預期結果。
而我們在這里,得出的所謂隱層結構的計算,就是需要訓練出的「公式」。
具體的BP訓練方式下次更新。
J. 用於量子計算機的深度卷積神經網路
量子計算機將用於什麼用途?量子計算機有望在許多領域幫助解決難題,包括機器學習。
本文詳細講述 量子計算機 上 卷積神經網路 (CNN)的理論實現。我們將此演算法稱為 QCNN ,我們證明了它可以比CNN 更快 地運行,並且精度 很高 。
為此,我們必須提出 卷積積 的 量子形式 ,找到實現非線性和池化的方法,以及對 表示圖像 的 量子態 進行層析成像的新方法,以 保留有意義的信息 。
簡而言之,我們可以說 量子物理系統可以描述為 維度為2^n的某些希爾伯特空間中的 向量 ,其中n是粒子數。實際上,這些向量表示許多可能的觀察結果的疊加。
另一方面,機器學習,尤其是神經網路,正在粗略地使用向量和矩陣來理解或處理數據。 量子機器學習(QML)旨在使用量子系統對向量進行編碼,並使用新的量子演算法對其進行學習 。一個關鍵的概念是在許多矢量上使用量子疊加,我們可以同時處理它們。
我不會更深入地介紹量子計算或QML。有關更多詳細信息,可以參考NeurIPS 2019中有關 Quantum k-means的 一篇文章 :
卷積神經網路(CNN)是一種流行且高效的神經網路,用於圖像分類,信號處理等。在大多數層中,將 卷積積 應用於圖像或張量的輸入上。通常後面是 非線性層和池化層 。
3D張量輸入X ^ 1(RGB圖像)和4D張量內核K ^ 1之間的卷積。
在本章中,我將重點介紹一層,解釋什麼是量子CNN。
這里的核心思想是我們可以根據矩陣乘法來重新構造卷積積。
該演算法首先以量子疊加方式載入矩陣的 所有行和列 。然後,我們使用先前開發的 Quantum Inner Proct Estimation估算 輸出的每個像素。在實踐中,這就像只計算一個輸出像素(圖中的紅點),但是以 量子疊加的方式進行計算可以使它們同時全部都具有 !然後,我們可以同時對它們中的每一個應用非線性。
不幸的是,我們所擁有的只是一個量子狀態,其中所有像素並行存在,並不意味著我們可以訪問所有像素。如果我們打開"量子盒"並查看結果(一個度量),我們 每次都會隨機地只看到一個輸出像素 。在打開盒子之前,這里都有"四處漂浮"的東西,就像著名的薛定諤的死活貓。
為了解決這個問題,我們引入了一種 只檢索最有意義的像素的方法 。實際上,量子疊加中的每個輸出像素都有一個幅度,與我們測量系統時 被看到 的幅度有關。在我們的演算法中,我們強制此幅度等於像素值。 因此,具有高值的輸出像素更有可能被看到。
在CNN中,輸出中的高值像素非常重要。它們代表輸入中存在特定模式的區域。通過了解不同模式出現的位置,神經網路可以理解圖像。因此,這些 高價值像素承載著有意義的信息 ,我們可以舍棄其他希望CNN適應的 像素 。
圖像上量子效應(雜訊,隨機性,采樣)的小示例。憑直覺,我們僅對高值像素采樣後仍可以"理解"圖像。
請注意,在對這些輸出像素進行采樣時,我們可以在存儲它們時應用任何類型的 合並 (有關技術細節,請參見論文)。我們將這些像素存儲在經典內存中,以便可以將它們重新載入為 下一層的 輸入。
傳統上,CNN層需要時間 Õ( 輸出大小 x 內核大小 ) 。這就是為什麼例如使用許多大內核來訓練這些網路變得昂貴的原因。我們的 量子CNN 需要時間 為O( ( σ X 輸出大小) X Q) ,其中 σ 是我們從輸出(<1)繪制樣品的比率,和 Q 表示量子精度參數和數據相關的參數一束。有 沒有在內核大小更依賴 (數量和尺寸),這可能允許進行更深入的CNN。
通過量子CNN的這種設計,我們現在也想用量子演算法對其進行訓練。訓練包括遵循梯度下降規則更新內核參數。在這里也可以找到一種更快的量子演算法,它幾乎等同於具有某些額外誤差的通常的梯度下降。
QCNN和量子反向傳播看起來不錯,但暗示了很多近似,雜訊和隨機性。盡管有這些偽像,CNN仍然可以學習嗎?我們比較了小型經典CNN的訓練和QCNN在學習對手寫數字進行分類(MNIST數據集)的任務上的模擬。這表明 QCNN可以以相似的精度學習 。
量子和經典CNN訓練曲線之間的比較。 σ 是從每一層後的輸出提取的高值像素的比率。期望 σ 太小,QCNN可以很好地學習。請注意,此數值模擬很小,只能給出直覺,不是證明。
在這項工作中,我們設計了第一個量子演算法,通過引入量子卷積乘積和檢索有意義的信息的新方法,幾乎可以重現任何經典的CNN體系結構。它可以允許使用更深,更大的輸入或內核來大大加快CNN的速度。我們還開發了量子反向傳播演算法,並模擬了整個訓練過程。
請讀者思考的問題:我們可以在其他數據集使用大型架構上訓練QCNN嗎?