أعطتنا معالجة الإشارات حقيبة من الأدوات التي تم صقلها واستخدامها بشكل جيد للغاية في الخمسين عامًا الماضية. هناك ارتباط تلقائي ، التفاف ، تحويل فورييه ومويجي ، ترشيح تكيفي عبر المربعات الصغرى المتوسطة (LMS) أو المربعات الصغرى التكرارية (RLS) ، المقدرات الخطية ، الاستشعار المضغوط ونسب التدرج ، على سبيل المثال لا الحصر. تُستخدم أدوات مختلفة لحل مشكلات مختلفة ، وأحيانًا نستخدم مزيجًا من هذه الأدوات لبناء نظام لمعالجة الإشارات.
التعلم الآلي ، أو الشبكات العصبية العميقة ، أسهل بكثير في التعود عليها لأن الرياضيات الأساسية واضحة إلى حد ما بغض النظر عن بنية الشبكة التي نستخدمها. يكمن تعقيد وغموض الشبكات العصبية في كمية البيانات التي تعالجها للحصول على النتائج الرائعة التي لدينا حاليًا.
توقع السلاسل الزمنية
هذه المقالة هي محاولة لمقارنة أداء الشبكة العصبية لعدد قليل من خوارزميات معالجة الإشارات الرئيسية. دعونا نلقي نظرة على التنبؤ المتسلسل الزمني باعتباره المثال الأول. سنقوم بتنفيذ شبكة عصبية عميقة متسلسلة ثلاثية الطبقات للتنبؤ بالعينة التالية من الإشارة. سنفعل ذلك أيضًا بالطريقة التقليدية باستخدام مرشح تأخير النقر وتكييف الأوزان بناءً على متوسط خطأ المربع - وهذا هو تصفية LMS ، وهو نهج تكراري إلى الأمثل مرشح وينر لتقدير الإشارة من القياس الصاخب. سنقوم بعد ذلك بمقارنة خطأ التنبؤ بين الطريقتين. لذا ، دعونا نبدأ في كتابة الكود!
دعنا أولاً نستورد جميع مكتبات Python المعتادة التي نحتاجها. نظرًا لأننا سنستخدم إطار عمل TensorFlow و Keras ، فسنقوم باستيرادهما أيضًا.
مثال الطفل الزاوي 8
#The usual collection of indispensables import numpy as np import matplotlib.pyplot as plt import datetime import scipy.fftpack ## And the tf and keras framework, thanks to Google import tensorflow as tf from tensorflow import keras
التنبؤ بالشبكات العصبية
دعونا نبدأ في بناء شبكتنا العصبية المكونة من 3 طبقات الآن. تأخذ طبقة الإدخال 64 عينة وتنتج 32 عينة. تقوم الطبقة المخفية بتعيين هذه المخرجات الـ 32 من الطبقة الأولى إلى 8 عينات. تقوم الطبقة النهائية بتعيين هذه العينات الثمانية في ناتج واحد متوقع. تذكر أنه يتم توفير حجم الإدخال مع ملف شكل_المدخلات المعلمة في الطبقة الأولى.
سنستخدم مُحسِّن آدم دون القلق بشأن ماهيته. هذه هي فائدة TensorFlow ، لسنا بحاجة إلى معرفة كل التفاصيل حول جميع عمليات المعالجة المطلوبة للشبكة العصبية لبناء واحدة باستخدام هذا الإطار المذهل. إذا اكتشفنا أن مُحسِّن Adam لا يعمل بشكل جيد ، فسنحاول ببساطة مُحسِّن آخر - RMSprop على سبيل المثال.
## Time series prediction model def dnn_keras_tspred_model(): model = keras.Sequential([ keras.layers.Dense(32, activation=tf.nn.relu, input_shape=(train_data.shape[1],)), keras.layers.Dense(8, activation=tf.nn.relu), keras.layers.Dense(1) ]) optimizer = tf.keras.optimizers.Adam() model.compile(loss='mse', optimizer=optimizer, metrics=['mae']) model.summary() return model
دعونا الآن ننشئ سلسلة زمنية ، تراكب بسيط لموجات جيبية. سنضيف بعد ذلك ضوضاء إليه لتقليد إشارة العالم الحقيقي.
كيف أقوم بإعادة فتح حسابي المغلق في التطبيق النقدي
num_train_data = 4000 num_test_data = 1000 timestep = 0.1 tm = np.arange(0, (num_train_data+num_test_data)*timestep, timestep); y = np.sin(tm) + np.sin(tm*np.pi/2) + np.sin(tm*(-3*np.pi/2)) SNR = 10 ypn = y + np.random.normal(0,10**(-SNR/20),len(y)) plt.plot(tm[0:100],y[0:100]) plt.plot(tm[0:100],ypn[0:100],'r') ## red one is the noisy signal plt.show()
Towardsdatascience.com
تعلم الآلة ومعالجة الإشارات
براسانا سيثورمان. أعطتنا معالجة الإشارات حقيبة من الأدوات التي تم صقلها واستخدامها بشكل جيد للغاية في الخمسين عامًا الماضية. هناك ارتباط تلقائي ، التفاف ، تحويل فورييه ومويجي ، ترشيح تكيفي عبر المربعات الصغرى المتوسطة (LMS) أو المربعات الصغرى التكرارية (RLS) ، المقدرات الخطية ، الاستشعار المضغوط ونسب التدرج ، على سبيل المثال لا الحصر. تُستخدم أدوات مختلفة لحل مشكلات مختلفة ، وفي بعض الأحيان ، نستخدم مزيجًا من هذه الأدوات لبناء نظام لمعالجة الإشارات.>