【深度學習】——過擬合的處理方法

目錄

一、什么是過擬合?(overfitting)

二、過擬合的表現(判定方法)

?訓練集、測試集、驗證集區別

?測試集與驗證集的區別

?三、產生過擬合的原因

1、樣本方面

2、模型方面

四、避免過擬合的方法

1、樣本方面

1)增加樣本量

2)樣本篩選(特征降維、特征選擇)

3)歸一化數據樣本

2、模型方法

1)正則化——使模型簡單化、參數稀疏化

????????①概念——核心思想

問題1:什么是稀疏參數?什么是數據的稀疏性?

問題2:什么是范數?常用的范數函數是什么?

問題3:實現參數的稀疏有什么好處嗎?

問題4:參數值越小代表模型越簡單嗎?

????????②L0正則化——正則項為非零分量的個數

????????③L1正則化(LASSO)——效果使w分量往0靠攏

????????④L2正則化(嶺回歸)——效果使參數減小

????????⑤為什么可以避免過擬合?

????????⑥比較L1與L2

2)歸一化(Normalization)

????????①最小最大值歸一化(min-max normalization)

?????????②0均值標準化(Z-score standardization)

????????③batch normalization(BN層)

??????? ④什么情況下使用歸一化方法?

????????⑤為什么歸一化能夠實現避免過擬合?

???????? ⑥BN的優點

3)dropout(隨機丟棄)——隨機刪除一些神經元,以在不同批量上訓練不同的神經網絡架構。

?????????①過程

??????? ②為什么能夠避免過擬合?

4)early stopping(早停法)

?

?①第一類停止標準

?????????②第二類停止標準

?????????③第三類停止標準

?????????④選擇停止標準的規則

????????⑤ 優缺點




一、什么是過擬合?(overfitting)

過擬合其實就是為了得到一致假設而使得假設過于地嚴格。使得其在訓練集上的表現非常地完美,但是在訓練集以外的數據集卻表現不好

?

?如上圖所示,紅線就是過擬合了,雖然它在訓練集上將所有的點都放在了線上,但是如果再來一個點就會不起作用,這就是過擬合,而綠線的話也比較好地擬合了點集,但是它的泛化能力相較于紅線來說是更好的

二、過擬合的表現(判定方法)

1、訓練集的正確率不增反減

2、驗證集的正確率不再發生變化

3、訓練集的error一直下降,但是驗證集的error不減反增

上圖所示,訓練集隨著訓練的過程中,error一直減小,但是訓練次數到了一定程度的時候,驗證集的error卻開始上升,這時候說明當前代數訓練得到的模型對于訓練集的樣本表現良好,但是對于訓練集以外的樣本表現不太好。

?訓練集、測試集、驗證集區別

參考:https://blog.csdn.net/kieven2008/article/details/81582591

訓練集:計算梯度更新權重,用于訓練得到模型

驗證集:用于每次訓練完一代后判斷模型的訓練情況,根據在驗證集上的正確率來進行產參數的調整,一定程度上可以避免過擬合

測試集:用于判斷最終訓練出來的模型表現情況,比如給出一個accuracy以推斷網絡的好壞等

?測試集與驗證集的區別

?三、產生過擬合的原因

參考:什么是「過擬合」,如何判斷,常見的原因是什么?

1、樣本方面

1)用于訓練的樣本量過于少,使得訓練出來的模型不夠全面以致于使用模型時錯誤率高

比如對于貓這類動物,如果訓練數據集中只有一個正拍且坐立的貓,那么當過擬合時,模型往往有可能只能識別出這類姿態的貓,像跳躍的貓、局部捕捉的貓、反轉的貓等等可能都識別不出來了

2)訓練的樣本量噪聲大(質量不好),導致一些錯誤的特征錯認為是學習的對象,使得訓練模型不夠健壯

2、模型方面

1)參數過多,模型過于復雜

2)選擇的模型本身就不適用于當前的學習任務

3)網絡層數過多,導致后面學習得到的特征不夠具有代表性

四、避免過擬合的方法

參考:

