كقاعدة عامة ، لدى عالم البيانات فكرة غامضة عن تطوير الأجهزة المحمولة ، ولا يشارك مطورو تطبيقات الأجهزة المحمولة في التعلم الآلي. يعيش
Andrei Volodin ، مهندس في Prisma AI ، عند تقاطع هذين العالمين وأخبر مضيف Podlodka ما هو.
الاستفادة من هذه اللحظة ، أوضح Stas Tsyganov (Tutu.ru) و Gleb Novik (Tinkoff Bank) ، أولاً وإلى الأبد أنه
لا أحد يدرب الشبكات العصبية على الأجهزة المحمولة . ووجدت أيضًا أنه في التعلم الآلي ، للأسف ، لا يوجد سحرة ؛ ناقش التقنيات الحديثة مثل
التعلم العميق والتعلم التعزيزي وشبكات الكبسولات.
ونتيجة لذلك ، نظرًا لأن Podlodka هو عرض صوتي حول تطوير الأجهزة المحمولة ، فقد جاءوا إليها واكتشفوا كيف يعمل كل شيء للأجهزة المحمولة.
التالي هو النسخة النصية من هذه المحادثة ، وإدخال البودكاست
هنا .
حول أندريه فولودين ، cocos2d و Fiber2d
جليب: من فضلك أخبرنا قليلاً عن نفسك. ماذا تفعلين؟
أندرو: أنا مطور للهواتف المحمولة ، لكني لا أعمل إلا القليل جدًا في تطوير iOS الكلاسيكي. لا تشمل مسؤولياتي عمليًا العمل مع UIKit. أنا المطور الرئيسي لمحرك لعبة Cocos2d المشهور جدًا على GitHub. في الوقت الحالي ، أنا مهندس GPU في Prisma. تتضمن مسؤولياتي دمج الشبكات العصبية على بطاقات الفيديو والعمل مع الواقع المعزز ، على وجه الخصوص ، مع مجموعة أدوات الواقع الافتراضي.
GLEB: رائع! مثيرة للاهتمام بشكل خاص حول cocos2d. على حد علمي ، ظهر هذا الإطار منذ فترة طويلة.
أندرو: نعم ، حوالي عام 2009.
GLEB: استخدمته منذ البداية؟
أندرو: لا. أصبحت المطور الرئيسي فقط في عام 2015. قبل ذلك ، كنت مساهمًا أساسيًا. المفلس ، الذي مول التنمية ، أفلس ، وغادر الأشخاص الذين تلقوا الأموال من أجل التنمية ، وأصبحت القائد. أنا الآن مسؤول في المنتدى ، وأساعد الوافدين الجدد في مواجهة بعض المشاكل ، لقد تم إصدار الإصدارات القليلة الماضية من قبلي. أي أنني المشرف الرئيسي في الوقت الحالي.
GLEB: ولكن هل لا يزال cocos2d على قيد الحياة؟
أندرو: على الأرجح لا ، ويرجع ذلك أساسًا إلى حقيقة أنه مكتوب في الهدف جيم ، وهناك الكثير من التراث. على سبيل المثال ، أدعم بعض ألعابي القديمة المكتوبة باستخدامها ، مطورين آخرين - مشاريعي القديمة. من المحركات الحالية يمكنك أن تسمع عن Fiber2d. هذا ايضا مشروعي
Fiber2d هو أول محرك ألعاب Swift يتم نقله إلى Android. أطلقنا لعبة مكتوبة بالكامل في Swift على كل من iOS و Android. حول هذا أيضًا ، يمكن العثور عليه على Github. هذا هو المعلم التالي في تطوير مجتمع cocos2d.
حول التعلم الآلي على الأصابع
جليب: دعنا نبدأ التحرك تدريجياً نحو موضوعنا اليوم. سنتحدث اليوم
عن التعلم الآلي وكل شيء من حوله - متصل وغير متصل بالهواتف المحمولة. أولاً ، دعنا نتعرف على ماهية التعلم الآلي. سنحاول شرح أكبر قدر ممكن على الأصابع ، لأنه ليس كل مطوري الهواتف المحمولة على دراية بها. هل يمكنك أن تخبرنا ما هو؟
أندرو: بناءً على التعريف الكلاسيكي ،
يعد التعلم الآلي بحثًا عن أنماط في مجموعة بيانات . المثال الكلاسيكي هو الشبكات العصبية ، التي تحظى الآن بشعبية كبيرة. من بينها هناك شبكات تتعلق بالتصنيف. مثال بسيط على مهمة التصنيف هو تحديد ما يظهر في الصورة: هناك نوع من الصورة ، ونريد أن نفهم ما هي: كلب ، قطة أو أي شيء آخر.
من الصعب جدًا كتابة هذا بالرمز القياسي لأنه من غير الواضح كيفية القيام بذلك. لذلك ، يتم استخدام النماذج الرياضية ، والتي تسمى التعلم الآلي. وتستند إلى حقيقة أن بعض القوانين يتم استخراجها من عدد كبير من الأمثلة ، ومن ثم ، باستخدام هذه القوانين ، من الممكن عمل تنبؤات مع بعض الدقة في الأمثلة الجديدة التي لم تكن في مجموعة البيانات الأصلية. هذا ، باختصار.
GLEB: بناءً على ذلك ، هل تعلم قصة عن تغيير نموذج باستخدام مجموعة بيانات تدريبية؟
أندرو: أثناء التدريب ، يظل النموذج ، كقاعدة عامة ، ثابتًا. أي أنك تختار نوعًا من الهندسة المعمارية وتتعلمه. إذا أخذنا على سبيل المثال الشبكات العصبية ، التي لا تقتصر على جميع تعلُم الآلة ، فهناك في البداية ، تقريبًا ، جميع الأوزان هي أصفار أو قيم متطابقة أخرى. بينما نطعم بياناتنا في إطار التعلم ، تتغير الأوزان قليلاً مع كل مثال جديد ، وفي النهاية تصب في آلة مدربة.
ستاس: الغرض النهائي من هذا النموذج هو توفير بعض البيانات بسرعة وليس من عينة التدريب ، والحصول على النتيجة بسرعة؟
أندرو: نعم ، ولكن الأمر لا يتعلق بالسرعة فقط. على سبيل المثال ، لا يمكن حل بعض المهام بشكل مختلف - لنفترض أن مثال التصنيف بسيط للغاية. قبل إطلاق شبكات التصنيف ، لم تكن هناك أي حلول لفهم ما هو موضح في الصورة. أي أن هذه تكنولوجيا ثورية بشكل مباشر في بعض المجالات.
حول العمل اليدوي والتعلم الآلي
ستاس: أخبرت جدتي مؤخرًا ما هو التعلم الآلي. اعتقدت في البداية أن التعلم الآلي هو عندما تعلم الآلة شخصًا ما. بدأت أشرح لها أننا في الواقع ، على العكس من ذلك ، نحاول تعليم الآلة بحيث تقوم بعد ذلك ببعض المهام.
لقد عرضت المشكلات التي يحلها التعلم الآلي. تم تنفيذ معظمها ، قبل إطلاق التعلم الآلي ، من قبل الناس. علاوة على ذلك ، لم يتم اعتبار هذا العمل منخفض المهارة ، ولكنه ليس عالي التقنية ، دعنا نقول ذلك. هذه هي أبسط العمليات التي يمكن للشخص القيام بها إلى حد كبير. هل يمكنك تخيل ذلك؟
أندرو: يمكن قول ذلك أيضًا. في الواقع ، لا يزال هذا العمل مطلوبًا الآن ، ولكن فقط من أجل إعداد مجموعات البيانات للتعلم الآلي. في الواقع ، في بعض المجالات ، على سبيل المثال ، في الطب ، يتيح التعلم الآلي تسهيل المهام الروتينية قليلاً وتسهيل العملية قليلاً. لكن ليس دائمًا. لن أقول أن التعلم الآلي يركز على تسهيل العمل البكم. في بعض الأحيان يقوم بعمل فكري جميل.
ستاس: هل يمكنك إعطاء مثال على مثل هذا العمل الفكري؟
أندرو: على سبيل المثال ، تطبيق Prisma الخاص بنا - يستخدمه الكثيرون على الأرجح (هذا ليس إعلانًا!) لا يمكن القول أن هذا هو عمل فكري وغالبًا ما يعيد الناس رسم الصورة إلى الصور ، والشبكة العصبية تفعل ذلك - فأنت تعطيها صورة طبيعية
وتحصل على شيء جديد . علاوة على ذلك ، يمكن للمرء أن يجادل حول ما إذا كان جميلًا أم لا ، ولكن الحقيقة لا جدال في أنها شيء لا يمكن لأي شخص القيام به ، أو يستغرق الكثير من الوقت.
عن القصة
جليب: نعم ، أعتقد أن هذا مثال رائع. ربما يستحق القليل من إلقاء نظرة على القصة. منذ متى تم تطوير هذا الموضوع؟ يبدو لي أنه منذ بدايات البرمجة تقريبًا ، على الأقل منذ فترة طويلة جدًا.
أندرو: نعم ، بشكل عام ، تم تطوير معظم المفاهيم المطبقة الآن في التسعينات. وبطبيعة الحال ، ظهرت الآن خوارزميات جديدة ، وتحسنت جودة الخوارزميات. وعلى الرغم من وجود شعور بأن الاهتمام المفاجئ بالتعلم الآلي نشأ من العدم ، في الواقع ، كان الناس مهتمين به لفترة طويلة.
يرجع التقدم في المراحل المبكرة إلى حقيقة أن هذه النماذج هي في الغالب نماذج رياضية ، وقد استقرت الرياضيات منذ فترة طويلة من حيث الاكتشافات.
يرجع الانفجار الحالي فقط إلى حقيقة
أن القدرات الحديدية من حولنا قد نمت بشكل كبير ، ويرجع ذلك أساسًا إلى استخدام بطاقات الفيديو. نظرًا لحقيقة أننا قادرون اليوم على إجراء حوسبة متوازية ضخمة ، ظهرت تقنيات جديدة - التعلم الآلي ، العملة المشفرة ، إلخ.
بالنسبة للجزء الأكبر ، ترتبط المصلحة الحالية والموجة الحالية بشكل عام بحقيقة
أنها أصبحت ممكنة . يمكن إجراء هذه الحسابات في وقت أبكر ، ولكنها طويلة بشكل كارثي. الآن يستغرق الأمر وقتًا معقولاً ، لذا بدأ الجميع في استخدامه.
عن الحديد
ستاس: أنا الآن أحصل على دورة ، وهناك ، بما في ذلك ، أحتاج إلى تدريب جميع أنواع النماذج. أقوم بتدريب بعضهم على جهاز MacBook الخاص بي. نعم ، في بعض الحالات ، عليك الانتظار ، ربما 5 دقائق ، والنماذج ليست الأفضل ، حيث يبلغ متوسط الدقة حوالي 85٪ ، ولكن الشيء الرئيسي هو أنها تعمل. من الواضح أنه في المعركة تريد أن تكون هذه النسبة أفضل وربما للإنتاج ليست مناسبة تمامًا.
أندرو: نعم ، ربما لا تكون هذه النماذج مثيرة للاهتمام. على الأرجح ، يرجع ذلك إلى أبسط التوقعات وما إلى ذلك. في الواقع ، على سبيل المثال ، يمكن أن تزن عينة التدريب 90 غيغابايت ، ويمكن أن يستغرق كل هذا أسبوعًا للتعلم. تفتخر شركات مثل Nvidia بأنها أصدرت الآن بطاقة رسومات Tesla خاصة جديدة ويمكنك تدريب Inception V3 في غضون 24 ساعة! يعتبر هذا اختراقًا مباشرًا ، لأنه قبل أن يستغرق عدة أسابيع.
كلما زادت مجموعات البيانات وزاد تعقيد هيكل النموذج ، زاد الوقت الذي يستغرقه التعلم . لكن الأداء ليس هو المشكلة الوحيدة. من حيث المبدأ ، إذا كنت بحاجة إليها حقًا ، يمكنك الانتظار لمدة شهر. تتعلق المشكلة بالاستدلال - كيف يتم تطبيق هذه الشبكة العصبية لاحقًا. من الضروري أن تظهر أثناء استخدامه نتائج جيدة من حيث الأداء.
STAS: لأنني ، على وجه الخصوص ، أريد أن يعمل كل شيء على الأجهزة المحمولة وأن يعمل بسرعة.
أندرو: لا أعتقد أنه بدأ في البداية بالتطور مع التركيز على تطبيقات الهاتف المحمول. بدأ مثل هذا الازدهار في مكان ما في عام 2011 ، ثم على الرغم من ذلك ، كانت هذه حلول سطح المكتب. ولكن الآن يتم دعم المصلحة الحقيقية للمجتمع من خلال حقيقة أنه على أجهزة iPhone ، بما في ذلك ، أصبح من الممكن إطلاق الشبكات التي تعمل في الوقت الحقيقي.
جليب: ستاس ، قلت إن النتيجة النهائية تعتمد على مدى قوة بطاقة الفيديو الخاصة بك وبشكل عام النظام. أي أنها لا تعمل على خلاف ذلك؟
أندرو: الأمر ليس كذلك ، لكنني لست متأكدًا من أن النموذج سيتم تدريبه على آلة منخفضة الطاقة.
جليب: بالمناسبة ، أتذكر أنه قبل 5 سنوات ، عندما كان هناك طفرة فقط في الشبكات العصبية ، قال مدرسينا أن كل شيء جديد هو مجرد نسيان قديم جيد. لقد كان كل شيء بالفعل في السبعينيات والثمانينيات ولم ينجح ، ومنذ ذلك الحين لم ينجح. ربما كانوا ما زالوا مخطئين.
أندرو: نعم. بالنسبة لبعض المهام ، أصبح التعلم الآلي صعبًا للغاية. بموضوعية ، يمكن القول أنها تعمل.
عن التعلم العميق
جليب: هناك شيء عصري - التعلم العميق. ما الفرق بين ما تحدثنا عنه لهذا؟
أندرو: لن أقول أن هناك اختلافات. هناك بعض المجموعات الفرعية للتعلم الآلي ، وهناك عدد كبير منها. عليك أن تفهم أن ما يسمى
التعلم العميق هو ذلك الجزء من التعلم الآلي الذي يشار إليه عادة باسم الشبكات العصبية . ويسمى عميقًا لأن هناك العديد من الطبقات في الشبكات العصبية ، وكلما زاد عدد الطبقات ، زادت عمق الشبكة العصبية. من هذا جاء الاسم.
ولكن هناك أنواع أخرى من التعلم الآلي. على سبيل المثال ، تم استخدام التعلم الآلي القائم على الأشجار بنجاح لتتبع الوجه حتى الآن لأنه أسرع بكثير من الخلايا العصبية. كما أنها تستخدم لترتيب وعرض الإعلانات والمزيد.
أي أن التعلم العميق ليس شيئًا آخر. هذه في الواقع مجموعة فرعية من التعلم الآلي تتضمن الكثير من كل شيء. أصبح التعلم العميق هو الأكثر شعبية اليوم.
حول نظرية الشبكات العصبية
ستاس: أردت التحدث قليلاً عن نظرية الشبكات العصبية ، وسأحاول أسهل. قلت أن لديهم طبقات عديدة. من الناحية النظرية ، إذا كان لدينا طبقة واحدة ، وهناك بعض الأشياء الموجودة على المستوى ، بمساعدة طبقة واحدة يمكننا بالفعل تقسيم هذه الطائرة إلى قسمين ، أليس كذلك؟
أندرو: لا ، ليس حقًا.
ستاس: ما الذي يعطينا عددًا كبيرًا من الطبقات ، إذا كان على الأصابع؟
أندرو: ما هي الشبكة العصبية؟ دعونا نحصل عليه مباشرة. هذه مجرد وظيفة رياضية تأخذ مجموعة من الأرقام كمدخل ، وتعطي أيضًا مجموعة من الأرقام كمخرج - هذا كل شيء.
ماذا يوجد بالداخل؟ الآن الأكثر شيوعًا هو الشبكات التلافيفية التي يحدث فيها الالتفاف - فهناك ببساطة الكثير من مضاعفات المصفوفة لكل منها ، ويتم إضافة النتائج ، ويتم تنفيذ هذه العمليات في كل طبقة. بالإضافة إلى ذلك ، بين الطبقات هناك ما يسمى التنشيط ، والذي يسمح فقط للشبكات العصبية أن تكون عميقة.
نظرًا لأن مجموعة التحولات الخطية هي تحويل خطي ، بعد عمل 10 طبقات خطية ، لا يزال من الممكن تمثيلها كطبقة خطية واحدة. لكي لا تنهار الطبقات ، يوجد بينها بعض الإجراءات الرياضية التي تجعل الدالة غير خطية. يعد ذلك ضروريًا لزيادة عدد المعلمات.
بشكل تقريبي ، الشبكة العصبية هي مجرد مجموعة ضخمة من الأرقام ، والتي تنطبق بطريقة أو بأخرى على بياناتنا ، على سبيل المثال ، على الصورة. لكن الصورة - أيضًا مجموعة من الأرقام في الواقع - ليست سوى سلسلة من البكسل. عندما ندرب الشبكة ، نعتبر ، على سبيل المثال ، 15 مليون معلمة (كل رقم هو معلمة منفصلة) ، والتي يمكن تحويلها قليلاً إلى اليسار قليلاً ، إلى اليمين قليلاً بمساعدة بعض الاستدلال. بفضل هذا العدد الضخم من المعلمات ، يتم الحصول على هذه النتائج الرائعة.
هناك حاجة إلى تدريب عميق على وجه التحديد بحيث يكون هناك العديد من هذه المعلمات ، وكل شيء لا ينهار إلى طبقة واحدة.
جليب: يبدو أكثر أو أقل وضوحًا.
أندرو: التعلم العميق هو مجموعة فرعية من التعلم الآلي. ولكن لسبب ما ، ظهرت الضجيج حول هذا الموضوع - خاصة منذ بعض الوقت من جميع الشقوق ، أعتقد أنه يمكنك سماع التعلم العميق. لا أدري إذا كان ذلك مبررًا أم لا.
جليب: أعتقد أن هذه الشعبية ترجع إلى حقيقة أنها تعطي نتائج رائعة.
حول المهام
ستاس: بمساعدة الشبكات العصبية ، يمكنك حل معظم مشاكل التعلم الآلي ، أليس كذلك؟
أندرو: نعم.
STAS: إذن لنتحدث عن المهام التي يمكن حلها باستخدام طرق التعلم الآلي؟
أندرو: في الواقع ، هذا موضوع حساس ، لأنه في الواقع تحتاج إلى التوقف عن إضفاء الطابع المثالي على ما يحدث ورومانسية. كما قلت ، لا يوجد ذكاء اصطناعي هناك.
هذا نموذج رياضي بحت ووظيفة رياضية تضاعف شيئًا ، إلخ.
من الجانب ، يبدو أن التعلم الآلي قد توقف الآن قليلاً عن فئات معينة من المهام. هذا ، على سبيل المثال ، التصنيف (مثال تحدثنا عنه في البداية) ، وتتبع الأشياء وتقسيمها. الأخير هو في تطبيق Sticky AI الخاص بنا - فهو يختار شخصًا ، وتتم إزالة الخلفية. هناك أيضًا تجزئة طبية بيولوجية عندما يتم ، على سبيل المثال ، اكتشاف الخلايا السرطانية. هناك شبكات مولدة تتعلم من أرقام عشوائية ، ومن ثم يمكنهم إنشاء شيء جديد. هناك مهام نقل النمط وغيرها.
ولكن في الوقت الحالي ، لا يوجد نظام أساسي مناسب وبنية أساسية لاستخدام التعلم الآلي. على سبيل المثال ، لديك مشكلة يمكنك ، كشخص ، حلها بسهولة ، ولكن كمبرمج ، لا يمكنك حلها بسبب تعقيدها ولأنك لا تستطيع كتابة خوارزمية حتمية. ولكن في الوقت نفسه ، لا يمكن أيضًا تدريب شبكة عصبية في المقام الأول بسبب وجود مشكلة في نقص البيانات. من أجل تدريب الخلايا العصبية ، تحتاج إلى مجموعات بيانات كبيرة مع العديد من الأمثلة ، بالإضافة إلى شكل رسمي للغاية ، موصوف في لائحة معينة ، إلخ. بالإضافة إلى ذلك ، تحتاج إلى بنية هذه الشبكة العصبية.
أي
أنك تحتاج أولاً
إلى إضفاء الطابع الرسمي على بيانات الإدخال في شكل أرقام ، وإنشاء بنية النموذج نفسها ، ثم إضفاء الطابع الرسمي على بيانات الإخراج في شكل أرقام ، وتفسيرها بطريقة أو بأخرى. للقيام بذلك ، تحتاج إلى جهاز رياضي قوي إلى حد ما ، وبشكل عام ، إلى فهم كيفية عمل كل شيء. لذلك ، يبدو لي الآن أن استخدام الخلايا العصبية خارج الشركات المتخصصة مثل شركاتنا يتدهور قليلاً.
بعض المهام التي لم يتم حلها من قبل ، تعلمت الخلايا العصبية حلها رائع جدًا. ولكن لا يوجد شيء من هذا القبيل جاء بالخلايا العصبية وحل مجموعة كاملة من المشاكل التي لم يتم حلها.
GLEB: ما هي المجالات التي ترى فيها مشاكل عالمية لا تناسبها الشبكات العصبية بشكل عام؟
أندرو: من الصعب الإجابة على الفور. نحن نواجه المهام التي نعمل عليها والتي لا يمكن تدريب شبكة عصبية عليها. على سبيل المثال ، أصبحت صناعة الألعاب الآن مهتمة جدًا بالتعلم ، وحتى هناك بعض الخلايا العصبية التي لديها ذكاء اصطناعي. ولكن ، على سبيل المثال ، لم يتم استخدام هذا في ألعاب AAA حتى الآن ، لأنه في نفس الوقت ، من المستحيل تدريب الذكاء الاصطناعي للجندي المجرد على التصرف مثل الشخص بحيث يبدو طبيعيًا. إنه صعب.
عن دوتا
ستاس: هل سمعت أن الذكاء الاصطناعي يفوز بالفعل في دوتا؟
أندرو: نعم ، لكنها لا تزال مختلفة قليلاً. Dota هي لعبة رياضية جميلة ، يمكن وصفها. لا أريد أن أسيء إلى أي شخص ، لكن هذا ، في الواقع ، مثل لعبة الداما - اللعبة واحدة. هناك قواعد معينة ، وأنت تلعب بها فقط.
ولكن في الوقت نفسه ، لا تزال هناك صعوبات في خلق نوع من السلوك الطبيعي ، المرتبط بشكل أساسي بكمية صغيرة من البيانات وعدد قليل من المهندسين الذين يمكنهم القيام بذلك.
على سبيل المثال ، في Google ، يستخدم المهندسون الشبكات العصبية لتدريب نموذج بشري ثلاثي الأبعاد على المشي - لمجرد تحريكه. يبدو دائمًا مروعًا ، لا يمشي الناس هكذا.
حول TensorFlow
ستاس: لقد قلت الآن ، في الواقع ، لا توجد طريقة سهلة ورخيصة لحل مشكلات التعلم الآلي دون فهم التعلم الآلي على الإطلاق. على أي حال ، اتضح أنه يجب تخبط ذلك. أود أن أعرف عن TensorFlow. يبدو أن Google تحاول التأكد من أنه حتى الأشخاص الذين ليسوا على دراية كبيرة بهذا الأمر والذين ليس لديهم خلفية كبيرة جدًا يمكنهم حل بعض المشاكل البسيطة. أخبرني ما هو TensorFlow وكيف تعتقد أنه ممكن؟
أندرو: هيا بالترتيب.
TensorFlow في الواقع ليس أسهل شيء على الإطلاق . هذا هو واحد من أكثر ما يسمى أطر التعلم الشعبية - إطار التعلم للأغراض العامة ، وليس بالضرورة الخلايا العصبية. هذا ليس إطار أعلى مستوى متاح. هناك ، على سبيل المثال ، Keras ، وهو تجريد عالي المستوى على TensorFlow. هناك يمكنك أن تفعل الشيء نفسه مع رمز أقل بكثير.
يتم حل المهام النموذجية ببساطة شديدة ، لأنه ، على وجه الخصوص ، Github مليء بالفعل بالأمثلة والمستودعات. لنفترض ، إذا كانت شركتك تبحث عن صورة لبيع الكتب ، فعندئذ من حيث المبدأ ، كل شيء على ما يرام. انتقل إلى Github ، وهناك أمثلة على كيفية أخذ ميزات الصورة ، وكتابة بحث عن الميزات - لقد انتهيت!
في الواقع ، هذا هو الحال مع عدد كبير من المهام. , . - , , , , , , TensorFlow — . , .
: , Google , ?
: , , , . , , , . , , .
: , . ? -, .
: . — « , , ». , .
: , , , , . ? , , 15 - iOS , - . , . , .
: — , , - . — — . . , , R&D , : «, !» — - , , , 0,5%: «, , !» . , .
: , , - , , . ? . , — , 70%. , , . , . , , .
: , , , . , . , - , . .
: , .
: , . .
: , ? , , , — ?
: , , . , .
-, ,
. , computer science. , .
. , 500 Python, . . . , . , , .
, . - , . , .
: , Python - , , C++? , .
: , . - learning , , TensorFlow, TensorFlow. ,
— , TensorFlow. TensorFlow — 1 — , , .
. , iOS . , learning , , Caffe, Torch, TensorFlow ., .
, , , . R&D - , . . () : « !» — , . C++.
:
: . , , .
: , ? , ?
: , . , — . : , , : «, , — », - . , , -, - . , . .
. , , , .
: Google , Google Street Maps. , .
: , - .
Data Scientist
: . , — , , ?
: , .
: , , , , data scientist'. , - . . , , . — !
, . , -, . .
: hype train.
: , , data scientist . , .
: , . - data scientist'?
: . , . , , , Git- . Data scientist - , . , code review, unit- — . , .
: , , .
: , , - , , Kaffe 2, PyTorch — ! : « Data scientist TensorFlow».
GPU-
. , , , Swift, UI-kit, . , , .
, - , . , . , , . enterprise.
- , , , . , , . , .
: , . GPU - . , — . , Junior GPU . , , .
: — .
: , ?
: , , - .
: — ?
: , , -, - .
: , ?
: . , , , , . Macbook Air. — - , , .
, Nvidia Titan , . , .
: ? , Nvidia , . , , . ?
: print , . NIPS, , , . , , . - , — , .
. ONNX , . . , . , , . , - ,
. .
: , . , , , ?
: , . , . , . , — , ..
, . , . — , , . . , , . , , .
reinforcement training
: . , , , , AlphaGo. , , , reinforcement training.
: Reinforcement training — . , . , , , . , , . , . Reinforcement training , , , , : « !»
,
AlphaGo — , . , . , , . , . AlphaGo , reinforcement training, , .
, , , , .
: , 10
170 — . , AlphaGo . , . , , , . — , - !
, , , . , , . , !
ستاس: أريد أن أسأل عن الخوارزميات الجينية. وفقًا للوصف ، يبدو أن الخوارزميات الجينية يمكن أيضًا أن تُعزى إلى التعلم المعزز. كما أتخيلهم ، هناك جيل ، نأخذ كل موضوع فردي في جيل ، يقوم ببعض المهام ، نقيم أفعاله ، وبعد ذلك ، بناءً على هذه التقديرات ، نختار الأفضل. ثم نقوم بخلط خصائصهم الخاصة ، وإنشاء جيل جديد ، وإضافة القليل من الطفرة ، والآن لدينا جيل جديد. ونكرر هذه العمليات ، محاولين زيادة المنفعة النهائية لكل عضو محدد من هذا الجيل. هذا يبدو منطقيا هل يعتبر هذا تدريب تقويمي أم لا؟
أندرو: لا ، لا تزال الخوارزميات الجينية مختلفة إلى حد ما.
ستاس: هل ترتبط بتعلم الآلة؟
أندرو: لن أقول ذلك. لن أتناولها الآن ، لكننا مررنا الخوارزميات الجينية في الجامعة ، مثل أي شخص آخر ، ويبدو لي أن هذا الشيء أبسط إلى حد ما وغير منظم أو شيء - باختصار ، أمر حتمي. أي أنه من المعروف مقدمًا أن ما سيتم إدخاله ، سيكون الناتج. في التعلم الآلي ، ومع ذلك ، فإن الأمور مختلفة إلى حد ما - هناك بعض الاحتمالات ، ودقة التنبؤات وكل ذلك في هذه الروح.
ربما سيتم تصحيحي من قبل أشخاص يفهمون المصطلحات بشكل أفضل مما أفعله ، ولكن
من أعلى رأسي سأقول لا.
ستاس: اتضح أن الخوارزميات الجينية لا تستخدم لحل معظم المشاكل الحقيقية؟
أندرو: نعم ، إنهم في الغالب أكثر خوارزمية وفي الواقع نادراً ما التقيت بهم.
حول شبكات الكبسولات
GLEB: هناك مجموعة فرعية أخرى من التعلم الآلي - ما يسمى شبكات الكبسولات. مرة أخرى ، دعونا لا نتعمق. أخبرني باختصار ما هو ولماذا يوجد هذا الاتجاه الآن؟
أندرو: هذا موضوع جديد حقًا ، عمره بضعة أشهر فقط. أصدر جيفري هينتون مقالًا وقال إن الشبكات التلافيفية الحالية هي طريق إلى أي مكان ، ونحن نقدم رؤية جديدة لكيفية تطور هذا. قبل المجتمع هذا البيان بشكل غامض وقسم إلى معسكرين: يقول البعض أنه مبالغ فيه ، والبعض الآخر - شيء كبير وكل ذلك.
ولكن إذا شرحت على الأصابع ، فكيف تعمل شبكات الالتفاف؟ خذ ، على سبيل المثال ، الخلايا العصبية التي تعمل مع الصور. هناك التفاف - عمود من المصفوفات يمر عبر الصورة بخطوة ، كما لو كان مسحها ضوئيًا. عند كل تكرار لهذه الخطوة ، يتم تطبيق كل هذا الالتواء على هذه القطعة ، ويتحول كل التفاف إلى بكسل شرطي جديد ، ولكن بعدًا أكبر بكثير ، تتكرر هذه العملية لجميع الشبكات.
لكن المشكلة في الشبكات التلافيفية هي أن جميع البيانات التي تصل إلى الطبقة الأولى تصل إلى النهاية - ربما ليس بالكامل ، لكنها جميعها تؤثر وتصل جميعها إلى المرحلة النهائية. بشكل تقريبي ، إذا كنت بحاجة إلى تحديد جزء من الصورة ، على سبيل المثال ، قطة واحدة ، فلن تحتاج إلى مسح الصورة بأكملها. يكفي في مرحلة ما تحديد المكان الذي توجد فيه القطة على الأرجح ، والنظر إليها فقط ، كما يفعل الشخص.
هذه هي طريقة عمل شبكات الكبسولة. لن أتعهد بشرح دواخلهم بخبرة ، ولكن مما فهمته: هناك بعض الأشجار داخل شبكات الكبسولات ، وكل كبسولة لاحقة تتلقى فقط البيانات ذات الصلة إلى الإدخال. أي أنه من خلالهم لا يمر كل شيء كل ما قبلناه في البداية للدخول ، ومع كل طبقة جديدة (لا أعرف كيف يمكن أن يقال في مصطلحات الشبكات المحفظة) يتم معالجة البيانات المطلوبة حقًا - فقط أجزاء مهمة من البيانات . هذا هو الفرق الرئيسي بين الشبكات التلافيفية والمحفظة.
جليب: يبدو الأمر مثيرًا للاهتمام ، لكنني لا أفهم تمامًا - هل يتعلق الأمر فقط بالصور المعنية؟
أندرو: لا ، هذا كل شيء. لقد استخدمت الصور فقط لشرح. الفكرة الرئيسية هي: دعنا لا ندير جميع البيانات وجميع الميزات ، ولكن فقط تلك المتعلقة بالطبقة التالية.
المزيد عن الألعاب
STAS: هل سمعت أنه بعد هزيمة AlphaGo ، سيهزم الجميع فريق StarCraft؟
أندرو: اضطر لإحباطك ، لكنني لا أتبع هذا حقًا. ليس الأمر أن الألعاب الإلكترونية كانت ممتعة بالنسبة لي ، ولكن أصبح من الواضح بالفعل ما يكمن في المستقبل. على سبيل المثال ، هناك بالفعل شركات ناشئة مدربة على لعب Dota. إنهم ، كمدرب شخصي ، يحللون كيف تلعب ، ويقولون أين أنت لست جيدًا بما يكفي ، لديهم بياناتهم الخاصة المدربة في مباريات الرياضة الإلكترونية. هناك شركات ناشئة للمراهنة تتنبأ بمن سيفوز ، وأكثر من ذلك.
يعمل الكثير من الأشخاص في هذا المجال الآن ، ويرجع ذلك أساسًا إلى أن الكثير من الأموال تدور فيها. لكن شخصيًا ، هذا الأمر لا يهمني تمامًا ، لذا لا أتبع الأخبار والاتجاهات للأسف.
ستاس: ما رأيك في صعوبة إنشاء ذكاء اصطناعي جيد خصيصا للألعاب الاستراتيجية؟ هل أفهم بشكل صحيح أن هذا عدد كبير جدًا من الخيارات؟
أندرو: نعم. في الواقع ، ناقشنا بالفعل هذه النقطة عندما أوضحت أن الذكاء الاصطناعي لا يزال غير مستخدم في ألعاب AAA ، ولكنه في الوقت نفسه يستخدم في AlphaGo ، وربما في مكان آخر.
تتكون لعبة الذهاب بكل تعقيداتها من حقيقة أنك في كل خطوة تقوم ببساطة بوضع رقاقة من أجل تحديد حجر ، واللعبة StarCraft هي شيء معقد للغاية. هناك يمكنك إرسال وحداتك على طول عدد غير محدود تقريبًا من المسارات ، وبناء مجموعات مختلفة من الإنشاءات الخاصة بك ، وما إلى ذلك.
بالإضافة إلى الصعوبة تكمن في حقيقة أن الشبكات العصبية لا تفكر دائمًا كشخص. عندما نقوم ، على سبيل المثال ، ببناء وحدة ، نتذكر ذلك. لكن العديد من الخلايا العصبية تعمل في كل مرة. بالطبع ، هناك شبكات تعاودية يمكن أن تتذكر إنجازاتهم السابقة. يتم استخدامها ، على وجه الخصوص ، للترجمة والمعلومات النصية ، عندما يتم إنشاء الجملة ، يستخدم العصبون المزيد والمزيد من البيانات.
هناك صعوبات كبيرة في حقيقة أن الكمية الكاملة من المعلومات والخيارات بحاجة إلى إضفاء الطابع الرسمي ، أي العثور على مجموعة بيانات للتدريب بحيث لا تزال تستجيب بشكل كافٍ لأفعال خصمك ، والتي يمكن أن تكون أيضًا مليونًا ، على عكس لعب لعبة أو الشطرنج.
STAS: فهمت - هناك الكثير من المعلمات.
GLEB: لكنني لا أفهم ماذا ، من الواضح أن DotA بها معلمات أقل ، لكنها لا تزال هي نفسها تقريبًا بمعنى أنها تم إرسالها إلى أي مكان ، وما إلى ذلك.
STAS: هنا اختزل Andrei إلى حقيقة أنه ، أولاً ، لديك وحدة واحدة وعدد الخيارات أصغر بكثير.
أندرو: لأكون صادقًا ، لم أقم مطلقًا بلعب Dota ثانية في حياتي ، ولكن في الأصل ، على حد علمي ، هذه لعبة حتمية فائقة. هناك 3 ممرات وأبراج تحتاج إلى تدمير.
GLEB: نعم ، ولكن في StarCraft ، على الرغم من أنني لا ألعب على الإطلاق ، هناك أيضًا بعض الطرق ونفس الوحدات. أنت تقول أن هناك الكثير منها ، ولكن على الأرجح يتم دفعها دائمًا على دفعات. هذا هو ، نفس الشيء تقريبا يتضح.
ستاس: ما زلت بحاجة إلى ترتيب كل وحدة بشكل صحيح بشكل منفصل أثناء المعركة. في اللحظة التي لا يتم فيها أخذها في حزمة ، ولكن تبدأ في الترتيب ، هناك المزيد من المعلمات على الفور.
أندرو: مشكلتك هي أنك تفكر في هذه الفئات: ضع وحدة ، وما إلى ذلك ، ولكن طوال الوقت تنسى أن العصبون هو مجرد مصفوفة - أرقام تتضاعف. هناك يجب عليك إضفاء الطابع الرسمي ، على سبيل المثال ، أشياء مثل المهام. لنفترض أن هناك خريطة لـ StarCraft وهناك نوع من المهام عليها - لا يهم إذا هزمت لاعبًا أو أي شيء آخر. كل هذا يحتاج إلى تقديمه في شكل رياضيات بدائية ، وهذا هو الأصعب على وجه التحديد.
إذا كان بالفعل ذكاءً اصطناعيًا ، فإن الفجوة بين Dota و StarCraft ستكون ضئيلة. قد تكون StarCraft أكثر تعقيدًا في الميكانيكا ، ولكنها لا تزال تقريبًا كما هي. ولكن نظرًا لحقيقة أننا نعمل بالأرقام ، فمن الصعب إضفاء الطابع الرسمي.
حول شبكات التعلم المتبادل
ستاس: لدي السؤال الأخير الذي أريد أن أطرحه قبل أن نذهب إلى هاتفنا المحمول. لا أعرف كيف يتم تسميتها بشكل صحيح ، ولكن هناك طريقة عندما تتبع إحدى الشبكات العصبية شبكة أخرى وتحاول العثور على الأنماط.
أندرو: لن أتعهد بأن أشرح الآن كيف يعمل ، لكنني أعلم بالتأكيد أن هناك خوارزميات رائعة جدًا أسمع عنها أحيانًا في العمل عندما تتعلم شبكتان عصبيتان على حساب بعضهما البعض. هذا المجال من الخبرة غير متاح لي بالفعل ، ولكن كل شيء يبدو رائعًا. على حد علمي ، يتم استخدام هذا لشبكات التوليد. لسوء الحظ ، لا يمكنني قول المزيد.
ستاس: جيد. لقد أعطيت أهم الكلمات الرئيسية ، والباقي هو Gleb وسيتولى القراء بسهولة google.
حول الهواتف المحمولة (Apple)
جليب: دعنا ننتقل إلى الهواتف المحمولة التي كنا نذهب إليها لفترة طويلة. بادئ ذي بدء ، ماذا يمكننا أن نفعل عندما نتحدث عن التعلم الآلي على الأجهزة المحمولة؟
أندرو: بالمناسبة ، هل لديك بودكاست لمطوري iOS؟
جليب: نحن لسنا بودكاست iOS. نعم ستاس؟
STAS: نعم ، لمطوري الهواتف المحمولة. لماذا السؤال؟
أندرو: فقط لأن الوضع مختلف تمامًا. شركة Apple ، بحكم أنها كانت جيدة دائمًا في دمج البرامج والأجهزة ، وهي مشهورة بها ، معلقة بأناقة على قطار الضجيج المدرب آليًا.
في عام 2014 ، قدمت شركة Apple واجهة برمجة تطبيقات Metal Graphics. تم خياطة الأشياء فيه ، على سبيل المثال ، تظليل الكمبيوتر ، وما إلى ذلك. كل هذا سمح مع ظهور نظام iOS 10 بتضمين إطار تظليل الأداء المعدني الكثير من الطبقات والتنشيط وعوامل أخرى من الشبكات العصبية ، على وجه الخصوص ، الشبكات العصبية التلافيفية.
لقد أعطت دفعة كبيرة ، لأنه ، كقاعدة عامة ، تكون الحسابات على بطاقة الفيديو أسرع عدة مرات من المعالج المركزي. عندما تم منح Apple الفرصة للقراءة على بطاقات الفيديو المحمولة ، وبسرعة ، لم تكن هناك حاجة لكتابة معاملاتها الرياضية الخاصة بها وما إلى ذلك. لقد اطلقت النار بشكل مباشر جدا وبعد مرور عام ، أصدروا CoreML (سنتحدث عنه لاحقًا قليلاً).
أبل لديها أساس جيد للغاية. لا أعرف ما إذا كانت لديهم مثل هذه الرؤية ، أو تزامنت مع ذلك ، لكنهم أصبحوا الآن قادة بموضوعية في صناعة التعلم الآلي على أجهزة الجوّال.
حول الهواتف المحمولة (Android)
ما يعمل بشكل رائع ورائع نسبيًا في الوقت الفعلي على نظام التشغيل iOS ، للأسف ، لا يعمل بشكل رائع على نظام Android. هذا لا يرجع فقط إلى حقيقة أن Android تمتص. هناك عوامل أخرى - أولاً وقبل كل شيء ، حقيقة أن Android يحتوي على بنية تحتية متنوعة للغاية: هناك أجهزة ضعيفة ، وهناك أجهزة قوية - لا يمكنك الحصول على كل شيء تحته.
إذا كان Metal مدعومًا على جميع أجهزة iOS ، فهذا يعني أنه أكثر تعقيدًا على Android - في مكان ما يتم دعم OpenGL في إصدار واحد ، وفي مكان آخر ، وفي مكان ما غير مدعوم على الإطلاق. في مكان ما هناك فولكان ، في مكان ما ليس كذلك. لدى جميع الشركات المصنعة برامج تشغيل خاصة بها ، والتي بالطبع لا يتم تحسينها بأي شكل من الأشكال ، ولكنها ببساطة تدعم المعيار. يحدث حتى أن تقوم بتشغيل بعض الشبكات العصبية على Android على GPU ، وتعمل بسرعة بنفس الطريقة التي تعمل بها على وحدة المعالجة المركزية ، لأن العمل مع الذاكرة المشتركة غير فعال للغاية وكل ذلك.
على Android ، الأمور سيئة الآن. هذا أمر مثير للدهشة إلى حد ما ، لأن Google هي واحدة من القادة ، ولكنها متدنية قليلاً في هذا الصدد. على نظام Android ، من الواضح أن هناك نقصًا في التنفيذ عالي الجودة لقدرات التعلم الآلي الحديثة.
بالنسبة لنا ، على سبيل المثال ، حتى في التطبيق ، لا تعمل جميع الميزات بنفس الطريقة. ما يعمل بسرعة على iOS أبطأ على Android ، حتى على الأجهزة الرئيسية ذات القوة المماثلة. بهذا المعنى ، في الوقت الحالي ، يتراجع نظام Android كنظام أساسي.
حول CoreML
ستاس: بما أنهم قالوا عن CoreML ، فمن المحتمل أن يكون من الصحيح أن نقول عن TensorFlow Lite.
أندرو: CoreML هو في الواقع حصان مظلم. عندما خرج العام الماضي ، قال الجميع أولاً ، "رائع ، رائع!" ولكن بعد ذلك أصبح من الواضح أن هذا مجرد غلاف صغير فوق Metal. الشركات التي تشارك جديا في التعلم الآلي ، بما في ذلك شركاتنا ، كان لها منذ فترة طويلة حلولها الخاصة. على سبيل المثال ، أظهرت حلول الاختبار لدينا نتائج أفضل من CoreML من حيث السرعة والمعلمات الأخرى.
لكن المشكلة الرئيسية مع CoreML هي أنه لا يمكن تخصيصها. في بعض الأحيان يحدث أنك بحاجة إلى طبقة معقدة في شبكة عصبية ، وهي ليست ، على سبيل المثال ، في Metal ، وتحتاج إلى كتابتها بنفسك. في CoreML ، لم يكن من الممكن تضمين طبقاتك ، لذا كان عليك الرجوع إلى Metal إلى المستوى الأدنى وكتابة كل شيء بنفسك.
أضاف CoreML هذا مؤخرًا ، والآن أصبح هذا الإطار أكثر إثارة للاهتمام. إذا كنت مطورًا ليس لديك أي شيء يتعلق بتعلم الآلة على الإطلاق في الشركة أو في التطبيق ، يمكنك تشغيل بعض الخلايا العصبية في خطين وتشغيلها بسرعة على وحدة معالجة الرسومات. النتائج ، التي تظهر اختبارات الأداء لـ CoreML ، قابلة للمقارنة بالحلول المخصصة والمعدنية العارية.
أي أن CoreML يعمل بشكل جيد. إنه رطب قليلاً ، ولديه حشرات ، لكنه يتحسن كل شهر. تطرح Apple بنشاط التحديثات - وليس بالطريقة التي اعتدنا عليها ، حيث يتم إصدار التحديثات من أطر Apple مرة واحدة سنويًا أو على إصدارات شبه رئيسية من iOS. يتم تحديث CoreML بنشاط ، وبهذا المعنى ، كل شيء رائع.
يوفر TensorFlow Lite محولًا في CoreML ، كما يدعم CatBoost أيضًا محولًا في CoreML. باختصار ، قامت شركة Apple بكل شيء بشكل صحيح مرة أخرى. أطلقوا محولًا مفتوح المصدر وقالوا: "دعنا نكتب جميع المحولات في CoreML" - ودعم العديد من أطر التعلم ذلك.
في البداية كان هناك بعض الشك حول CoreML ، في WWDC الأخير ، كان السؤال الأكثر شيوعًا لمطوري CoreML هو: "لماذا لا تسمح بتنزيل النماذج من الإنترنت؟ لماذا لا تسمح لهم بالتشفير؟ " كان من الممكن الحصول على هذه النماذج ، واتضح ، سرقة الملكية الفكرية.
الآن تم إصلاح كل شيء ، وإضافة وظائف ، وفي الوقت الحالي ، يعتبر CoreML بالتأكيد النظام الأساسي الرائد بهذا المعنى.
ستاس: هل يمكنك التحدث عن هذا بمزيد من التفصيل؟ اتضح أنه الآن لم يعد بإمكانك تخزين النموذج ، ولكن مجرد تحميله من مكان ما؟
أندرو: نعم ، هذا ممكن بالفعل. في السابق ، عندما سألنا عن هذا ، ابتسم المطورون وقالوا: "فقط انظر إلى الرؤوس". كان هناك بالفعل مصممين يمكنهم نقل الملفات إلى كل شيء.
لكن نماذج CoreML في الداخل مثيرة للاهتمام. هم في الواقع ثنائيات عادية تخزن الأوزان ، ولكن بالإضافة إلى ذلك يتم إنشاؤها ملفات سريعة ، والتي تنشئ بعد ذلك فئات ضمنية. تستخدم هذه الفئات في التطبيق الخاص بك ، ويقوم المترجمون بتجميع هذا النموذج في بعض الملفات.
الآن ، باستخدام بعض الاختراقات والأساليب ، من الممكن جعل هذا النموذج محمولًا. يمكنك حماية الملكية الفكرية الخاصة بك عن طريق التشفير وتخفيف وزن التطبيق.
بشكل عام ، يتحرك CoreML الآن في الاتجاه الصحيح. لا يمكن القيام بكل شيء بشكل قانوني من وجهة نظر مراجعة التطبيق ، ولا يمكن القيام بكل شيء بسهولة ، دون اختراق ، ولكن من الملحوظ كيف يقوم المطورون بتحسين الإطار.
STAS: رائع! أردت أن أضيف أن CoreML يبدو كحل نموذجي. نسبيًا ، من الملائم عندما تريد القيام بشيء بسيط باستخدام التعلم الآلي في تطبيقك. يبدو أنه إذا كانت هذه مهمة نموذجية ، فقد حاولت Apple أن تجعل هذا المسار بأكمله بسيطًا قدر الإمكان ، إذا وجدت نموذجًا جاهزًا ومجموعة بيانات والمزيد. هذه مجرد قصة عن مشكلة نموذجية ، لأنهم ، على الأرجح ، كل شيء جاهز بالفعل.
أندرو: بالنسبة للمهام النموذجية ، يكون هذا عادةً رائعًا! بدون المبالغة - هناك حاجة حقا لسطرين من التعليمات البرمجية لتشغيل النموذج. بهذا المعنى ، نعم ، إنه رائع جدًا ، خاصة للمطورين المستقلين أو الشركات التي ليس لديها قسم R&D في الموظفين ، ولكنهم يريدون أيضًا إضافة شيء رائع.
لكن هذا ليس مثيرًا للاهتمام ، لأن المهام النموذجية تم حلها على Github ومع Metal - يمكنك فقط نسخ هذا الرمز إلى نفسك ووضعه في مزرعة صغيرة - وإن كان أكثر تعقيدًا.
من المهم أن يتحرك هذا الإطار الآن ليس فقط نحو المهام اليومية التقليدية ، ولكن أيضًا نحو الحلول المتكاملة. هذا رائع حقًا!
حول التدريب على الهواتف المحمولة
GLEB: أنت تقول أنه بعد ظهور Metal أصبح من الممكن تدريب النماذج على الهواتف المحمولة؟
أندرو: لا ، لم يكن التدريب على الهواتف المحمولة ممكنًا أبدًا. هذا لا معنى له ، يمكنك تشغيله فقط. إذا قلت ذلك ، قمت بالحجز. على الهواتف المحمولة ، بالطبع ، لا أحد يعلم أي شيء.
ستاس: لم أسمع أي شيء عن التدريب على الهاتف المحمول.
جليب: لم أسمع أيضًا ، لكنني فكرت في الأمر. بالطبع ، يبدو من البديهي أن هذا شيء غريب. ولكن بالتأكيد لا توجد مهام مثيرة للاهتمام ، متى سيكون ذلك مناسبًا؟
أندرو: من الصعب تخيلهم. إذا كان هناك شيء من هذا القبيل ، فعندئذ فقط التعلم الموزع. هناك حتى مقالات علمية حول كيفية القيام بذلك ، ولكن كما أفهمها ، أنت تسأل عن كيفية التعلم من البيانات التي تم جمعها على نفس الهاتف؟ الأمر فقط أنه حتى إذا جمعت الكثير (وهو ما لن يحدث) ، فسوف يستغرق الأمر وقتًا طويلاً لتعلم أنه لن ينتهي أبدًا ، ولن يقوم أحد بنقل رمز التدريب إلى منصات الجوال ، لماذا؟
يحدث التدريب دائمًا على الخوادم والاستدلال على الأجهزة.ستاس: ولكن في النهاية اتضح مثل هذا. إذا كنت شركة ، فأنت تريد أن يكون لديك شيء من هذا القبيل ، فأنت بحاجة إلى البيانات ، ويمكنك جمعها من المستخدمين ، أي تحميلها بشكل دوري.
أندرو: نعم ، لكنها تعمل بشكل مختلف قليلاً. تقوم بجمع البيانات من جميع المستخدمين في مكان واحد إلى خادمك الساخن ، وتتدرب هناك ، ثم ترسل النموذج النهائي مرة أخرى. ولكن ليس حتى أن الجميع في المنزل يعلمون شيئًا ما.
ستاس: من ناحية أخرى ، سوف يسخن الهاتف المحمول - وفي الشتاء سيكون مناسبًا ، ولكن لفترة طويلة جدًا ، على الأرجح.
حول الهواتف المحمولة والمستقبل
GLEB: هل هناك أي أشياء أخرى مثيرة للاهتمام من حيث تطبيق التعلم الآلي على الأجهزة المحمولة؟ تحدثنا عن ما لدينا الآن. سيكون من المثير للاهتمام أن ننظر إلى المستقبل قليلاً - حتى نود عمومًا أن نتلقى على منصاتنا المحمولة بعض الأطعمة الخارقة ، والحلول الفائقة.
: , , performance — , , . , - , .
. , style- , . .
CoreML . , , . , , : , , — , Android, iOS, . , , iOS Android.
, , , , — Android, iOS, Github . - — Uber , Horovod. Apple — , . , , , , — .
, . , , , — , , - . , .
: , , ? , , ? .
: , — (M. Bishop. Pattern Recognition and Machine Learning. Christopher. Springer. 2006), - . , , 3D , , - . . , — , — .
, , , . , -, , Andrew Ng Coursera. , .
, , , — MNIST. Hello World, .
, , , , - , . - , , , .
: ?
: advanced- Andrew Ng! , , Kaggle, , . , , — Data Scientist.
— , , , . , — R&D . , . . , , .
. , Kaggle, - — 90% .
الملخص
: . , , , , .
- , — . , , — .
- .
- .
- - .
- , , , .
- , . , , , - - !
- — , , CoreML — , .
, .
, AppsConf 2018 , 8 9 .
80 , Call for Papers — 3 . , , .