1. 最小二乘法、回歸分析法、灰色預測法、決策論、神經網路等5個演算法的使用范圍及優缺點是什麼
最小二乘法:通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。優點:實現簡單,計算簡單。缺點:不能擬合非線性數據.
回歸分析法:指的是確定兩種或兩種以上變數間相互依賴的定量關系的一種統計分析方法。在大數據分析中,回歸分析是一種預測性的建模技術,它研究的是因變數(目標)和自變數(預測器)之間的關系。這種技術通常用於預測分析,時間序列模型以及發現變數之間的因果關系。優點:在分析多因素模型時,更加簡單和方便,不僅可以預測並求出函數,還可以自己對結果進行殘差的檢驗,檢驗模型的精度。缺點:回歸方程式只是一種推測,這影響了因子的多樣性和某些因子的不可測性,使得回歸分析在某些情況下受到限制。
灰色預測法:
色預測法是一種對含有不確定因素的系統進行預測的方法 。它通過鑒別系統因素之間發展趨勢的相異程度,即進行關聯分析,並對原始數據進行生成處理來尋找系統變動的規律,生成有較強規律性的數據序列,然後建立相應的微分方程模型,從而預測事物未來發展趨勢的狀況。它用等時間距離觀測到的反應預測對象特徵的一系列數量值構造灰色預測模型,預測未來某一時刻的特徵量,或者達到某一特徵量的時間。優點:對於不確定因素的復雜系統預測效果較好,且所需樣本數據較小。缺點:基於指數率的預測沒有考慮系統的隨機性,中長期預測精度較差。
決策樹:在已知各種情況發生概率的基礎上,通過構成決策樹來求取凈現值的期望值大於等於零的概率,評價項目風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。由於這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。在機器學習中,決策樹是一個預測模型,他代表的是對象屬性與對象值之間的一種映射關系。優點:能夠處理不相關的特徵;在相對短的時間內能夠對大型數據源做出可行且效果良好的分析;計算簡單,易於理解,可解釋性強;比較適合處理有缺失屬性的樣本。缺點:忽略了數據之間的相關性;容易發生過擬合(隨機森林可以很大程度上減少過擬合);在決策樹當中,對於各類別樣本數量不一致的數據,信息增益的結果偏向於那些具有更多數值的特徵。
神經網路:優點:分類的准確度高;並行分布處理能力強,分布存儲及學習能力強,對雜訊神經有較強的魯棒性和容錯能力,能充分逼近復雜的非線性關系;具備聯想記憶的功能。缺點:神經網路需要大量的參數,如網路拓撲結構、權值和閾值的初始值;不能觀察之間的學習過程,輸出結果難以解釋,會影響到結果的可信度和可接受程度;學習時間過長,甚至可能達不到學習的目的。
2. 灰色神經網路預測,有20個數據如何預測第21個數據,求救!懇求代碼!
歷史3年的人口預測下一年人口 這樣,可以給我站內信,具體交流
3. 灰色神經網路代碼
%% 清空環境變數
clc
clear
data=[1.522 0.5485 0.868 0.6854 0.9844 0.5773;
1.431 0.5943 0.7612 0.6567 0.951 0.7184;
1.671 0.6346 0.7153 0.6802 0.9494 0.623;
1.775 0.7838 0.8895 0.7442 0.9291 0.6924;
1.630 0.5182 0.8228 0.6335 0.8668 0.5831;
1.670 0.7207 0.8897 0.669 0.9516 0.7863;
1.592 0.648 0.6915 0.7347 0.853 0.4497;
2.041 0.7291 0.9309 0.6788 0.9968 0.7356;
1.631 0.7753 0.797 0.7228 0.8702 0.7679;
2.028 0.7923 0.8961 0.6363 0.9478 0.8039;
1.585 0.7491 0.8884 0.6658 0.9398 0.8797;
1.716 0.755 0.7602 0.6157 0.9134 0.7204;
1.511 0.5498 0.8127 0.6204 0.9284 0.6145;
1.454 0.5404 0.7486 0.6328 0.9591 0.6857;
1.568 0.6182 0.7471 0.6585 0.9802 0.6368;
1.883 0.7931 0.9681 0.7646 0.8886 0.7411;
1.562 0.5496 0.8658 0.7181 0.7832 0.5669;
1.69 0.6644 0.8992 0.6357 0.9087 0.7933;
1.791 0.5768 0.713 0.773 0.8829 0.4907;
2.019 0.7473 0.9531 0.6768 0.9964 0.8092;
1.852 0.8236 0.8079 0.6796 0.9272 0.8512;
1.539 0.864 0.8862 0.6386 0.9685 0.8567;
1.728 0.7814 0.941 0.6944 0.9629 0.8775;
1.676 0.7285 0.7868 0.6987 0.8805 0.763;
1.66 0.5476 0.8223 0.6286 0.9355 0.5898
1.351 0.5557 0.7072 0.6811 0.9553 0.7326;
1.603 0.5519 0.6816 0.7009 0.9736 0.6151;
1.876 0.8039 0.8852 0.8068 0.9644 0.7477;
1.631 0.449 0.7941 0.7138 0.8281 0.5306;
1.75 0.6729 0.8526 0.6223 0.9452 0.7562;
1.6 0.6012 0.664 0.792 0.8878 0.4979;
1.946 0.7751 0.9155 0.7032 0.9168 0.7432;
1.636 0.7931 0.7635 0.6393 0.8757 0.7692;
1.865 0.7598 0.8426 0.6756 0.9234 0.8065;
1.829 0.8357 0.9483 0.6892 0.9779 0.8949;
1.814 0.7342 0.7572 0.6134 0.8862 0.7907
]
X=data
%% 數據累加作為網路輸入
[n,m]=size(data);
for i=1:n
y(i,1)=sum(X(1:i,1));
y(i,2)=sum(X(1:i,2));
y(i,3)=sum(X(1:i,3));
y(i,4)=sum(X(1:i,4));
y(i,5)=sum(X(1:i,5));
y(i,6)=sum(X(1:i,6));
end
%% 網路參數初始化
a=0.3+rand(1)/4;
b1=0.3+rand(1)/4;
b2=0.3+rand(1)/4;
b3=0.3+rand(1)/4;
b4=0.3+rand(1)/4;
b5=0.3+rand(1)/4;
%% 學習速率初始化
u1=0.0015;
u2=0.0015;
u3=0.0015;
u4=0.0015;
u5=0.0015;
%% 權值閥值初始化
t=1;
w11=a;
w21=-y(1,1);
w22=2*b1/a;
w23=2*b2/a;
w24=2*b3/a;
w25=2*b4/a;
w26=2*b5/a;
w31=1+exp(-a*t);
w32=1+exp(-a*t);
w33=1+exp(-a*t);
w34=1+exp(-a*t);
w35=1+exp(-a*t);
w36=1+exp(-a*t);
theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1));
kk=1;
%% 循環迭代
for j=1:10
%循環迭代
E(j)=0;
for i=1:30
%% 網路輸出計算
t=i;
LB_b=1/(1+exp(-w11*t)); %LB層輸出
LC_c1=LB_b*w21; %LC層輸出
LC_c2=y(i,2)*LB_b*w22; %LC層輸出
LC_c3=y(i,3)*LB_b*w23; %LC層輸出
LC_c4=y(i,4)*LB_b*w24; %LC層輸出
LC_c5=y(i,5)*LB_b*w25; %LC層輸出
LC_c6=y(i,6)*LB_b*w26; %LC層輸出
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD層輸出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %閥值
ym=LD_d-theta; %網路輸出值
yc(i)=ym;
%% 權值修正
error=ym-y(i,1); %計算誤差
E(j)=E(j)+abs(error); %誤差求和
error1=error*(1+exp(-w11*t)); %計算誤差
error2=error*(1+exp(-w11*t)); %計算誤差
error3=error*(1+exp(-w11*t));
error4=error*(1+exp(-w11*t));
error5=error*(1+exp(-w11*t));
error6=error*(1+exp(-w11*t));
error7=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6);
%修改權值
w22=w22-u1*error2*LB_b;
w23=w23-u2*error3*LB_b;
w24=w24-u3*error4*LB_b;
w25=w25-u4*error5*LB_b;
w26=w26-u5*error6*LB_b;
w11=w11+a*t*error7;
end
end
%畫誤差隨進化次數變化趨勢
figure(1)
plot(E)
title('訓練誤差','fontsize',12);
xlabel('進化次數','fontsize',12);
ylabel('誤差','fontsize',12);
%print -dtiff -r600 28-3
%根據訓出的灰色神經網路進行預測
for i=31:36
t=i;
LB_b=1/(1+exp(-w11*t)); %LB層輸出
LC_c1=LB_b*w21; %LC層輸出
LC_c2=y(i,2)*LB_b*w22; %LC層輸出
LC_c3=y(i,3)*LB_b*w23; %LC層輸出
LC_c4=y(i,4)*LB_b*w24; %LC層輸出
LC_c5=y(i,5)*LB_b*w25;
LC_c6=y(i,6)*LB_b*w26;
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD層輸出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %閥值
ym=LD_d-theta; %網路輸出值
yc(i)=ym;
end
yc=yc*100000;
y(:,1)=y(:,1)*10000;
%計算預測的每月需求量
for j=36:-1:2
ys(j)=(yc(j)-yc(j-1))/10;
end
figure(2)
plot(ys(31:36),'-*');
hold on
plot(X(31:36,1)*10000,'r:o');
legend('灰色神經網路','實際訂單數')
title('灰色系統預測','fontsize',12)
xlabel('月份','fontsize',12)
ylabel('銷量','fontsize',12)
4. 【閱讀筆記】改進卷積神經網路的14個小技巧
原文: https://mp.weixin.qq.com/s/Lh_lJNvV9BGhc6no2ln-_g
原題目誤導性太大
1)架構要遵循應用
你也許會被 Google Brain 或者 DeepMind 這些奇特的實驗室所發明的那些耀眼的新模型所吸引,但是其中許多在你的用例或者業務環境中要麼是不可能實現,要麼是實現起來非常不現實。你應該使用對你的特定應用最有意義的模型,這種模型或許比較簡單,但是仍然很強大,例如 VGG。
2)網路路徑的激增
每年的 ImageNet Challenge 的冠軍都會使用比上一屆冠軍更加深層的網路。從 AlexNet 到 Inception,再到 ResNet,Smith 注意到了「網路中路徑數量倍增」的趨勢,並且「ResNet 可以是不同長度的網路的指數集合」。
3)爭取簡單
然而,更大的並不一定是更好的。在名為「Bigger is not necessarily better」的論文中,Springenberg 等人演示了如何用更少的單元實現最先進的結果。參考:https://arxiv.org/pdf/1412.6806.pdf
4)增加對稱性
無論是在建築上,還是在生物上,對稱性被認為是質量和工藝的標志。Smith 將 FractalNet 的優雅歸功於網路的對稱性。
5)金字塔式的形狀
你也許經常在表徵能力和減少冗餘或者無用信息之間權衡。卷積神經網路通常會降低激活函數的采樣,並會增加從輸入層到最終層之間的連接通道。
6)過度訓練
另一個權衡是訓練准確度和泛化能力。用類似 drop-out 或者 drop-path 的方法進行正則化可以提高泛化能力,這是神經網路的重要優勢。請在比你的實際用例更加苛刻的問題下訓練你的網路,以提高泛化性能。
7)全面覆蓋問題空間
為了擴展你的訓練數據和提升泛化能力,請使用雜訊和數據增強,例如隨機旋轉、裁剪和一些圖像操作。
8)遞增的特徵構造
隨著網路結構越來越成功,它們進一部簡化了每一層的「工作」。在非常深層的神經網路中,每一層僅僅會遞增的修改輸入。在 ResNets 中,每一層的輸出和它的輸入時很相似的,這意味著將兩層加起來就是遞增。實踐中,請在 ResNet 中使用較短的跳變長度。
9)標准化層的輸入
標准化是另一個可以使計算層的工作變得更加容易的方法,在實踐中被證明可以提升訓練和准確率。批量標准化(batch normalization)的發明者認為原因在於處理內部的協變數,但是 Smith 認為,「標准化把所有層的輸入樣本放在了一個平等的基礎上(類似於一種單位轉換),這允許反向傳播可以更有效地訓練」。
10)輸入變換
研究表明,在 Wide ResNets 中,性能會隨著連接通道的增加而增強,但是你需要權衡訓練代價與准確度。AlexNet、VGG、Inception 和 ResNets 都在第一層使用了輸入變換以讓輸入數據能夠以多種方式被檢查。
11)可用的資源決指引著層的寬度
然而,可供選擇的輸出數量並不是顯而易見的,這依賴於你的硬體能力以及期望的准確度。
12)Summation Joining
Summation 是一種常用的合並分支的方式。在 ResNets 中,使用總和作為連接的機制可以讓每一個分支都能計算殘差和整體近似。如果輸入跳躍連接一直存在,那麼 summation 會讓每一層學到正確地東西(例如與輸入的差別)。在任何分支都可以被丟棄的網路(例如 FractalNet)中,你應該使用這種方式類保持輸出的平滑。
13)下采樣變換
在池化的時候,利用級聯連接(concatenation joining)來增加輸出的數量。當使用大於 1 的步長時,這會同時處理連接並增加連接通道的數量。
14)用於競爭的 Maxout
Maxout 被用在你只需要選擇一個激活函數的局部競爭網路中。使用求和以及平均值會包含所有的激活函數,所以不同之處在於 maxout 只選擇一個「勝出者」。Maxout 的一個明顯的用例是每個分支具有不同大小的內核,而 Maxout 可以包含尺度不變性。
1)使用調優過的預訓練網路
「如果你的視覺數據和 ImageNet 相似,那麼使用預訓練網路會幫助你學習得更快」,機器學習公司 Diffbot 的 CEO Mike Tung 解釋說。低水平的卷積神經網路通常可以被重復使用,因為它們大多能夠檢測到像線條以及邊緣這些模式。將分類層用你自己的層替換,並且用你特定的數據去訓練最後的幾個層。
2)使用 freeze-drop-path
Drop-path 會在訓練的迭代過程中隨機地刪除一些分支。Smith 測試了一種相反的方法,它被稱為 freeze-path,就是一些路徑的權重是固定的、不可訓練的,而不是整體刪除。因為下一個分支比以前的分支包含更多的層,並且正確的內容更加容易近似得到,所以網路應該會得到更好的准確度。
3)使用循環的學習率
關於學習率的實驗會消耗大量的時間,並且會讓你遇到錯誤。自適應學習率在計算上可能是非常昂貴的,但是循環學習率不會這樣。使用循環學習率(CLR)時,你可以設置一組最大最小邊界,在邊界范圍內改變學習率。Smith 甚至還在論文《Cyclical Learning Rates for Training Neural Networks》中提供了計算學習率的最大值和最小值的方法。參考:https://arxiv.org/pdf/1506.01186.pdf
4)在有雜訊的標簽中使用 bootstrapping
在現實中,很多數據都是混亂的,標簽都是主觀性的或者是缺失的,而且預測的對象可能是訓練的時候未曾遇到過的。Reed 等人在文章《TRAINING DEEP NEURAL NETWORKS ON NOISY LABELS WITH BOOTSTRAPPING》中描述了一種給網路預測目標注入一致性的方法。直觀地講,這可以奏效,通過使網路利用對環境的已知表示(隱含在參數中)來過濾可能具有不一致的訓練標簽的輸入數據,並在訓練時清理該數據。參考:https://arxiv.org/pdf/1412.6596
5)採用有 Maxout 的 ELU,而不是 ReLU
ELU 是 ReLU 的一個相對平滑的版本,它能加速收斂並提高准確度。與 ReLU 不同,ELU 擁有負值,允許它們以更低的計算復雜度將平均單位激活推向更加接近 0 的值,就像批量標准化一樣參考論文《FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS)》,https://arxiv.org/pdf/1511.07289.pdf。如果您使用具有全連接層的 Maxout,它們是特別有效的。
5. 什麼是灰色神經網路
與模糊神經網路類似,網路結構一樣,區別在於輸入的是模糊數,有些模型還使用模糊函數作為轉移函數。
6. Matlab實現或者java編程實現 神經網路 灰色模型預測
灰色預測模型為GM(1,1)
灰參數a和u的值:
a=-0.0323252892223847 u=14042.3315313962
原始序列預測值:
13205 14705 15188 15687 16203 16735 17285 17853 18439 19045
累加序列預測值:
14705 15188 15687 16203 16735 17285 17853 18439 19045 19671
級比值:
0.933017734755882 0.991731483427931 0.906095238095238 0.951546640889319 0.951264367816092 0.952798160113898 0.980668027064762 0.994977559307544 1.07637451115712
相對誤差值:
0 3.90438540431923 6.43063985387993 0.395441255218115 2.10782203579584 3.81930406598348 5.34849588953024 4.12878515843797 1.47641388551927 0.5323261370569
2013-2017年的預測值
2013 20317.4561851648
2014 20984.954243779
2015 21674.381900971
2016 22386.4596192006
2017 23121.9315305897
7. 求助:灰色理論和BP神經網路之間的區別在哪
先說共同點,二者都可以看做事黑箱,即內部結構不確切知道的系統,不同的是灰色理論是基於現有數學理論,而神經網路是基於人腦的物理模型。
8. 灰色理論預測和BP神經網路預測哪個難
BP神經網路相對比較難,基本的灰色理論GM(1,1)與最小二乘類似,當然,各有難度各有用處,希望對你有幫助。