Wie lernt man künstliche Intelligenz?

16

Ich bin ein Student der Softwaretechnik und bin ein absoluter Anfänger der KI. Ich habe viele Artikel darüber gelesen, wie man AI lernt, aber jeder Artikel schlägt einen anderen Weg vor. Ich habe mich gefragt, ob mir einige von Ihnen Experten dabei helfen können, richtig anzufangen.

Noch ein paar konkrete Fragen

  1. Auf welche Sprache soll ich mich konzentrieren? In vielen Artikeln wird Python, C ++ oder Lisp für AI empfohlen. Kann ich Java anstelle einer der anderen genannten Sprachen verwenden?

  2. Was für einen mathematischen Hintergrund sollte ich haben? Während des ersten Jahres habe ich diskrete Mathematik gemacht, die die folgenden Themen umfasste: Mengen, Matrizen, Vektoren, Funktionen, Logik und Graphentheorie (sie haben diese Themen kurz unterrichtet). Gibt es noch weitere Themen, die ich jetzt lernen sollte? Zum Beispiel Kalkül?

Wenn möglich, würde ich mich über Ressourcen oder Bücher freuen, mit denen ich anfangen kann, oder vielleicht könnt ihr mir ein detailliertes Verfahren geben, das ich befolgen kann, um euer Niveau wiederzuerlangen.

Hinweis: Im Moment möchte ich mich auf neuronale Netze und maschinelles Lernen konzentrieren. Danach möchte ich mich mit Robotik und der Verarbeitung natürlicher Sprache beschäftigen.

aspire29
quelle

Antworten:

16

Künstliche Intelligenz ist ein sehr weites Feld und deckt viele und sehr tiefe Bereiche der Informatik, der Mathematik, des Hardware-Designs und sogar der Biologie und Psychologie ab. Was die Mathematik angeht: Ich denke, Kalkül, Statistik und Optimierung sind die wichtigsten Themen, aber so viel Mathematik wie möglich zu lernen, schadet nicht.

Es gibt viele gute kostenlose Einführungsressourcen zu AI für Anfänger. Ich empfehle dringend, mit diesem zu beginnen: http://aiplaybook.a16z.com/ Sie haben auch zwei Videos über die allgemeinen Konzepte der KI veröffentlicht, die Sie auf Vimeo finden: "KI, Deep Learning und Maschinelles Lernen: Eine Einführung "und" Das Versprechen der KI "

Sobald Sie ein klares Verständnis der grundlegenden AI-Begriffe und -Ansätze haben, müssen Sie herausfinden, was Ihre Ziele sind. Welche Art von KI-Software möchten Sie entwickeln? Für welche Branchen interessieren Sie sich? Welche Chancen haben Sie, sich an Projekten großer Unternehmen zu beteiligen? Es ist einfacher, die richtigen Werkzeuge zu finden, wenn Sie genau wissen, was Sie erreichen möchten.

Für die meisten AI-Neulinge ist Deep Learning der interessanteste Bereich. Um es klar zu machen, es gibt viele Bereiche des KI außerhalb des maschinellen Lernens und es gibt viele Bereiche des maschinellen Lernens außerhalb des vertieften Lernens. (Künstliche Intelligenz> Maschinelles Lernen> Tiefes Lernen) Die meisten aktuellen Entwicklungen und hochgespielten Nachrichten beziehen sich auf DL.

Wenn Sie sich auch für Deep Learning interessieren, müssen Sie sich zunächst mit den Konzepten künstlicher neuronaler Netze vertraut machen. Glücklicherweise ist es nicht allzu schwierig, die Grundlagen zu verstehen, und es gibt viele Tutorials, Codebeispiele und kostenlose Lernressourcen im Web. Außerdem gibt es viele Open-Source-Frameworks, mit denen Sie experimentieren können.

Das beliebteste Deep-Learning-Framework ist TensorFlow. Es wird von Google unterstützt. Ich liebe es oder hasse es, es ist ein Python-basiertes Framework. Es gibt auch viele andere Python-basierte Frameworks. Scikit-Learn, Theano, Keras werden auch häufig in Tutorials erwähnt. (Ein Tipp: Wenn Sie Windows verwenden, können Sie WinPython herunterladen, das alle diese Frameworks enthält.)

