3 مرفق
الشبكة عصبیة عمیقة مع RBM مكدسة. التدریب الذاتي ، ضبط النفس
ھذا الموضوع ھو تطبيق للشبكة العصبية العميقة واختيار التنبؤ. سوف نقوم بتغطية ميزات الشبكة العصبية
كما سيتم الكشف عن إمكانية استخدام نموذج ماركوف المخفي لتحسين أداء الشبكة العصبية. في ."darch "وتطبيقھا في حزمة ، RBM Stacked
.الختام ، سوف نقوم برمجيا بتنفيذ مستشار خبير تنفيذي
محتويات
-1. ھيكل DBN
-2.إعداد واختيار البيانات
-1.2. متغيرات المدخلات
-2.2. متغبرات الانتاج
-3.2. إطار البيانات الأولية
-1.3.2. حذف المتغيرات المرتبطة بشكل كبير
-4.2.اختيار أھم المتغيرات
-3.الجزء التجريبي
- 1.3.بناء النماذج
-1.1.3. وصف موجز لحزمة " darch"
-2.1.3. بناء نموذج DBN. المعلمات.
-2.3. تشكيل التدريب واختبار العينات
-1.2.3.موازنة الطبقات والمعالجة المسبقة
-2.2.3.ترميز المتغير الھدف
-3.3.تدريب النموذج
-1.3.3. قبل التدريب
-2.3.3. الكون المثالى
-4.3. نموذج اختبار .œetrics.
-1.4.3. فك التنبؤات.
-2.4.3.تحسين نتائج التنبؤ
-معايرة
-تنعيم مع طراز سلسلة ماركوف
-تصحيح الإشارات المتوقعة على منحنى الرصيد النظري
-3.4.3. المقاييس
-4. ھيكل المستشار الخبير
-1.4. وصف عملية المستشار الخبير
-2.4. التحكم الذاتي. تدريب ذاتي
-التثبيت والإطلاق
-طرق وأساليب تحسين المؤشرات النوعية
-استنتاج
المقدمة
عند إعداد البیانات لإجراء التجارب ،سوف نشكل العینة الأولیة وننظفھا ونختار.المتغیرات المھمة .
سننظر في طرق تقسیم العینة الأولیة إلى عینات التدریب والاختبار والتحقق من الصحة .
باستخدام حزمة "darch "سنبني ً نموذجا لشبكة DBN, ونقوم بتدریبه على مجموعات البیانات الخاصة بنا. بعد اختبار النموذج ، سنحصل على المقاییس التي ستمكننا من تقییم جودة النموذج. سننظر في العدید من الفرص التي تقدمھا الحزمة لتكوین إعدادات الشبكة العصبیة،وسنرى ً أیضا كیف یمكن لنماذج ماركوف المخفیة أن تساعدنا في تحسین توقعات الشبكة العصبیة .
سنقوم بتطویر مستشار خبیر حیث سیتم تدریب نموذج بشكل دوري على الطایر دون انقطاع في التجارة ، بناء على نتائج المراقبة المستمرة.
سیتم استخدام نموذج DBN من حزمة darch في المستشار الخبیر .
وسنقوم ً أیضا بتضمین المستشار الخبیر الذي تم إنشاؤه باستخدام DBN SAE .
وعلاوة على ذلك ، سنشیر إلى طرق وأسالیب لتحسین المؤشرات النوعیة للنموذج .
-1. ھیكل شبكة عصبیة عمیقة تم اعدادھا بواسطة RBM مكدسة SRBM_DN
وأذكر أن SRBM_DN یتكون من عدد n من RBM یساوي عدد الطبقات المخفیة للشبكة العصبیة ، وبالأساس ، الشبكة العصبیة نفسھا. التدریب یتكون من مرحلتین .
تتضمن المرحلة الأولى التدریب المسبق. یتم تدریب كل إدارة قائمة على النتائج بشكل منھجي دون مشرف على مجموعة المدخلات (بدون ھدف). بعد.ھذا الوزن من الطبقات المخفیة ، یتم نقل الإدارة المستندة إلى النتائج إلى الطبقات الخفیة ذات الصلة من الشبكة العصبیة
المرحلة الثانیة تتضمن TUNING-FINE حیث یتم تدریب الشبكة العصبیة مع مشرف .
حزمة "darch" تساعدنا على تنفیذ فرص أوسع في بناء النموذج وضبطه. سیتم توفیر المزید من التفاصیل عند إنشاء النموذج. یوضح الشكل 1 البنیة وعملیة تدریب DN_SRBM
الملف المرفق 493037
2. إعداد واختیار البیانات
1.2.متغیرات المدخلات (علامات ، متنبئات)
سوف نستخدم 11مؤشرا جمیع مؤشرات التذبذب : ADX ، aroon ، ATR ، CCI ، chaikinVolatility ، CMO ، MACD ، RSI ، stoch ، SMI
تم اختیار العدید من المتغیرات من بعض المؤشرات. بھذه الطریقة قمنا بتشكیل مجموعة المدخلات من 17 متغیرا. لنأخذ أسعار من آخر 6000 شریط على الیورو مقابل الدولار الأمیركي М30 ونحسب قیم المؤشرات باستخدام الدالة .() In
كود PHP:
#---2---------------------------------------------
In <- function(p = 16){
require(TTR)
require(dplyr)
require(magrittr)
adx <- ADX(price, n = p) %>% as.data.frame %>%
mutate(.,oscDX = DIp - DIn) %>%
transmute(.,DX, ADX, oscDX) %>%
as.matrix()
ar <- aroon(price[ ,c('High', 'Low')], n = p) %>%
extract(,3)
atr <- ATR(price, n = p, maType = "EMA") %>%
extract(,1:2)
cci <- CCI(price[ ,2:4], n = p)
chv <- chaikinVolatility(price[ ,2:4], n = p)
cmo <- CMO(price[ ,'Med'], n = p)
macd <- MACD(price[ ,'Med'], 12, 26, 9) %>%
as.data.frame() %>%
mutate(., vsig = signal %>%
diff %>% c(NA,.) %>% multiply_by(10)) %>%
transmute(., sign = signal, vsig) %>%
as.matrix()
rsi <- RSI(price[ ,'Med'], n = p)
stoh <- stoch(price[ ,2:4], nFastK = p,
nFastD =3, nSlowD = 3,
maType = "EMA") %>%
as.data.frame() %>%
mutate(., oscK = fastK - fastD) %>%
transmute(.,slowD, oscK) %>%
as.matrix()
smi <- SMI(price[ ,2:4],n = p, nFast = 2,
nSlow = 25, nSig = 9)
kst <- KST(price[ ,4])%>% as.data.frame() %>%
mutate(., oscKST = kst - signal) %>%
select(.,oscKST) %>% as.matrix()
In <- cbind(adx, ar, atr, cci, chv, cmo, macd,
rsi, stoh, smi, kst)
return(In)
}
.سوف نحصل على مصفوفة بیانات الإدخال على المخرجات
2.2. بیانات الإخراج (متغیر الھدف)
كمتغیر ھدف نحصل على إشارات تم الحصول علیھا باستخدام ZZ وظیفة حساب zigzagوالإشارة :
كود PHP:
#----3------------------------------------------------
ZZ <- function(pr = price, ch = ch , mode="m") {
require(TTR)
require(magrittr)
if (ch > 1) ch <- ch/(10 ^ (Dig - 1))
if (mode == "m") {pr <- pr[ ,'Med']}
if (mode == "hl") {pr <- pr[ ,c("High", "Low")]}
if (mode == "cl") {pr <- pr[ ,c("Close")]}
zz <- ZigZag(pr, change = ch, percent = F,
retrace = F, lastExtreme = T)
n <- 1:length(zz)
dz <- zz %>% diff %>% c(., NA)
sig <- sign(dz)
for (i in n) { if (is.na(zz[i])) zz[i] = zz[i - 1]}
return(cbind(zz, sig))
}
معلمات الوظیفة:
pr = السعر - مصفوفة من أسعار OHLCMed.
ch = الحد الأدنى لطول الانحناء zigzagفي النقاط (4 علامات) أو بالقیمة الحقیقیة على سبیل المثال 0035.0 = ch .
ترجع الدالة المصفوفة مع متغیرین - في الواقع ، zigzagوالإشارة التي تم الحصول علیھا على قاعدة زاویة متعرجة في نطاق [-1 . 1] نحول الإشارة من شریط واحد إلى الیسار (نحو المستقبل). سیتم استخدام ھذه الإشارة المحددة لتدریب الشبكة العصبیة.
نحن نحسب الإشارات لـ ZZ بطول انحناء لا یقل عن 37 نقطة (4 علامات).
كود PHP:
> out <- ZZ(ch = 37, mode = "m")
Loading required package: TTR
Loading required package: magrittr
> table(out[ ,2])
-1 1
2828 3162
كما نرى ، الطبقات غیر متوازنة قلیلاً. عند تشكیل نماذج لتدریب النموذج ، سنتخذ التدابیر اللازمة لتھدئتھا
2.3.إطار البیانات الأولیة
لنكتب دالة ستنشئ إطار البیانات الأولي ، وتنظفھا من البیانات غیر المؤكدة (NA) وتحول المتغیر المستھدف إلى العامل مع فئتین "-1 "و "+1 ."تجمع ھذه الوظیفة بین الوظائف المكتوبة مسبقا في .() ZZ , و سنقوم على الفور بقص آخر 500 شریط سیتم استخدامھا لتقییم جودة توقعات النموذج
كود PHP:
#-----4---------------------------------
form.data <- function(n = 16, z = 37, len = 500){
require(magrittr)
x <- In(p = n)
out <- ZZ(ch = z, mode = "m")
data <- cbind(x, y = out[ ,2]) %>%
as.data.frame %>% head(., (nrow(x)-len))%>%
na.omit
data$y <- as.factor(data$y)
return(data)
}
1.3.2. حذف المتغیرات المرتبطة بشكل كبیر
سنقوم بحذف المتغیرات مع معامل ارتباط أعلى من 9.0 من مجموعتنا الأولیة. سنقوم بكتابة دالة ستشكل إطار البیانات الأولي ، وإزالة المتغیرات .المرتبطة للغایة وإرجاع البیانات النظیفة
.یمكننا التحقق مسبقا من المتغیرات التي لھا علاقة فوق 9.0
كود PHP:
> data <- form.data(n = 16, z = 37) # prepare data frame
> descCor <- cor(data[ ,-ncol(data)])# remove a target variable
> summary(descCor[upper.tri(descCor)])
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.1887 0.0532 0.2077 0.3040 0.5716 0.9588
> highCor <- caret::findCorrelation(descCor, cutoff = 0.9)
> highCor
[1] 12 9 15
> colnames(data[ ,highCor])
[1] "rsi" "cmo" "SMI"
وبالتالي ، فإن المتغیرات المذكورة أعلاه قابلة للإزالة. سنقوم بحذفھا من إطار البیانات
كود PHP:
> data.f <- data[ ,-highCor]
> colnames(data.f)
[1] "DX" "ADX" "oscDX" "ar" "tr"
[6] "atr" "cci" "chv" "sign" "vsig"
[11] "slowD" "oscK" "signal" "vol" "Class"
سنكتبھا بشكل مضغوط في وظیفة واحدة
كود PHP:
#---5-----------------------------------------------
cleaning <- function(n = 16, z = 37, cut = 0.9){
data <- form.data(n, z)
descCor <- cor(data[ ,-ncol(data)])
highCor <- caret::findCorrelation(descCor, cutoff = cut)
data.f <- data[ ,-highCor]
return(data.f)
}
> data.f <- cleaning()
لا یتفق جمیع مؤلفي الحزم والباحثین على ضرورة إزالة البیانات المترابطة بشكل كبیر من المجموعات. ومع ذلك ، ینبغي مقارنة النتائج باستخدام كلا.الخیارین ھنا. في حالتنا ، سنحدد الخیار مع الحذف
.4.2. اختیار أھم المتغیرات
وسیتم اختیار المتغیرات الھامة على أساس ثلاثة مؤشرات: الأھمیة العالمیة ، والأھمیة المحلیة (بالتزامن) والأھمیة الجزئیة حسب الفئة. سیتم جمع جمیع الإجراءات السابقة واللاحقة في وظیفة واحدة من أجل الاكتناز. بمجرد التنفیذ ، سنحصل على ثلاث مجموعات كنتیجة :
- مع أفضل المتغیرات في المساھمة والتفاعل
- مع أفضل المتغیرات للفئة "-1 "
- مع أفضل المتغیرات للفئة "+1"
كود PHP:
#-----6------------------------------------------------
prepareBest <- function(n, z, cut, method){
require(randomUniformForest)
require(magrittr)
data.f <<- cleaning(n = n, z = z, cut = cut)
idx <- rminer::holdout(y = data.f$Class)
prep <- caret::preProcess(x = data.f[idx$tr, -ncol(data.f)], method = method)
x.train <- predict(prep, data.f[idx$tr, -ncol(data.f)])
x.test <- predict(prep, data.f[idx$ts, -ncol(data.f)])
y.train <- data.f[idx$tr, ncol(data.f)]
y.test <- data.f[idx$ts, ncol(data.f)]
#---------
ruf <- randomUniformForest( X = x.train, Y = y.train,
xtest = x.test, ytest = y.test,
mtry = 1, ntree = 300,
threads = 2, nodesize = 1
)
imp.ruf <- importance(ruf, Xtest = x.test)
best <- imp.ruf$localVariableImportance$classVariableImportance %>%
head(., 10) %>% rownames()
#-----partImport
best.sell <- partialImportance(X = x.test,
imp.ruf,
whichClass = "-1",
nLocalFeatures = 7) %>%
row.names() %>%
as.numeric() %>%
colnames(x.test)[.]
best.buy <- partialImportance(X = x.test,
imp.ruf,
whichClass = "1",
nLocalFeatures = 7) %>%
row.names() %>%
as.numeric() %>%
colnames(x.test)[.]
dt <- list(best = best, buy = best.buy, sell = best.sell)
return(dt)
}
سنوضح ترتیب الحسابات الوظیفیة. المعلمات الرسمیة:
n - معلمة معطیات الدخل .
z - معلمة معطیات المخرجات .
cut - الترابط بین المتغیرات .
method - طریقة المعالجة المسبقة للبیانات .
- ترتیب الحسابات :
- إنشاء المجموعة الأولیة من data التي تمت إزالة المتغیرات المرتبطة بھا ، وحفظھا لمزید من الاستخدام.
- تحدید مؤشرات تدریب واختبار عینات من idx .
- تحدید معلمات ما قبل المعالجة من الإعدادیة .
- تقسیم العینة الأولیة إلى عینات تدریب واختبار ، مع إدخال بیانات المدخلات .
- الحصول على نموذج روف واختباره على المجموعات التي تم الحصول علیھا .
- حساب أھمیة متغیرات ruf.imp .
- اختیار أفضل 10 من أھم المتغیرات من حیث المساھمة والتفاعل .
- حدد 7 أھم المتغیرات لكل فئة "-1 "و "+1" sell.best ، buy.best
- نشاء قائمة مع أفضل ثلاث مجموعات من التنبؤات - .sell.best ، buy.best .
سنقوم بحساب ھذه العینات وتقییم القیم ذات الأھمیة العالمیة والمحلیة والجزئیة للمتغیرات المحددة
كود PHP:
> dt <- prepareBest(16, 37, 0.9, c("center", "scale","spatialSign"))
Loading required package: randomUniformForest
Labels -1 1 have been converted to 1 2 for ease of computation and will be used internally
as a replacement.
1 - Global Variable Importance (14 most important based on information gain) :
Note: most predictive features are ordered by 'score' and plotted. Most discriminant ones
should also be taken into account by looking 'class' and 'class.frequency'.
variables score class class.frequency percent
1 cci 4406 -1 0.51 100.00
2 signal 4344 -1 0.51 98.59
3 ADX 4337 -1 0.51 98.43
4 sign 4327 -1 0.51 98.21
5 slowD 4326 -1 0.51 98.18
6 chv 4296 -1 0.52 97.51
7 oscK 4294 -1 0.52 97.46
8 vol 4282 -1 0.51 97.19
9 ar 4271 -1 0.52 96.95
10 atr 4237 -1 0.51 96.16
11 oscDX 4200 -1 0.52 95.34
12 DX 4174 -1 0.51 94.73
13 vsig 4170 -1 0.52 94.65
14 tr 4075 -1 0.50 92.49
percent.importance
1 7
2 7
3 7
4 7
5 7
6 7
7 7
8 7
9 7
10 7
11 7
12 7
13 7
14 7
2 - Local Variable importance
Variables interactions (10 most important variables at first (columns) and second (rows) order) :
For each variable (at each order), its interaction with others is computed.
cci slowD atr tr DX
atr 0.1804 0.1546 0.1523 0.1147 0.1127
cci 0.1779 0.1521 0.1498 0.1122 0.1102
slowD 0.1633 0.1375 0.1352 0.0976 0.0956
DX 0.1578 0.1319 0.1297 0.0921 0.0901
vsig 0.1467 0.1209 0.1186 0.0810 0.0790
oscDX 0.1452 0.1194 0.1171 0.0795 0.0775
tr 0.1427 0.1168 0.1146 0.0770 0.0750
oscK 0.1381 0.1123 0.1101 0.0725 0.0705
sign 0.1361 0.1103 0.1081 0.0704 0.0685
signal 0.1326 0.1068 0.1045 0.0669 0.0650
avg1rstOrder 0.1452 0.1194 0.1171 0.0795 0.0775
vsig oscDX oscK signal ar
atr 0.1111 0.1040 0.1015 0.0951 0.0897
cci 0.1085 0.1015 0.0990 0.0925 0.0872
slowD 0.0940 0.0869 0.0844 0.0780 0.0726
DX 0.0884 0.0814 0.0789 0.0724 0.0671
vsig 0.0774 0.0703 0.0678 0.0614 0.0560
oscDX 0.0759 0.0688 0.0663 0.0599 0.0545
tr 0.0733 0.0663 0.0638 0.0573 0.0520
oscK 0.0688 0.0618 0.0593 0.0528 0.0475
sign 0.0668 0.0598 0.0573 0.0508 0.0455
signal 0.0633 0.0563 0.0537 0.0473 0.0419
avg1rstOrder 0.0759 0.0688 0.0663 0.0599 0.0545
chv vol sign ADX avg2ndOrder
atr 0.0850 0.0850 0.0847 0.0802 0.1108
cci 0.0824 0.0824 0.0822 0.0777 0.1083
slowD 0.0679 0.0679 0.0676 0.0631 0.0937
DX 0.0623 0.0623 0.0620 0.0576 0.0881
vsig 0.0513 0.0513 0.0510 0.0465 0.0771
oscDX 0.0497 0.0497 0.0495 0.0450 0.0756
tr 0.0472 0.0472 0.0470 0.0425 0.0731
oscK 0.0427 0.0427 0.0424 0.0379 0.0685
sign 0.0407 0.0407 0.0404 0.0359 0.0665
signal 0.0372 0.0372 0.0369 0.0324 0.0630
avg1rstOrder 0.0497 0.0497 0.0495 0.0450 0.0000
Variable Importance based on interactions (10 most important) :
cci atr slowD DX tr vsig oscDX
0.1384 0.1284 0.1182 0.0796 0.0735 0.0727 0.0677
oscK signal sign
0.0599 0.0509 0.0464
Variable importance over labels (10 most important variables conditionally to each label) :
Class -1 Class 1
cci 0.17 0.23
slowD 0.20 0.09
atr 0.14 0.15
tr 0.04 0.12
oscK 0.08 0.03
vsig 0.06 0.08
oscDX 0.04 0.08
DX 0.07 0.08
signal 0.05 0.04
ar 0.04 0.02
النتائج
1. من حیث الأھمیة العالمیة جمیع المتغیرات المدخلات 14 متساویة .
2. یتم تعریف أفضل 10 من خلال المساھمة الشاملة (أھمیة عالمیة) والتفاعل (أھمیة محلیة) .
3. .یتم عرض سبعة أفضل المتغیرات ذات الأھمیة الجزئیة لكل فئة في المخططات أدناه
الملف المرفق 493046
الملف المرفق 493047
كما نرى ، فإن المتغیرات الأكثر أھمیة للفئات المختلفة تختلف في الھیكل والترتیب. وھكذا ، إذا كان المتغیر البطيء بالنسبة للفئة "-1 "ھو الأكثر أھمیة ،.فإن الفئة "+1 "تكون في المرتبة الرابعة فقط.لذلك ، لدینا مجموعات من البیانات جاھزة. الآن یمكننا المضي قدما في التجارب
- الجزء التجریبي
ستجرى التجارب باللغة - R -
(3.2.3 R (Open R Microsoft
-1.3. بناء النماذج .
1.1.3 .وصف موجز لحزمة " darch"
النسخة "دارك". تقدم حزمة 0.10.0 مجموعة واسعة من الوظائف التي لا تسمح فقط بإنشاء النموذج وتدریبه ، ولكن ، حرفیًا ، قم ببناءه بالطوب وضبطه وفقا لتفضیلاتك. كما ھو موضح سابقا ، تتكون الشبكة العصبیة العمیقة من عدد n من (n = طبقات -1)RBM وMLP الشبكة العصبیة مع عدد من الطبقات. یتم تنفیذ التدریب المسبق للعملیة علی النتائج علی بیانات غیر منسقة من دون مشرف. یتم إجراء ضبط دقیق للشبكة العصبیة مع مشرفعلى البیانات المنسقة. إن تقسیم مراحل التدریب یمنحنا الفرصة لاستخدام البیانات المختلفة في الحجم (ولكن لیس البنیة!) أو للحصول على العدید منالنماذج الدقیقة المتنوعة على أساس التدریب المسبق فقط. علاوة على ذلك ، إذا كانت البیانات الخاصة بالتدریب المسبق والضبط الدقیق متشابھة ، فمنالممكن تدریبھا دفعة واحدة ، بدلاً من الانقسام على مرحلتین. أو یمكنك تخطي التدریب المسبق واستخدام الشبكة العصبیة متعددة الطبقات فقط ، أو ، من ناحیة أخرى ، استخدام RBM فقط بدون الشبكة العصبیة. في نفس الوقت لدینا الوصول إلى جمیع المعاییر الداخلیة. الحزمة مخصصة للمستخدمین المتقدمین. علاوة على ذلك ، سوف نقوم بتحلیل العملیات المقسمة: التدریب المسبق والضبط الدقیق .
-2.1.3.بناء نموذج DBN. المعلمات .
سنصف عملیة بناء وتدریب واختبار نموذج DBN
-1. نقوم بإنشاء كائن العمق العمیق المسمى 'Darch' باستخدام ُ المنشئ مع المعلمات الضرورية
(newDArch(layers, batchSize, ff=FALSE, logLevel=INFO, genWeightFunc=generateWeights
أین:
- layers :تشیر إلى عدد الطبقات والخلایا العصبیة في كل طبقة. على سبیل المثال: طبقات= (2،10،10،5) c - طبقة مدخلات بھا 5 عصبونات (مرئیة) ، طبقتان مخفیتان مع عشرة عصبون لكل طبقة، وطبقة خرج واحدة مع مخرجات 2 .
- BatchSize : حجم العینة الصغیرة أثناء التدریب .
- ff : تشیر إلى ما إذا كان ینبغي استخدام صیغة ff للأوزان والانحرافات والخروج. یتم تطبیق تنسیق ff لحفظ كمیات كبیرة من البیانات مع الضغط .
- LogLevel : .مستوى التسجیل والإخراج عند تنفیذ ھذه الوظیفة .
- GenWeightFunction :وظیفة لتولید مصفوفة الأوزان RBM ھناك فرصة لاستخدام وظیفة التنشیط للمستخدم .
یحتوي كائن darch الذي تم إنشاؤه على( طبقات- 1) RBM مجتمعة في شبكة التراكم التي سیتم استخدامھا لتدریب الشبكة العصبیة. اثنین من السمات fineTuneFunction و executeFunction ,تحتوي على وظائف لضبط دقیق backpropagation افتراضیا والتنفیذ runDarch افتراضیا . یتم تنفیذ تدریب الشبكة العصبیة مع اثنین من وظائف التدریب .() fineTuneDArch و () preTrainDArch : تقوم الوظیفة الأولى بتدریب شبكة الإدارة القائمة على النتائج دون مشرف باستخدام طریقة التباعد التبادلي. تستخدم الدالة الثانیة دالة المشار إلیھا في سمة fineTuneFunction لإجراء ضبط دقیق للشبكة العصبیة. بعد أداء الشبكة العصبیة ، یمكن العثور على مخرجات كل طبقة في سمة executeOutputs أو طبقة خرج فقط في سمة executeOutput
-2. وظیفة ما قبل التدريب الكائن darch
,(preTrainDArch(darch, dataSet, numEpoch = 1, numCD = 1, ..., trainOutputLayer = F
أین :
- "Darch " : مثیل لفئة darch
- dataSet : مجموعة البیانات للتدریب
- numEpoch : عدد مرات التدریب
- numCD : عدد مرات تكرار أخذ العینات. عادة ، واحد یكفي
- ... : معلمات إضافیة یمكن نقلھا إلى وظیفة trainRBM
- trainOutputLayer : القیمة المنطقیة التي توضح ما إذا كان یجب تدریب طبقة الخرج للإدارة القائمة على النتائج
تؤدي الوظیفة وظیفة تدریب trainRBM() لكل RBM عن طریق النسخ بعد أوزان التدریب والتحیزات إلى طبقات الشبكة العصبیة ذات الصلة من الكائن darch
-3. وظیفةضبط دقيق للكائن darch
fineTuneDArch(darch, dataSet, dataSetValid = NULL, numEpochs = 1, bootstrap = T
isBin = FALSE, isClass = TRUE, stopErr = -Inf, stopClassErr = 101,
( ...,stopValidErr = -Inf, stopValidClassErr = 101, أین : - Darch : عينة من فئة "Darch " ؛
- dataSet : مجموعة من البیانات للتدریب (یمكن استخدامھا للتحقق من الصحة) والاختبار
- dataSetValid : مجموعة من البیانات المستخدمة للتحقق من الصحة
-numxEpoch :عدد مرات التدریب
- bootstrap : منطقي ، ھل ھو ضروري لتطبیقbootstrapعند إنشاء بیانات التحقق من الصحة
-isBin : یشیر إلى ما إذا كان یجب تفسیر بیانات المخرجات على أنھا قیم منطقیة. بشكل افتراضي FALSE إذا كانت TRUE فسیتم تفسیركل قیمة أعلى من 0.5 على أنھا 1 ، وأقل - مثل 0
-isClass : یشیر إلى ما إذا كانت الشبكة مدربة للتصنیف. إذا كانت TRUE فسیتم تحدید إحصائیات التصنیف TRUE افتراضیًا
-stopErr : . -معیار إیقاف تدریب الشبكة العصبیة بسبب خطأ حدث أثناء التدریب Inf بشكل افتراضي
-stopClassErr : معیار إیقاف تدریب الشبكة العصبیة بسبب خطأ التصنیف حدث أثناء التدریب. 101 افتراضی
-stopValidErr : معیار إیقاف الشبكة العصبیة بسبب خطأ في بیانات التحقق من الصحة Inf بشكل افتراضي
- stopValidClassErr : معیار لوقف الشبكة العصبیة بسبب خطأ التصنیف أثناء التحقق من الصحة. 101 افتراضی
-... : معلمات إضافیة یمكن تمریرھا إلى وظیفة التدریب
تقوم الدالة بتدريب الشبكة باستخدام دالة تم حفظها في سمة fineTuneFunction لكائن darch. يمكن نقل بيانات المدخلات (trainData ، validData ، testData) والفئات التي تنتمي إليها (targetData ، validTargets ، testTargets) مثل dataSet أو ff-matrix. البيانات والفئات للتدقيق والاختبار ليست إلزامية. إذا تم توفيرها ، فسيتم تنفيذ الشبكة العصبية مع هذه المجموعات من البيانات ، وسيتم حساب الإحصائيات. تشير السمة isBin إلى ما إذا كان يجب تفسير بيانات المخرجات على أنها ثنائية. إذا كان isBin = TRUE ، يتم تفسير كل قيمة خرج أعلى من 0.5 على أنها 1 ، وإلا - مثل 0. أيضًا ، يمكننا ضبط معيار التوقف للتدريب على أساس الخطأ (stopErr ، stopValidErr) أو التصنيف الصحيح (stopClassErr ، stopValidClassErr) على التدريب أو مجموعات التحقق.
جميع معلمات الدوال لها قيم افتراضية. ومع ذلك ، تتوفر أيضًا قيم أخرى. لذلك ، على سبيل المثال:
وظيفة من الخلايا العصبية تفعيل - sigmoidUnitDerivative، linearUnitDerivative، softmaxUnitDerivative، tanSigmoidUnitDerivative متاحة. يتم استخدام sigmoidUnitDerivative بشكل افتراضي.
إن وظائف الشبكة العصبية الدقيقة - التكاثر العكسي بشكل افتراضي ، rpropagation المرن للانتشار متوفرة أيضاً في أربعة أشكال (Rprop +" ، "Rprop-" ، "iRprop +" ، "iRprop-") و minimizeClassifier (يتم تدريب هذه الوظيفة بواسطة مصنف شبكة داتش باستخدام طريقة التدرج المترافقة غير الخطية). بالنسبة إلى الخوارزميتين الأخيرتين ولأولئك الذين لديهم معرفة عميقة بالموضوع ، يتم توفير تنفيذ منفصل لضبط الشبكة العصبية بتشكيل لمعلماتهم المتعددة. فمثلا:
"+rpropagation(darch, trainData, targetData, method="iRprop
decFact=0.5, incFact=1.2, weightDecay=0, initDelta=0.0125
(...,minDelta=0.000001, maxDelta=50أين:
-darch : كائن darch للتدريب.
-trainData : مجموعة بيانات المدخلات للتدريب .
-targetData : الناتج المتوقع لمجموعة التدريب .
-method - طريقة التدريب. "iRprop +" بشكل افتراضي. "Rprop +" ، "Rprop-" ، "iRprop-" ممكنة .
-decFact : خفض عامل التدريب. 0.5 بشكل افتراضي.
-incfact : زيادة عامل للتدريب. 1.2 افتراضيا.
-weightDecay : انخفاض الوزن في التدريب. 0 بشكل افتراضي.
-initDelta : قيمة التهيئة في التحديث. 0.0125 افتراضيا.
-minDelta : حد أدنى لحجم الخطوة. 0.000001 بشكل افتراضي.
-maxDelta : الحد العلوي لحجم الخطوة. 50 افتراضيا.
تقوم الدالة بإرجاع كائن darch بواسطة الشبكة العصبية المدربة.
-3.2. تشكيل التدريب واختبار العينات.
وللغد بقية