Python czy .NET / sztuczna inteligencja

0

Wiem, że język programowania to tylko narzędzie, jednak wolę spytać starszych, bardziej doświadczonych kolegów co według Was jest lepszym narzędziem pod SI - .NET czy Python?

Docelowo interesują mnie aplikacje WEB

0

Zdecyduj się, SI, czy WEB :D ?

Sztuczna inteligencja to dużo obliczeń. Lepiej wziąć coś szybkiego (z tych dwóch będzie to C#, chyba, że przez .NET rozumiesz inny język korzystający z tej platformy).

0

Początkujący... heh

Nie ma możliwości zastosowania SI w WEB czy ja czegoś nie rozumiem?

0

Python ma znacznie więcej bibliotek do SI. Dobre też są języki z JVM-a. Szczególnie Java i Scala.

1
Pijany Terrorysta napisał(a):

Początkujący... heh

Nie ma możliwości zastosowania SI w WEB czy ja czegoś nie rozumiem?

Wszystko się da, tylko nie zawsze ma to sens...

Albo inaczej... Ile znasz firm tworzących rozwiązania WEBowe wykorzystujące SI?

0

Inaczej zapytam, dlaczego nie ma sensu? Sądzisz, że SI nie wejdzie mocno WEB już niedługo kwestia kilku lat

0
Pijany Terrorysta napisał(a):

Inaczej zapytam, dlaczego nie ma sensu? Sądzisz, że SI nie wejdzie mocno WEB już niedługo kwestia kilku lat

Wejść, to już weszło. Ale raczej zawsze będzie to mały procent, jakieś systemy rekomendacyjne, itp. Minie wiele lat, za nim się to mocniej upowszechni, poza tym wiele stron nie potrzebuje SI i nigdy nie będzie potrzebować..

Właśnie o to mi chodziło :D I jaka jest szansa, że autor wątku się tam dostanie :D ? - Spine dzisiaj, 01:42

Skąd wiesz, że autor wątku za parę lat nie kupi Google czy Amazon ?

4
Pijany Terrorysta napisał(a):

Nie ma możliwości zastosowania SI w WEB czy ja czegoś nie rozumiem?

Nie rozumiesz i źle formułujesz pytanie.
Zamiast pytać o to, czy jest możliwość zastosowania samochodu w Polsce, spytaj, czy można samochodem dojechać z Warszawy do Łodzi.

Biały Mleczarz napisał(a):

Skąd wiesz, że autor wątku za parę lat nie kupi Google czy Amazon ?

W takich chwilach chciałbym być ośmiornicą, żeby moje facepalmy były bardziej ekspresywne.

0

Robiłem projekt rozpoznający diagramy ERD na papierze i podejmujący decyzję, co to za encja etc. Pisałem to w pythonie, z użyciem OpenCV - tak naprawdę te libi do SI w Pythonie to wrapery na liby w C lub C++, więc nie ma znaczenia w czym piszesz. W zasadzie przepisałem projekt z pythona do czystego C, bo wrapery pythonowe miały błędy... to częste. Inna sprawa, że i tak to nie ma znaczenia - SI to nie język. Poczytaj o podejmowaniu decyzji, MIN/MAX, odcięcia Alfa/Beta, drzewa, lasy decyzyjne, klasyfikatory uczone, zbiory uczące, sieci neuronowe, algorytmy genetyczne - to wszystko nawet w windowsowym BATcie zrobisz czy ASM, ale liczy się CO a nie W CZYM i JAK napiszesz. Część tych algorytmów to się robi nawet w VHDL .... Na zajęciach ze sztucznej inteligencji przez pół semestru jechaliśmy na kartkach, a potem w prologu. Na rozpoznawaniu i podejmowaniu decyzji, przez 2 semestry jechaliśmy na kartkach projektując sieci klasyfikatorów... ofc. na projekcie się implementowało - część w octave, część w matlabie, częśc w pythonie i C#, no a ja przepisałem potem wsio do C.

0

Google udostępniło trochę kodu AI i jest tam wymieniony język Python, JavaScript i C++.
https://www.tensorflow.org/

0

@lukas_gab dzięki za odpowiedź. Mógłbyś powiedzieć jak wygląda użycie SI w praktyce dla WEB:

  • przeglądałem trochę materiałów z różnych uczelni, często widziałem wzory matematyczne - za pomocą matematyki buduję SI
  • następnie implementuję te rozwiązanie w np. Prolog, C++, itd.
  • tworzę Web Serwis i odpowiednio łączę wybrane funkcje z zbudowanym rozwiązaniem SI
    mniej więcej coś takiego?

Nie daje mi to spokoju, a chciałbym wiedzieć dla zaspokojenia wiedzy.

0
Pijany Terrorysta napisał(a):

Google udostępniło trochę kodu AI i jest tam wymieniony język Python, JavaScript i C++.
https://www.tensorflow.org/

No nie trochę kodu, bo TS to poważna biblioteka która była płatna, a od pewnego czasu wskoczyła do FOSS.

0
Pijany Terrorysta napisał(a):

@lukas_gab dzięki za odpowiedź. Mógłbyś powiedzieć jak wygląda użycie SI w praktyce dla WEB:

  • przeglądałem trochę materiałów z różnych uczelni, często widziałem wzory matematyczne - za pomocą matematyki buduję SI
  • następnie implementuję te rozwiązanie w np. Prolog, C++, itd.
  • tworzę Web Serwis i odpowiednio łączę wybrane funkcje z zbudowanym rozwiązaniem SI
    mniej więcej coś takiego?

Nie daje mi to spokoju, a chciałbym wiedzieć dla zaspokojenia wiedzy.

Nie robię dla web, ale pewnie to wygląda, że SI zamyka sie w jakims WebService lub WebApi, ew. klient w JS i WebSocket. Web generalnie to jakiś frond i backend, a w przypadku SI, ładujesz do backendu (np. podpowiadanie towarów, na podstawie historii zakupów i przeglądania towarów (nie proste podpowiadanie, a SI wymysla co nowego mu się spodoba, lub podejmuje decyzje w sprawie ceny no i uczy się). Albo faktycznie jak jakaś apka, to może JS i SI po stronie serwera. Można i osadzić w JS, ale ja bym tego nie robił - JS każdy ściągnie kod i poczyta sobie... Najlepiej uczyć się web i SI oddzielnie, a potem samo się połączy, zresztą samo SI z implementacją, jak pisałem, ma mało wspólnego.

3
Pijany Terrorysta napisał(a):

@lukas_gab dzięki za odpowiedź. Mógłbyś powiedzieć jak wygląda użycie SI w praktyce dla WEB:

A co za różnica, czy za Web Serwisem jest SI, CRUD, kompresja danych czy multimedia? To tylko rodzaj transmisji + interfejs dla użytkownika, w ogóle nie jest to w żaden sposób powiązane z SI. Nie ma żadnego specjalnego weba dla SI.

mniej więcej coś takiego?

Tak.

1

"Sztuczna inteligencja" (nienawidzę tej nazwy) to obliczenia.
Web to warstwa prezentacji danych i ich wprowadzania.

Języki polecane do tych pierwszych często nie najlepiej lub w ogóle nie radzą sobie z tym drugim. I jeśli jesteś początkujący to łatwiej będzie zacząć uczyć się najpierw jednego, potem drugiego.

Ewentualnie wziąć Pythona, który nie jest doskonały ani w jednym, ani w drugim, ale jest łatwy.

0

Generalnie zgadzam się z @datdata, ale mam pytanko:

Ewentualnie wziąć Pythona, który nie jest doskonały ani w jednym, ani w drugim, ale jest łatwy.

A co jest idealne w webie ?

I co jest idealne dla AI ?

IMO Python ma dość mocną pozycję w webie. Oczywiście to nie jest enterprise jak Java czy Erlang, ale jednak pozycja jest dość wysoka i jest to często wykorzystywany język. A w AI chyba też nie wypada źle, a może nawet lepiej, bo jednak liczba bibliotek do sztucznej inteligencji jest tutaj wyjątkowo duża (w Ruby czy C# czy wszechobecnej JS nie ma takich możliwości). Niektóre powstały nawet w Pythonie a inne są obsługiwane z poziomu Pythona.

0
Mleczaż napisał(a):

bo jednak liczba bibliotek do sztucznej inteligencji jest tutaj wyjątkowo duża (w Ruby czy C# czy wszechobecnej JS nie ma takich możliwości). Niektóre powstały nawet w Pythonie a inne są obsługiwane z poziomu Pythona.

Ilość bibliotek jest bez znaczenia. I tak większość programistów stara się wybrać najbardziej kompleksowe rozwiązanie. Np. ile jest silników do gier dla C++? Od groma :) A który jest najczęściej wykorzystywany przez programistów? Unreal Engine ;) Jeśli weźmiemy pod uwagę inne języki, to największy udział ma Unity 3D (C#).

Jeśli znajdziesz "najlepszą" bibliotekę do SI to dopiero wtedy patrz na język i ewentualnie się go naucz ;)

0

TL;DR

Nie wiem czy na pewno chcesz uczyć się SI. W zasadzie to ten termin już odszedł w zapomnienie.

Aktualnie polecam szukać:

  • data mining
  • data science
  • predykcja, regresja, rozpoznawanie, optymalizacja
  • uczenie maszynowe (machine learning)
  • szeregi czasowe

I teraz: w zależności od tego co Cię interesuje, różne są rozwiązania:

  • jeśli użycie gotowych rozwiązań OSS, to Python raczej jest nie do pobicia (może jeszcze R, ale nie znam)
  • jeśli chcesz coś pisać od nowa samemu, to masz do wyboru parę języków:
    a) Python
    b) Julia
    c) R
    d) Java
    e) Scala

