الشبكات البايزية
الشبكة البايزية (BN) هي نموذج رسومي احتمالي يمثل المتغيرات واعتمادياتها الشرطية عبر رسم بياني موجه غير دوري (DAG). تقوم الشبكات البايزية بنمذجة عدم اليقين، ودعم...
يجلب بي إم إكس نت الشبكات العصبية الثنائية إلى MXNet، مما يحسن بشكل كبير كفاءة الذاكرة والحوسبة للذكاء الاصطناعي على الأجهزة محدودة الموارد.
بي إم إكس نت (BMXNet) هو تنفيذ مفتوح المصدر للشبكات العصبية الثنائية (BNNs) مبني على إطار التعلم العميق Apache MXNet. يوفر مجموعة من الأدوات والطبقات التي تمكّن المطورين والباحثين من بناء وتدريب ونشر الشبكات العصبية بأوزان وتنشيطات ثنائية. من خلال الاستفادة من العمليات الحسابية الثنائية بدلاً من العمليات العائمة التقليدية، يقلل بي إم إكس نت بشكل كبير من استهلاك الذاكرة وتعقيد الحسابات، مما يجعل من الممكن نشر نماذج التعلم العميق على الأجهزة منخفضة الطاقة وضمن البيئات محدودة الموارد.
قبل الخوض في تفاصيل بي إم إكس نت، من الضروري فهم ماهية الشبكات العصبية الثنائية وأهميتها في مجال الذكاء الاصطناعي.
الشبكات العصبية الثنائية هي نوع من الشبكات العصبية حيث يتم تقييد الأوزان والتنشيطات بقيم ثنائية، عادةً {+1, -1}
أو {1, 0}
. هذا التحويل الثنائي يبسط العمليات الحسابية داخل الشبكة العصبية من خلال تقليص العمليات الحسابية المعقدة إلى عمليات على مستوى البتات مثل XNOR وعد البتات (popcount).
تُستخدم BNNs بشكل خاص في السيناريوهات التي تكون فيها الموارد الحسابية محدودة ولكن هناك حاجة للمعالجة في الوقت الحقيقي. يشمل ذلك تطبيقات مثل:
يرمز بي إم إكس نت إلى Binary MXNet، مما يعكس تكامله مع إطار عمل MXNet للتعلم العميق. يشتهر MXNet بقابليته للتوسع، وقابليته للنقل، ودعمه لعدة لغات برمجة.
في بي إم إكس نت، يتم تحويل الأوزان والتنشيطات إلى ثنائية باستخدام دالة الإشارة (sign). أثناء المرور الأمامي، يتم تحويل الأوزان والتنشيطات الحقيقية إلى قيم ثنائية. أثناء المرور العكسي، يتم حساب التدرجات بالنسبة للمتغيرات الحقيقية لتسهيل عملية التدريب.
صيغة التحويل الثنائي:
لإدخال عددي (x):
b = sign(x) = { +1، إذا كان x ≥ 0؛ -1، خلاف ذلك }
يقدم بي إم إكس نت عدة طبقات ثنائية:
تعمل هذه الطبقات بطريقة مشابهة لنظيراتها القياسية في MXNet ولكنها تعتمد على العمليات الثنائية.
تأتي الكفاءة الحسابية الأساسية في بي إم إكس نت من استبدال العمليات الحسابية التقليدية بعمليات على مستوى البتات:
من خلال الاستفادة من هذه العمليات، يمكن لبي إم إكس نت إجراء عمليات طبقات الالتفاف والطبقات المترابطة بالكامل بسرعة أكبر مقارنةً بالحسابات العائمة.
أحد التطبيقات الرئيسية لبي إم إكس نت هو نشر نماذج التعلم العميق على الأجهزة ذات الموارد المحدودة. على سبيل المثال:
في مجال أتمتة الذكاء الاصطناعي وروبوتات الدردشة، يمكّن بي إم إكس نت من نشر شبكات عصبية يمكنها:
باستخدام بي إم إكس نت، أنشأ المطورون نماذج تصنيف صور تعمل بكفاءة على أجهزة Android وiOS. من خلال تحويل نماذج قياسية مثل ResNet-18 إلى نسخ ثنائية، يمكن تحقيق:
في بيئات إنترنت الأشياء، يمكن استخدام بي إم إكس نت لنشر روبوتات دردشة تستطيع:
يمكن للروبوتات والأنظمة المؤتمتة الاستفادة من بي إم إكس نت في مهام مثل:
لبدء استخدام بي إم إكس نت، يمكن تحميل المكتبة والنماذج المدربة مسبقًا من المستودع الرسمي على:
https://github.com/hpi-xnor
يدعم بي إم إكس نت تدريب النماذج الثنائية:
يمكن للمطورين تحويل نماذج MXNet الحالية إلى نسخ ثنائية:
فيما يلي مثال مبسط لكيفية تعريف شبكة عصبية ثنائية باستخدام طبقات بي إم إكس نت:
import mxnet as mx
import bmxnet as bmx
def get_binary_network():
data = mx.sym.Variable('data')
# الطبقة الأولى (غير ثنائية)
conv1 = mx.sym.Convolution(data=data, kernel=(3,3), num_filter=64)
act1 = mx.sym.Activation(data=conv1, act_type='relu')
# الطبقات الثنائية
bin_act = bmx.sym.QActivation(data=act1, act_bit=1)
bin_conv = bmx.sym.QConvolution(data=bin_act, kernel=(3,3), num_filter=128, act_bit=1)
bn = mx.sym.BatchNorm(data=bin_conv)
pool = mx.sym.Pooling(data=bn, pool_type='max', kernel=(2,2), stride=(2,2))
# الطبقة الأخيرة (غير ثنائية)
flatten = mx.sym.Flatten(data=pool)
fc = mx.sym.FullyConnected(data=flatten, num_hidden=10)
output = mx.sym.SoftmaxOutput(data=fc, name='softmax')
return output
تعتمد روبوتات الدردشة على نماذج معالجة اللغة الطبيعية، والتي قد تكون كثيفة الموارد. باستخدام بي إم إكس نت:
في سيناريوهات أتمتة الذكاء الاصطناعي, تعتبر سرعة الاستجابة والكفاءة أمرًا بالغ الأهمية.
يعد بي إم إكس نت أداة قيمة للمطورين الذين يهدفون إلى نشر نماذج التعلم العميق في بيئات ذات موارد محدودة. من خلال الاستفادة من الشبكات العصبية الثنائية، يفتح المجال أمام تطبيقات ذكاء اصطناعي فعالة عبر مجالات متنوعة، بما في ذلك أتمتة الذكاء الاصطناعي وروبوتات الدردشة. إن تكامله مع MXNet ودعمه لكل من العمليات على GPU وCPU يجعله متاحًا وقابلًا للتكيف مع احتياجات المشاريع المختلفة.
سواءً كنت تطور تطبيقًا محمولًا يتطلب التعرف على الصور في الوقت الحقيقي أو تنشر روبوتات دردشة تحتاج إلى العمل بكفاءة على أجهزة منخفضة الطاقة، يوفر بي إم إكس نت المكونات اللازمة لبناء ونشر الشبكات العصبية الثنائية بفعالية.
يعد بي إم إكس نت تطورًا مهمًا في مجال الشبكات العصبية الثنائية (BNNs)، والتي تهدف إلى تحسين الكفاءة الحوسبية وتقليل استهلاك الطاقة، خاصة لنشر نماذج التعلم العميق على الأجهزة منخفضة الطاقة. فيما يلي ملخص للأوراق العلمية ذات الصلة التي تناقش بي إم إكس نت وتطبيقاته:
BMXNet: An Open-Source Binary Neural Network Implementation Based on MXNet
تقدم هذه الورقة، التي كتبها هاوجين يانغ وزملاؤه، بي إم إكس نت كمكتبة مفتوحة المصدر للشبكات العصبية الثنائية (BNNs) مبنية على MXNet. تستخدم BNNs في بي إم إكس نت عمليات على مستوى البتات، مما يقلل بشكل كبير من استهلاك الذاكرة ويزيد الكفاءة، خصوصًا للأجهزة منخفضة الطاقة. تدعم المكتبة كل من شبكات XNOR والشبكات العصبية الكمية، مع تكامل سلس مع مكونات المكتبة القياسية عبر أوضاع GPU وCPU. مشروع بي إم إكس نت، الذي تديره معهد هاسو بلاتنر، يتضمن مشاريع تجريبية ونماذج ثنائية مدربة مسبقًا، متوفر على GitHub: مكتبة بي إم إكس نت.
Learning to Train a Binary Neural Network
في هذا العمل، يستكشف جوزيف بيتغه وزملاؤه طرقًا فعالة لتدريب الشبكات العصبية الثنائية باستخدام بي إم إكس نت. يركزون على تبسيط عملية التدريب وجعلها أكثر سهولة. تناقش الورقة هياكل الشبكات المختلفة والمعاملات الفائقة لتحسين الفهم وتحسين نتائج التدريب لـ BNNs. وتقدم استراتيجيات لتعزيز الدقة عبر زيادة اتصالات الشبكة. الكود والنماذج متاحة علنًا للمزيد من الاستكشاف.
Training Competitive Binary Neural Networks from Scratch
تؤكد هذه الدراسة، التي أعدها جوزيف بيتغه وآخرون، على تحسين أداء الشبكات الثنائية دون الاعتماد على نماذج الدقة الكاملة أو الاستراتيجيات المعقدة. يحقق المؤلفون نتائج متقدمة على مجموعات بيانات معيارية، مما يثبت أن الطرق التدريبية البسيطة يمكن أن تنتج نماذج ثنائية تنافسية. كما كانوا من الأوائل في دمج هياكل الشبكات الكثيفة في الشبكات الثنائية، مما دفع المجال قدمًا.
daBNN: A Super Fast Inference Framework for Binary Neural Networks on ARM devices
يقدم جيانهواو تشانغ وفريقه إطار عمل daBNN، الذي يدعم التطبيق السريع لـ BNNs على أجهزة ARM، مثل الهواتف المحمولة. تعرض الورقة قدرة daBNN على تعزيز كفاءة الاستدلال من خلال العمليات على مستوى البتات، محققة بذلك إمكانات BNNs للأجهزة ذات الموارد الحوسبية المحدودة. تساهم هذه الأبحاث في النشر العملي لـ BNNs على الأجهزة المستندة إلى ARM المنتشرة.
بي إم إكس نت هو مكتبة مفتوحة المصدر لبناء ونشر الشبكات العصبية الثنائية (BNNs) على إطار عمل Apache MXNet. يتيح إنشاء شبكات عصبية بأوزان وتنشيطات ثنائية، مما يقلل بشكل كبير من استخدام الذاكرة وتعقيد العمليات الحسابية، مما يجعله مثاليًا لتطبيقات الذكاء الاصطناعي على الأجهزة محدودة الموارد ومنخفضة الطاقة.
يوفر بي إم إكس نت تقليلًا في استهلاك الذاكرة، وتسريعًا في الاستدلال، وانخفاضًا في استهلاك الطاقة من خلال الاستفادة من العمليات الثنائية بدلاً من الحسابات العائمة. تكامله السلس مع MXNet ودعمه لكل من وحدات المعالجة الرسومية ووحدات المعالجة المركزية يجعله مناسبًا للذكاء الاصطناعي المدمج، وإنترنت الأشياء، والتطبيقات المحمولة، وأتمتة الذكاء الاصطناعي في الوقت الفعلي.
يعد بي إم إكس نت مثاليًا لنشر نماذج التعلم العميق على الأجهزة المدمجة، وأجهزة إنترنت الأشياء، والهواتف المحمولة، والروبوتات، وسيناريوهات الذكاء الاصطناعي الطرفي حيث تكون الكفاءة، وانخفاض استهلاك الطاقة، والمعالجة في الوقت الحقيقي أمورًا حاسمة.
على عكس الشبكات العصبية التقليدية التي تستخدم أوزان وتنشيطات عائمة، تقوم BNNs بتحويل هذه القيم إلى ثنائية (إما +1/-1 أو 1/0)، مما يمكّن من استخدام عمليات ثنائية فعالة مثل XNOR وعدّ البتات. هذا يقلل بشكل كبير من متطلبات الذاكرة والحوسبة مع الحفاظ على دقة معقولة للعديد من المهام.
يمكنك تنزيل بي إم إكس نت، والوصول إلى الوثائق، والعثور على نماذج مدربة مسبقًا على المستودع الرسمي على GitHub: https://github.com/hpi-xnor. تتوفر أيضًا أوراق بحثية ودروس تعليمية لمساعدتك في البدء.
اكتشف كيف يمكّن بي إم إكس نت من نشر الذكاء الاصطناعي بسرعة وكفاءة في استهلاك الطاقة على الأجهزة منخفضة الطاقة باستخدام الشبكات العصبية الثنائية. دمج، درّب، وانشر نماذج عصبية مضغوطة للتطبيقات الطرفية، وإنترنت الأشياء، وتطبيقات الأجهزة المحمولة.
الشبكة البايزية (BN) هي نموذج رسومي احتمالي يمثل المتغيرات واعتمادياتها الشرطية عبر رسم بياني موجه غير دوري (DAG). تقوم الشبكات البايزية بنمذجة عدم اليقين، ودعم...
ذاكرة طويلة وقصيرة المدى ثنائية الاتجاه (BiLSTM) هي نوع متقدم من بنية الشبكات العصبية المتكررة (RNN) التي تعالج البيانات التسلسلية في كلا الاتجاهين الأمامي والخ...
الشبكات العصبية الاصطناعية (ANNs) هي مجموعة فرعية من خوارزميات تعلم الآلة مستوحاة من الدماغ البشري. تتكون هذه النماذج الحاسوبية من عقد مترابطة أو "عصبونات" تعمل...