أمام "نظرة عامة الشبكة العصبية (نظرية جزئيا)،" علينا أن محددة الحالي حول تصميم الشبكات العصبية، تقوم أساسا على تمثيل أفضل وأفضل الأمثل، من طبقة وطبقة الكلية اتصال، يتم الجمع بين عدد من الخلايا العصبية في كل طبقة، ونوع وعدد من الطبقات، وكيف أنواع مختلفة من طبقات، ويحتوي على نوع الخلايا العصبية الدقيقة الخفية وحدة الانتاج. تصميم الشبكات العصبية للنظر في قضايا محددة تواجهها، مثل التي واجهناها مرارا وتكرارا تصنيف القزحية البيانات المستخدمة في الدرس السابق، وهو شائع شبكة متصلة بشكل كامل يمكن حلها، وإذا كان تحديد الصورة ليحل المشكلة، ثم مع التفاف طبقة الشبكة العصبية قد التكيف بشكل أفضل إذا كان الوجه من التعرف على الصوت، إضافة اتجاهين دورة LSTM هيكل الشبكة العصبية قد تكون ضرورية، ولكن من دون استثناء، في الممارسة العملية، ونحن بحاجة استنادا إلى نظرية العناصر المذكورة أعلاه التحديث.
كنا استخدام نمباي أمام تلقاء نفسها لبناء المستقبلات بسيط:
فئة NeuralNetwork:
صفر __init __ (النفس، س، ص):
self.input = س
self.weights = np.random.rand (x.shape ، 1)
self.weights1 = np.random.rand (1)
self.y = ذ
self.output = np.zeros (self.y.shape)
صفر feedforward (النفس):
self.output = السيني (np.dot (self.input، self.weights) + self.weights1)
صفر backprop (النفس):
d_weights = np.dot (self.input.T، (2 * (self.y -self.output) * sigmoid_derivative (self.output)))
d_weights1 = np.dot (2 * (self.y -self.output) .reshape (4)، sigmoid_derivative (self.output) .reshape (4))
self.weights + = d_weights
self.weights1 + = d_weights1
إذا قمت بتوسيع عدد من الخلايا العصبية في طبقة مخفية وسهلة جدا، يمكننا بسهولة إضافة التهيئة الوقت:
......
self.weights2 = np.random.rand (10،1)
......
وهكذا حصل عليها طبقة مخفية 10 الخلايا العصبية.
ولكن اذا وصل الامر الى شبكة أعمق أكبر، لذلك لم يعد من السهل أن تتوسع، لذلك لدينا لفهم عمق التعلم مخصصة لهذا الإطار، دعونا بسرعة بناء نماذج ونتائج الاختبار. حتى هنا، فإنني أوصي باستخدام keras بوصفها مجموعة بداية الدراسة المتعمقة لعمق الإطار الحالي تعلم كثيرا، مثل tensorflow، كافيه، CNTK، الشعلة، theano، paddlepaddle، mxnet وهلم جرا، ولكن keras بناء نموذج سريع جدا يعني ذلك أن الأفكار المبتكرة يمكن أن يتحقق بسرعة، ولكن لديه أيضا بعض المرونة والسرعة ليست بطيئة، فإنه يمكن تشغيل بسهولة على GPU، الأهم من ذلك، على أساس نظرية التحكم، والتعلم keras اتخذت للتو خطوة القدم اليسرى الحق القدم آخر وكأنها أمر طبيعي.
يظهر في الصورة عدد من عمليات البحث في جوجل دراسة متعمقة من كل إطار، يمكن للمستخدم تعكس إلى حد ما على درجة من الاهتمام في إطار التعلم العميق، يمكننا أن نرى النمو السريع keras، في المرتبة الثانية بعد tensorflow.
في التعلم الإحصائي، على الرغم من أن كثيرا ما تستخدم sklearn، لكني لم تفعل مقدمة موجزة، لأن الإحصائية تعلم المزيد من التركيز على الرياضيات والنماذج الواردة sklearn جدا محتوى بكثير من النتائج الخطيرة هي أن جزءا من القراء لم يكن لها أن تتخلى عن دخول حتى قبل أن تبدأ في استخدام keras قيام بهذه المهمة، والغرض الرئيسي من هذه الورقة هو تقديم الشبكة العصبية لتعكس keras، فضلا بسيطة لkeras الاستخدام، ربما يستغرق سوى بضع دقائق يمكنك البدء به.
أولا، يجب أن يكون هناك مدخلات الشبكة العصبية والمخرجات، في keras، يجب علينا أولا تحديد ما نموذجا:
من keras.models استيراد نموذج
من keras.layers استيراد المدخلات
المدخلات = الإدخال (الشكل = (100،))
نموذج = نموذج (المدخلات = المدخلات والمخرجات = المدخلات)
ولقد خلقنا نموذجا عصبون 100 له مدخلات الأبعاد، ولكن لاحظنا المدخلات والمخرجات هي نفسها، وهو ما يعني أننا لم تنشئ سوى 100 الخلايا العصبية من أي استخدام، على المدخلات في طبقة. توفر الطبقة keras.layers مجموعة متنوعة من طبقة، ونضيف إلى الطبقة التالية متصلة تماما، ما عليك سوى أن:
من keras.models استيراد نموذج
من الإدخال keras.layers الاستيراد والكثيفة
المدخلات = الإدخال (الشكل = (100،))
س = الكثيفة (32) (المدخلات)
نموذج = نموذج (المدخلات = المدخلات والمخرجات = س)
وسائل اتصال كاملة أن جميع الخلايا العصبية في طبقة السابقة بعد طبقة من الخلايا العصبية موجودة الأوزان الاتصال. المقبل، ونحن بحاجة لتنشيط وظيفة، تحتاج إلى ضبط وظيفة الشبكة العصبية، كنا استخراج ReLU عن وظيفة التنشيط، ناهيك عن طبقة واحدة. وأضاف أن النموذج الأصلي:
من keras.models استيراد نموذج
من الإدخال keras.layers الاستيراد، الكثيفة، ReLU
المدخلات = الإدخال (الشكل = (100،))
س = الكثيفة (32) (المدخلات)
ذ = ReLU () (خ)
نموذج = نموذج (المدخلات = المدخلات والمخرجات = ذ)
بإضافة هذا، ونحن قد حصلت على الشبكة العصبية اثنين من طبقة، وقيمة الانتاج من الإخراج على وظيفة تفعيل بعد العلاج، على وجه الدقة، وهذا هو مجرد إدخال 100 الأبعاد، والناتج هو 32 الأبعاد آلة الإدراك، ونحن لمواصلة إضافة طبقات لإضافته ممكن للتعامل مع المشاكل غير الخطية على الفور، وإضافة طبقة للإخراج، واستخدام وظيفة تفعيل softmax بوصفها وظيفة، إضافة إلى النموذج أعلاه:
من keras.models استيراد نموذج
من keras.layers استيراد المدخلات، الكثيفة، ReLU، softmax
المدخلات = الإدخال (الشكل = (100،))
س = الكثيفة (32) (المدخلات)
ذ = ReLU () (خ)
من = الكثيفة (10) (ص)
من = softmax () (الخروج)
نموذج = نموذج (المدخلات = المدخلات والمخرجات = الخروج)
لدينا نموذج النهائي هو للتعامل مع سرية البيانات 100 ميزات 10 الأبعاد. لاحظ أنه، كانت مخبأة وحدات الانتاج ليست هي نفس الوظيفة، يمكن للوحدة الانتاج بشكل عام كوحدة خفية، ولكن فقط عدد قليل من الوحدات خفية يمكن أن تصبح وحدة الانتاج، والذي يرتبط إلى فقدان وظيفة التي استخدمناها. من أجل تحقيق نفس الغرض، يجوز تعيين وظيفة تفعيل مسبقا في طبقة جيدا، على سبيل المثال:
س = الكثيفة (32) (المدخلات)
ذ = ReLU () (خ)
أيضا يمكن تنشيط طبقة وظيفة وضعت الكتابة:
ذ = الكثيفة (32، تفعيل = 'relu') (المدخلات)
كلتا الطريقتين لا تمييز خاص. بعد تعيين نموذج تصل كاملة، أكملنا أشارت هذه المهمة، قبل أن نبدأ الأمثل، وأشر غالبا ما ينسى هو تحسين وقت خلال معلمات التهيئة نحتاج إليه، keras توفر الدرجة تهيئة المعلمات، ونحن تحسين شبكة ل عندما لاستخدامه، على سبيل المثال، نريد أن توزع عادة التهيئة عشوائية:
من importinitializers keras
آر = initializers.RandomNormal (المتوسط = 0، stddev = 1، وبذور = 42)
أنشأنا الصفر يعني والانحراف المعياري 1. توزع عادة المصنف رقم عشوائي تتم تهيئة عشوائيا 42. نحن نمر kernel_initializer أسلوب المعلمة التهيئة في بناء الشبكة:
من importinitializers keras
من keras.models استيراد نموذج
من keras.layers استيراد المدخلات، الكثيفة، ReLU، softmax
آر = initializers.RandomNormal (المتوسط = 0، stddev = 1، وبذور = 42)
المدخلات = الإدخال (الشكل = (100،))
س = الكثيفة (32، kernel_initializer = آكانيوز) (المدخلات)
ذ = ReLU () (خ)
من = الكثيفة (10، kernel_initializer = آكانيوز) (ذ)
من = softmax () (الخروج)
نموذج = نموذج (المدخلات = المدخلات والمخرجات = الخروج)
وفي الوقت نفسه، نحن بحاجة إلى معرفة معايير وظيفة الخسارة، والتحسين والتقييم، فهي متوفرة من التعليمات البرمجية التالية:
من خسائر استيراد keras
فقدان = losses.categorical_crossentropy
من importoptimizers keras
SGD = optimizers.SGD (LR = 0.1، وتسوس = 1E-10، زخم = 0.9، نيستيروف = صحيح)
من مقاييس استيراد keras
الأداء = metrics.categorical_accuracy
من هذه، ونحن تحدد عبر وظيفة فقدان الكون، إلى أقصى حد خوارزمية التدرج العشوائية مع نيستيروف الزخم انخفضت دقة معايير التقييم. يمكنك استخدام وظيفة الخسارة، خوارزميات التحسين جيدة ومعايير التقييم جمعت نموذجنا:
model.compile (الخسارة = خسارة، محسن = دولار سنغافوري، metrcis = )
وبعد ذلك، ونحن نستخدم طريقة نموذج يصلح لبدء تدريب البيانات:
model.fit (س = X، Y = ذ، batch_size = 32، العهود = 1، مطول = 1)
حيث X، Y البيانات لدينا، المهم أن نلاحظ أنه، تشير batch_size لعدد من العينات لكل التدرج المحدثة، البيانات بأكمله هو عدد العهود كرر مع التكرار مختلفة، التكرار وسائل التحديثات التدرج العدد. وهو التبديل مطول يظهر السجل أنه إذا تم تعيين إلى 1، في عملية التدريب، شريط تقدم ستظهر منغ منغ، لا أعرف كم من الناس بسبب هذا شريط التقدم جميل في keras لا يمكن تخليص أنفسهم.
بعد الانتهاء من التدريب، يمكننا بسهولة انقاذ keras ملف HDF5 نموذج (تحتاج إلى تثبيت مكتبات الثعبان: h5py):
model.save ( 'duxinshu.h5')
حفظ في وجهه المجلد الحالي، عندما نستخدم هذا النموذج في أماكن أخرى، ما عليك سوى:
من keras.model load_model استيراد
نموذج = load_model ( 'my_model.h5')
وبالإضافة إلى ذلك، يمكننا أيضا طباعة النموذج أعلاه، الاستخدام:
model.summary ()
يمكننا أن نرى حالة نموذجية في المترجم، ولكن يمكننا أيضا تثبيت ann_visualizer المكتبة، والتصور نموذج.
قراءة Xinjunkaiba الفصول الدراسية TIPSكثير من الناس يعتقدون keras كإطار سهلة الاستخدام، ويتم إخفاء عدد من العمليات، وبالتالي فإن التعبئة والتغليف جدا، بعض المرونة رديئة. علما، مع ذلك، keras تستخدم tensorflow، Theano وCNTK الخلفية، ونحن نستخدم بشكل كامل نهايته الخلفية إلى التصميم المبتكر والمرونة هي عالية جدا في الواقع، فإن الافتراض هو أنه يجب علينا أن نفهم عمق التعلم والكثير من نظرية التعلم الآلي.
keras هناك طريقتان لبناء نموذج، توضح هذه المقالة واحدة تسمى النموذج الوظيفي، ويسمى الآخر متتابعة، بناء متسلسل نموذج بسيط لأسرع وأكثر مرونة ولكن الوظيفية. هذه المقالة لا يظهر الا في الوظائف الأساسية للkeras، وهناك العديد من الميزات لاستخدامها في مهام محددة.
الكاتب: الراهب دون هيد آند شولدرز للطبع، يرجى ترك رسالة وراء الكواليس، والامتثال للمعايير طبع