Machine learning, KI u.s.w ... macht das jemand?

Dieses Thema im Forum "Softwareforum" wurde erstellt von Silent Hunter, 15. April 2018.

  1. Silent Hunter Bambis Alptraum

    Silent Hunter
    Registriert seit:
    7. März 2000
    Beiträge:
    27.022
    Angeregt durch ein paar c't-Artikel, u.a. in deren Python-Sonderheft, habe ich mir vorgenommen, mal wieder (nach, äh, fast 20 Jahren) in den Bereich machine learning zu gucken.

    Damals war das ein interessantes Forschungsgebiet ohne viel Praxisrelevanz, was u.a. auch daran lag, dass man mit Grafikkarten (Voodoo1! Riva128!) eben gezockt und nicht gerechnet hat.

    Heute dagegen gibt's vorgefertigte Frameworks (Tensorflow&Co), damit man gar nicht mehr seine eigenen Neuronen programmieren muss, sondern nur noch die Struktur des Netzwerks, Eingänge, Ausgänge und Bewertungsfunktion festlegt und los gehts.

    Naja, denkste. Erstmal kann ich kaum Python; meine üblichen Zielsysteme sprechen das nämlich nicht. Und für Highlevelzeugs nehme ich MatLab. Also ist wohl erstmal Python lernen angesagt.
     
  2. Ich befasse mich nun berufsbedingt seit einigen Wochen mit dem Thema.

    Ich würde mich noch nicht als besonders versiert bezeichnen, aber habe bereits jetzt den Kaffee auf, was den populistischen Umgang damit angeht.

    Gerade die ganzen "KI übernimmt die Welt #skynet"-Experten, können ganz schön anstengend sein, wenn man sich mal außerhalb von Fachliteratur über KI austauschen will.

    Mein letzter Kommentar dazu:
    "Wenn ich mir das Niveau der Kommentare auf gamestar.de zu jedem beliebigen KI-Thema so ansehe, mache ich mir keine Hoffnung, dass in absehbarer Zeit ausreichend differenziert denkende KI-Entwickler am Markt sind, die imstande dazu wären, ein solches System zu realisieren."

    Wenn ich mir ein besseres Bild von der Thematik gemacht habe, beteilige ich mich aber gerne weiter an dem Thread.
     
    Zuletzt von einem Moderator bearbeitet: 7. Juli 2018
  3. Daepilin

    Daepilin
    Registriert seit:
    25. August 2008
    Beiträge:
    25.306
    Ich selbst mach da wenig, meine Kollegen dafür zum Großteil nichts anderes: (Fahrassistenzssysteme/autonomes Fahren)

    1) Schau dir Keras an. Ist ein wrapper für Tensorflow, der das ganze wirklich kinderleicht macht. Klar, vielleicht nicht ganz so mächtig wie reines Tensorflow, aber für den Anfang mehr als ausreichend. Wenn du die Möglichkeit(aka: einigermaßen moderne Nvidia GPU) hast nimm auf jeden Fall die GPU Version. Selbst bei low-mid end karten (mein Workstation Laptop hat z.B. ne Quadro M1200, entspricht etwa ner 960/1050) ist der unterschied zu jeglicher CPU absolut massiv

    2) Matlab würde ich da nichtmehr nutzen. Gibt zwar mit Matconvnet auch da eine Toolbox, aber die ist deutlich eingeschränkter als Tensorflow/Keras und man ist halt auf das extrem teure Umfeld Matlab angewiesen... Python ist, wenn man von Matlab kommt, echt kein riesen Hexenwerk. Für die matrix mathe lib Numpy gibts sogar Listen die Matlab/Python funktionen gegenüberstellen. Meistens ist die nutzung exakt gleich, es heißt nur minimal anders

    3) Das wichtigste sind eine große, große Menge Daten. Es gibt für jeden möglichen Zweck zwar fertige, freie Datensets, aber die Qualität ist da sehr unausgeglichen. Sobald du was machen willst wofür du keine Daten hast hast du ein Problem, die nötigen Datenmengen für komplexe Netzwerke sind als einzelperson nur sehr schwer erschaffbar, vor allem wenn es über Klassifikation herausgeht. Ganz heißes Thema ist in letzter zeit Segmantische Segmentierung, aber diese mehr oder weniger Pixelgenauen Segmentationen zu erstellen ist ein haufen Arbeit

    4) Ist auf jeden Fall extrem faszinierend, was da mittlerweile geht. Z.B. https://github.com/facebookresearch/Detectron, wobei du das sicher schon gesehen hast, wenn du einiges gelesen hast.


    Falls du spezifischere Fragen hast kann ich gerne Versuchen die zu beantworten, wie gesagt, mach selbst nicht viel damit, bekomme aber täglich allerhand mit :)
     
  4. unreal ..hat nun HSDPA :ugly:

    unreal
    Registriert seit:
    6. Mai 2005
    Beiträge:
    25.973
    Vielleicht sollte man auch nicht den "KI"-Begriff verwenden. Das verwirrt die meisten doch nur. Und eine "Intelligenz" sind die meisten Ergebnisse sowieso nicht. :ugly:
     
  5. Silent Hunter Bambis Alptraum

    Silent Hunter
    Registriert seit:
    7. März 2000
    Beiträge:
    27.022
    Ja ... soweit habe ich das verstanden. Dummerweise hätte ich eine Anwendung im Sinn, für die man die Daten nicht kurz im Netz findet, weil Nischenprodukt ... und die Klassifikation vorher müsste man auch von Hand machen. Aber vielleicht fällt mir noch was ein.

    Keras habe ich gesehen. Jetzt muss ich nur noch besser Python lernen. ;)
     
  6. psycho7765 Injection Vector

    psycho7765
    Registriert seit:
    31. Juli 2001
    Beiträge:
    1.628
    Zunächst scheinst du Machine Learning und Deep Learning synonym zu gebrauchen, was nicht richtig ist. Zu Machine Learning gehören neben DL auch z.B. simple Regressionsmodelle die es schon ewig und drei Tage gibt und auch "damals" sicher Relevanz hatten.

    Deep Learning hat in den letzten Jahren irre Fortschritte gemacht, ist aber auch zu eine Art Hype geworden, der verführt, auf jedes Lernproblem mit Deep Neural Networks zu werfen. In manchen fällen ist das obligatorisch (Convolutional Neural Networks im Bereich Computer Vision), in manchen grober Unfug. Ich frage mich deshalb als erstes, was dich zu der Überzeugung bringt, dass dein Klassifikationsproblem besser mit DL als z.B. mit logistischer Regression oder Decision Trees zu lösen ist.

    Ein Problem damit in ML auf diese Weise einzusteigen ist, dass dir viele Erfahrungen fehlen die man bei der Arbeit mit "traditionellen" Modellen besser sammelt. Ja mit Keras kann man in nullkommanichts ein DNN aufbauen. Aber es kann gut sein dass dann selbst ein simples Netz bei einem simplen Problem lausig performt. Denn das eigentliche Problem ist in der Regel nicht ein technisches, sondern Know-How. Allein Feature-Engineering ist eine Wissenschaft für sich und Konzepte wie Cross validation, Regularization oder hier die ganzen Metriken (Precision, Recall, f1, ROC, ..) müssen bekannt sein. Wenn es ohne Vorwissen dann auch noch gleich from scratch mit komplexeren Netzwerktopologien wie besagten CNNs losgehen soll dann wird das Ergebnis wahrscheinlich .. ernüchternd sein.

    Ich würde dir das Buch "Hands-On Machine Learning with Scikit-Learn and TensorFlow" empfehlen. Die erste Hälfte behandelt die notwendigen ML-Konzepte anhand einfacherer Modelltypen, mit Code in Python. Die zweite Hälfte handelt dann von DL, sowohl konzeptionell als auch von der konkreten Implementierung. Letzere ist aber dann aber in "Plain"-Tensorflow und damit weniger zugänglich (dafür aber evtl. lehrreicher) als Keras.

    In dem Fachgebiet zählt Machine Learning übrigens zum Oberbegriff künstliche Intelligenz. Dass Fachfremde dann gleich an Skynet denken ändert daran nichts.
     
  7. Silent Hunter Bambis Alptraum

    Silent Hunter
    Registriert seit:
    7. März 2000
    Beiträge:
    27.022
    Da muss der Eindruck täuschen.

    Ist mir bekannt - davon habe ich auch schon etwas beruflich in einem Produkt eingesetzt (war ein generalized linear model mit von mir handgemachten Featurefunktionen).

    Ich habe an diesem speziellen Problem schon ein bisschen herumexperimentiert und keine brauchbaren Ergebnisse hingekriegt. Ich will sehen, ob der Algorithmus aus den ziemlich unstrukturierten Daten (grob gesagt: pulsierendes Rauschen) eine bessere Klassifikation ableiten kann.
     
Top