الخوارزميات الذكية والذكاء الاصطناعي. الذكاء الاصطناعي

بداية، ما هو الذكاء الاصطناعي؟ يشير الذكاء الاصطناعي إلى مجموعة من الخوارزميات واتجاه البحث حول أتمتة المهام التي يحلها الدماغ البشري، بالإضافة إلى محاكاة الأنشطة العقل البشريلتحسين حل مشاكل الحوسبة. على سبيل المثال:

  • التعرف على الأنماط وتحليل المعلومات المرئية.
  • التعرف على المعلومات الصوتية.
  • الاستدلال، اتخاذ القرار.
  • الإبداع والحدس.

الفكرة الأساسية هي أن الدماغ يحل العديد من المشكلات بشكل أفضل من الكمبيوتر، لذلك فمن المنطقي استخدام نفس النهج في البرمجة الذي يستخدمه دماغنا لحل المشكلات. بفضل هذا النهج، على سبيل المثال، تم "تعليم" الكمبيوتر لعب الشطرنج وحتى التغلب على أساتذة كبار مشهورين، على الرغم من أن هذه المهمة كانت في البداية مشكلة صعبة: عدد المجموعات في لعبة الشطرنج كبير جدًا لدرجة أن الكمبيوتر غير قادر على ذلك عدهم لوجود الكون بأكمله. تم حل المشكلة من خلال اختراع الخوارزميات الإرشادية. إن جوهر الاستدلال هو أننا لا نحسب جميع الخيارات، بل نختار بطريقة أو بأخرى الخيارات التي نريد تحليلها.

الآن عن بعض المجالات النموذجية للذكاء الاصطناعي.

  • إتقان المبادئ الأساسية لاستخدام الذكاء الاصطناعي في العاب كمبيوتر.
  • النظر في خوارزميات الذكاء الاصطناعي المطبقة في الألعاب
  • إنشاء لعبة كمبيوتر باستخدام مبادئ الذكاء الاصطناعي

نظرة عامة على أساليب تطوير نظام الذكاء الاصطناعي

موضوع الذكاء الاصطناعي ( الذكاء الاصطناعي، AI، AI) يثير عقول العديد من المبرمجين والمطورين ومحبي ألعاب الكمبيوتر المبتدئين. يبدو أن الذكاء الاصطناعي بالنسبة للكثيرين شيء معقد ومثير للاهتمام وغامض بشكل مدهش. في الواقع، تجبر تقنيات الذكاء الاصطناعي شخصيات اللعبة على التصرف بذكاء. ومع ذلك، لا يوجد شيء غامض في الذكاء الاصطناعي. على مدى عقود من تطوير هذا المجال من المعرفة، تم تطوير عدد كبير من الخوارزميات القابلة للتطبيق في مجموعة واسعة من مجالات النشاط. وألعاب الكمبيوتر ليست سوى مجال صغير نسبيا لتقنيات الذكاء الاصطناعي.

من الصعب جدًا العثور على لعبة كمبيوتر لا تحتوي على الذكاء الاصطناعي. من الأمثلة الكلاسيكية للألعاب "الذكية" برامج لعب الداما والشطرنج وألعاب الطاولة الأخرى. كل لعبة يلعب فيها الكمبيوتر ضد المستخدم مجهزة بالذكاء الاصطناعي.

يمكن تقسيم لعبة الذكاء الاصطناعي، للتقريب الأول، إلى نوعين. الأول - والأكثر وضوحًا - هو ذكاء شخصيات اللعبة الفردية. على سبيل المثال، تحاول كل دبابة في لعبة Battle City الشهيرة على وحدة التحكم الوصول إلى قاعدة اللاعب وتدميرها ودبابته. تعمل الدبابات الموجودة في اللعبة بشكل غير منسق، فهي ليست ذكية بشكل خاص، ولكن من المثير للاهتمام اللعب - بيت القصيد هو أن هذا النوع من الذكاء الاصطناعي مناسب تمامًا لهذه اللعبة. أنها لا تجعل اللعبة مملة.

المستوى الثاني من الذكاء الاصطناعي هو الذكاء الجماعي. على سبيل المثال، تذكر ستار كرافت. يضطر اللاعب للقتال ضد جيش يسيطر عليه الكمبيوتر. وتبين أن الكمبيوتر يتحكم في عدد كبير من الوحدات (من الوحدة الإنجليزية - وحدة). ولكن من السهل أن نرى أن كل مخلوق تسيطر عليه مجموعة الذكاء الاصطناعي في StarCraft لديه "عقله" الخاص. على سبيل المثال، يمكن لمجموعة الذكاء الاصطناعي إرسال مجموعة معينة من الوحدات للقيام بدوريات في المنطقة، ولكن إذا واجهوا عدوًا في الطريق، فسيكون الذكاء الاصطناعي الخاص بهم مسؤولاً عن أفعالهم.

إذا لم يتم التحكم في تصرفات الجيش في StarCraft بأي شكل من الأشكال، وكان الذكاء الاصطناعي موجودًا فقط على مستوى الوحدة الفردية، فستتحول اللعبة إلى بحث ممل وتدمير للأعداء. وStarCraft، على الرغم من عمرها الخطير (حوالي 10 سنوات)، تظل لعبة مثيرة. حتى في حملة اللاعب الفردي، فإن StarCraft قادر على "سحب" اللاعب للغاية، ناهيك عن المعارك عبر الإنترنت.