Natomiast gdybyś naprawdę chciał się zająć sztuczną inteligencją (cognitive computing, typu gadający komputer dostosowujący rodzaj gry do nastroju gracza), to trzeba by pewnie postawić na wydajność:

  • C/C++
  • Julia
  • Java

Jeśli chodzi o C# to nie wiem czy źle szukałem, czy te strony się "źle" indeksują, ale w tym języku materiałów na ww tematy jest bardzo mało. Do tego stopnia że aż to jest dziwne.
Dla przykładu porównanie:

  • C# data mining: Około 636 000 wyników (0,53 s)
  • Scala data mining: Około 3 740 000 wyników (0,33 s)

Tak samo jest z książkami o tej tematyce.

Dla ludzi którzy stwierdzą że można to robić przecież w każdym języku, polecam obejrzenie poniższego filmiku a potem odpowiedzenie sobie na pytanie: w którym jeszcze z aktualnie topowych języków można pisać na C64 i jak to ma się do wydajności implementacji:

0

Ilość bibliotek jest bez znaczenia.

Tu się akurat nie zgadzam, bo więcej bibliotek to większa społeczność, więcej użytkowników, itd.
Z tego co widzę po ofertach pracy to w AI często sięga się właśnie po Pythona lub Scale lub Jave lub C / C++.

