Ευφυείς αλγόριθμοι και τεχνητή νοημοσύνη. Τεχνητή νοημοσύνη

Πρώτον, τι είναι η τεχνητή νοημοσύνη; Η τεχνητή νοημοσύνη αναφέρεται σε ένα σύνολο αλγορίθμων και την κατεύθυνση της έρευνας για την αυτοματοποίηση εργασιών που επιλύονται από τον ανθρώπινο εγκέφαλο, καθώς και τη μίμηση δραστηριοτήτων. ανθρώπινος εγκέφαλοςγια τη βελτίωση της επίλυσης υπολογιστικών προβλημάτων. Για παράδειγμα:

  • Αναγνώριση προτύπων, ανάλυση οπτικών πληροφοριών.
  • Αναγνώριση ηχητικών πληροφοριών.
  • Συλλογισμός, λήψη αποφάσεων.
  • Δημιουργικότητα, διαίσθηση.

Η κύρια ιδέα είναι ότι ο εγκέφαλος επιλύει πολλά προβλήματα καλύτερα από έναν υπολογιστή, επομένως είναι λογικό να χρησιμοποιούμε στον προγραμματισμό την προσέγγιση που χρησιμοποιεί ο εγκέφαλός μας για την επίλυση προβλημάτων. Χάρη σε αυτήν την προσέγγιση, για παράδειγμα, ένας υπολογιστής «διδάχτηκε» να παίζει σκάκι και ακόμη και να νικάει διάσημους γκρανμάστερ, αν και αρχικά αυτό το έργο ήταν ένα δύσκολο πρόβλημα: ο αριθμός των συνδυασμών σε μια παρτίδα σκακιού είναι τόσο μεγάλος που ο υπολογιστής δεν είναι σε θέση να τα υπολογίσει για όλη την ύπαρξη του Σύμπαντος. Το πρόβλημα λύθηκε με την εφεύρεση ευρετικών αλγορίθμων. Η ουσία της ευρετικής είναι ότι δεν υπολογίζουμε όλες τις επιλογές, επιλέγουμε με κάποιο τρόπο ποιες επιλογές θα αναλύσουμε.

Τώρα σχετικά με μερικές τυπικές κατευθύνσεις του AI.

  • Κατακτήστε τις βασικές αρχές χρήσης τεχνητής νοημοσύνης σε παιχνίδια στον υπολογιστή.
  • Εξετάστε τους αλγόριθμους τεχνητής νοημοσύνης που ισχύουν στα παιχνίδια
  • Δημιουργήστε ένα παιχνίδι υπολογιστή που χρησιμοποιεί τις αρχές της τεχνητής νοημοσύνης

Επισκόπηση των προσεγγίσεων ανάπτυξης συστημάτων AI

Θέμα τεχνητής νοημοσύνης ( τεχνητή νοημοσύνη, AI, AI) ενθουσιάζει το μυαλό πολλών αρχαρίων προγραμματιστών, προγραμματιστών και παικτών. Η τεχνητή νοημοσύνη φαίνεται σε πολλούς να είναι κάτι εκπληκτικά περίπλοκο, ενδιαφέρον και μυστηριώδες. Πράγματι, οι τεχνολογίες AI κάνουν τους χαρακτήρες του παιχνιδιού να ενεργούν έξυπνα. Ωστόσο, δεν υπάρχει τίποτα μυστήριο σχετικά με την τεχνητή νοημοσύνη. Κατά τη διάρκεια των δεκαετιών ανάπτυξης αυτού του τομέα γνώσης, έχει αναπτυχθεί ένας τεράστιος αριθμός αλγορίθμων που είναι εφαρμόσιμοι σε διάφορους τομείς δραστηριότητας. Και τα παιχνίδια υπολογιστών είναι μόνο ένα σχετικά μικρό πεδίο για τις τεχνολογίες τεχνητής νοημοσύνης.

Είναι πολύ δύσκολο να βρεις ένα παιχνίδι υπολογιστή που να λειτουργεί χωρίς AI. Κλασικό παράδειγμα «έξυπνων» παιχνιδιών είναι τα προγράμματα για να παίξετε πούλια, σκάκι και άλλα επιτραπέζια παιχνίδια. Κάθε παιχνίδι στο οποίο ο υπολογιστής παίζει εναντίον του χρήστη είναι εξοπλισμένο με AI.

Το παιχνίδι AI, ως πρώτη προσέγγιση, μπορεί να χωριστεί σε δύο τύπους. Το πρώτο, και πιο προφανές, είναι η ευφυΐα των μεμονωμένων χαρακτήρων που μπορούν να παίξουν. Για παράδειγμα, κάθε τανκ στο άλλοτε δημοφιλές παιχνίδι κονσόλας Battle City προσπαθεί να φτάσει στη βάση του παίκτη, να τον καταστρέψει και το τανκ του. Τα τανκς στο παιχνίδι είναι ασυντόνιστα, δεν διακρίνονται από ιδιαίτερο μυαλό, αλλά είναι ενδιαφέρον να παίξεις - το θέμα είναι ότι αυτός ο τύπος AI είναι αρκετά κατάλληλος για αυτό το παιχνίδι. Δεν κάνει το παιχνίδι βαρετό.

Το δεύτερο επίπεδο της τεχνητής νοημοσύνης είναι η ομαδική νοημοσύνη. Για παράδειγμα, σκεφτείτε το StarCraft. Ο παίκτης αναγκάζεται να πολεμήσει έναν στρατό που ελέγχεται από υπολογιστή. Αποδεικνύεται ότι ο υπολογιστής ελέγχει μεγάλο αριθμό μονάδων (από τα αγγλικά. Unit - unit). Αλλά είναι εύκολο να δει κανείς ότι κάθε πλάσμα που ελέγχεται από την ομάδα AI στο StarCraft έχει το δικό του «μυαλό». Για παράδειγμα, η τεχνητή νοημοσύνη της ομάδας μπορεί να στείλει μια ομάδα μονάδων για να περιπολούν την περιοχή, αλλά αν συναντήσουν έναν εχθρό στο δρόμο, η δική τους τεχνητή νοημοσύνη θα είναι υπεύθυνη για τις ενέργειές τους.