بالمناسبة، من السهل ملاحظة أنه في نفس StarCraft، تتمتع الوحدات التي يتحكم فيها المستخدم أيضًا بذكاء اصطناعي فردي. على سبيل المثال، سيؤدي نفس أمر "الدورية" الذي قدمه المستخدم إلى قيام مخلوق StarCraft بالسير بطاعة على طول المسار المحدد. ولكن إذا ظهرت عقبة في الطريق (على سبيل المثال، يقوم اللاعب ببناء مبنى يسد المسار هناك) - ستقرر الوحدة بنفسها ما يجب فعله. وبالمثل، سيقرر الهجوم بشكل مستقل إذا ظهر أعداء في مجال رؤيته.

يمكن تقسيم أنظمة الذكاء الاصطناعي المستخدمة في ألعاب الكمبيوتر إلى نوعين رئيسيين. أولاً، هذه ما يسمى بالأنظمة الحتمية. تتميز بإمكانية التنبؤ بأفعال الشخصية. وثانيًا، هذه أنظمة غير حتمية - فالشخصية التي يتحكم فيها مثل هذا الذكاء الاصطناعي يمكن أن تتصرف بشكل غير متوقع وتتخذ قرارات غير متوقعة.

كما قلنا سابقًا، تلعب وحدة الذكاء الاصطناعي الفردية دورًا ثانويًا مقارنة بالذكاء الاصطناعي الجماعي. هل يمكن للذكاء الاصطناعي لوحدة واحدة أن يؤثر على اللعبة ككل؟ ربما - في حالة توزيع نجاحات الوحدة الفردية على جميع الوحدات المماثلة. على سبيل المثال، واجهت وحدة ما عدوًا قويًا وخرجت منتصرة بأعجوبة في المعركة. اكتسبت هذه الوحدة خبرة يمكن نقلها، بفضل مجموعة الذكاء الاصطناعي، إلى وحدات أخرى. أولئك. إذا تعلمت وحدة واحدة شيئًا ما، فستتمكن الوحدات الأخرى، بفضل الذكاء الاصطناعي الجماعي، من تبني مهارات جديدة منه. وبالتالي، فإن الذكاء الاصطناعي الفردي والجماعي مترابطان، وفي بعض الحالات، مترابطان.

تتميز الشخصية المجهزة بذكاء اصطناعي غير حتمي بعدم القدرة على التنبؤ بالسلوك وزيادة "الحيوية". عادة ما يكون اللعب ضد مثل هذه الشخصيات أكثر إثارة للاهتمام من اللعب ضد الشخصيات ذات التصميم الصارم. شعبية في مؤخراإحدى طرق تنفيذ الذكاء الاصطناعي غير الحتمي هي تكنولوجيا الشبكات العصبية. يسمح لك بإنشاء شخصيات ذات السلوك الصعب. بالإضافة إلى ذلك، تتمتع الشبكات العصبية بالقدرة على التعلم. وهذا يعني أن شخصيات اللعبة لا تتصرف بذكاء فحسب، بل تتعلم أيضًا من أخطائها.

في الممارسة العملية، يتم استخدام كلا النوعين الحتمي وغير الحتمي من الذكاء الاصطناعي. عادة ما يتصرفون معًا. على سبيل المثال، لتنفيذ بعض الإجراءات البسيطة التي لا لبس فيها (على سبيل المثال، نشمر عند الاقتراب من الجدار)، يمكن استخدام خوارزميات حتمية بسيطة وسريعة. في الحالات الأكثر تعقيدًا (على سبيل المثال، شراء أسهم الشركة X، مع الأخذ بعين الاعتبار عددًا كبيرًا من المعلمات، أو مهاجمة العدو، مع مراعاة قدراته، وقدراته، ووجود التعزيزات، وما إلى ذلك)، المزيد يتم استخدام خوارزميات معقدة غير حتمية. الحتمية جزئيًا (على سبيل المثال، عند الاقتراب من الحائط، يكون لدى الشخصية فرصة بنسبة 50٪ للانعطاف إلى اليسار، وفرصة بنسبة 30٪ للانعطاف إلى اليمين، وفرصة بنسبة 20٪ للالتفاف والعودة) تُستخدم أيضًا على نطاق واسع في الألعاب.

تنفيذ خوارزمية السعي

دعونا ننفذ لعبة باستخدام خوارزمية المطاردة. جوهر هذه الخوارزمية هو كما يلي. يقارن الكائن المطارد إحداثياته ​​في عالم اللعبة بإحداثيات الكائن الضحية ويضبط إحداثياته ​​بطريقة تجعله أقرب إلى الضحية. في أبسط الحالات، تتم المطاردة في الفضاء المفتوح.

لنقم بإنشاء مشروع لعبة جديد P8_1 استنادًا إلى المشروع P5_1. سوف نستخدم شيئين - المطارد والضحية. سوف يتحرك المطارد نحو الضحية بسرعة أقل من سرعة الضحية بمقدار 1. إذا اصطدمت الأشياء، سيتم تدمير الضحية.

في التين. 12.1. النافذة المعروضة مكتشف الحلمشروع اللعبة P8_1.


أرز. 12.1.

