Azzeddine Abdelalim
Azzeddine Abdelalim

@UpDreamer1

24 تغريدة 54 قراءة Feb 16, 2021
كيف تستخدم TensorFlow من جوجل في برمجة الذكاء الاصطناعي؟!
سواءا كنت مهتم بالذكاء الإصطناعي ، تعلم الآلة Machine Learning، أو بايثونيستا يريد دخول Machine Learning.
أعرني انتباهك نتعلم نستخدم TensorFlow للربط بين الآلة و الاوامر البشرية باستعمال لغة البايثون.
ركز معي.
يُعتبر “TensorFlow” الجيل الثاني من نظام تَعلم الآلة لجوجل، فهو مكتبة برمجيات مفتوحة المصدر للتعَلم الآلي، حيث يُستخدم في العديد من المنتجات التجارية لشركة جوجل؛ لتميزه بالمرونة، وسهولة الاستخدام والتطبيق، والسرعة، بالإضافة إلى أهم ما يميزه وهو كونه مفتوح المصدر للجميع.
لذلك “TensorFlow” لديه قدرة عالية جدًا على البحث والرد الذكي، وتستخدمه جوجل في خدماتها المختلفة، بل الآن أصبح يُستخدم في منتجات حقيقية؛ وذلك لأنّ النظام بُني على أساس الاستعداد الكامل لخدمة الإنتاج، لسرعته والقدرة على استخدامه،
فقد بُني على مصدر مفتوح يتيح وصول أي شخص للكود المصدري وتعديله، حيث يقوم النظام بتمرير البيانات المعقدة من خلال الشبكة العصبية أو الدماغ الاصطناعي، والتي تعتبر جزءًا أساسيًّا في التعليم العميق.
“ولكن أهم ما يميز “TensorFlow” بالنسبة للمبرمج هو سهولة التعبير عن أفكاره من خلاله باستخدام لغة الـ Python”
وبما أنّ لغة الـ “python” يتم تعريفها تحت مُسمى “A general purpose, high-level language”
لأنّها لغة البرمجة التي تشمل برمجة كل شيء مثل: الألعاب، المواقع، قواعد البيانات، برمجة الآلات، وأيضًا برمجة تطبيقات الموبايل.
بالإضافة إلى أنّها “An interpreted language”
لأنّ أي لغة برمجة “high-level”، تقم بكتابتها الحاسوب لا يفهمها مباشرةً، لذلك لابد أن يتم تحويلها إلى ما يُسمى بلغة الآلة “machine language” حتى يفهمها الحاسوب ويقوم بالتعامل معها،
ولغة الآلة عبارة عن “0/1” وبالتالي فأنت تحتاج لوسيط يقوم بتحويل لغة البرمجة التي قُمت بكتابتها لـ لغة الآلة، في حالة لغات برمجة مثل (++)C ,C هذا الوسيط يُسمى “compiler”، وهو ما يحتاج إلي برامج أخرى تقم بتنزيلها من أجل تشغيل الكود.
ولكن في حالة لغة الـ”Python” يُسمى هذا الوسيط “interpreted”، والذي يعطيك ميزة التسهيل فكل ما تحتاج إليه تنزيل ما يعرف باسم “IDE”، لتَكتب كود البرنامج وتضغط “run” من أجل تشغيل الكود،
وهذه النقطة تُعطي البايثون ميزة قوية جدًا وهي أنّها “cross platform”، حيث أنّها تقبل تشغيل الكود على أي نظام تشغيل (win/mac/linux).
“ولكن لكي نتمكن من استخدام “TensorFlow” مع لغة البرمجة “python” من أجل برمجة الذكاء الاصطناعي، لابد أن نتعرف على ما هو الـ “Tensor”، وما علاقته بعلم الرياضيات؟ وكيف من خلاله يمكن الوصول إلى خوارزميات تساعد الآلة على التنبؤ؟”
الـ Tensor في الرياضيات، هو إحدى الدالات الرياضية بجانب الأعداد أو الكميات المطلقة “generalized quantity”، التي لا تتميز بوحدات للقياس، يتميز بأنّه يحتوي في خواصه خواص الأعداد المطلقة،
والمتجهات، والمعاملات الخطية، ظهر كمفهوم من الهندسة التفاضلية، وله تطبيقات كثيرة مثل معادلات آينشتاين للمجال، وميكانيكا الموائع وله أهمية كبيرة جدًا في الفيزياء والهندسة التطبيقية.
يمكننا أن نَكتب الـ Tensor بدلالة الإحداثيات، أو المصفوفات، حيث يمكننا من خلاله تكوين مصفوفة، هذه المصفوفة بكل تأكيد تتكون من متغيرات أو إحداثيات لجسم معين على سبيل المثال، لنحصل في النهاية على مُتجه “Vector” قيمة مطلقة،
ستصل إلى هذه المتغيرات إذا قُمت بترجمة مشاكل تعلم الآلة إلى دوال “Functions”، وهذه الدوال تتكون من مجموعة متغيرات؛ لأنّ الدالة عبارة عن صيغة رياضية لها وظيفة معينة تستقبل بيانات معينة، وتعطي نتائج معينة.
وبناءً على هذه البيانات ستقوم خوارزميات الآلة “ML algorithm” باستخراج شيئًا مثيرًا للاهتمام، دون الحاجة لكتابة أي كود معين، فبدلًا من كتابة التعليمات والأكواد البرمجية، يُمكنك تغذية الخوارزميات بالبيانات و هي ستقوم تلقائيًا بصياغة الخرج استنادًا إلى البيانات نفسها.
حيث أنّ التعلم
العميق يتم من خلال الشبكات العصبية، وفي الأساس الشبكة العصبية تتكون من مدخلات “Inputs”، التي تأتي من داخل الشبكة لتكون ما يُسمي بمجموعة “Nodes” متصلة ببعضها البعض، لتقوم بعمل بعض العمليات والحسابات الخاصة بها ويسمى ذلك “Computation Graph”، وتعطينا في النهاية المخرجات “Outputs” .
دعنا نضرب مثال على ذلك، كيف يمكن للآلة أن تتعرف على ما يظهر أمامها؟
على سبيل المثال ظهر أمامها قط، فكيف يُمكنها أن تتعرف عليه وتميزه؟ الواقع يقول أنّ الآلة ترى القط في صورة مجموعة بكسلات “Pixels” متراصة بجوار بعضها البعض، تقوم الآلة بفرض أن كل بيكسل عبارة Tensor لتُكَون مجموعة
من الـ Tensors في شكل بيانات والتي يطلق عليها مدخلات ويُرمز لها برموز تمثل اتجاهات بمعاملات خطية معينة كـ “X”، “W”، “b”، ليصبح لديها متغيرات، يمكن وضعها داخل مصفوفة، ومن خلال المصفوفة تكون دوال رياضية التي ستمر على خوارزميات الآلة لتستنبط منها المخرجات.
وفيما يلي صورتين توضح كيفية الوصول للخرج:
import tensorflow as tf
b = tf.Variable(tf.zeros([100])) # 100-d vector, init to zeroes
W = tf.Variable(tf.random_uniform([784,100],-1,1)) # 784×100 matrix w/rnd vals
x = tf.placeholder(name=”x”) # Placeholder for input
relu = tf.nn.relu(tf.matmul(W, x) + b) # Relu(Wx+b)
C = […] # Cost computed as a function
# of Relu
s = tf.Session()
for step in xrange(0, 10):
input = …construct 100-D input array … # Create 100-d vector for input
result = s.run(C, feed_dict={x: input}) # Fetch cost, feeding x=input
print step, result
إنتهى درس اليوم🙏.

جاري تحميل الاقتراحات...