Wpis z mikrobloga

czy #java i #machinelearning lub #deeplearning #siecineuronowe idą w parze?
Czy wykorzystuje się javę jako język, w którym impelementuje się jakąś sztuczną inteligencję? Mówię o zastosowaniach komercyjnych a nie bibliotekach, których i tak nikt nie używa oprócz pasjonatów.
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rzezbi: ogólnie back-endy SI zazwyczaj i tak są napisane w C i C++, więc języki wyższego poziomu mają zazwyczaj tylko bindingi, bo się tylko nadają do klejenia (kształtowania przepływu danych oraz konfigurowania komponentów/modułów/bibliotek/kerneli).
  • Odpowiedz
czyli te wszystkie biblioteki pythona są tylko do nauki? Nie są wykorzystywane komercyjnie?


@rzezbi: taka architektura jest normalną praktyką i jeżeli biblioteka/framework jest dojrzały, to czemu miałby nie być używany komercyjnie?

Przykład:
  • Odpowiedz
@rzezbi: oraz bindingi do języka Java: https://www.tensorflow.org/install/lang_java

Niskopoziomowo, to każda aplikacja wykonywująca się na danym procesorze wykonuje się w postaci kodu maszynowego, więc robić bindingi międzyjęzykowe nie jest niczym niezwykłym.

Język programowania należy zawsze dobierać względem problemu. Np. do pracy z XML na pewno wybrałbym tylko spośród Java i C#.
  • Odpowiedz
@rzezbi: sieci neuronowe to dość prymitywne mechanizmy, opierające się na obliczeniach macierzowych. Te są wydajne i szybkie, jak masz możliwość wykorzystania arytmetyki wskaźników. Języki wyższego poziomu od Cpp zwykle nie mają ku temu możliwości lub jest to mocno kulawe. Dlatego robi się binding do niskopoziomowych implementacji. To w czym się przygotowuje dane i flow, to już tak zwane wszystko jedno.
  • Odpowiedz
@globalbus: czyli gdybym chciał się uczyć sztucznej inteligencji tzn. chciałbym pracować w tym jako developer, a jedynie znam trochę javę i pythona a C++ nie cierpię ani w ogóle nisko poziomowych języków to czy jest sens iść w tym kierunku?
  • Odpowiedz
@rzezbi: żaden język Ciebie nie eliminuje, ale zastanów się co chciałbyś robić. To nie jest tak że wszyscy w tej dziedzinie robią jedno i to samo.
  • Odpowiedz
@tptak: a na co z grubsza można ich podzielić? wiem, że trzeba przygotować dane, obrobić je, oczyścić czy coś, jest ktoś kto tworzy model (to chyba te mózgi z doktoratami) i jak sobie to wyobrażam jest develoepr który implementuje to jakoś. Pewnie jest zupełnie inaczej :) Możesz powiedzieć coś z doświadczenia?
  • Odpowiedz
@rzezbi: ludzie i tak używają tego jak małpy, więc do implementacji niskopoziomowej nie musisz sięgać. Powinieneś tylko z grubsza wiedzieć co tam pod spodem się dzieje.
  • Odpowiedz
czyli gdybym chciał się uczyć sztucznej inteligencji tzn. chciałbym pracować w tym jako developer, a jedynie znam trochę javę i pythona a C++ nie cierpię ani w ogóle nisko poziomowych języków to czy jest sens iść w tym kierunku?


@rzezbi: Sprawdź co jest w ofertach pracy jeśli Twój cel to praca w tej dziedzinie. Możesz dobrze ogarniać temat a ktoś będzie krzywo patrzył bo nie znasz frameworka który akurat jest
  • Odpowiedz
@rzezbi: W zdecydowanej większości zastosowań króluje Python. Spodziewam się, że w Javie co najwyżej będzie uruchomiony model na produkcji - gdzieś, gdzie już jest Java i takie jest wymagania. Natomiast nie słyszałem jeszcze, żeby ktoś prototypował w Javie.
  • Odpowiedz
@rzezbi: Na rynku Python przeważa do zastosowań analitycznych oraz uczenia maszynowego. R również przydaje się głównie w analityce, szczególnie w farmaceutyce. Można go też użyć do uczenia maszynowego, natomiast nie spotkałem jeszcze zespołu, który by go preferował ponad Pythona.

W przyszłości Java może mieć większe znaczenie, gdyż miesiąc temu Oracle wydało Tribuo, bibliotekę do machine learningu w Javie.

Ogólnie znajomość Javy głównie plusuje w projektowaniu pipelineów Big Data, chociażby
  • Odpowiedz