مفاجأة في النهاية
1 2.6 خوارزمية انحدار الشبكة العصبية
12.6.1 الأصناف والمعلمات والخصائص والطرق
طيب القلب
class sklearn.neural_network.MLPRegressor(hidden_layer_sizes=100, activation='relu', *, solver='adam', alpha=0.0001, batch_size='auto', learning_rate='constant', learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10, max_fun=15000)
معامل
معامل |
يشرح |
أحجام الطبقة المخفية |
tuple، length = n_layers - 2، افتراضي = (100،) يمثل العنصر i عدد الخلايا العصبية في الطبقة المخفية. |
التنشيط |
{'هوية' ، 'منطقية' ، 'tanh' ، 'relu'} ، افتراضي = 'relu' وظيفة التنشيط للطبقة المخفية. "الهوية" ، التنشيط بدون عمليات ، يستخدم لتنفيذ عنق الزجاجة الخطي ، ويعيد f (x) = x 'logistic' ، الدالة السينية اللوجستية ، ترجع f (x) = 1 / (1 + exp (-x)) . دالة "tanh" ، الدالة tan الزائدية ، تُرجع f (x) = tanh (x) . 'relu' هي دالة الوحدة الخطية المصححة ، وتعود f (x) = max (0 ، x) |
حلالا |
{'lbfgs'، 'sgd'، 'adam'}، افتراضي = 'adam' أداة حل تحسين الوزن. 'lbfgs' هو مُحسِّن في عائلة أساليب شبه نيوتن. يشير 'sgd' إلى النسب المتدرج العشوائي. يشير مصطلح "adam" إلى مُحسِّن الاستوكاستك المستند إلى التدرج الذي اقترحه Jinma و Dideric و Jimmyba. ملاحظة : فيما يتعلق بوقت التدريب ودرجات التحقق من الصحة ، يعمل المحلل الافتراضي "adam" جيدًا على مجموعات البيانات الكبيرة نسبيًا ( مع الآلاف أو أكثر من عينات التدريب ) يعمل بشكل جيد إلى حد معقول. ومع ذلك ، بالنسبة لمجموعات البيانات الصغيرة ، يمكن أن تتقارب "lbfgs" بشكل أسرع وتعمل بشكل أفضل. |
ألفا |
تعويم ، افتراضي = 0.0001 . معلمة عقوبة L2 ( مصطلح عادي ) . |
صفات
صفات |
الفئة |
تقديم |
خسارة_ |
يطفو |
الخسارة الحالية محسوبة بدالة الخسارة. |
أفضل_خسارة_ |
يطفو |
الحد الأدنى من الخسارة التي حققها المحلل أثناء عملية التركيب بأكملها. |
منحنى الخسارة |
قائمة الأشكال (n_iter_،) |
يمثل العنصر i في القائمة خسارة التكرار i . |
ر |
int |
عدد عينات التدريب التي يراها المحلل أثناء التركيب. |
كويفس_ |
قائمة الأشكال (n_layer - 1،) |
يمثل العنصر i في القائمة مصفوفة الوزن المقابلة للطبقة i . |
اعتراضات_ |
قائمة الأشكال (n_layer - 1،) |
يمثل العنصر i في القائمة متجه التحيز المقابل للطبقة i + 1 . |
n_iter_ |
int |
عدد التكرارات التي قام بها المحلل. |
n_ طبقات |
int |
طبقات. |
n_ المخرجات_ |
int |
عدد النواتج. |
التنشيط_ |
شارع |
اسم وظيفة تنشيط الإخراج. |
منحنى الخسارة |
قائمة الأشكال (n_iters،) |
يتم تقييم قيمة الخسارة في نهاية كل خطوة تدريب. |
ر |
int |
مساويًا رياضيًا لـ n iters * X.shape [0] ، يمثل الخطوة الزمنية ، المستخدمة بواسطة برنامج جدولة معدل التعلم للمحسن. |
طريقة
تناسب (X ، ص) |
قم بملاءمة النموذج لمصفوفة البيانات X والهدف y . |
get_params ([عميق]) |
احصل على معلمات هذا المقدّر. |
توقع (X) |
يتم استخدام نموذج متعدد الطبقات للتنبؤ. |
النتيجة (X، y [، sample_weight]) |
إرجاع المعامل المتوقع للتحديد R2 . |
set_params (** params) |
اضبط معلمات هذا المقدّر. |
12.6.2 خوارزميات انحدار الشبكة العصبية
def MLPRegressor_make_regression():
warnings.filterwarnings("ignore")
myutil = util()
X,y = datasets.make_regression(n_samples=100,n_features=1,n_informative=2,noise=50,random_state=8)
X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=8,test_size=0.3)
clf = MLPRegressor(max_iter=20000).fit(X,y)
title = "MLPRegressor make_regression数据集(有噪音)"
myutil.draw_line(X[:,0],y,clf,title)
def My_MLPRegressor(solver,hidden_layer_sizes,activation,level,alpha,mydata,title):
warnings.filterwarnings("ignore")
myutil = util()
X,y = mydata.data,mydata.target
X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=8,test_size=0.3)
clf = MLPRegressor(solver=solver,hidden_layer_sizes=hidden_layer_sizes,activation=activation,alpha=alpha,max_iter=10000).fit(X_train,y_train)
mytitle = "MLPRegressor("+title+"):solver:"+solver+",node:"+str(hidden_layer_sizes)+",activation:"+activation+",level="+str(level)+",alpha="+str(alpha)
myutil.print_scores(clf,X_train,y_train,X_test,y_test,mytitle)
def MLPRegressor_base():
mydatas = [datasets.load_diabetes(), datasets.load_boston()]
titles = ["糖尿病数据","波士顿房价数据"]
for (mydata,title) in zip(mydatas, titles):
ten = [10]
hundred = [100]
two_ten = [10,10]
Parameters = [['lbfgs',hundred,'relu',1,0.0001], ['lbfgs',ten,'relu',1,0.0001], ['lbfgs',two_ten,'relu',2,0.0001],['lbfgs',two_ten,'tanh',2,0.0001],['lbfgs',two_ten,'tanh',2,1]]
for Parameter in Parameters:
My_MLPRegressor(Parameter[0],Parameter[1],Parameter[2],Parameter[3],Parameter[4],mydata,title)
انتاج
MLPRegressor(糖尿病数据):solver:lbfgs,node:[100],activation:relu,level=1,alpha=0.0001:
68.83%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[100],activation:relu,level=1,alpha=0.0001:
28.78%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10],activation:relu,level=1,alpha=0.0001:
53.50%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10],activation:relu,level=1,alpha=0.0001:
45.41%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10, 10],activation:relu,level=2,alpha=0.0001:
68.39%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10, 10],activation:relu,level=2,alpha=0.0001:
31.62%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=0.0001:
64.18%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=0.0001:
31.46%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=1:
-0.00%
MLPRegressor(糖尿病数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=1:
-0.01%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[100],activation:relu,level=1,alpha=0.0001:
90.04%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[100],activation:relu,level=1,alpha=0.0001:
63.90%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10],activation:relu,level=1,alpha=0.0001:
85.23%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10],activation:relu,level=1,alpha=0.0001:
68.49%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10, 10],activation:relu,level=2,alpha=0.0001:
90.12%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10, 10],activation:relu,level=2,alpha=0.0001:
63.48%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=0.0001:
18.19%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=0.0001:
18.25%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=1:
85.37%
MLPRegressor(波士顿房价数据):solver:lbfgs,node:[10, 10],activation:tanh,level=2,alpha=1:
73.75٪
بيانات |
حلالا |
العقدة |
التنشيط |
مستوى |
ألفا |
نتيجة التدريب |
نتيجة اختبار |
داء السكري |
lbfgs |
[100] |
ريلو |
1 |
0.0001 |
68.83٪ |
28.78٪ |
lbfgs |
[10] |
ريلو |
1 |
0.0001 |
53.50٪ |
45.41٪ |
|
lbfgs |
[10،10] |
ريلو |
2 |
0.0001 |
68.39٪ |
31.62٪ |
|
lbfgs |
[10،10] |
تانه |
2 |
0.0001 |
64.18٪ |
31.46٪ |
|
lbfgs |
[10،10] |
تانه |
2 |
1 |
-0.00٪ |
-0.00٪ |
|
أسعار المنازل في بوسطن |
lbfgs |
[100] |
ريلو |
1 |
0.0001 |
90.04٪ |
63.90٪ |
lbfgs |
[10] |
ريلو |
1 |
0.0001 |
85.23٪ |
68.49٪ |
|
lbfgs |
[10،10] |
ريلو |
2 |
0.0001 |
90.12٪ |
63.48٪ |
|
lbfgs |
[10،10] |
تانه |
2 |
0.0001 |
18.19٪ |
18.25٪ |
|
lbfgs |
[10،10] |
تانه |
2 |
1 |
85.37٪ |
73.75٪ |
مفاجأة في نهاية المقال
بيئة ورمز اختبار الاختراق
الكود التجريبي:
الرابط: https://pan.baidu.com/s/14XsCng6laiSiT_anuwr5dw؟
كود الاستخراج: 78dy
محيط
قم بتثبيت Tomcat و Apache و MySQL على نظام Windows
قم بتثبيت tomcat و Apache و MySQL على Linux
العمل
1. انسخ الثانية في tomcat إلى دليل tomcat ، مثل٪ TOMCAT-HOME٪ \ webapps \
2. انسخ الثانية في Apache إلى دليل Apache ، مثل \ htdocs \
3. تحت دليل ثانية في القط
include.jsp
<%
String
Windows_IP="127.0.0.1";
String
Linux_IP="192.168.0.150";
String
JSP_PORT="8080";
String
PHP_PORT="8100";
%>
-
سلسلة Windows_IP: عنوان IP الخاص بـ Windows
-
String Linux_IP: عنوان IP لنظام Linux
-
سلسلة JSP_PORT: رقم منفذ JSP
-
السلسلة PHP_PORT: رقم منفذ PHP
3. Include.php في الدليل الثاني في Apache
$windows_ip="http://127.0.0.1";
$linux_ip="http://192.168.0.150";
$jsp_port="8080";
$php_port="8100";
?>
-
windows_ip $: عنوان IP الخاص بـ Windows
-
$ linux_ip =: عنوان IP لنظام Linux
-
$ jsp_port =: رقم منفذ JSP
-
$ php_port: رقم منفذ PHP
افتح التصفح وأدخل http://192.168.0.106:8080/sec/
192.168.0.106 هو عنوان IP المحلي
تكوين قاعدة البيانات
قم بإنشاء قاعدة بيانات ثانية ضمن MySQL ، root / 123456. استيراد 4 ملفات CSV ضمن DB إلى قاعدة بيانات ثانية
اختبار الاختراق لنظام التشغيل ملف آلة افتراضية vmx الملف
1) نظام التشغيل Windows 2000 Professional
الرابط: https://pan.baidu.com/s/13OSz_7H1mIpMKJMq92nEqg؟
كود الاستخراج: UPSm
2) Windows Server 2003 Standard x64 Edition
الرابط: https://pan.baidu.com/s/1Ro-BoTmp-1kq0W_lB9Oiww؟
كود الاستخراج: ngsb
كلمة مرور التشغيل: 123456
3) Windows 7 x64
الرابط: https://pan.baidu.com/s/1-vLtP58-GXmkau0OLNoGcg؟
كود الاستخراج: zp3o
4) Debian 6 (Kali Linux)
الرابط: https://pan.baidu.com/s/1Uw6SXS8z_IxdkNpLr9y0zQ؟
كود الاستخراج: s2i5
كلمة مرور التشغيل: jerry / 123456
تم تثبيت Apache و Tomcat و MySQL و vsftpd ودعم خطة تدريس ممارسة اختبار أمان الويب.
ابدأ Tomcat
# / usr / local / apache-tomcat-8.5.81 / bin / startup.sh
ابدأ MySQL
# خدمة بداية الخلية
ابدأ اباتشي
# / etc / init.d / apache2 يبدأ
افتح مستعرضًا وأدخل 127.0.0.1:8080/sec/
5) Metasploitable2-Linux (مع vsftpd 2.3.4)
الرابط: https://pan.baidu.com/s/1a71zOXGi_9aLrXyEnvkHwQ؟
كود الاستخراج: 17g6
Power -on password : راجع موجه الصفحة
بعد فك الضغط ، يكون ملف vmx مباشرة ، والذي يمكن استخدامه مباشرة