Machine Learning Programmiersprache

  • Ich würde gerne eine kleine Diskussion starten zum Thema Machine Learning und Programmiersprachen.
    Der Hintergrund ist einfach der: Ich würde mir gerne eine Programmiersprache beibringen, weiß jedoch weder was die Unternehmen Heutzutage in diesem Bereich nutzen, noch was sinnvoll wäre.
    Meine Überlegung, nach Recherchen, wäre C++ zu nehmen. Weitere Überlegungen wären Java oder Python.
    Welche Erfahrungen habt ihr damit gemacht?

  • Ich dachte immer (nach Aussagen von Profs und im Netz), dass R und Python die meistgenutzten Sprachen für machine learning seien.
    Ist aber auch egal. Fast alle objektorientierten Sprachen funktionieren ähnlich und weisen ähnliche Strukturen auf. Die Unterschiede sind oft neben einer leicht anderen Syntax in den fortgeschrittenen Anwendungen zu finden (Mehrfachvererbung C++, stattdessen Interfaces in Java usw.).


    An deiner Stelle würde ich mir je nach Wissensstand eine Sprache mit einer nicht allzu steilen Lernkurve aussuchen und einfach mal die ersten Schritte lernen. Neben der Uni wirst du da locker 6 Monate brauchen, um richtige Erfolgserlebnisse zu haben (war zumindest bei mir so...bin aber auch oft nicht der Produktivste)


    C++ kann ich selbst (noch) nicht, soll aber wegen des riesigen Umfangs und des fortgeschrittenen Alters eher eine steile Lernkurve haben. Python und Java fand ich sehr angenehm. Vor allem Python, weil es dich zwingt, Ordnung in deinem Code zu halten. Du kannst auf codecademy oder Sololearn etc. ja einfach mal die großen, bekannten Sprachen durchprobieren für 1-2 Wochen und dann entscheiden, was dir am besten gefällt.


    Kenntnisse in einer Sprache lassen sich dann sehr schnell auf die nächste übertragen. Zumindest kommt es mir bis jetzt so vor ;)
    Viel Spaß!

  • Tatsächlich kann ich das mittlerweile gar nicht mal so unterschreiben. Je mehr Menschen sich damit beschäftigen, desto mehr unterschiedlicher Meinungen gibt es dazu!

    Du kannst auf codecademy oder Sololearn etc. ja einfach mal die großen, bekannten Sprachen durchprobieren für 1-2 Wochen und dann entscheiden, was dir am besten gefällt.


    Kenntnisse in einer Sprache lassen sich dann sehr schnell auf die nächste übertragen. Zumindest kommt es mir bis jetzt so vor ;)
    Viel Spaß!

    Ich denke ich werde das tatsächlich probieren. Mit Java komme ich halt ziemlich gut klar. Möchte halt jetzt mehr in die Richtung Machine Learning gehen und würde dann gerne sofort die passende Sprache nehmen.

  • Meines Wissens nach wird gerade zum Prototypen im Machine Learning gerne Python benutzt, beispielsweise im Zusammenhang mit Keras oder Tensorflow.
    Geht es dann um Performance kommt man wohl um eine kompilierende Sprache (z.B. C++) nicht rum.

  • Normale Applikationen und exploration hat sich in der Industry Python durchgesetzt. High performance oder big data muss du per c++ machen.


    Auch Tensorflow bspw. wurde zunächst für Python released und anschließend um c++ ergänzt.


    Mein Vorschlag: Python solide lenen, anschließend ML machen bspw. bei kaggle.
    Am wichtigsten ist nicht lange überlegen und rumprobieren, sonder für eine Sache entscheiden und dann durchziehen. Es werden immer die Punkte kommen wo eine Sprache der anderen überlegen ist und ein definitives objektives Ergebnis wird es selten geben.


    Viel Erfolg!

    • Offizieller Beitrag

    High performance: C++
    Fast implementation: Python


    Beide können auch zur Programmierung anderer Software verwendet werden. Alternative ist R, was auschließlich für Statistik und Machine Learning verwendet werden kann.


    Für Python gibt es aktuell wesentlich mehr Machine Learning Algorithmen bzw. Tools und Dokumentation (scikit-learn) als für C++.

  • Also C++ spielt aus meiner Erfahrung eine geringere Rolle, wenn es um Machine Learning geht. Python bietet die meisten Bibliotheken für Deep Learning. R ist sehr etabliert im "klassischen" Data Mining Bereich. Und sowohl R als auch Python können sehr gut im Big Data Bereich eingesetzt werden, da beides auf den Clustern ausgeführt werden kann. C++ ist halt im Bereich Embedded Systems und Steuerungen üblich und wird natürlich auch einsetzt, wenn die Leute aus diesem Bereich jetzt mit Machine Learning anfangen.

  • Für dass was du machen willst Python. Die meisten Machine Learning Programme sind zwar in C++ geschrieben. Auf das Interface greifst du aber dann per Python zu. Kannst ja mal mit den Tutorials für Tensorflow anfangen.

  • Danke für die ganzen Antworten!


    Also fasse ich jetzt einfach mal zusammen, dass in den meisten Fällen, im Machine Learning, Python die bessere Wahl wäre.


    Eine weitere Frage an euch. Vorrausgesetzt ich möchte mich danach erweitern oder mich vom machine Learning entfernen und mein Wissen im Bereich der Regelungstechnik oder doch eher Richtung Künstliche Intelligenz erweitern. Kann man bei diesen Gebieten dennoch problemlos in Python bleiben oder sollte man in Richtung C++ gehen?

  • Danke für die ganzen Antworten!


    Also fasse ich jetzt einfach mal zusammen, dass in den meisten Fällen, im Machine Learning, Python die bessere Wahl wäre.


    Eine weitere Frage an euch. Vorrausgesetzt ich möchte mich danach erweitern oder mich vom machine Learning entfernen und mein Wissen im Bereich der Regelungstechnik oder doch eher Richtung Künstliche Intelligenz erweitern. Kann man bei diesen Gebieten dennoch problemlos in Python bleiben oder sollte man in Richtung C++ gehen?

    Für Regelungstechnik sind vor allem MATLAB/Simulink, PureData und LabVIEW (grafisch) in Gebrauch. Alles, was effizient mit Matrizen umgehen kann. Bei KI wird oft Lisp, Prolog oder eben Python verwendet.
    Du kannst mit Python also nichts falsch machen. Später kannst du dich dann mit Bibliotheken wie Tensorflow etc. beschäftigen und bei Bedarf MATLAB lernen :)

  • Du scheinst dir allgemein Unsicher zu sein wo du anfangen sollst.


    Was ich empfehlen würde: Versuch cpp zu lernen/verstehen. Stimmt zwar dass der Großteil beim ML in Python ist, jedoch sind sämtliche Sprachen ähnlich und -Behauptung- cpp ist der King von allem. Hast du cpp drauf, sind alle anderen Sprachen ziemlich "easy" (Meine Erfahrung)

  • Hat jemand hier Erfahrungen bzgl. Modulen/Vorlesungen im Bereich KI/Machine Learning gemacht? In den üblichen MB-Wahlmodulen taucht ja leider nix dergleichen auf. 8|


    Da ich noch einige Master-CPs frei habe, würde sich das anbieten, gerade weil mich das Thema ziemlich interessiert.

  • Informatik im Maschinenbau II


    Kann ich leider nur bedingt empfehlen. Die Inhalte (Hauptsächlich Machine Learning mit allem was dazu gehört, inklusive etwas Deep Learning/Neuronale Netze) sind interessant, die VL ok, die Übung auch.
    Die Prüfung war zumindest vergangenes Semester ziemlich asi bzw. "komisch".
    Die Übungen haben mich jedenfalls nicht darauf vorbereitet und neben diesen gab es nur wenig Material..

    • Offizieller Beitrag

    Meiner Meinung nach musst du wenn du in der "Informatik-orientierten" Ecke das Maschinenbaus unterwegs bist allen voran Matlab können. Die können mittlerweile auch etwas ML und es gibt Möglichkeiten deine Python Projekte anzusteuern und auszuwerten.


    Die besten Tutorials zum Lernen von ML beziehen sich auf Python (z.B. https://www.coursera.org/learn/python-machine-learning/) und in den Firmen/Instituten in denen ich davon mitbekommen habe (Automotive Bereich) wird Python genutzt.


    In Welche Richtung der Regelungstechnik möchtest du gehen? Wenn du Fahrzeugregelung auf einem Steuergerät entwickeln willst geschieht das in C beziehungsweise in Matlab/Simulink indem Matlab C-Code generiert.


    Java ist zum Beispiel gut für Handy-Entwicklung. In Forschung und Industrie im automotive Bereich hat Java meines Wissens eine geringe Relevanz.


    Viel Erfolg,
    Roadrunner

  • In Welche Richtung der Regelungstechnik möchtest du gehen? Wenn du Fahrzeugregelung auf einem Steuergerät entwickeln willst geschieht das in C beziehungsweise in Matlab/Simulink indem Matlab C-Code generiert.


    Um das korrekt darstehen zu lassen (auch wenn ich mir sicher bin dass du das eigentlich meinst), die automobilindustrie arbeitet zu aller größten teilen mit c++, wer sich also für Assistenzsystementwicklung und co interessiert sollte sich damit eher auseinandersetzen

  • Kann auch bestätigen dass hauptsächlich Python in der Industrie verwendet wird. Mathworks arbeitet aber auch fleißig an ihrer Matlab Machine Learning Toolbox. Im kleineren Rahmen wie Abschlussarbeiten etc. und wenn man schon Erfahrung mit Matlab hat, kommt man damit auch gut ans Ziel denke ich.


    Der bekannteste Coursera überhaupt, Machine Learning von Andrew Ng, arbeitet auch mit Matlab (https://www.coursera.org/learn/machine-learning) und ist wirklich gut um die Konzepte zu verstehen.


    Mache momentan ein Praktikum bei einem OEM in dem ich Machine Learning Methoden zur Fehlererkennung in der Produktion einsetze. Finde es super in so einer Schnittstellen zu arbeiten. Es werden auch ständig Leute gesucht, also falls jemand von euch Interesse hat, könnt ihr mir gerne eine Nachricht schreiben.