In Bezug auf Java-Frameworks gibt es leider nicht so viele Optionen. Das bekannteste Java-Framework für DL ist Deeplearning4j. Es wurde von einem kleinen Unternehmen entwickelt und seine Nutzerbasis ist viel kleiner als die Menge um TensorFlow. Es gibt weniger Projekte und Tutorials für dieses Framework. Laut Branchenexperten lassen sich Java-basierte Frameworks jedoch besser in Java-basierte Big-Data-Lösungen integrieren und bieten möglicherweise ein höheres Maß an Portabilität und eine einfachere Produktbereitstellung. Nur eine Randnotiz: Das Jet Propulsion Laboratory der NASA verwendete Deeplearning4j für viele Projekte.

Wenn Sie sich für den Flow entscheiden und mehr über TensorFlow erfahren möchten, empfehlen wir Ihnen, die YouTube-Kanäle "DeepLearning.TV", "sentdex" und "Siraj Raval" zu besuchen. Sie haben nette Tutorials und einige coole Demos. Und wenn Sie sich für einen tieferen Tauchgang entscheiden, können Sie sich für einen Online-Kurs bei udacity oder coursera anmelden.

Es könnte für Sie auch interessant sein, zu wissen, dass es für die Java Virtual Machine andere Deep Learning-Frameworks mit alternativen Sprachen gibt, z. B. Clojure. (Clojure ist ein Dialekt von LISP und wurde von John McCarthy erfunden, dem gleichen Informatiker, der den Begriff "künstliche Intelligenz" geprägt hat. Mit anderen Worten, es gibt modernere und populärere Programmiersprachen und Werkzeuge, aber es ist immer noch möglich / und irgendwie cool / um die Sprache für KI zu verwenden, die ursprünglich für KI entwickelt wurde. ThinkTopic in Boulder und Freiheit in Hamburg sind zwei Unternehmen, die Clojure für KI-Projekte verwenden. Ich empfehle dir das YouTube-Video "OSCON 2013: Carin Meier, Die Freude an fliegenden Robotern mit Clojure".

(+++ Es steht jedem frei, mich zu korrigieren, wenn ich etwas Falsches gesagt habe. +++)

akopacsi
quelle
Kann ich, da es für Java weniger Frameworks gibt, meine eigenen Frameworks dafür schreiben, die ich als Ersatz für TensorFlow verwenden kann? Vielen Dank
aspire29
1
Es ist eine sehr gute Idee, ein eigenes Framework zu erstellen, um die grundlegenden Konzepte zu studieren. Andererseits wird TensorFlow von einer riesigen Community und vielen sehr talentierten Fachleuten entwickelt. Ehrlich gesagt glaube ich nicht, dass ein hausgemachtes Framework erfolgreich damit konkurrieren kann. Übrigens verstehe ich nicht, warum es so wenige Java AI-Frameworks gibt ... wenn man bedenkt, dass es immer noch die Nr. 1 ist. Programmiersprache und JVM ist fast überall. Ich denke, bei AI geht es immer noch eher um Forschung als um Produktion.
Akopacsi
6

Sie werden feststellen, dass sowohl Kalkül als auch Lineare Algebra einige Anwendungen in AI / ML-Techniken haben. In vielerlei Hinsicht kann man argumentieren, dass der größte Teil von ML auf lineare Algebra reduziert wird und Kalkül in z. der Backpropagation-Algorithmus zum Trainieren neuronaler Netze.

Es wäre gut, wenn Sie auch eine oder zwei Klassen in Wahrscheinlichkeit und Statistik belegen würden.

Die Wahl der Programmiersprache ist weniger wichtig, IMO. Sie können AI / ML in so gut wie jeder gängigen Sprache und in vielen anderen Sprachen als der gängigen machen. Der größte Unterschied besteht in der Leistung und Verfügbarkeit von Bibliotheken / Tools. C ++ zum Beispiel übertrifft normalerweise Java oder Python und ermöglicht es Ihnen, "nah am Metall" zu sein, um die Fähigkeiten Ihrer Hardware wirklich zu maximieren. Python hat jedoch ein wirklich gutes FFI und wird häufig in Verbindung mit C oder C ++ verwendet. In Python, C ++, Java, R, Octave / Matlab und einigen anderen Sprachen stehen in der Regel viele hochwertige Bibliotheken zur Verfügung, die für Sie je nach Ihren Vorstellungen wichtig sein können.

Das heißt, Sie wollen wahrscheinlich nicht versuchen, ML / AI in COBOL oder PL / I oder RPG / 400 oder so zu machen. Halte dich an etwas, das zumindest einigermaßen beliebt ist. Stöbern Sie auf mloss.org und sehen Sie sich an, welche Bibliotheken / Toolkits in verschiedenen Sprachen verfügbar sind.

Geisteskriminalität
quelle
5

Als ich mich für AI interessierte, fing ich mit den grundlegendsten Dingen an. Mein allererstes Buch war Russell & Norvigs Artificial Intelligence - Ein moderner Ansatz . Ich denke, das ist ein guter Anfang, auch wenn Sie sich hauptsächlich für Deep Nets interessieren. Es behandelt nicht nur die grundlegenden AI-Konzepte und -Algorithmen (Expertensysteme, Tiefensuche und Breitensuche, Wissensrepräsentation usw.), sondern auch die grundlegende Mathematik (Bayesianisches Denken, Logik erster Ordnung, NL n-Gramm usw.). und einige allgemein bekannte Probleme (z. B. das Problem des Handlungsreisenden).

Es kann auch eine gute Idee sein, Statistiken zu lernen, da Sie sich besonders für ML interessieren. Nach dem genannten Buch sollten Sie auch eine gute Vorstellung davon haben, was Sie als Nächstes lernen müssen.

  • Kümmere dich nicht zu sehr um die Programmiersprache.

Es ist viel wichtiger, die Programmierung selbst und die damit verbundenen Techniken zu verstehen. Erfahren Sie etwas über Datenstrukturen, Algorithmen und die verschiedenen Programmierparadigmen (wie OOP, Functional Programming usw.). Versuchen Sie, die Logik hinter der Programmierung und nicht nur eine bestimmte Sprache zu verstehen. Schließlich ist das Erlernen einer neuen Sprache nicht so schwierig, wenn Sie erst einmal das Programmieren verstanden haben (dann ist das Erlernen einer neuen Sprache mehr oder weniger syntaktischer Zucker).

BobbyPi
quelle
1
Aus Gründen der Lesbarkeit habe ich eine kleine Änderung vorgenommen und einen Link zum Lehrbuch hinzugefügt. Gute Ratschläge, insbesondere zu Programmiersprachen. (Sehen Sie sich die Programmierer an, die in "jeder Sprache mit Syntax" arbeiten.) Es kommt wirklich darauf an, was für ein bestimmtes Projekt oder eine bestimmte Aufgabe am besten oder bequemsten ist.
DukeZhou
3

Um AI zu starten, muss man zunächst verstehen, was AI ist. Warum die Genauigkeit von MNIST nach 2012 rapide zunimmt. Warum maschinelles Lernen KI benötigt, um die Genauigkeit zu erhöhen.

Um Application on Machine Learning mit AI zu starten und zu erstellen, brauchten Sie weder Mathematik noch eine Art Raketenwissenschaft. Du bist spät dran, meine Brüder bauen Abkürzungen für alle Probleme des maschinellen Lernens wie einen Wrapper. Sie müssen nur Daten an eine Methode übergeben und die Methode erledigt alles. Beginnen Sie mit MNISTs aufregendem Problem. Lesen Sie mehr über die Geschichte von MNIST und verwenden Sie den Basisalgorithmus. Probieren Sie lineare Regression, logistische Regression, Kmean-Clusting, KNN. Tools für maschinelles Lernen Skite learn (python lib) oder Tensorflow (python lib) tflearn (API von Tensorflow auf höherer Ebene wie ein Wrapper) Beide sind Open Source. Beispiele gibt es auf GitHub. Starten Sie die Suche auf GitHub. Sie haben ein gutes Beispiel gefunden. Für beide lib. Benutze Kaggel, um das Problem zu lösen. Nimm am Wettbewerb teil.

Wenn Sie den obigen Algorithmus abgeschlossen haben, versuchen Sie, sich auf Ihren Fehler zu konzentrieren. Jetzt kam die KI ins Rollen. Versuchen Sie herauszufinden, wie neuronale Netze Ihnen helfen, Fehler zu verringern und die Genauigkeit zu erhöhen. Dann probieren Sie ein grundlegendes neuronales Netzwerk wie Sigmoid, Relu und CNN. Vergessen Sie nicht, Dropout in Ihrem neuronalen Netzwerk zu verwenden. Sie können Tensorflow oder Keras oder Tensorflow mit Keras verwenden

Überprüfen Sie nebeneinander 3 Videos mit der linearen Algebra von Blau 1 Braun, um Ihre Mathematik zu verbessern. einmal am tag aber jeden tag ein video.

Und jetzt konzentrieren Sie sich auf die Mathematik hinter der Logik (jeder Algorithmus). Sie können versuchen, einen maschinellen Lernkurs zu erstellen.

Verwenden Sie Tensorflow zum Erstellen von Android-Apps, iOS-Apps und RaspPi Check Tensorflow dev summit 2016/2017.

Oder wenn Sie einen Crashkurs benötigen, lesen Sie diese https://youtu.be/u4alGiomYP4

evalsocket
quelle
1
Lassen Sie uns klar werden, AI dreht sich nicht nur um das Lesen von HTML-Büchern und Sie beginnen mit dem Programmieren. Lassen Sie uns klar werden, hier! OP muss Professoren aus Oxford, Harvad usw. konsultieren
Quintumnia
3

Bevor man sich mit künstlicher Intelligenz befasst, sollte man mit den Voraussetzungen fertig sein. Es gibt keine solide Liste, aber gute Kenntnisse verschiedener Algorithmen sind obligatorisch. Außerdem sollten Sie mit mindestens einer Programmiersprache wie C ++ oder Java vertraut sein. Ich werde Ihnen nicht vorschlagen, sich mit künstlicher Intelligenz zu beschäftigen, wenn Sie in der Informatik völlig neu sind. Ein wenig Erfahrung mit dem Programmieren vor dem Eintauchen in die künstliche Intelligenz ist ein Pluspunkt für Sie.

Beginnen Sie mit dem Lesen (Blogs, Artikel, wissenschaftliche Artikel usw.) über künstliche Intelligenz. Wie es ist, seine Anwendungen, aktuellen Status und andere Dinge, die Sie finden können. Beginnen Sie, KI-Codes für kleine Spiele wie Tic Tac Toe, Sudoku, Reversi (Othello) usw. zu erstellen. Sie können Ihren eigenen Simulator erstellen und einen Code erstellen, der den Rubik-Cube löst. Erstellen Sie auf ähnliche Weise Codes für die Mustererkennung und das maschinelle Lernen. Nichts ist besser als Lernen durch Handeln. Sprachen wie LISP und Python werden sehr hilfreich sein. Hier sind zwei Antworten, die Ihnen helfen werden, ans1 und ans2 .

Wenn Sie eine Person sind, die gerne liest und aus Büchern lernt (wie ich), können Sie Artificial Intelligence: A Modern Approach (Peter Norvig und Stuart Russell) kaufen. Das Buch ist sehr gut und eignet sich gut für Fortgeschrittene und Fortgeschrittene. Versuchen Sie, die im Buch angegebenen Übungsprobleme zu lösen. Das Lösungs-PDF der Bücher ist online verfügbar . Für maschinelles Lernen empfehle ich zwei Bücher: Mustererkennung und maschinelles Lernen (Christopher M. Bishop) und Programmieren von kollektiver Intelligenz (O'Reilly).

Zu Beginn gibt es einen sehr guten Artikel über künstliche Intelligenz und technologische Singularität.

Der Artikel ist lang und in zwei Teile gegliedert. Ich empfehle Ihnen dringend, diesen Artikel zu lesen, wenn Sie künstliche Intelligenz ernst nehmen. Es gibt Ihnen einige gute Einblicke.

Kenntnisse der Computertheorie werden Ihnen sehr helfen. Besonders, wenn Sie im Bereich der Verarbeitung natürlicher Sprache arbeiten. Andere Bereiche der KI, die Sie interessieren könnten, sind Maschinelles Lernen, Evolutionäres Rechnen, Genetische Algorithmen, Reinforcement Learning, Deep Learning usw. Die Liste geht weiter. Verbessern Sie Ihre statistischen Kenntnisse, und verbessern Sie Ihre Kenntnisse der künstlichen Intelligenz. Bleiben Sie über Foren, Websites usw. auf dem Laufenden. Die Open AI- Website ist auch eine sehr gute Quelle.

Ugnes
quelle