https://blog.csdn.net/baidu_31657889/article/details/88941671

https://www.cnblogs.com/ying-chease/p/9489596.html

https://zhuanlan.zhihu.com/p/97326991

解決問題往往是從出現問題的原因入手,所以根據上面的過擬合原因來來避免過擬合

1、樣本方面

1)增加樣本量

深度學習中樣本量一般需要在萬級別才能訓練出較好的模型,且樣本盡可能地多樣化,使得樣本更加地全面。一般通過圖像變換可以進行數據增強,見文章《【tensorFlow】——圖像數據增強、讀取圖像、保存圖像》

2)樣本篩選(特征降維、特征選擇)

參考:機器學習-->特征降維方法總結

特征降維:PCA等,根據現有的特征創造出新的特征

特征選擇:選擇具有代表性的特征參與訓練

3)歸一化數據樣本

改變數據的分布,使得更集中在激活函數的敏感區,具體見下面2(2)知識點

2、模型方法

1)正則化——使模型簡單化、參數稀疏化

參考:

https://blog.csdn.net/qq_20412595/article/details/81636105

????????①概念——核心思想

正則化其實就是在原來的損失函數后面增加了一項加數,這項加數稱之為正則項,這個正則項通常由一個系數和范數的乘積的累加和構成。其主要是通過正則項來限制權重w參數的值的變化,使其盡可能的小或者盡可能地趨于0,以達到稀疏參數的效果,進而使得模型復雜度下降,避免過擬合

問題有以下幾個?

問題1:什么是稀疏參數?什么是數據的稀疏性?

稀疏參數:使得模型中參數的零分量盡可能地多

數據的稀疏性:在特征選擇中的概念,指的是在眾多的特征中,有的特征對于模型的優化是無關的,這就是數據存在稀疏性,可以通過特征選擇來選擇有價值的特征。

但是在機器學習的參數中,由于參數眾多,模型復雜度過于高的話,易出現過擬合現象,因此我們需要通過增加參數的稀疏性來降低復雜度,進而避免過擬合。

問題2:什么是范數?常用的范數函數是什么?

范數:在泛函分析中,它定義在賦范線性空間中,并滿足一定的條件,即①非負性;②齊次性;③三角不等式。它常常被用來度量某個向量空間(或矩陣)中的每個向量的長度或大小

問題3:實現參數的稀疏有什么好處嗎?

一個好處是可以簡化模型,避免過擬合。因為一個模型中真正重要的參數可能并不多,如果考慮所有的參數起作用,那么可以對訓練數據可以預測的很好,但是對測試數據表現性能極差。另一個好處是參數變少可以使整個模型獲得更好的可解釋性。

問題4:參數值越小代表模型越簡單嗎?

是的。為什么參數越小,說明模型越簡單呢,這是因為越復雜的模型,越是會嘗試對所有的樣本進行擬合,甚至包括一些異常樣本點,這就容易造成在較小的區間里預測值產生較大的波動,這種較大的波動也反映了在這個區間里的導數很大,而只有較大的參數值才能產生較大的導數。因此復雜的模型,其參數值會比較大反過來就是如果參數值小的話,那么異常點在這個區間里的導數就會比較小,造成預測值的波動也就小,這樣就會利于模型,避免過擬合,更具有泛化能力去預測新樣本。

????????②L0正則化——正則項為非零分量的個數

利用非零參數的個數,可以很好的來選擇特征,實現特征稀疏的效果,具體操作時選擇參數非零的特征即可。但因為L_{0}正則化很難求解,是個NP難問題,因此一般采用L_{1}正則化。L_{1}正則化是L_{0}正則化的最優凸近似,比L_{0}容易求解,并且也可以實現稀疏的效果

????????③L1正則化(LASSO)——效果使w分量往0靠攏

?在原始的代價函數后面加上一個L1正則化項,即所有權重w的絕對值的和,乘以λ/n(這里不像L2正則化項那樣,需要再乘以1/2)

加上L1正則項后的損失函數:

?對權重參數求導:

更新權重參數:

sgn(w)函數是w小于0時函數值為-1,等于0時為0,大于0時函數值為1

