Künstliche Intelligenz C#?
Hi, erstmal als Danke an alle Helfer ein kleiner Joke:
"Why do all java devolopers wear glasses?"
... "because they can't c#"
Okey, und jetzt zur eigentlichen Frage:
Ich befasse mich nebenbei mit Programmieren und strebe auch ein Informatikstudium an. Ich habe mir das programmieren selbst beigebracht (erst über Unity, dann über die App SoloLearn) und würde behaupten das ich zu mindest die Basics von c# kann. Ich habe mir jetzt heute eine kleine AI versucht zu programmieren was nicht so wirklich geklappt hat. Das Ding sollte SchereSteinPapier spielen und dabei gucken was der Spieler wie oft verwendet und dann die Wahrscheinlichkeit von den jeweiligen Möglichkeiten so anpassen, das sie möglichst oft gegen einen Menschen gewinnt.
Ich würde gerne eine AI machen die Muster erkennen kann. Z.B der Auffällt, dass ich wenn ich 3x Stein nehme danach oft Schere nehme und deswegen nach meinem dritten mal Stein auch Stein nimmt. Oder der ich als Input viele Funktionen mit ihren korrekten Ableitungen gebe und der Computer soll sich dann das ableiten selbst beibringen ohne z.B. die Kettenregel zu kennen. Oder er soll TicTacToe spielen lernen. Am anfang setzt er zufällig Kreuze, irgendwann is er unbesiegbar.
Gibt es dafür ne ordentliche API? Am besten in c#? Wie fange ich damit am besten an? Ich finde eigentlich nur python-tutorials mit AI, aber ich hab eingentlich keine Lust jetzt auch noch python zu lernen, ich hab eh nicht so viel zeit zum Programmieren.
Kann mir jemand helfen der sich da auskennt? Und hab ich auf ordentliches AI programmieren überhaupt schon ne chance, weil ich ja eigentlich noch n noob bin.
P.S..: Ich bin kein Skript-Kiddie, ich kopiere keinen Code und weiß was jede einzelne Zeile in meinem Code macht und warum sie da ist ^^
Danke!
4 Antworten
Ich finde eigentlich nur python-tutorials mit AI
Es scheint so zu sein, daß Du nicht an Python vorbeikommst, aber das solltest Du selbst herausfinden.
Ich habe früher mal programmiert, betrachte das Ganze jetzt eher theoretisch.
Deiner Frage nach interessiert Dich selbstlernende KI über die bloße Regelerstellung hinaus. Als Ansatz mal das hier lesen, falls Du es noch nicht kennst:
https://www.edukatico.org/de/kurse?utf8=%E2%9C%93&search=k%C3%BCnstliche+intelligenz
https://msdn.microsoft.com/de-de/magazine/mt736456.aspx
http://d3nce.online/kuenstliche-intelligenz-in-c-schreiben-part-1-hoeren-und-sprechen/
Hi,
brotcrunsher ist imho ein sehr kompetenter Entwickler und führt imho in das Topic neuronale Netze gut ein: https://www.youtube.com/watch?v=fLA96tpYnnU&list=PL58qjcU5nk8sUq97ze6MZB8aHflF0uNgK
_
Gibt es dafür ne ordentliche API? Am besten in c#?
Gegenfrage: Benötigst du denn wirklich eine?
Für Schere-Stein-Papier könnte ich mir beispielsweise vorstellen, dass da bereits ein Array ausreicht, welches mit jedem Element einen Zug darstellt, der pro Spiel gezählt wird. Daraus lässt sich eine Wahrscheinlichkeit berechnen (Math.max). Wollte man dieses Verfahren weiter ausdehnen, wäre eine Baumstruktur besser geeignet.
Würdest du für ein Spiel wie Tic-Tac-Toe einen Algorithmus haben wollen, der nicht erst lernen muss, könntest du übrigens auch Suchverfahren wie das Alpha-Beta-Pruning verwenden.
Wie fange ich damit am besten an?
Ich kann dir nur empfehlen, erst einmal weiter zu recherchieren, denn durchaus gibt es Artikel zu dem Thema AI / KI in C#. Wobei eigentlich eh erst einmal nur die Theorien / Konzepte im Vordergrund stehen sollten. Da ist die Programmiersprache, die du später für die Umsetzung verwendest, ziemlich egal.
- http://www.c-sharpcorner.com/article/C-Sharp-artificial-intelligence-ai-programming-a-basic-object/
- http://www.codeplanet.eu/tutorials/csharp/70-kuenstliche-neuronale-netze-in-csharp.html
Und hab ich auf ordentliches AI programmieren überhaupt schon ne chance, weil ich ja eigentlich noch n noob bin.
Du musst wirklich programmieren (also Probleme mit Algorithmen beschreiben) können und die Grundlagen von C# (wenn du denn C# benutzen möchtest) solltest du wirklich beherrschen.
Gute Antwort, aber von diesem Codeplanet-Tutorial kann ich nur abraten. Das hohe eingangs gesteckte Ziel, eine einfache OCR zu erkennen, wird in der Abhandlung schlicht nicht erreicht - scheinbar hat der Autor das Vorhaben aufgegeben.
Um Python kommst du so erstmal nicht herum, da Python aber eine gute und relativ einfache Sprache ist solltest du keine Probleme mit der Sprache an sich haben.
Bedenke allerdings, dass eine KI sehr viel Aufwand sein kann und du dich wirklich intensiv ins Thema einarbeiten musst. Fortgeschrittene Kenntnisse müssen nicht sein, wären aber sehr von Vorteil.