نستخدم فئة أساسية تسمى gBaseClass، وفئة للكائن المطارد (العدو)، وفئة للكائن الضحية (أنا)، وفئة لكائن الجدار. سنحتاج إلى فئة كائن الجدار لدراسة سلوك الكائن الذي ينفذ خوارزمية المطاردة عندما يواجه عقبة لا يمكن التغلب عليها في الطريق إلى الضحية. لقد قمنا بتعديل رمز الفصل بشكل كبير من مشروع P5_1 الأصلي، لذا ستجد أدناه الرمز الكامل لفئات اللعبة. في القائمة 12.1. يمكنك العثور على رمز فئة Game1.

استخدام النظام؛ باستخدام System.Collections.Generic؛ باستخدام Microsoft.Xna.Framework؛ باستخدام Microsoft.Xna.Framework.Audio؛ باستخدام Microsoft.Xna.Framework.Content؛ باستخدام Microsoft.Xna.Framework.GamerServices؛ باستخدام Microsoft.Xna.Framework.Graphics؛ باستخدام Microsoft.Xna.Framework.Input؛ باستخدام Microsoft.Xna.Framework.Net؛ باستخدام Microsoft.Xna.Framework.Storage؛ مساحة الاسم P8_1 ( ///

/// هذا هو النوع الرئيسي للعبتك ///فئة عامة Game1: Microsoft.Xna.Framework.Game ( GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D txtBackground; Texture2D txtEnemy; Texture2D txtMe; Texture2D txtWall; // صفيف لبناء المستوى public int[,] Layer; Rectangle RickBackround = new Rectangle( 0، 0، 640، 512)؛ RectanglerecSprite = new Rectangle(0, 0, 64, 64); public Game1() ( graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; ) تجاوز محمي باطل تهيئة ( ) ( // TODO: أضف منطق التهيئة الخاص بك هنا Layer = new int (( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), ( 0, 0, 0, 0, 1, 0 , 0, 0, 0, 0 ), ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ), ( 0, 0, 0, 0, 1, 6, 0, 0, 0 , 0 ), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), ( 0 , 0, 0, 0, 0, 0, 0, 0, 5, 0 ), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), ); // تعيين الدقة لنافذة اللعبة //640x512 graphics.PreferredBackBufferWidth = 640; graphics.PreferredBackBufferHeight = 512; graphics.ApplyChanges(); base.Initialize(); ) protected override void LoadContent() ( // قم بإنشاء SpriteBatch جديد، والذي يمكن استخدامه لرسم الأنسجة. spriteBatch = new SpriteBatch(GraphicsDevice); Services.AddService(typeof(SpriteBatch), spriteBatch); txtBackground = Content.Load ("خلفية")؛ txtEnemy = Content.Load ("العدو")؛ txtMe = Content.Load ("أنا")؛ txtWall = Content.Load ("حائط")؛ // استدعاء الإجراء الخاص بترتيب الكائنات في نافذة اللعبة AddSprites(); // TODO: استخدم this.Content لتحميل محتوى لعبتك هنا) // إجراء ترتيب الكائنات في نافذة اللعبة باطلة AddSprites() ( // متغيرات لتخزين عنوان كائن اللاعب مؤقتًا // int a = 0, b = 0; // ابحث في طبقة المصفوفة عن (int i = 0; i< 8; i++) { for (int j = 0; j < 10; j++) { //Если элемент с индексом (i,j) равен 1 - //устанавливаем в соответствующую позицию элемент с //номером 1, то есть - стену if (Layer == 1) Components.Add(new GameObj.Wall(this, ref txtWall, new Vector2(j, i), recSprite)); if (Layer == 5) Components.Add(new GameObj.Enemy(this, ref txtEnemy, new Vector2(j, i), new Rectangle(0, 0, 32, 32))); //Если обнаружен объект игрока - запишем его координаты if (Layer == 6) { a = i; b = j; } } } //Последним установим объект игрока - так он гарантированно //расположен поверх всех остальных объектов Components.Add(new GameObj.Me(this, ref txtMe, new Vector2(b, a), new Rectangle(0, 0, 32, 32))); } protected override void UnloadContent() { } protected override void Update(GameTime gameTime) { base.Update(gameTime); } protected override void Draw(GameTime gameTime) { spriteBatch.Begin(); //выведем фоновое изображение spriteBatch.Draw(txtBackground, recBackround, Color.White); //Выведем игровые объекты base.Draw(gameTime); spriteBatch.End(); } } } القائمة 12.1. رمز فئة Game1

في هذه المقالة، سأشارك تجربتي في تنمية أبسط الذكاء الاصطناعي (AI) باستخدام الخوارزمية الجينية، وسأتحدث أيضًا عن الحد الأدنى من مجموعة الأوامر المطلوبة لتوليد أي سلوك.

وكانت نتيجة العمل أن الذكاء الاصطناعي، دون معرفة القواعد، أتقن بشكل مستقل لعبة tic-tac-toe ووجد نقاط الضعف في الروبوتات التي لعبت ضدها. لكنني بدأت بمهمة أبسط.

مجموعة الأوامر

بدأ كل شيء بإعداد مجموعة من الأوامر التي يمكن أن يمتلكها الذكاء الاصطناعي. اللغات مستوى عالتحتوي على مئات من عوامل التشغيل المختلفة. لتسليط الضوء على الحد الأدنى المطلوب، قررت أن أنتقل إلى لغة التجميع. ومع ذلك، اتضح أنه يحتوي أيضًا على العديد من الأوامر.

كنت بحاجة إلى الذكاء الاصطناعي حتى أتمكن من قراءة البيانات وإخراجها، والعمل مع الذاكرة، وإجراء الحسابات والعمليات المنطقية، وإجراء التحولات والحلقات. لقد صادفت لغة Brainfuck، التي تحتوي على 8 أوامر فقط ويمكنها إجراء أي عملية حسابية (أي أنها تورينج كاملة). من حيث المبدأ، فهو مناسب للبرمجة الجينية، لكنني ذهبت إلى أبعد من ذلك.

تساءلت: ما هو الحد الأدنى لعدد الأوامر اللازمة لتنفيذ أي خوارزمية؟ وكما تبين، لم يكن هناك سوى واحد!

يحتوي معالج URISC على تعليمة واحدة فقط: طرح وتخطي التعليمة التالية إذا كان المطروح أكبر من الطرح. هذا يكفي لبناء أي خوارزمية.

ذهب أوليغ مازونكا إلى أبعد من ذلك، حيث قام بتطوير أمر BitBitJump وأثبت أنه مكتمل من قبل تورينج. تحتوي التعليمات على ثلاثة عناوين، وتقوم بنسخ بت واحد من عنوان الذاكرة الأول إلى عنوان الذاكرة الثاني وتنقل التحكم إلى العنوان الثالث.

باستعارة أفكار أوليغ، لتبسيط العمل، قمت بتطوير أمر SumIfJump. يحتوي الأمر على أربعة معاملات: A، B، C، D ويقوم بما يلي: إلى الخلية الموجودة في العنوان B يضيف بيانات من الخلية الموجودة في العنوان A، إذا كانت القيمة أكبر من القيمة المحددة*، فسيتم الانتقال إلى العنوان C، وإلا فإنه يذهب إلى العنوان D.

ملحوظة

*في هذه الحالة، تم استخدام 128، أي نصف طول الجينوم.


عندما يصل المعامل A إلى موقع الذاكرة N0، يحدث إدخال البيانات، وعندما يصل المعامل A إلى موقع الذاكرة N1، يحدث الإخراج.

يوجد أدناه رمز SumIfJump في FreePascal (نظير مجاني لدلفي).

الإجراء RunProg(s: TData); فار أ، ب، ج، د: TData؛ ابدأ Inc(NStep); إذا كان NStep > MaxStep، فابدأ ProgResult:= "MaxStep"; مخرج؛ نهاية؛ أ:= س؛ ب:= ق + 1؛ ج:= ق + 2؛ د:= ق + 3؛ أ:= بروغ[أ]; b:= بروغ[ب]; c:= بروغ[ج]; d:=Prog[d]; إذا كان a = 0، فابدأ ProgResult:= "Input"; مخرج؛ نهاية؛ إذا كان = 1، فابدأ ProgResult:= "Output"; مخرج؛ نهاية؛ Prog[b] := Prog[b] + Prog[a]; إذا كان البرنامج [ب]< ProgLength div 2 then RunProg(c) else RunProg(d); end;
يقوم SumIfJump بتنفيذ كود التعديل الذاتي. يمكن تنفيذ أي خوارزميات متاحة في لغة البرمجة التقليدية. من السهل تغيير الكود ويمكنه تحمل أي تلاعب.

مهمة بسيطة

لذلك، الذكاء الاصطناعي لدينا لديه أمر واحد فقط. حتى الآن، تعد لعبة تيك تاك تو لعبة صعبة للغاية بالنسبة له، لذلك بدأت بلعبة أبسط.

يُنتج الروبوت رقمًا عشوائيًا، ويجب على الذكاء الاصطناعي قراءة البيانات وإعطاء الإجابة. إذا كان الرقم أكبر من المتوسط ​​(من نطاق الأرقام العشوائية)، فيجب على الذكاء الاصطناعي إنتاج رقم أقل من المتوسط ​​والعكس صحيح.

يتكون جينوم الذكاء الاصطناعي لدينا من 256 خلية ذات قيم من 0 إلى 255. كل قيمة عبارة عن ذاكرة ورمز وعنوان. يقتصر عدد خطوات تنفيذ التعليمات البرمجية على 256. وتتم قراءة المعاملات واحدة تلو الأخرى.

في البداية، يتم إنشاء الجينوم من خلال مجموعة من الأرقام العشوائية، لذلك لا يعرف الذكاء الاصطناعي ما يجب عليه تشغيله. علاوة على ذلك، فهو لا يعلم أنه يحتاج إلى إدخال وإخراج البيانات بشكل تسلسلي عند الرد على الروبوت.

السكان والاختيار

تتكون المجموعة الأولى من 256 من الذكاء الاصطناعي التي تبدأ اللعب بالروبوت. إذا قام الذكاء الاصطناعي بتنفيذ الإجراءات الصحيحة، على سبيل المثال، طلب بيانات للإدخال ثم إخراج شيء ما، فسيحصل الذكاء الاصطناعي على نقاط. الإجراءات الأكثر صحة، والمزيد من النقاط.

تنتج كل من الذكاء الاصطناعي الـ 16 التي تسجل أكبر عدد من النقاط 15 ذرية وتستمر في المشاركة في اللعبة. السليل متحولة. تحدث الطفرة عن طريق استبدال خلية عشوائية واحدة في نسخة من الأصل بقيمة عشوائية.

إذا لم يسجل الذكاء الاصطناعي أي نقاط في المجموعة الأولى، فسيتم تشكيل المجموعة التالية. وهكذا حتى يبدأ أحد أنظمة الذكاء الاصطناعي في تنفيذ الإجراءات الصحيحة وإنتاج النسل "الصحيح".

تطور


حدثت آلاف التغييرات بين الأجيال بين الأحداث المهمة. تم تشغيل البرنامج في عدة سلاسل رسائل على Core i7. استغرقت الحسابات حوالي 15 دقيقة.

  1. عندما ارتكب "زعيم" الذكاء الاصطناعي خطأً عشوائيًا ولم يسجل نقاطًا كافية، بدأ عدد السكان في التدهور، لأنه تم تشكيل النسل من أبوين "ثانويين".
  2. لقد حدث أنه في تيار مع الغرباء الذين كانوا يحتفلون بالوقت، حدثت طفرة ناجحة، مما أدى إلى زيادة هائلة في النقاط المكتسبة. وبعد ذلك أصبح هذا التدفق هو القائد.
  3. في بعض الأحيان، لم تحدث طفرات ناجحة لفترة طويلة، وحتى 500 ألف جيل لم تكن كافية لإكمال الاختيار.

خاتمة

وأخيرا، فعلت الشيء نفسه مع لعبة تيك تاك تو. كان حجم الجينوم المستخدم هو نفسه كما في الحالة الأولى. تمت زيادة عدد الخطوات إلى 1024 وحجم السكان إلى 64 (لحساب أسرع). استغرق الحساب وقتا أطول قليلا. كل شيء حدث وفقًا لنفس السيناريو تقريبًا.

في البداية، لعب الذكاء الاصطناعي ضد "العشوائي". هذا ما أسميه الروبوت الذي يمشي بشكل عشوائي. وبسرعة كبيرة، بدأ الذكاء الاصطناعي في ضربه، وملء سطر ما. بعد ذلك، قمت بتعقيد المهمة عن طريق إضافة القليل من الذكاء إلى الموزع العشوائي: احتلال الخط إن أمكن، أو الدفاع عنه. ومع ذلك، في هذه الحالة أيضًا، اكتشف الذكاء الاصطناعي نقاط الضعف في الروبوت وبدأ في التغلب عليها. ولعل القصة حول هذا الموضوع هي موضوع لمقال منفصل.

طلب مني ابني أن أكتب برنامجًا حتى تلعب أنظمة الذكاء الاصطناعي فيما بينها، وليس مع الروبوت. كانت هناك أفكار لفعل الشيء نفسه في لعبة الداما أو Go، ومع ذلك، لم يعد لدي الوقت الكافي لذلك.

الطريقة الوحيدة التي استخدمتها للحصول على أفراد جدد هي الطفرة. يمكنك أيضًا استخدام التقاطع والانعكاس. ولعل هذه الطرق ستسرع من الحصول على النتيجة المطلوبة.

في النهاية، ولدت فكرة: منح الذكاء الاصطناعي القدرة على إدارة جميع العمليات على جهاز الكمبيوتر والتنافس على موارد الكمبيوتر. قم بتوصيل جهاز الكمبيوتر الخاص بك بالإنترنت، واستخدم مجموعة من مزارع البيتكوين القديمة كقوة حاسوبية...

كما قال المدون أثناء إجراء تجربة مماثلة

الذكاء الاصطناعي: كيف وأين تدرس - يجيب الخبراء

"أريد أن أفعل الذكاء الاصطناعي. ما الذي يستحق الدراسة؟ ما اللغات التي يجب أن أستخدمها؟ ما هي المنظمات التي يجب أن أدرس وأعمل فيها؟

لقد لجأنا إلى خبرائنا للتوضيح، ونقدم انتباهكم إلى الإجابات التي تلقيناها.

ذلك يعتمد على التدريب الأساسي الخاص بك. بادئ ذي بدء، أنت بحاجة إلى ثقافة رياضية (معرفة الإحصاء، ونظرية الاحتمالات، والرياضيات المنفصلة، ​​والجبر الخطي، والتحليل، وما إلى ذلك) والرغبة في تعلم الكثير بسرعة. عند تنفيذ أساليب الذكاء الاصطناعي، ستكون هناك حاجة إلى برمجة (الخوارزميات، هياكل البيانات، OOP، وما إلى ذلك).

تتطلب المشاريع المختلفة معرفة لغات البرمجة المختلفة. أوصي بمعرفة Python وJava وأي لغة وظيفية على الأقل. ستكون الخبرة مع قواعد البيانات المختلفة والأنظمة الموزعة مفيدة. مهارات اللغة الإنجليزية مطلوبة لتعلم أفضل ممارسات الصناعة بسرعة.

أوصي بالدراسة بشكل جيد الجامعات الروسية! على سبيل المثال، لدى MIPT وMSU وHSE أقسام مقابلة. تتوفر مجموعة واسعة من الدورات المواضيعية على Coursera وedX وUdacity وUdemy ومنصات MOOC الأخرى. لدى بعض المنظمات الرائدة برامجها التدريبية الخاصة في مجال الذكاء الاصطناعي (على سبيل المثال، مدرسة تحليل البيانات في ياندكس).

يمكن العثور على مشاكل التطبيقات التي تم حلها بطرق الذكاء الاصطناعي في مجموعة واسعة من الأماكن. البنوك، القطاع المالي، الاستشارات، التجزئة، التجارة الإلكترونية، محركات البحثوالخدمات البريدية وصناعة الألعاب وصناعة أنظمة الأمان وبالطبع Avito - كلها تحتاج إلى متخصصين من مختلف المؤهلات.

ترقية التخفيض

لدينا مشروع للتكنولوجيا المالية يتعلق بالتعلم الآلي ورؤية الكمبيوتر، حيث كتب مطوره الأول كل شيء بلغة C++، ثم جاء مطور وأعاد كتابة كل شيء بلغة بايثون. لذا فاللغة ليست هي الشيء الأهم هنا، حيث أن اللغة هي في المقام الأول أداة، والأمر متروك لك في كيفية استخدامها. إنه فقط أنه في بعض اللغات يمكن حل المشكلات بشكل أسرع، وفي لغات أخرى بشكل أبطأ.

من الصعب تحديد مكان الدراسة - لقد درس جميع شبابنا بمفردهم، ولحسن الحظ هناك الإنترنت وجوجل.

ترقية التخفيض

يمكنني أن أنصحك بأن تعد نفسك منذ البداية لحقيقة أنه سيتعين عليك الدراسة كثيرًا. بغض النظر عما هو المقصود بـ "القيام بالذكاء الاصطناعي" - العمل مع البيانات الضخمة أو الشبكات العصبية؛ تطوير التكنولوجيا أو دعم وتدريب نظام معين تم تطويره بالفعل.

لنأخذ مهنة عالم البيانات الرائجة من أجل التفاصيل. ماذا يفعل هذا الشخص؟ بشكل عام، يقوم بجمع وتحليل وإعداد البيانات الضخمة للاستخدام. هذه هي العناصر التي ينمو عليها الذكاء الاصطناعي ويتدرب عليها. ما الذي يجب أن يعرفه عالم البيانات ويكون قادرًا على فعله؟ يتم إجراء التحليل الثابت والنمذجة الرياضية بشكل افتراضي وعلى مستوى الطلاقة. اللغات - على سبيل المثال، R، SAS، Python. سيكون من الجيد أيضًا أن يكون لديك بعض الخبرة في التطوير. حسنًا، بشكل عام، يجب أن يشعر عالم البيانات الجيد بالثقة في قواعد البيانات والخوارزميات وتصور البيانات.

هذا لا يعني أنه يمكن الحصول على مثل هذه المجموعة من المعرفة في كل جامعة تقنية ثانية في البلاد. الشركات الكبيرةالذين لديهم أولوية لتطوير الذكاء الاصطناعي، يفهمون ذلك ويطورون برامج التدريب المناسبة لأنفسهم - هناك، على سبيل المثال، مدرسة تحليل البيانات من Yandex. لكن يجب أن تدرك أن هذا ليس هو المقياس الذي تأتي فيه إلى الدورات "من الشارع"، بل تتركها كمبتدئ جاهز. الطبقة كبيرة، ومن المنطقي دراسة التخصص عندما تكون الأساسيات (الرياضيات والإحصاء) قد تمت تغطيتها بالفعل، على الأقل في إطار البرنامج الجامعي.

نعم، سيستغرق الأمر بعض الوقت. لكن اللعبة تستحق كل هذا العناء، لأن عالم البيانات الجيد يعد أمرًا واعدًا للغاية. ومكلفة للغاية. هناك أيضا نقطة أخرى. فمن ناحية، لم يعد الذكاء الاصطناعي مجرد موضوع للضجيج، بل أصبح تكنولوجيا وصلت بالكامل إلى مرحلة الإنتاجية. ومن ناحية أخرى، لا يزال الذكاء الاصطناعي في طور التطور. يتطلب هذا التطوير الكثير من الموارد والكثير من المهارات والكثير من المال. حتى الآن هذا هو مستوى الدوري الرئيسي. سأقول ما هو واضح الآن، ولكن إذا كنت تريد أن تكون في طليعة الهجوم وتدفع التقدم بيديك، فاستهدف شركات مثل Facebook أو Amazon.

وفي الوقت نفسه، يتم استخدام التكنولوجيا بالفعل في عدد من المجالات: في البنوك، والاتصالات، والمؤسسات الصناعية العملاقة، وتجارة التجزئة. وهم بحاجة بالفعل إلى الأشخاص الذين يمكنهم دعمهم. وتتوقع مؤسسة جارتنر أنه بحلول عام 2020، ستصل 20% من جميع الشركات إلى الدول المتقدمةسوف استئجار موظفين خاصينلتدريب الشبكات العصبية المستخدمة في هذه الشركات. لذلك لا يزال هناك القليل من الوقت للتعلم بنفسك.

ترقية التخفيض

يتطور الذكاء الاصطناعي الآن بشكل نشط، ومن الصعب التنبؤ به قبل عشر سنوات. وعلى مدى العامين أو الأعوام الثلاثة المقبلة، سوف تهيمن الأساليب المعتمدة على الشبكات العصبية وحوسبة وحدات معالجة الرسومات. الشركة الرائدة في هذا المجال هي لغة Python مع بيئة Jupyter التفاعلية ومكتبات numpy وscipy وtensorflow.

هناك العديد من الدورات التدريبية عبر الإنترنت التي توفر فهمًا أساسيًا لهذه التقنيات و المبادئ العامةالذكاء الاصطناعي، على سبيل المثال دورة Andrew Ng. ومن حيث تدريس هذا الموضوع، أصبحت روسيا الآن الأكثر فعالية التعليم الذاتيأو في مجموعة مصالح محلية (على سبيل المثال، في موسكو أعلم بوجود مجموعتين على الأقل حيث يتبادل الأشخاص الخبرة والمعرفة).

ترقية التخفيض

ترقية التخفيض

اليوم، ربما يكون الجزء الأكثر تقدمًا في الذكاء الاصطناعي هو الشبكات العصبية.
يجب أن تبدأ دراسة الشبكات العصبية والذكاء الاصطناعي بإتقان فرعين من الرياضيات - الجبر الخطي ونظرية الاحتمالات. هذا هو الحد الأدنى الإلزامي، ركائز الذكاء الاصطناعي التي لا تتزعزع. المتقدمون الذين يرغبون في فهم أساسيات الذكاء الاصطناعي، عند اختيار الجامعة، في رأيي، يجب عليهم الانتباه إلى الكليات التي بها مدرسة رياضيات قوية.

والخطوة التالية هي دراسة مشاكل هذه القضية. هناك كمية هائلة من الأدبيات التعليمية والمتخصصة. تتم كتابة معظم المنشورات حول موضوع الذكاء الاصطناعي والشبكات العصبية باللغة الإنجليزية، ولكن يتم أيضًا نشر مواد باللغة الروسية. يمكن العثور على الأدبيات المفيدة، على سبيل المثال، في المكتبة الرقمية العامة arxiv.org.

إذا تحدثنا عن مجالات النشاط، فيمكننا هنا تسليط الضوء على تدريب الشبكات العصبية التطبيقية وتطوير إصدارات جديدة تمامًا من الشبكات العصبية. مثال صارخ: يوجد الآن تخصص شائع جدًا - "عالم البيانات" (عالم البيانات). هؤلاء هم المطورون الذين، كقاعدة عامة، يقومون بدراسة وإعداد مجموعات بيانات معينة لتدريب الشبكات العصبية في مجالات تطبيق محددة. باختصار، أود التأكيد على أن كل تخصص يتطلب مسارًا منفصلاً للتحضير.

ترقية التخفيض

قبل البدء في الدورات المتخصصة، تحتاج إلى دراسة الجبر الخطي والإحصاء. أوصي ببدء الانغماس في الذكاء الاصطناعي من خلال الكتاب المدرسي "التعلم الآلي". "علم وفن بناء الخوارزميات التي تستخرج المعرفة من البيانات" يعد كتابًا تمهيديًا جيدًا للمبتدئين. في كورسيرا، يجدر الاستماع إلى المحاضرات التمهيدية التي يلقيها ك. فورونتسوف (أؤكد أنها تتطلب معرفة جيدة بالجبر الخطي) ودورة "التعلم الآلي" في جامعة ستانفورد، والتي يدرسها أندرو إنج، الأستاذ ورئيس بايدو للذكاء الاصطناعي المجموعة / جوجل الدماغ.

الجزء الأكبر مكتوب بلغة بايثون، متبوعًا بـ R وLua.

إذا تحدثنا عن المؤسسات التعليميةمن الأفضل الالتحاق بدورات في أقسام الرياضيات التطبيقية وعلوم الحاسوب فهناك برامج تعليمية مناسبة. لاختبار قدراتك، يمكنك المشاركة في مسابقات Kaggle، حيث تعرض العلامات التجارية العالمية الكبرى حالاتها.

ترقية التخفيض

في أي عمل تجاري، قبل البدء في المشاريع، سيكون من الجيد الحصول على أساس نظري. هناك العديد من الأماكن حيث يمكنك الحصول على درجة الماجستير الرسمية في هذا المجال، أو تحسين مؤهلاتك. على سبيل المثال، تقدم Skoltech برامج الماجستير في مجالات "العلوم والهندسة الحاسوبية" و"علوم البيانات"، والتي تتضمن دورات في "التعلم الآلي" و"معالجة اللغات الطبيعية". يمكنك أيضًا ذكر معهد الأنظمة السيبرانية الذكية التابع لجامعة البحوث النووية الوطنية MEPhI، وكلية الرياضيات الحاسوبية وعلم التحكم الآلي بجامعة موسكو الحكومية وقسم الأنظمة الذكية في MIPT.

إذا كان لديك بالفعل تعليم رسمي، فهناك عدد من الدورات المتاحة على منصات MOOC المختلفة. على سبيل المثال، يقدم موقع EDx.org دورات في الذكاء الاصطناعي من ميكروسوفت وجامعة كولومبيا، والتي تقدم الأخيرة برنامج ماجستير صغير بسعر معقول. أود أن أشير بشكل خاص إلى أنه يمكنك عادة الحصول على المعرفة نفسها مجانًا، ولا تدفع سوى مقابل الشهادة إذا كانت مطلوبة في سيرتك الذاتية.

إذا كنت ترغب في "التعمق" في الموضوع، فإن عددًا من الشركات في موسكو تقدم دورات مكثفة لمدة أسبوع مع دروس عملية، بل وتقدم أيضًا معدات للتجارب (على سبيل المثال، newprolab.com)، ومع ذلك، فإن سعر هذه الدورات يبدأ من عدة عشرات الآلاف من الروبل.

من بين الشركات التي تطور الذكاء الاصطناعي، ربما تعرف Yandex وSberbank، ولكن هناك العديد من الشركات الأخرى بأحجام مختلفة. على سبيل المثال، افتتحت وزارة الدفاع هذا الأسبوع مركز تكنولوجيا الابتكار العسكري ERA في أنابا، والذي أحد موضوعاته هو تطوير الذكاء الاصطناعي لتلبية الاحتياجات العسكرية.

ترقية التخفيض

قبل دراسة الذكاء الاصطناعي، علينا أن نقرر سؤالاً أساسياً: هل يجب أن نأخذ الحبة الحمراء أم الزرقاء؟
الحبة الحمراء هي أن تصبح مطورًا وتنغمس في عالم قاسي من الأساليب الإحصائية والخوارزميات والفهم المستمر للمجهول. من ناحية أخرى، لا يتعين عليك الاندفاع فورًا إلى "جحر الأرانب": يمكنك أن تصبح مديرًا وتنشئ الذكاء الاصطناعي، على سبيل المثال، كمدير مشروع. وهذان طريقان مختلفان بشكل أساسي.

الأول رائع إذا كنت قد قررت بالفعل أنك ستكتب خوارزميات الذكاء الاصطناعي. إذن عليك أن تبدأ بالاتجاه الأكثر شيوعًا اليوم - التعلم الآلي. للقيام بذلك، تحتاج إلى معرفة الأساليب الإحصائية الكلاسيكية للتصنيف والتجميع والانحدار. سيكون من المفيد أيضًا التعرف على الإجراءات الأساسية لتقييم جودة الحل وخصائصه... وكل ما يأتي في طريقك.

فقط بعد إتقان القاعدة يكون من المفيد دراسة طرق أكثر تخصصًا: أشجار القرار ومجموعاتها. في هذه المرحلة، تحتاج إلى التعمق في الأساليب الأساسية لبناء النماذج وتدريبها - فهي مخفية خلف الكلمات اللائقة التي تكاد تكون "توسل" أو "تعزيز" أو "تكديس" أو "مزج".

من المفيد أيضًا التعرف على طرق التحكم في إعادة تدريب النموذج ("ing" آخر - التجهيز الزائد).

وأخيرا، مستوى جدي للغاية - الحصول على معرفة متخصصة للغاية. على سبيل المثال، سيتطلب التعلم العميق إتقان البنى والخوارزميات الأساسية للنسب المتدرجة. إذا كنت مهتمًا بمشاكل معالجة اللغة الطبيعية، أنصحك بدراسة الشبكات العصبية المتكررة. ويجب على منشئي الخوارزميات المستقبلية لمعالجة الصور ومقاطع الفيديو إلقاء نظرة فاحصة على الشبكات العصبية التلافيفية.

الهيكلان الأخيران المذكوران هما اللبنات الأساسية للبنى الشعبية اليوم: الشبكات الخصومة (GANs)، والشبكات العلائقية، والشبكات المتداخلة. لذلك، سيكون من المفيد دراستها، حتى لو كنت لا تخطط لتعليم الكمبيوتر أن يرى أو يسمع.

هناك نهج مختلف تمامًا لدراسة الذكاء الاصطناعي - المعروف أيضًا باسم "الحبة الزرقاء" - يبدأ بالعثور على نفسك. يولد الذكاء الاصطناعي مجموعة من المهام والمهن بأكملها: بدءًا من مديري مشاريع الذكاء الاصطناعي إلى مهندسي البيانات القادرين على إعداد البيانات وتنظيفها وبناء أنظمة قابلة للتطوير ومحملة ومتسامحة مع الأخطاء.

لذلك، مع النهج "الإداري"، يجب عليك أولاً تقييم قدراتك وخلفيتك، وبعد ذلك فقط تختار أين وماذا تدرس. على سبيل المثال، حتى بدون وجود عقل رياضي، يمكنك تصميم واجهات الذكاء الاصطناعي وتصورات للخوارزميات الذكية. لكن استعد: في غضون 5 سنوات، سيبدأ الذكاء الاصطناعي في التصيد عليك ووصفك بـ "الإنساني".

يتم تنفيذ أساليب ML الرئيسية في شكل مكتبات جاهزة متاحة للاتصال بها لغات مختلفة. اللغات الأكثر شيوعًا في ML اليوم هي: C++ وPython وR.

هناك العديد من الدورات باللغتين الروسية و اللغات الانجليزية، مثل دورات Yandex School of Data Analysis وSkillFactory وOTUS. ولكن قبل استثمار الوقت والمال في التدريب المتخصص، أعتقد أن الأمر يستحق "الدخول في الموضوع": شاهد المحاضرات المفتوحة على YouTube من مؤتمرات DataFest على مدار السنوات الماضية، واحصل على دورات مجانية من Coursera وHabrahabr.

mob_info