其中λ和n參數大于0,由權重參數的更新可以看出,當w為正時,更新后的w變小。當w為負時,更新后的w變大——因此它的效果就是讓w往0靠,使網絡中的權重盡可能為0,也就相當于減小了網絡復雜度,防止過擬合。

????????④L2正則化(嶺回歸)——效果使參數減小

L2正則化就是在代價函數后面再加上一個正則化項,即所有權重w的平方和,乘以λ/n需要再乘以1/2,方便后續的求導。

?加上L2正則項后的損失函數:

?對權重參數求導:

更新權重參數:

在不使用L_{2}正則化時,求導結果中w前系數為1,現在w前面系數為?(1-\frac{\eta \lambda }{n})?,因為η、λ、n都是正的,所以?1-η*λ/n小于1,它的效果是減小w,這也就是權重衰減(weight decay)的由來。當然考慮到后面的導數項,w最終的值可能增大也可能減小。根據奧卡姆剃刀法則可知,更小的權值w,從某種意義上說,表示網絡的復雜度更低,對數據的擬合剛剛好。

????????⑤為什么可以避免過擬合?

其實就是增加正則項后,使得參數變小了,模型簡化,使得損失在避免過擬合和最小化損失之間進行了折中,以此來避免了過擬合。

????????⑥比較L1與L2

假設正則項為(p-范數)

?

假設w向量分量由兩個分量組成的,即w = w1 + w2,其中w,w1,w2均為向量,則當p取不同的值的時候就可以得到他們的曲線圖,假設Lp=C,其中C為常數值,則當p取0.5,1,2,4的圖如下

????? ??????

?這時候我們假設原先的損失函數為:

則令其等于C,則可以繪制出曲線(平方誤差項等值線):

上圖是L1,L2,平方誤差項取一系列的常數值C得到的(C1,C2,C3等)

當1-范數(L1)、2-范數(L2)、平方誤差項都取相等的值時,我們損失函數為了取得最小的損失,因為正則化后的損失不再單單為了損失最小,而是還得考慮避免過擬合,因此需要在二者之間平衡,對應于圖像中就是Lp與平方誤差項曲線相交點。

?

藍色的圓圈表示沒有經過限制的損失函數在尋找最小值過程中,w的不斷迭代(隨最小二乘法,最終目的還是使損失函數最小)變化情況,表示的方法是等高線,z軸的值就是?E(w)
w??最小值取到的點

可以直觀的理解為(幫助理解正則化),我們的目標函數(誤差函數)就是求藍圈+紅圈的和的最小值(回想等高線的概念并參照式),而這個值通在很多情況下是兩個曲面相交的地方

L1和平方誤差項曲線相交于坐標點,即w1或w2等于0,但是L2和平方誤差項曲線相較于非零點,這就說明了L1會比L2更易于得到稀疏解。但是L1曲線具有拐點,即并不是處處可導,給計算帶來了很大的不便(這也是改進的方向所在)。而L2處處平滑,便于求導

2)歸一化(Normalization)

歸一化就是改變數據分布,將大范圍的數據限定在一個小范圍,或者使其呈一定規律的分布

常用的歸一化方法有:min-max normalization、Z-score standardization

????????①最小最大值歸一化(min-max normalization)

將樣本的范圍限制在一定確定的小范圍中,一般取【0,1】或者【-1,1】

歸一化到【0,1】之間:

歸一化到【-1,1】之間:

其中:max表示數據集中的最大值,min表示數據集中的最小值,mean表示數據集的均值

?????????②0均值標準化(Z-score standardization)

參考:https://www.jianshu.com/p/26d198115908

規范了數據的分布,將數據分布改變成了標準的正態分布,即均值為0,標準差為1的分布

均值

?標準差

?歸一化后的數值

????????③batch normalization(BN層)

參考:

https://www.cnblogs.com/guoyaohua/p/8724433.html

https://zhuanlan.zhihu.com/p/93643523

BN層常用于深度學習中,因為深度學習中的樣本量大,一般都是分批進行訓練的,即batch,因此進行歸一化時是對一個batch進行歸一化,而不是對整個訓練集進行歸一化