Εάν οι ενέργειες του στρατού στο StarCraft δεν ελέγχονταν με κανέναν τρόπο και το AI ήταν παρόν μόνο σε επίπεδο μεμονωμένης μονάδας, το παιχνίδι θα μετατρεπόταν σε μια βαρετή αναζήτηση και καταστροφή εχθρών. Και το StarCraft, παρά τη σοβαρή του ηλικία (περίπου 10 χρόνια), παραμένει ένα συναρπαστικό παιχνίδι. Ακόμη και στην καμπάνια για έναν παίκτη, το StarCraft είναι σε θέση να «σύρει» πολύ τον παίκτη, για να μην αναφέρουμε τις διαδικτυακές μάχες.

Παρεμπιπτόντως, είναι εύκολο να διαπιστωθεί ότι στο ίδιο StarCraft, οι μονάδες που ελέγχονται από τον χρήστη έχουν επίσης ατομικό AI. Για παράδειγμα, η ίδια εντολή "περιπολίας" που δίνεται από τον χρήστη θα κάνει ένα πλάσμα StarCraft να περπατήσει υπάκουα κατά μήκος της καθορισμένης διαδρομής. Αλλά αν εμφανιστεί ένα εμπόδιο στο δρόμο (για παράδειγμα, ο παίκτης χτίσει ένα κτίριο που εμποδίζει το μονοπάτι εκεί), η μονάδα θα αποφασίσει τι θα κάνει. Ομοίως, θα αποφασίσει ανεξάρτητα για μια επίθεση εάν εμφανιστούν εχθροί στο οπτικό του πεδίο.

Τα συστήματα AI που χρησιμοποιούνται σε παιχνίδια υπολογιστών μπορούν να χωριστούν σε δύο κύριους τύπους. Πρώτον, αυτά είναι τα λεγόμενα ντετερμινιστικά συστήματα. Διακρίνονται από την προβλεψιμότητα των πράξεων του χαρακτήρα. Και δεύτερον - αυτά είναι μη ντετερμινιστικά συστήματα - ένας χαρακτήρας που ελέγχεται από μια τέτοια τεχνητή νοημοσύνη μπορεί να ενεργήσει απρόβλεπτα, να λάβει απροσδόκητες αποφάσεις.

Όπως είπαμε, η ατομική τεχνητή νοημοσύνη παίζει δευτερεύοντα ρόλο σε σύγκριση με την τεχνητή νοημοσύνη της ομάδας. Και μπορεί το AI μιας μεμονωμένης μονάδας να επηρεάσει το παιχνίδι συνολικά; Ίσως - σε περίπτωση που προβλέπεται η διανομή των επιτυχιών μιας μεμονωμένης μονάδας σε όλες τις παρόμοιες. Για παράδειγμα, κάποια μονάδα συγκρούστηκε με έναν ισχυρό αντίπαλο και από θαύμα βγήκε νικήτρια στη μάχη. Αυτή η μονάδα έχει αποκτήσει εμπειρία, η οποία, χάρη στο group AI, μπορεί να επεκταθεί και σε άλλες μονάδες. Εκείνοι. αν μια μονάδα έχει μάθει κάτι, άλλες, χάρη στην ομάδα AI, θα μπορούν να μάθουν νέες δεξιότητες από αυτό. Έτσι, η ατομική και η ομαδική τεχνητή νοημοσύνη είναι αλληλένδετες και, σε ορισμένες περιπτώσεις, αλληλοεξαρτώμενες.

Ένας χαρακτήρας εξοπλισμένος με μη ντετερμινιστική τεχνητή νοημοσύνη χαρακτηρίζεται από απρόβλεπτη συμπεριφορά, μεγαλύτερη «ζωντάνια». Το να παίζεις εναντίον τέτοιων χαρακτήρων είναι συνήθως πολύ πιο ενδιαφέρον από ό,τι ενάντια σε σκληρά αποφασισμένους. δημοφιλής σε Πρόσφατατρόπος εφαρμογής μη ντετερμινιστικής τεχνητής νοημοσύνης είναι η τεχνολογία των νευρωνικών δικτύων. Σας επιτρέπει να δημιουργείτε χαρακτήρες με πολύ σύνθετη συμπεριφορά. Επιπλέον, τα νευρωνικά δίκτυα έχουν την ιδιότητα της μάθησης. Δηλαδή, οι χαρακτήρες των παιχνιδιών όχι μόνο συμπεριφέρονται λογικά, αλλά μαθαίνουν και από τα λάθη τους.

Στην πράξη, χρησιμοποιούνται τόσο ντετερμινιστικοί όσο και μη ντετερμινιστικοί τύποι AI. Συνήθως συνεργάζονται. Για παράδειγμα, απλοί και γρήγοροι ντετερμινιστικοί αλγόριθμοι μπορούν να χρησιμοποιηθούν για να εκτελέσουν μερικές απλές σαφείς ενέργειες (ας πούμε, να στρίψετε όταν πλησιάζετε έναν τοίχο). Σε πιο περίπλοκες περιπτώσεις (για παράδειγμα, εάν θα αγοράσει μετοχές της εταιρείας Χ με έναν τεράστιο αριθμό παραμέτρων, εάν θα επιτεθεί στον εχθρό, λαμβάνοντας υπόψη τις δυνατότητές του, τις δυνατότητές του, την παρουσία ενισχύσεων κ.λπ.), πιο πολύπλοκες μη χρησιμοποιούνται ντετερμινιστικοί αλγόριθμοι. Μερικώς ντετερμινιστικές (για παράδειγμα, όταν πλησιάζετε έναν τοίχο, ένας χαρακτήρας έχει 50% πιθανότητα να στρίψει αριστερά, 30% πιθανότητα να στρίψει δεξιά και 20% πιθανότητα να γυρίσει και να επιστρέψει) χρησιμοποιούνται επίσης ευρέως στα παιχνίδια.

Εφαρμογή του αλγορίθμου καταδίωξης

Ας εφαρμόσουμε ένα παιχνίδι που χρησιμοποιεί τον αλγόριθμο καταδίωξης. Η ουσία αυτού του αλγορίθμου είναι η εξής. Το αντικείμενο που επιδιώκει συγκρίνει τις συντεταγμένες του στον κόσμο του παιχνιδιού με τις συντεταγμένες του αντικειμένου του θύματος και προσαρμόζει τις συντεταγμένες του με τέτοιο τρόπο ώστε να πλησιάζει περισσότερο το θύμα. Στην απλούστερη περίπτωση, η καταδίωξη πραγματοποιείται σε ανοιχτό χώρο.

