① 如何選擇SVM,邏輯回歸和神經網路演算法
神經網路的設計要用到遺傳演算法,遺傳演算法在神經網路中的應用主要反映在3個方面:網路的學習,網路的結構設計,網路的分析。
1.遺傳演算法在網路學習中的應用
在神經網路中,遺傳演算法可用於網路的學習。這時,它在兩個方面起作用
(1)學習規則的優化
用遺傳演算法對神經網路學習規則實現自動優化,從而提高學習速率。
(2)網路權系數的優化
用遺傳演算法的全局優化及隱含並行性的特點提高權系數優化速度。
2.遺傳演算法在網路設計中的應用
用遺傳演算法設計一個優秀的神經網路結構,首先是要解決網路結構的編碼問題;然後才能以選擇、交叉、變異操作得出最優結構。編碼方法主要有下列3種:
(1)直接編碼法
這是把神經網路結構直接用二進制串表示,在遺傳演算法中,「染色體」實質上和神經網路是一種映射關系。通過對「染色體」的優化就實現了對網路的優化。
(2)參數化編碼法
參數化編碼採用的編碼較為抽象,編碼包括網路層數、每層神經元數、各層互連方式等信息。一般對進化後的優化「染色體」進行分析,然後產生網路的結構。
(3)繁衍生長法
這種方法不是在「染色體」中直接編碼神經網路的結構,而是把一些簡單的生長語法規則編碼入「染色體」中;然後,由遺傳演算法對這些生長語法規則不斷進行改變,最後生成適合所解的問題的神經網路。這種方法與自然界生物地生長進化相一致。
3.遺傳演算法在網路分析中的應用
遺傳演算法可用於分析神經網路。神經網路由於有分布存儲等特點,一般難以從其拓撲結構直接理解其功能。遺傳演算法可對神經網路進行功能分析,性質分析,狀態分析。
遺傳演算法雖然可以在多種領域都有實際應用,並且也展示了它潛力和寬廣前景;但是,遺傳演算法還有大量的問題需要研究,目前也還有各種不足。首先,在變數多,取值范圍大或無給定范圍時,收斂速度下降;其次,可找到最優解附近,但無法精確確定最擾解位置;最後,遺傳演算法的參數選擇尚未有定量方法。對遺傳演算法,還需要進一步研究其數學基礎理論;還需要在理論上證明它與其它優化技術的優劣及原因;還需研究硬體化的遺傳演算法;以及遺傳演算法的通用編程和形式等。
② 神經網路和支持向量機的優缺點!
SVM有如下主要幾個特點:
(1)非線性映射是SVM方法的理論基礎,SVM利用內積核函數代替向高維空間的非線性映射;
(2)對特徵空間劃分的最優超平面是SVM的目標,最大化分類邊際的思想是SVM方法的核心;
(3)支持向量是SVM的訓練結果,在SVM分類決策中起決定作用的是支持向量。
(4)SVM 是一種有堅實理論基礎的新穎的小樣本學習方法。它基本上不涉及概率測度及大數定律等,因此不同於現有的統計方法。從本質上看,它避開了從歸納到演繹的傳統過程,實現了高效的從訓練樣本到預報樣本的「轉導推理」,大大簡化了通常的分類和回歸等問題。
(5)SVM 的最終決策函數只由少數的支持向量所確定,計算的復雜性取決於支持向量的數目,而不是樣本空間的維數,這在某種意義上避免了「維數災難」。
(6)少數支持向量決定了最終結果,這不但可以幫助我們抓住關鍵樣本、「剔除」大量冗餘樣本,而且註定了該方法不但演算法簡單,而且具有較好的「魯棒」性。這種「魯棒」性主要體現在:
①增、刪非支持向量樣本對模型沒有影響;
②支持向量樣本集具有一定的魯棒性;
③有些成功的應用中,SVM 方法對核的選取不敏感
兩個不足:
(1) SVM演算法對大規模訓練樣本難以實施
由於SVM是藉助二次規劃來求解支持向量,而求解二次規劃將涉及m階矩陣的計算(m為樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的機器內存和運算時間。針對以上問題的主要改進有有J.Platt的SMO演算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、張學工的CSVM以及O.L.Mangasarian等的SOR演算法
(2) 用SVM解決多分類問題存在困難
經典的支持向量機演算法只給出了二類分類的演算法,而在數據挖掘的實際應用中,一般要解決多類的分類問題。可以通過多個二類支持向量機的組合來解決。主要有一對多組合模式、一對一組合模式和SVM決策樹;再就是通過構造多個分類器的組合來解決。主要原理是克服SVM固有的缺點,結合其他演算法的優勢,解決多類問題的分類精度。如:與粗集理論結合,形成一種優勢互補的多類問題的組合分類器。
③ svm是把數據從低維映射到高維,而RBF神經網路也是這樣,從這一點來說,區別是什麼,謝謝
區別在於RBF是一個顯示映射,而svm是通過內積構造核函數,是一個隱示的映射
④ 以下那些分類演算法可以較好地避免樣本不平衡問題A KNN BSVM C Bayes D神經網路 答案選A,求解釋
KNN只是取了最近的幾個樣本點做平均而已,離預測數據較遠的訓練數據對預測回結果不會造成答影響,但是svm、Bayes和NN每一個訓練樣本果都會對預測結果產生影響,於是如果樣本不平衡的話KNN的效果最好,舉個極端一點例子:答案只有A與B,但是訓練樣本中A的個數佔99%,而B只有1%,svm、Bayes和NN訓練出來的結果,恐怕預測任何數據給出的答案都是A,但是KNN不會。
⑤ 識別數字,bp神經網路演算法,卷積神經網路演算法,svm演算法,adaboost演算法哪種好
看數字圖片而定。如果圖片較小並且質量還不錯,那麼通過2層的神經網路就能勝任。
對於MNIst數據集(28*28的手寫數字),2層神經網路准確率可達99%,svm也有98%以上。
以上實現非常簡單,matlab已經有現成工具箱。
卷積神經網路通常用於更加復雜的場合,閉合是被圖像內容等。在MNIST數據集上cnn可達99.7%准確率,但是實現起來較為復雜,需要通過開源框架caffe,keras等進行編程。
如果對准確率要求沒有達到小數點後兩位的程度,用簡單的svm,神經網路,softmax等調調參數就行了。
⑥ 怎麼看出SVM比BP神經網路收斂速度快
單純比較收斂速度並沒有意義,因為兩種方法的原理完全不同。但從得到全版局最優解的角度來看,SVM效果權較好。
一、SVM可以發現全局最優,而BP演算法通常只能獲得局部最優
SVM學習問題可以表示為凸優化問題,因此可以利用已知的有效演算法發現目標函數的全局最小值。而其他分類方法(如基於規則的分類器和BP人工神經網路)都採用一種基於貪心學習的策略來搜索假設空間,這種方法一般只能獲得局部最優解。
二、SVM方法避免了「維數災難」
SVM方法巧妙地解決了維數災難難題:應用核函數的展開定理,就不需要知道非線性映射的顯式表達式;由於是在高維特徵空間中建立線性學習機,所以與線性模型相比,不但幾乎不增加計算的復雜性,而且在某種程度上避免了「維數災難」.這一切要歸功於核函數的展開和計算理論。
⑦ 推薦一款支持向量機SVM和神經網路軟體
邁實軟體(meshcade)有神經網路和支持向量機SVM軟體,有入門視頻教程,可下載一試。
⑧ 求Matlab做電力系統短期負荷預測的代碼,用SVM或者神經網路的都可以,用作參考
%% BP神經網路: p t pt tt(測試樣本目標值) ta(目標歸一化標准)
ss=10000000;
S1=14; %8--18
for i=1:1
% 網路創建
net=newff(p,t,[8],{'tansig','purelin'},'trainrp'); %'traingd' lm
% 設置訓練參數
net.trainParam.show=10;%顯示中間結果的周期
%net.trainParam.showWindow=flase;
net.trainParam.epochs=2000;%最大迭代次數
%net.trainParam.goal=0.1;%神經網路訓練的目標誤差
%net.trainParam.lr=0.1;%學習率0.01--0.8
%net.trainParam.mc=0.9; %
%net.iw{1,1}=iw;net.lw{2,1}=lw;net.b{1}=theta1;net.b{2}=theta2;
%net.layers{1}.initFcn ='initlay';
% 網路訓練
[net,tr]=train(net,p,t);
% 模擬測試
temp=sim(net,p);
pe=mapminmax('reverse',temp,ta); %pe
%pe=mapminmax(pe);
mset=t-pe;
w=norm(mset);
len=length(t);
s=(w^2)/len;%誤差
end
s_bp=sim(net,pt); % BP神經網路的仿6真結果 -1--1
s1=mapminmax('reverse',s_bp,ta); %0--1
s2=mapminmax(s1,0,1); %最終歸一化的結果
⑨ SVM屬於神經網路范疇嗎
不一樣,如果用作分類的話,兩者的分類原理是不一樣的,就當前而言,用SVM作分類更多,個人覺得,二者有交叉,是兩種不同的方法,但不能說SVM屬於神經網路,當然,也有人將SVM納入神經網路的范疇。
⑩ 模式識別中神經網路與SVM比,有優勢么如果有,在哪裡呢
說不上優勢,只是使用中方便性有點差別
神經網路的結構比較適合做多分類問題,
SVM本質上是處理二分類問題,當然通過1v1或1vall的方式也可以做多分類