?這里的BN其實本質就是zero-score standardization,只是這里添加了兩個可以訓練的參數r和β。在深度學習中,往往輸入的是圖像,每個batch是一部分圖像,通過對這部分輸入進行歸一化后輸入到下一層網絡中,例子如下:

其中兩個參數的意義?

稍微了解神經網絡的讀者一般會提出一個疑問:如果都通過BN,那么不就跟把非線性函數替換成線性函數效果相同了?這意味著什么?我們知道,如果是多層的線性函數變換其實這個深層是沒有意義的,因為多層線性網絡跟一層線性網絡是等價的。這意味著網絡的表達能力下降了,這也意味著深度的意義就沒有了。所以BN為了保證非線性的獲得,對變換后的滿足均值為0方差為1的x又進行了scale加上shift操作(y=scale*x+shift),每個神經元增加了兩個參數scale和shift參數,這兩個參數是通過訓練學習到的,意思是通過scale和shift把這個值從標準正態分布左移或者右移一點并長胖一點或者變瘦一點,每個實例挪動的程度不一樣,這樣等價于非線性函數的值從正中心周圍的線性區往非線性區動了動。核心思想應該是想找到一個線性和非線性的較好平衡點,既能享受非線性的較強表達能力的好處,又避免太靠非線性區兩頭使得網絡收斂速度太慢。

??????? ④什么情況下使用歸一化方法?

??????? 這里主要講BN層。在深度學習當中,每一層網絡的輸入都可以作為下一層網絡的輸入,開始的時候我們會將樣本進行歸一化后傳輸給網絡,但是到了隱層,由于中間激活函數等非線性函數的映射,使得原本的歸一化輸入的數據分布發生了改變,這樣使得下一層的輸入的數據分布和上一層的數據分布是不一樣的,即每一層輸入的數據的分布都是變化的,這個問題稱之為Internal Covariate Shift,這樣就導致了訓練的收斂速度變慢了。因此我們一般會在激活層之前,卷積層之后使用BN層,這樣就能夠保證每次輸入到網絡中的數據分布都是標準的正態分布,這也加快了訓練的收斂速度。

????????⑤為什么歸一化能夠實現避免過擬合?

參考:https://www.cnblogs.com/guoyaohua/p/8724433.html