I tak większość programistów stara się wybrać najbardziej kompleksowe rozwiązanie. Np. ile jest silników do gier dla C++? Od groma :) A który jest najczęściej wykorzystywany przez programistów? Unreal Engine ;) Jeśli weźmiemy pod uwagę inne języki, to największy udział ma Unity 3D (C#).

Może i tak, ale... Silniki do gier wymagają szybko wykonywanego kodu, więc C++ ma pewnie więcej silników do gier niż Python czy inne języki tego typu. Nie znam się na silnikach do gier, ale czytałem opinie, że Unreal jest generalnie lepszy od Unity. Unity zawdzięcza swoją popularność łatwemu wejściu i lepszemu wsparciu dla mobile (tak wyczytałem), ale duże produkcje sięgają po Unreal ponoć.

Jeśli znajdziesz "najlepszą" bibliotekę do SI to dopiero wtedy patrz na język i ewentualnie się go naucz ;)

Nie wiem czy to idealne podejście ;)

Pierwsze co wypluwa wujek G.:

Python i Java rządzą ;)

https://daoudclarke.github.io/machine%20learning%20in%20practice/2013/10/08/machine-learning-libraries/

Głównie Pyton, C, C++ i Java:

https://medium.com/@techvu/deep-machine-learning-libraries-and-frameworks-5fdf2bb6bfbe#.18o3omh9j

http://www.kdnuggets.com/2016/04/top-15-frameworks-machine-learning-experts.html

http://machinelearningmastery.com/popular-deep-learning-libraries/

0
Wybitny Orzeł napisał(a):

Ilość bibliotek jest bez znaczenia.

Tu się akurat nie zgadzam, bo więcej bibliotek to większa społeczność, więcej użytkowników, itd.

Mi chodziło o to, że wystarczy jedna biblioteka, ale załatwiająca wszystko jak należy ;)
Dlatego podałem przykład dużych silników do gier. Wystarczy jedna "biblioteka", która załatwia sprawę jak należy i inne biblioteki przestają się liczyć.

Wybitny Orzeł napisał(a):

I tak większość programistów stara się wybrać najbardziej kompleksowe rozwiązanie. Np. ile jest silników do gier dla C++? Od groma :) A który jest najczęściej wykorzystywany przez programistów? Unreal Engine ;) Jeśli weźmiemy pod uwagę inne języki, to największy udział ma Unity 3D (C#).

Może i tak, ale... Silniki do gier wymagają szybko wykonywanego kodu, więc C++ ma pewnie więcej silników do gier niż Python czy inne języki tego typu. Nie znam się na silnikach do gier, ale czytałem opinie, że Unreal jest generalnie lepszy od Unity. Unity zawdzięcza swoją popularność łatwemu wejściu i lepszemu wsparciu dla mobile (tak wyczytałem), ale duże produkcje sięgają po Unreal ponoć.

Do AAA z najświeższą grafiką Unreal jest OK i warto zainwestować w niego swój czas. Mnie Unity przyciągnęło do siebie wydajnym edytorem (Unreal mi się tnie na Macbooku Air z zeszłego roku..., a wcale nie robiłem jakichś zasobożernych rzeczy, Unity działa wydajnie na tym samym sprzęcie). Unity pozwala ładniej poukładać sobie projekt. Kolejne jednozadaniowe skrypty przyczepiamy do GameObjectów i to jest dobre, bo klikając na obiekt widzimy tylko to co go dotyczy i nie widzimy pól, które nas nie interesują. Unreal wymaga więcej zaangażowania i dodając nowy obiekt na scenę, ma on nawalone wszystko co się da, fizyka, actor, input itd., własne screeny:
image.pngimage(1).png
Sztuka programowania w Unity mi bardziej odpowiada. Użycie też cywilizowanego języka jakim jest C#, chociaż kosztem wydajności, pozwala nam na napisanie ładniejszego kodu. Blueprinty (kodzenie bez kodzenia) w Unreal nie przypadło mi do gustu.

Gra, która odniosła sukces nie musi koniecznie być zrobiona w Unity lub Unreal. Hotline Miami np. zostało zrobione w GameMakerze :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1