Ας δημιουργήσουμε ένα νέο έργο παιχνιδιού P8_1 με βάση το έργο P5_1. Θα χρησιμοποιήσουμε δύο αντικείμενα - τον διώκτη και το θύμα. Ο διώκτης θα κινηθεί προς το θύμα με ταχύτητα 1 μικρότερη από την ταχύτητα του θύματος. Εάν τα αντικείμενα συγκρουστούν, το θύμα θα καταστραφεί.

Στο σχ. 12.1. δεδομένο παράθυρο εξερευνητής λύσεωνέργο παιχνιδιού P8_1.


Ρύζι. 12.1.

Χρησιμοποιούμε τη βασική κλάση gBaseClass , την κλάση για το αντικείμενο chaser (Enemy), την κλάση για το αντικείμενο θύμα (Me) και την κλάση για το αντικείμενο τοίχου. Θα χρειαστούμε την κλάση αντικειμένου τοίχου για να μελετήσουμε τη συμπεριφορά ενός αντικειμένου που εφαρμόζει τον αλγόριθμο καταδίωξης όταν συναντά ένα ανυπέρβλητο εμπόδιο στο δρόμο προς το θύμα. Έχουμε τροποποιήσει σημαντικά τον κωδικό τάξης σε σύγκριση με το αρχικό προσχέδιο 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( ///

/// Αυτός είναι ο κύριος τύπος για το παιχνίδι σας ///δημόσια κλάση Παιχνίδι 1: Microsoft.Xna.Framework.Game ( γραφικά GraphicsDeviceManager; SpriteBatch spriteBatch; Texture2D txtBackground; Texture2D txtEnemy; Texture2D txtMe; Texture2D txtWall; //Πίνακας για την ανακατασκευή του νέου βάθους ctangle; ( 0 , 0, 640, 512); Rectangle recSprite = new Rectangle(0, 0, 64, 64); public Game1() ( graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; ) προστατευμένη παράκαμψη initizeial initizeial ( ) ( // 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(); ) προστατευμένη παράκαμψη void LoadContent() ( // Δημιουργία νέας SpriteBatch, η οποία μπορεί να χρησιμοποιηθεί για τη σχεδίαση υφών. spriteBatch = νέο SpriteBatch(GraphicsDevice); Services.AddService(typeof(SpriteBatch), spriteBatch); txtBackground = Content. ("Ιστορικό"); txtEnemy = Content.Load ("εχθρός"); txtMe = Content.Load ("μου"); txtWall = Content.Load ("τείχος"); //Καλέστε τη διαδικασία για την τοποθέτηση αντικειμένων στο παράθυρο του παιχνιδιού AddSprites(); // TODO: χρησιμοποιήστε αυτό.Περιεχόμενο για να φορτώσετε το περιεχόμενο του παιχνιδιού σας εδώ ) //Η διαδικασία για την τοποθέτηση αντικειμένων στο παράθυρο του παιχνιδιού void 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. Κωδικός κατηγορίας παιχνιδιού 1

Σε αυτό το άρθρο, θα μοιραστώ την εμπειρία μου από την ανάπτυξη της απλούστερης τεχνητής νοημοσύνης (AI) χρησιμοποιώντας έναν γενετικό αλγόριθμο και επίσης θα μιλήσω για το ελάχιστο σύνολο εντολών που απαιτούνται για τη διαμόρφωση οποιασδήποτε συμπεριφοράς.

Το αποτέλεσμα της εργασίας ήταν ότι η τεχνητή νοημοσύνη, μη γνωρίζοντας τους κανόνες, κατέκτησε ανεξάρτητα το παιχνίδι του tic-tac-toe και βρήκε τις αδυναμίες των bots που έπαιξαν εναντίον του. Ξεκίνησα όμως με ένα ακόμα πιο απλό έργο.

Σετ εντολών

Όλα ξεκίνησαν με την προετοιμασία ενός συνόλου εντολών που θα μπορούσε να έχει το AI. Γλώσσες υψηλό επίπεδοπεριέχει εκατοντάδες διαφορετικούς τελεστές. Για να τονίσω το απαραίτητο ελάχιστο, αποφάσισα να στραφώ στη γλώσσα Assembly. Ωστόσο, αποδείχθηκε ότι περιέχει και πολλές εντολές.

Χρειαζόμουν το AI για να μπορώ να διαβάζω και να εξάγω δεδομένα, να δουλεύω με μνήμη, να εκτελώ υπολογισμούς και λογικές πράξεις, να κάνω μεταβάσεις και κύκλους. Έπεσα πάνω στη γλώσσα Brainfuck, η οποία έχει μόνο 8 οδηγίες και μπορεί να κάνει οποιονδήποτε υπολογισμό (δηλαδή ο Turing ολοκληρωμένος). Καταρχήν, είναι κατάλληλο για γενετικό προγραμματισμό, αλλά προχώρησα παρακάτω.

Αναρωτήθηκα: ποιος είναι ο ελάχιστος αριθμός εντολών που απαιτούνται για την υλοποίηση οποιουδήποτε αλγόριθμου; Όπως αποδείχθηκε - ένα!

Ο επεξεργαστής URISC περιέχει μόνο μία εντολή: αφαιρέστε και παραλείψτε την επόμενη εντολή εάν η αφαίρεση ήταν μεγαλύτερη από το minuend. Αυτό είναι αρκετό για τη δημιουργία οποιουδήποτε αλγόριθμου.

Ο Oleg Mazonka προχώρησε ακόμη παραπέρα, ανέπτυξε την εντολή BitBitJump και απέδειξε ότι είναι ολοκληρωμένη η Turing. Η εντολή περιέχει τρεις διευθύνσεις, αντιγράφει ένα bit από την πρώτη στη δεύτερη διεύθυνση μνήμης και μεταφέρει τον έλεγχο στην τρίτη διεύθυνση.

Δανειζόμενος τις ιδέες του Oleg, για να απλοποιήσω την εργασία, ανέπτυξα την εντολή SumIfJump. Η εντολή περιέχει τέσσερις τελεστές: A, B, C, D και κάνει τα εξής: προσθέτει δεδομένα από το κελί στη διεύθυνση A στο κελί στη διεύθυνση B, εάν η τιμή είναι μεγαλύτερη από την καθορισμένη *, τότε πηγαίνει στη διεύθυνση C , διαφορετικά πηγαίνει στη διεύθυνση Δ.

Σημείωση

*Σε αυτή την περίπτωση χρησιμοποιήθηκε 128 - το ήμισυ του μήκους του γονιδιώματος.


Όταν ο τελεστής Α αναφέρεται στη θέση μνήμης N0, εισάγονται δεδομένα και όταν ο τελεστής Α έχει πρόσβαση στη θέση μνήμης N1, τότε γίνεται έξοδος.

Παρακάτω είναι ο κώδικας SumIfJump στο FreePascal (μια δωρεάν έκδοση του Delphi).

Διαδικασία RunProg(s: TData); var a, b, c, d: TData; start Inc(NStep); αν NStep > MaxStep τότε ξεκινήστε ProgResult:= "MaxStep"; έξοδος; τέλος; a:=s; b:= s + 1; c:= s + 2; d:= s + 3; a:= Prog[a]; b:= Prog[b]; c:= Prog[c]; d:= Prog[d]; αν a = 0 τότε ξεκινά το ProgResult:= "Input"; έξοδος; τέλος; αν a = 1 τότε ξεκινά το ProgResult:= "Output"; έξοδος; τέλος; Prog[b] := Prog[b] + Prog[a]; εάν Prog[b]< ProgLength div 2 then RunProg(c) else RunProg(d); end;
Το SumIfJump υλοποιεί αυτοτροποποιούμενο κώδικα. Μπορεί να εκτελέσει οποιονδήποτε αλγόριθμο διαθέσιμο σε μια κοινή γλώσσα προγραμματισμού. Ο κωδικός αλλάζει εύκολα και αντέχει σε κάθε χειραγώγηση.

Απλή εργασία

Έτσι, το AI μας έχει μόνο μία εντολή. Μέχρι στιγμής, το tic-tac-toe είναι ένα πολύ δύσκολο παιχνίδι για αυτόν και ξεκίνησα με ένα πιο εύκολο.

Το bot δίνει έναν τυχαίο αριθμό και η τεχνητή νοημοσύνη πρέπει να διαβάσει τα δεδομένα και να δώσει μια απάντηση. Εάν ο αριθμός είναι πάνω από τον μέσο όρο (από μια σειρά τυχαίων αριθμών), το AI θα πρέπει να επιστρέψει έναν αριθμό κάτω από τον μέσο όρο και το αντίστροφο.

Το γονιδίωμα του AI μας αποτελείται από 256 κύτταρα με τιμές από 0 έως 255. Κάθε τιμή είναι μια μνήμη, ένας κωδικός και μια διεύθυνση. Ο αριθμός των βημάτων εκτέλεσης κώδικα περιορίζεται στα 256. Οι τελεστές διαβάζονται ο ένας μετά τον άλλο.

Αρχικά, το γονιδίωμα σχηματίζεται από ένα σύνολο τυχαίων αριθμών, έτσι το AI δεν ξέρει τι χρειάζεται για να παίξει. Επιπλέον, δεν γνωρίζει ότι χρειάζεται να εισάγει και να εξάγει με συνέπεια δεδομένα όταν απαντά στο bot.

Πληθυσμός και επιλογή

Ο πρώτος πληθυσμός αποτελείται από 256 AI που αρχίζουν να παίζουν με το bot. Εάν το AI κάνει το σωστό, όπως να ζητά είσοδο και μετά να βγάζει κάτι, τότε το AI λαμβάνει πόντους. Όσο πιο σωστές ενέργειες, τόσο περισσότεροι πόντοι.

Οι 16 AI με τους περισσότερους πόντους δίνουν 15 απογόνους και συνεχίζουν να συμμετέχουν στο παιχνίδι. Ο απόγονος είναι μεταλλαγμένος. Η μετάλλαξη λαμβάνει χώρα αντικαθιστώντας ένα αντίγραφο του γονέα ενός τυχαίου κελιού με μια τυχαία τιμή.

Εάν δεν έχει βαθμολογηθεί AI στον πρώτο πληθυσμό, σχηματίζεται ο επόμενος πληθυσμός. Και ούτω καθεξής έως ότου ένα από τα AI αρχίσει να εκτελεί τις σωστές ενέργειες και να δώσει τους «σωστούς» απογόνους.

Εξέλιξη


Χιλιάδες αλλαγές γενεών έγιναν μεταξύ σημαντικών γεγονότων. Το πρόγραμμα εκτελέστηκε σε πολλαπλά νήματα σε έναν Core i7. Οι υπολογισμοί κράτησαν περίπου 15 λεπτά.

  1. Όταν ο «αρχηγός» AI έκανε ένα τυχαίο λάθος και δεν σημείωσε αρκετούς πόντους, ο πληθυσμός άρχισε να υποβαθμίζεται, καθώς οι απόγονοι σχηματίστηκαν από «δευτεροβάθμιους» γονείς.
  2. Έτυχε ότι σε ένα ρεύμα με αουτσάιντερ που σημείωναν χρόνο, σημειώθηκε μια επιτυχημένη μετάλλαξη, παρέχοντας μια εκρηκτική αύξηση στους πόντους που σημειώθηκαν. Μετά από αυτό, αυτό το ρεύμα έγινε ο ηγέτης.
  3. Μερικές φορές για μεγάλο χρονικό διάστημα δεν υπήρχαν επιτυχημένες μεταλλάξεις και ακόμη και 500 χιλιάδες γενιές δεν ήταν αρκετές για να ολοκληρωθεί η επιλογή.

συμπέρασμα

Τέλος, το ίδιο έκανα και με το παιχνίδι τικ-τακ. Το μέγεθος του γονιδιώματος ήταν το ίδιο όπως στην πρώτη περίπτωση. Ο αριθμός των βημάτων έχει αυξηθεί σε 1024 και το μέγεθος του πληθυσμού σε 64 (για ταχύτερο υπολογισμό). Ο υπολογισμός κράτησε λίγο περισσότερο. Όλα έγιναν σύμφωνα με το ίδιο σκηνικό.

Στην αρχή, το AI έπαιξε εναντίον ενός "randomizer". Έτσι ονόμασα ένα ρομπότ που περπατά τυχαία. Πολύ γρήγορα, το AI άρχισε να τον χτυπάει, γεμίζοντας οποιαδήποτε γραμμή. Στη συνέχεια, έκανα το έργο πιο δύσκολο προσθέτοντας λίγη ευφυΐα στον τυχαιοποιητή: καταλάβετε τη λωρίδα αν είναι δυνατόν ή υπερασπιστείτε. Ωστόσο, σε αυτή την περίπτωση, το AI βρήκε τις αδυναμίες του bot και άρχισε να τον χτυπά. Ίσως αυτή η ιστορία είναι ένα θέμα για ένα ξεχωριστό άρθρο.

Ο γιος μου ζήτησε να γράψω ένα πρόγραμμα ώστε το AI​​να παίζει μεταξύ τους και όχι με το bot. Υπήρχαν ιδέες να κάνω το ίδιο για το παιχνίδι πούλι ή να πάω, ωστόσο, δεν είχα πλέον αρκετό χρόνο για αυτό.

Η μόνη μέθοδος που έχω χρησιμοποιήσει για να αποκτήσω νέα άτομα είναι η μετάλλαξη. Μπορείτε επίσης να χρησιμοποιήσετε crossover και invert. Ίσως αυτές οι μέθοδοι να επιταχύνουν την επίτευξη του επιθυμητού αποτελέσματος.

Στο τέλος, γεννήθηκε μια ιδέα: να δοθεί στην τεχνητή νοημοσύνη τη δυνατότητα να διαχειρίζεται όλες τις διαδικασίες σε έναν υπολογιστή και να παλεύει για πόρους υπολογιστή. Συνδέστε έναν υπολογιστή στο Διαδίκτυο και χρησιμοποιήστε μια δεξαμενή από παλιές φάρμες bitcoin ως υπολογιστική ισχύ ...

Όπως είπε, πραγματοποιώντας ανάλογο πείραμα, ο blogger

Τεχνητή νοημοσύνη: πώς και πού να μελετήσετε - απαντούν οι ειδικοί

«Θέλω να κάνω AI. Τι αξίζει να μελετήσετε; Ποιες γλώσσες να χρησιμοποιήσετε; Σε ποιους οργανισμούς να σπουδάσετε και να εργαστείτε;

Απευθυνθήκαμε στους ειδικούς μας για διευκρίνιση και σας παρουσιάζουμε τις απαντήσεις που λάβαμε.

Εξαρτάται από τη βασική σας εκπαίδευση. Πρώτα απ 'όλα, χρειάζεστε μια μαθηματική κουλτούρα (γνώση στατιστικών, θεωρία πιθανοτήτων, διακριτά μαθηματικά, γραμμική άλγεβρα, ανάλυση κ.λπ.) και διάθεση να μάθετε πολλά γρήγορα. Η εφαρμογή μεθόδων AI θα απαιτήσει προγραμματισμό (αλγόριθμοι, δομές δεδομένων, OOP, κ.λπ.).

Διαφορετικά έργα απαιτούν γνώση διαφορετικών γλωσσών προγραμματισμού. Θα συνιστούσα να γνωρίζετε τουλάχιστον Python, Java και οποιαδήποτε λειτουργική γλώσσα. Θα είναι χρήσιμη η εμπειρία με διάφορες βάσεις δεδομένων και κατανεμημένα συστήματα. Απαιτείται επάρκεια στα αγγλικά για να μάθετε γρήγορα τις βέλτιστες πρακτικές στον κλάδο.

Προτείνω να μελετήσετε καλά Ρωσικά πανεπιστήμια! Για παράδειγμα, το Ινστιτούτο Φυσικής και Τεχνολογίας της Μόσχας, το Κρατικό Πανεπιστήμιο της Μόσχας, η Ανώτατη Οικονομική Σχολή έχουν αντίστοιχα τμήματα. Μια μεγάλη ποικιλία θεματικών μαθημάτων είναι διαθέσιμη στις πλατφόρμες Coursera, edX, Udacity, Udemy και σε άλλες πλατφόρμες MOOC. Ορισμένοι κορυφαίοι οργανισμοί έχουν τα δικά τους προγράμματα κατάρτισης στον τομέα της τεχνητής νοημοσύνης (για παράδειγμα, το School of Data Analysis στο Yandex).

Τα εφαρμοσμένα προβλήματα που επιλύονται με μεθόδους τεχνητής νοημοσύνης μπορούν να βρεθούν σε μεγάλη ποικιλία θέσεων. Τράπεζες, χρηματοοικονομικός τομέας, συμβουλευτικές υπηρεσίες, λιανικό εμπόριο, ηλεκτρονικό εμπόριο, μηχανές αναζήτησης, υπηρεσίες αλληλογραφίας, η βιομηχανία τυχερών παιχνιδιών, η βιομηχανία συστημάτων ασφαλείας και, φυσικά, η Avito - όλα χρειάζονται ειδικούς διαφόρων προσόντων.

Αναβάθμιση Υποβάθμιση

Έχουμε ένα έργο fintech που σχετίζεται με τη μηχανική μάθηση και την όραση υπολογιστών, στο οποίο ο πρώτος προγραμματιστής του έγραψε τα πάντα σε C ++ και μετά ήρθε ένας προγραμματιστής που ξαναέγραψε τα πάντα στην Python. Επομένως, η γλώσσα δεν είναι το πιο σημαντικό πράγμα εδώ, αφού η γλώσσα είναι πρώτα απ' όλα ένα εργαλείο και το πώς θα τη χρησιμοποιήσετε εξαρτάται από εσάς. Απλώς σε ορισμένες γλώσσες είναι πιο γρήγορο να λύνεις προβλήματα, ενώ σε άλλες πιο αργό.

Είναι δύσκολο να πούμε πού να σπουδάσουμε - όλα τα παιδιά μας σπούδασαν μόνοι τους, αφού υπάρχει το Διαδίκτυο και το Google.

Αναβάθμιση Υποβάθμιση

Μπορώ να συμβουλεύσω από την αρχή να προετοιμαστείτε για το γεγονός ότι θα πρέπει να μελετήσετε πολύ. Ανεξάρτητα από το τι σημαίνει "κάνω AI" - εργασία με μεγάλα δεδομένα ή νευρωνικά δίκτυα. ανάπτυξη τεχνολογίας ή υποστήριξη και εκπαίδευση συγκεκριμένου ήδη ανεπτυγμένου συστήματος.

Ας πάρουμε το μοντέρνο επάγγελμα του Επιστήμονα Δεδομένων για λόγους ειδικών. Τι κάνει αυτό το άτομο; Γενικά, συλλέγει, αναλύει και προετοιμάζει μεγάλα δεδομένα για χρήση. Ακριβώς εκείνα στα οποία αναπτύσσεται και εκπαιδεύεται το AI. Τι πρέπει να γνωρίζει και να μπορεί να κάνει ένας Data Scientist; Στατική ανάλυση και μαθηματική μοντελοποίηση - από προεπιλογή και σε επίπεδο ευχέρειας. Γλώσσες - ας πούμε, R, SAS, Python. Θα ήταν επίσης ωραίο να έχετε κάποια εμπειρία ανάπτυξης. Λοιπόν, σε γενικές γραμμές, ένας καλός επιστήμονας δεδομένων πρέπει να αισθάνεται σίγουρος για τη βάση δεδομένων, τους αλγόριθμους και την οπτικοποίηση δεδομένων.

Για να μην πω ότι τέτοιο σύνολο γνώσεων θα μπορούσε να αποκτηθεί σε κάθε δεύτερο ΤΕΙ της χώρας. Μεγάλες εταιρείεςΌσοι δίνουν προτεραιότητα στην ανάπτυξη της τεχνητής νοημοσύνης το καταλαβαίνουν και αναπτύσσουν κατάλληλα εκπαιδευτικά προγράμματα για τον εαυτό τους - υπάρχει, για παράδειγμα, η Σχολή Ανάλυσης Δεδομένων της Yandex. Αλλά θα πρέπει να γνωρίζετε ότι αυτή δεν είναι η κλίμακα όπου έρχεστε στα μαθήματα "από το δρόμο", αλλά τα αφήνετε ως έτοιμοι junior. Το επίπεδο είναι μεγάλο και είναι λογικό να πηγαίνεις για σπουδές στον κλάδο όταν η βάση (μαθηματικά, στατιστική) είναι ήδη καλυμμένη, τουλάχιστον στο πλαίσιο του πανεπιστημιακού προγράμματος.

Ναι, θα πάρει χρόνο. Αλλά το παιχνίδι αξίζει το κερί, γιατί ένας καλός Επιστήμονας Δεδομένων είναι πολλά υποσχόμενος. Και πολύ ακριβό. Υπάρχει επίσης ένα άλλο σημείο. Η τεχνητή νοημοσύνη, αφενός, δεν είναι πλέον απλώς ένα αντικείμενο διαφημιστικής εκστρατείας, αλλά μια τεχνολογία που έχει φτάσει σε ένα επίπεδο παραγωγικότητας. Από την άλλη πλευρά, η τεχνητή νοημοσύνη εξακολουθεί να αναπτύσσεται. Αυτή η εξέλιξη απαιτεί πολλούς πόρους, πολλές δεξιότητες και πολλά χρήματα. Μέχρι στιγμής, αυτό είναι το επίπεδο των μεγάλων πρωταθλημάτων. Θα πω το αυτονόητο τώρα, αλλά αν θέλετε να είστε στην πρώτη γραμμή της επίθεσης και να οδηγείτε την πρόοδο με τα χέρια σας, στοχεύστε σε μια εταιρεία όπως το Facebook ή η Amazon.

Ταυτόχρονα, η τεχνολογία χρησιμοποιείται ήδη σε διάφορους τομείς: στον τραπεζικό τομέα, στις τηλεπικοινωνίες, σε γιγάντιες βιομηχανικές επιχειρήσεις και στο λιανικό εμπόριο. Και ήδη χρειάζονται άνθρωποι που μπορούν να το υποστηρίξουν. Η Gartner προβλέπει ότι έως το 2020, το 20% όλων των επιχειρήσεων ανεπτυγμένες χώρεςθα προσλάβει ειδικό προσωπικόγια την εκπαίδευση των νευρωνικών δικτύων που χρησιμοποιούνται σε αυτές τις εταιρείες. Οπότε υπάρχει ακόμα λίγος χρόνος για να μάθετε μόνοι σας.

Αναβάθμιση Υποβάθμιση

Η τεχνητή νοημοσύνη αναπτύσσεται τώρα ενεργά και είναι δύσκολο να προβλέψουμε δέκα χρόνια μπροστά. Οι προσεγγίσεις που βασίζονται σε νευρωνικά δίκτυα και υπολογιστές που βασίζονται σε GPU θα κυριαρχούν για τα επόμενα δύο έως τρία χρόνια. Ο ηγέτης σε αυτόν τον τομέα είναι η Python με το διαδραστικό περιβάλλον Jupyter και τις numpy, scipy, tensorflow βιβλιοθήκες.

Υπάρχουν πολλά διαδικτυακά μαθήματα που παρέχουν μια βασική κατανόηση αυτών των τεχνολογιών και γενικές αρχές AI, όπως το μάθημα Andrew Ng. Και όσον αφορά τη διδασκαλία αυτού του θέματος, τώρα στη Ρωσία είναι πιο αποτελεσματικό αυτοεκπαίδευσηή σε μια τοπική ομάδα συμφερόντων (για παράδειγμα, στη Μόσχα, γνωρίζω για την ύπαρξη τουλάχιστον δύο ομάδων όπου οι άνθρωποι μοιράζονται την εμπειρία και τις γνώσεις τους).

Αναβάθμιση Υποβάθμιση

Αναβάθμιση Υποβάθμιση

Μέχρι σήμερα, το πιο ταχέως εξελισσόμενο μέρος της τεχνητής νοημοσύνης είναι, ίσως, τα νευρωνικά δίκτυα.
Η μελέτη των νευρωνικών δικτύων και της τεχνητής νοημοσύνης θα πρέπει να ξεκινήσει με την ανάπτυξη δύο τμημάτων των μαθηματικών - της γραμμικής άλγεβρας και της θεωρίας πιθανοτήτων. Αυτό είναι ένα υποχρεωτικό ελάχιστο, ακλόνητο πυλώνα τεχνητής νοημοσύνης. Οι υποψήφιοι που θέλουν να μάθουν τα βασικά της τεχνητής νοημοσύνης, όταν επιλέγουν ένα πανεπιστήμιο, κατά τη γνώμη μου, θα πρέπει να δώσουν προσοχή σε σχολές με ισχυρή μαθηματική σχολή.

Το επόμενο βήμα είναι η μελέτη της προβληματικής του ζητήματος. Υπάρχει τεράστιος όγκος λογοτεχνίας, τόσο εκπαιδευτικής όσο και ειδικής. Οι περισσότερες δημοσιεύσεις σχετικά με το θέμα της τεχνητής νοημοσύνης και των νευρωνικών δικτύων είναι γραμμένες στα αγγλικά, αλλά δημοσιεύονται και υλικά στη ρωσική γλώσσα. Χρήσιμη βιβλιογραφία μπορείτε να βρείτε, για παράδειγμα, στη δημόσια ψηφιακή βιβλιοθήκη arxiv.org.

Αν μιλάμε για τους τομείς δραστηριότητας, εδώ μπορούμε να διακρίνουμε την εκπαίδευση εφαρμοσμένων νευρωνικών δικτύων και την ανάπτυξη εντελώς νέων παραλλαγών νευρωνικών δικτύων. Ένα εντυπωσιακό παράδειγμα: υπάρχει μια τόσο δημοφιλής ειδικότητα τώρα - "Επιστήμονας Δεδομένων" (Επιστήμονας Δεδομένων). Πρόκειται για προγραμματιστές που, κατά κανόνα, ασχολούνται με τη μελέτη και την προετοιμασία ορισμένων συνόλων δεδομένων για την εκπαίδευση νευρωνικών δικτύων σε συγκεκριμένες, εφαρμοσμένες περιοχές. Συνοψίζοντας, θα ήθελα να τονίσω ότι κάθε εξειδίκευση απαιτεί ξεχωριστό μονοπάτι εκπαίδευσης.

Αναβάθμιση Υποβάθμιση

Πριν ξεκινήσετε μαθήματα στενού προφίλ, πρέπει να μελετήσετε τη γραμμική άλγεβρα και τη στατιστική. Θα σας συμβούλευα να ξεκινήσετε την κατάδυση στην τεχνητή νοημοσύνη με το σχολικό βιβλίο «Μηχανική Μάθηση. Η επιστήμη και η τέχνη της κατασκευής αλγορίθμων που εξάγουν γνώση από δεδομένα είναι ένας καλός οδηγός για αρχάριους. Στο Coursera, θα πρέπει να ακούσετε εισαγωγικές διαλέξεις του K. Vorontsov (τονίζω ότι απαιτούν καλή γνώση της γραμμικής άλγεβρας) και το μάθημα Machine Learning στο Πανεπιστήμιο Stanford, το οποίο διδάσκει ο Andrew Ng, καθηγητής και επικεφαλής του Baidu AI Group. /Google Brain.

Το μεγαλύτερο μέρος είναι γραμμένο σε Python, ακολουθούμενο από το R, Lua.

Αν μιλάμε για Εκπαιδευτικά ιδρύματα, είναι καλύτερο να εγγραφείτε σε μαθήματα στα τμήματα εφαρμοσμένων μαθηματικών και πληροφορικής, υπάρχουν κατάλληλα εκπαιδευτικά προγράμματα. Για να δοκιμάσετε τις ικανότητές σας, μπορείτε να λάβετε μέρος σε διαγωνισμούς Kaggle, όπου μεγάλες παγκόσμιες μάρκες προσφέρουν τις θήκες τους.

Αναβάθμιση Υποβάθμιση

Σε κάθε περίπτωση, πριν ξεκινήσετε έργα, καλό θα ήταν να αποκτήσετε μια θεωρητική βάση. Υπάρχουν πολλά μέρη όπου μπορείτε να αποκτήσετε επίσημο μεταπτυχιακό σε αυτόν τον τομέα ή να βελτιώσετε τις δεξιότητές σας. Για παράδειγμα, η Skoltech προσφέρει μεταπτυχιακά προγράμματα στην Υπολογιστική Επιστήμη και Μηχανική και στην Επιστήμη Δεδομένων, τα οποία περιλαμβάνουν μαθήματα Μηχανικής Μάθησης και Επεξεργασίας Φυσικής Γλώσσας. Μπορούμε επίσης να αναφέρουμε το Ινστιτούτο Ευφυών Κυβερνητικών Συστημάτων του Εθνικού Ερευνητικού Πυρηνικού Πανεπιστημίου MEPhI, τη Σχολή Υπολογιστικών Μαθηματικών και Κυβερνητικής του Κρατικού Πανεπιστημίου της Μόσχας και το Τμήμα Ευφυών Συστημάτων του Ινστιτούτου Φυσικής και Τεχνολογίας της Μόσχας.

Εάν υπάρχει ήδη επίσημη εκπαίδευση, υπάρχει ένας αριθμός μαθημάτων σε διάφορες πλατφόρμες MOOC. Για παράδειγμα, το EDx.org προσφέρει μαθήματα τεχνητής νοημοσύνης από τη Microsoft και το Πανεπιστήμιο Κολούμπια, το τελευταίο από τα οποία προσφέρει ένα πρόγραμμα μικρομάστερ με μέτριο κόστος. Θα ήθελα να τονίσω ότι συνήθως μπορείτε να αποκτήσετε την ίδια τη γνώση δωρεάν, η πληρωμή γίνεται μόνο για ένα πιστοποιητικό εάν χρειάζεται για το βιογραφικό σας.

Αν θέλετε να «βουτήξετε βαθιά» στο θέμα, ορισμένες εταιρείες στη Μόσχα προσφέρουν εντατικές ασκήσεις διάρκειας μιας εβδομάδας με πρακτικές ασκήσεις και προσφέρουν ακόμη και εξοπλισμό για πειράματα (για παράδειγμα, newprolab.com), ωστόσο, η τιμή τέτοιων μαθημάτων είναι από αρκετές δεκάδες χιλιάδες ρούβλια.

Από τις εταιρείες που αναπτύσσουν Τεχνητή Νοημοσύνη, πιθανότατα γνωρίζετε την Yandex και τη Sberbank, αλλά υπάρχουν πολλές άλλες διαφόρων μεγεθών. Για παράδειγμα, αυτή την εβδομάδα το Υπουργείο Άμυνας άνοιξε το ERA Military Innovation Technopolis στην Ανάπα, ένα από τα θέματα του οποίου είναι η ανάπτυξη τεχνητής νοημοσύνης για στρατιωτικές ανάγκες.

Αναβάθμιση Υποβάθμιση

Πριν μελετήσετε την τεχνητή νοημοσύνη, είναι απαραίτητο να λύσετε μια θεμελιώδη ερώτηση: πάρτε το κόκκινο χάπι ή το μπλε.
Το κόκκινο χάπι είναι να γίνεις προγραμματιστής και να βουτήξεις στον σκληρό κόσμο των στατιστικών μεθόδων, των αλγορίθμων και της συνεχούς κατανόησης του αγνώστου. Από την άλλη πλευρά, δεν είναι απαραίτητο να βιαστείτε αμέσως στην «κουνελότρυπα»: μπορείτε να γίνετε διαχειριστής και να δημιουργήσετε AI, για παράδειγμα, ως διαχειριστής έργου. Πρόκειται για δύο ριζικά διαφορετικούς δρόμους.

Το πρώτο είναι υπέροχο αν έχετε ήδη αποφασίσει ότι θα γράψετε αλγόριθμους τεχνητής νοημοσύνης. Τότε πρέπει να ξεκινήσετε με την πιο δημοφιλή κατεύθυνση σήμερα - τη μηχανική μάθηση. Για να γίνει αυτό, πρέπει να γνωρίζετε τις κλασικές στατιστικές μεθόδους ταξινόμησης, ομαδοποίησης και παλινδρόμησης. Θα είναι επίσης χρήσιμο να εξοικειωθείτε με τα κύρια μέτρα για την αξιολόγηση της ποιότητας μιας λύσης, τις ιδιότητές τους ... και όλα όσα έρχονται στην πορεία.

Μόνο αφού κατακτηθεί η βάση, αξίζει να μελετήσετε πιο ειδικές μεθόδους: δέντρα απόφασης και σύνολα από αυτά. Σε αυτό το στάδιο, πρέπει να βουτήξετε βαθιά στους βασικούς τρόπους κατασκευής και εκπαίδευσης μοντέλων - κρύβονται πίσω από τις ελάχιστα αξιοπρεπείς λέξεις bagging, boosting, stacking ή blending.

Αξίζει επίσης να γνωρίζετε τις μεθόδους για τον έλεγχο της επανεκπαίδευσης των μοντέλων (ένα άλλο «είναι» είναι υπερβολικό).

Και, τέλος, το ίδιο το επίπεδο Jedi - απόκτηση εξαιρετικά εξειδικευμένων γνώσεων. Για παράδειγμα, η βαθιά εκμάθηση θα απαιτήσει τον έλεγχο των βασικών αρχιτεκτονικών και αλγορίθμων της gradient descent. Εάν ενδιαφέρεστε για εργασίες επεξεργασίας φυσικής γλώσσας, προτείνω να μελετήσετε τα επαναλαμβανόμενα νευρωνικά δίκτυα. Και οι μελλοντικοί δημιουργοί αλγορίθμων για την επεξεργασία εικόνων και βίντεο θα πρέπει να εμβαθύνουν στα συνελικτικά νευρωνικά δίκτυα.

Οι δύο τελευταίες δομές που αναφέρθηκαν είναι τα δομικά στοιχεία των σημερινών δημοφιλών αρχιτεκτονικών: αντίπαλα δίκτυα (GANs), σχεσιακά δίκτυα, συνδυασμένα δίκτυα. Επομένως, θα είναι χρήσιμο να τα μελετήσετε, ακόμα κι αν δεν σκοπεύετε να διδάξετε στον υπολογιστή να βλέπει ή να ακούει.

Μια πολύ διαφορετική προσέγγιση για την εκμάθηση της τεχνητής νοημοσύνης - γνωστό και ως το "μπλε χάπι" - ξεκινά με το να βρείτε τον εαυτό σας. Η τεχνητή νοημοσύνη δημιουργεί ένα σωρό εργασίες και ολόκληρα επαγγέλματα: από διαχειριστές έργων τεχνητής νοημοσύνης έως μηχανικούς δεδομένων που είναι ικανοί να προετοιμάζουν δεδομένα, να τα καθαρίζουν και να δημιουργούν συστήματα κλιμάκωσης, υψηλού φορτίου και ανοχής σε σφάλματα.

Έτσι, με μια «διαχειριστική» προσέγγιση, θα πρέπει πρώτα να αξιολογήσετε τις ικανότητες και το υπόβαθρό σας και μόνο μετά να επιλέξετε πού και τι θα σπουδάσετε. Για παράδειγμα, ακόμη και χωρίς μαθηματική νοοτροπία, μπορείτε να σχεδιάσετε διεπαφές τεχνητής νοημοσύνης και οπτικοποιήσεις για έξυπνους αλγόριθμους. Αλλά ετοιμαστείτε: σε 5 χρόνια, η τεχνητή νοημοσύνη θα αρχίσει να σας τρολάρει και να σας αποκαλεί «ανθρωπιστή».

Οι κύριες μέθοδοι ML υλοποιούνται με τη μορφή έτοιμων βιβλιοθηκών που είναι διαθέσιμες για σύνδεση διαφορετικές γλώσσες. Οι πιο δημοφιλείς γλώσσες στο ML σήμερα είναι: C++, Python και R.

Υπάρχουν πολλά μαθήματα τόσο στα ρωσικά όσο και Αγγλικάόπως τα μαθήματα Yandex School of Data Analysis, SkillFactory και OTUS. Αλλά προτού επενδύσετε χρόνο και χρήμα σε εξειδικευμένη εκπαίδευση, νομίζω ότι αξίζει να «μπείτε στο θέμα»: παρακολουθήστε ανοιχτές διαλέξεις στο YouTube από συνέδρια του DataFest τα τελευταία χρόνια, παρακολουθήστε δωρεάν μαθήματα από την Coursera και τη Habrahabra.

mob_info