BN的基本思想其實相當直觀:因為深層神經網絡在做非線性變換前的激活輸入值(就是那個x=WU+B,U是輸入)隨著網絡深度加深或者在訓練過程中,其分布逐漸發生偏移或者變動,之所t以訓練收斂慢,一般是整體分布逐漸往非線性函數(激活函數)的取值區間的上下限兩端靠近(即梯度會逐漸趨于0,導致梯度消失,參數更新慢)(對于Sigmoid函數來說,意味著激活輸入值WU+B是大的負值或正值),所以這導致反向傳播時低層神經網絡的梯度消失,這是訓練深層神經網絡收斂越來越慢的本質原因而BN就是通過一定的規范化手段,把每層神經網絡任意神經元這個輸入值的分布強行拉回到均值為0方差為1的標準正態分布,其實就是把越來越偏的分布強制拉回比較標準的分布,這樣使得激活輸入值落在非線性函數對輸入比較敏感的區域(也就是將最大的值,這樣輸入的小變化就會導致損失函數較大的變化,意思是這樣讓梯度變大,避免梯度消失問題產生,而且梯度變大意味著學習收斂速度快,能大大加快訓練速度。

  THAT’S IT。其實一句話就是:對于每個隱層神經元,把逐漸向非線性函數映射后向取值區間極限飽和區靠攏的輸入分布強制拉回到均值為0方差為1的比較標準的正態分布,使得非線性變換函數的輸入值落入對輸入比較敏感的區域,以此避免梯度消失問題。因為梯度一直都能保持比較大的狀態,所以很明顯對神經網絡的參數調整效率比較高,就是變動大,就是說向損失函數最優值邁動的步子大,也就是說收斂地快。BN說到底就是這么個機制,方法很簡單,道理很深刻。

可以看以下兩個圖:

沒有歸一化前 ???????

一開始沒有歸一化的時候數據分布是上左圖藍色曲線(第二高),這時候假設后面的激活函數是sigmoid函數(上右圖第三高),可以發現大部分的數據都是分布在了sigmoid的左邊部分,sigmoid的左邊可以看到值逐漸趨于飽和區(即梯度趨于0),對應到下圖的梯度來看,可以看到梯度值接近于0了,這時候就會使得參數的更新速度非常慢,使得模型訓練的收斂速度很慢

歸一化后

??????? 而我們使用BN層后,數據分布呈均值為0方差為1的標準正態分布,這時候的數據分布如上左圖的紫色所示。可見大部分數據都是集中在了sigmoid的梯度較大的部分,且關于0對稱,這樣一來,保證了梯度處于較大區域,梯度也就更新的快了。

怎么保證非線性(兩個參數的作用)

??????? 我們不妨會有個疑問,既然每次輸入到非線性層的時候要使得數據分布一致,那直接使用線性函數不就好了,但是我們需要知道的是,多層線性和一層線性的效果是一樣的,這樣會導致模型的表達能力不強,因此BN層為了能夠得到非線性能夠,又在原有的z-score歸一化方法上加了兩個參數r和β,就是為了能夠找到一個線性和非線性的1平衡點,對應到上左圖的曲線表征是,曲線變窄或變寬對應最高和最矮的曲線,這使得數據分布稍微地發生了移動,使得數據保留了一定的非線性。

?
?

???????? ⑥BN的優點

?????? 不僅僅極大提升了訓練速度,收斂過程大大加快;

??????? 增加分類效果,一種解釋是這是類似于Dropout的一種防止過擬合的正則化表達方式,所以不用Dropout也能達到相當的效果;

????????另外調參過程也簡單多了,對于初始化要求沒那么高,而且可以使用大的學習率等。

筆記

3)dropout(隨機丟棄)——隨機刪除一些神經元,以在不同批量上訓練不同的神經網絡架構。

參考:

https://zhuanlan.zhihu.com/p/266658445

概念:我們在前向傳播的時候,讓某個神經元的激活值以一定的概率p停止工作,這樣可以使模型泛化性更強,因為它不會太依賴某些局部的特征。每次迭代丟失的神經元都不一樣,使得其訓練得到了不一樣的模型。

?

?????????①過程

?輸入是x輸出是y,正常的流程是:我們首先把x通過網絡前向傳播,然后把誤差反向傳播以決定如何更新參數讓網絡進行學習。使用Dropout之后,過程變成如下:

(1)首先隨機(臨時)刪掉網絡中一半的隱藏神經元,輸入輸出神經元保持不變(圖中虛線為部分臨時被刪除的神經元)

(2) 然后把輸入x通過修改后的網絡前向傳播,然后把得到的損失結果通過修改的網絡反向傳播。一小批訓練樣本執行完這個過程后,在沒有被刪除的神經元上按照隨機梯度下降法更新對應的參數(w,b)。

(3)然后繼續重復這一過程:

a. 恢復被刪掉的神經元(此時被刪除的神經元保持原樣,而沒有被刪除的神經元已經有所更新)

b. 從隱藏層神經元中隨機選擇一個一半大小的子集臨時刪除掉(備份被刪除神經元的參數)。

c. 對一小批訓練樣本,先前向傳播然后反向傳播損失并根據隨機梯度下降法更新參數(w,b) (沒有被刪除的那一部分參數得到更新,刪除的神經元參數保持被刪除前的結果)。

不斷重復這一過程。

??????? ②為什么能夠避免過擬合?

1、多平均模型:不同的固定神經網絡會有不同的過擬合,隨機丟棄訓練得到不同的神經網絡,多個神經網絡取平均可能會抵消掉過擬合,多模型類似于多數投票取勝的策略;

2、減少神經元之間的依賴:由于兩個神經元不一定同時有效,因此減少了兩個神經元之間的依賴性,使得神經元更加地獨立,迫使神經網絡更加地魯棒性;因為神經網絡不應該對特點的特征敏感,而是對眾多特征中學習規律

3、生物進化:這個其實優點像遺傳算法中采用的生物進化,為了適應新環境而會在雌雄間各取一半基因

4)early stopping(早停法)

概念:其實就是在發現驗證集的正確率在下降的時候就停止訓練,將最后的一組權重作為最終的參數。但是一般不會像下圖這么的光滑,會出現震蕩狀,這時候我們可以依據相關的停止準則來進行早停

參考:https://blog.csdn.net/zwqjoy/article/details/86677030

https://blog.csdn.net/weixin_41449637/article/details/90201206

?①第一類停止標準

當當前的驗證集的誤差比目前最低的驗證集誤差超過一定值時停止,這就需要記錄每次迭代后的驗證集誤差,或者記錄最小驗證集誤差即可

?????????②第二類停止標準

記錄當前迭代周期訓練集上平均錯誤率相對于最低錯誤率的差值PK,計算第一類停止標準的值和PK的商,當商大于一定值時,停止

?????????③第三類停止標準

連續s個周期錯誤率在增長時停止

?????????④選擇停止標準的規則

????????⑤ 優缺點

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

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

相關文章

ASP.NET頁面的字符編碼設置

在用ASP.NET寫網上支付的接口程序時&#xff0c;遇到一個奇怪問題&#xff0c;通過表單提交過去的中文全是亂碼&#xff0c;英文正常。而用asp程序進行測試&#xff0c;可以正常提交中文&#xff0c;asp頁面中有這樣的HTML代碼&#xff1a; <meta http-equiv"Content-T…

帝人製機--適合的機遇--遇到恰到好處的產品--工業機器人減速機造就一個百年企業

持之以恒是成功的必要條件&#xff0c;但是也要有恰當的土壤。日本Nabtesco(納博特斯克)舊名&#xff1a;帝人製機(TEIJINSEIKI)高性能日本RV減速機納博特斯克(Nabtesco)公司是一家居世界領先地位的精密傳動控制系統及組件製造商。目前全世界已有超過兩百萬件由Nabtesco製造的精…

Python個人項目--豆瓣圖書個性化推薦

項目名稱: 豆瓣圖書個性化推薦 需求簡述&#xff1a;從給定的豆瓣用戶名中&#xff0c;獲取該用戶所有豆瓣好友列表&#xff0c;從豆瓣好友中找出他們讀過的且評分5星的圖書&#xff0c;如果同一本書被不同的好友評5星&#xff0c;評分人數越多推薦度越高。 輸入&#xff1a;豆…

#define宏定義形式的函數導致的bug

定義了一個宏定義形式的"函數": #define SUM8(YY)\ {\ int Y YY>>2;\ ...\ } 然后使用的時候&#xff0c;傳入了一個同名的變量Y: int Y Ywin[x]; SUM8(Y) 本意是想展開成int Y Ywin[x]>>2; 但實際上#define只是把參數名(YY)替換&#xff0c;與函數…

【深度學習】——BN層(batch normalization)

目錄 一、“Internal Covariate Shift”問題 二、BatchNorm的本質思想 兩個參數r和β的意義——精髓所在 三、訓練階段如何做BatchNorm 四、BatchNorm的推理(Inference)過程 五、BatchNorm的好處 一般使用在卷積層后、激活層前 Batch Normalization作為最近一年來DL的重要…

打印池

餐飲行業&#xff0c;打印池是必要的部件。 實現原理&#xff1a;每一臺打印機都有自己的任務隊列和處理任務隊列的線程。 unit untPrintTask; interface uses System.SysUtils, System.Classes, Datasnap.DBClient, frxclass, System.Generics.Collections; type TBillContent…

JAXB vs XStream

2019獨角獸企業重金招聘Python工程師標準>>> JAXB vs XStream 博客分類&#xff1a; java JAXB vs XStream 這兩東東本質上是有差別的&#xff0c;JAXB稱為OX binding工具&#xff0c;XStream應該算序列化工具&#xff0c;但OX binding工具也會marshall和unmarsha…

ABB 機器人 DRVIO_1通信報警

ABB 機器人DRVIO_1通信報警 2014.06.13 ABB1600弧焊機器人&#xff0c;從A地搬運到B地&#xff0c;到達B地后&#xff0c;機器人上電&#xff0c;報DRVIO_1通信故障&#xff0c;機器人進入故障停止模式。 DRVIO_1為LOCAL_GENERIC類型的ABB內部LOCAL總線類型的單元實例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目錄結構 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 機器人 添加多任務

首先&#xff0c;需要啟用多任務選項的控制器。 要做到這一點&#xff0c;創建一個新的機器人控制器RobotStudio站 - >選擇機器人&#xff08;控制器菜單&#xff09; - >.................. - >系統生成器 - >選擇控制器 - >修改...下一頁 - >下一步 - >…

poj2594(二分圖,最小路徑覆蓋變形)

Treasure ExplorationTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 7611 Accepted: 3126Description Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? …

【機器視覺】——相機鏡頭篇

目錄 一、相關概念 1、相機 2、鏡頭 二、相關參數 1、相機參數 1)芯片尺寸

閉包(計算機科學)

在計算機科學中&#xff0c;閉包&#xff08;Closure&#xff09;又稱詞法閉包或函數閉包。是引用了自由變量的函數。這個被引用的自由變量將會和函數在一起。即使離開了創建它的環境也不例外。所以另一種關于閉包的說法&#xff1a;由函數和其引用相關的環境構成的實體。閉包在…

C語言小機器人

[cpp] view plaincopyprint? # include <stdio.h> # include <stdlib.h> # define MAXSTR 200 # define REBOT "小C說: " # define YOUR "您 說: " # define EXIT "-e\n" # define NOREPLY "我不知道你說什么呢…

分享12306搶票心得-終極秒殺思路篇

12306搶票的關鍵拼的就是整點出票的速度&#xff0c;快的幾秒鐘&#xff0c;慢的幾分鐘&#xff0c;本文提供終極搶票攻略&#xff0c;通過多線程掃描上萬個CDN&#xff0c;來大幅度提升出票速度。準備一&#xff1a;需要了解CDN和切站的機制&#xff0c;請參考&#xff1a;分享…

JVM內幕:Java虛擬機詳解

為什么80%的碼農都做不了架構師&#xff1f;>>> 這篇文章解釋了Java 虛擬機&#xff08;JVM&#xff09;的內部架構。下圖顯示了遵守 Java SE 7 規范的典型的 JVM 核心內部組件。 上圖顯示的組件分兩個章節解釋。第一章討論針對每個線程創建的組件&#xff0c;第二章…

【機器視覺】——光源篇(分類、選型)

目錄 ? 一、光源相關知識 1、光的作用 2、光的顏色 二、光源的種類

ABB機器人 系統參數配置

系統參數用于定義系統配置并在出廠時根據客戶的需要定義。 可使用 FlexPendant 或 RobotStudio Online 編輯系統參數。 此步驟介紹如何查看 系統參數配置。 操作 &#xff1a; 1. 在 ABB 菜單上&#xff0c;點擊控制面板。 2. 點擊配置。顯示選定主題的可用類型列表。 3. 點…

MFC BCGControlBar 庫 使用方法

安裝 BCGControlBar 庫到你的計算機&#xff1a; 解壓縮 BCGControlBar.zip &#xff08;比如&#xff0c;到 c:\bcg 目錄中&#xff09;把 c:\bcg\bin 增加到你的 path 環境變量中&#xff0c;運行 Visual C 并且打開 Tools | Options 對話框&#xff0c;切換到Directories 頁…

四則運算2開發簡介

四則運算2在四則運算1的基礎之上&#xff0c;又添加了新的功能&#xff0c;但是我覺得四則運算2的難度比四則運算1增大了很多&#xff0c;我在編程的過程中&#xff0c;遇到的最大難度就是不知該如何更好的融合各個功能之間的關系。 寫到現在&#xff0c;四則運算2主要實現了以…