Sztuczna inteligencja - jakiego języka się uczyć?

0

Witam
W przyszłości chciałbym się zająć programowaniem sztucznej inteligencji komunikującej się z ludźmi i posiadającą możliwość nauki. Niestety nie mam pojęcia, który język może mi w tym pomóc? Jakiego języka według Was najlepiej się uczyć, by na nim móc w przyszłości opierać taką pracę?

3

Pewnie cię zaskoczę, ale język ma tu małe znaczenie. To, czego powinieneś się uczyć, to matematyka. Weź sobie otwórz jakikolwiek kurs dotyczący tego, co cię interesuje ze sztucznej inteligencji. Zobaczysz, że zwykle ktoś kreśli jakieś bazgroły flamastrami i czasem pisze wzory. Kod ma znikome znaczenie.

0

Podpisuję się pod tym co mówił @chodnik. Dużo matmy i statystyki.
Jeśli chodzi o języki to z tego co zauważyłem to Python (do robienia prototypów) oraz C++ do produkcji. Ale lepiej skupić się na teorii, bo bez tego ani rusz :).

PS. Orientowałeś się w jakiś firmach zajmujących się "sztuczną inteligencją" w Polsce? Co zmotywowało Cie do wybrania takiego kierunku?

1

Sieci neuronowe rozwiązują problemy inteligencją geometryczną.

Same potrafią w trakcie uczenia wyznaczać równanie prostej oddzielające jeden zbiór danych od drugich, przez co mogą je interpretować.

Jak znasz jakiś język to następny element nauki to implementacja pierwszego neuronu i rozwiązanie pierwszego problemu z jednym neuronem, liniowe i nieliniowe, potem jak wiesz jak działa jeden możesz budować sieci wielowymiarowe.

Już dzisiaj możesz zbudować swoją własną sieć, albo po 4 latach studiów, jak tam wolisz.

3

Python, Julia, R, Java - ze względu na stosunkową łatwość wejścia i popularność wśród naukowców.

0

Dziękuję wszystkim za szybkie odpowiedzi. Nad SI chciałbym pracować jedynie hobbystycznie i dopiero zaczynam poznawać ten temat. Czytam obecnie "Elementarne wprowadzenie do sieci neuronowych". Z tego też powodu chwilowo blądze niczym dziecko we mgle i szukam wskazówek na czym się skupić.
Jak wiadomo matematyka to szeroka gałąź wiedzy. Na co mam zwrócić szczególną uwagę?

EDIT: Chodzi o to że bładzę z powodu braku doświadczenia a nie doboru literatury :)

1

Zacznij od podstaw ;). Polecam tą książkę:
http://www-bcf.usc.edu/~gareth/ISL/

która da Ci ogólne pojęcie o statystyce i jak się ją wykorzystuje. Na tym będziesz mógł budować wiedzę z zakresu AI.

0
Szalony Lew napisał(a):

Sieci neuronowe rozwiązują problemy inteligencją geometryczną.

Sieci neuronowe to zaledwie jedno z narzędzi stosowanych w uczeniu maszynowym, niekoniecznie najlepsze. Nie powinno się ich utożsamiać ze sztuczną inteligencją. Sieci sprawdzają się tam, gdzie nie wiadomo jakie wybrać cechy do klasyfikacji, więc bierze się jak leci i liczy się na to, że sieć się jakoś dostosuje. Nie wiem czy są dobre na początek, bo nie uczą istotnego etapu jakim jest ekstrakcja cech.

Same potrafią w trakcie uczenia wyznaczać równanie prostej oddzielające jeden zbiór danych od drugich, przez co mogą je interpretować.

Same to nic nie potrafią, trzeba je wytrenować. A do oddzielenia jednego zbioru od drugiego linią prostą nie potrzeba budować sieci, wystarczą prostsze metody, jak PCA albo regresja logistyczna.

Jeśli miałbym coś polecić z matematyki, to oprócz wspomnianej statystyki zdecydowanie algebra liniowa.

0

Tu Ci udostępnili kod źródłowy AI w Pythonie, Ruby, C++ i JS.
http://www.tensorflow.org/

0

Tu Ci udostępnili kod źródłowy AI w Pythonie, Ruby, C++ i JS.

Teraz po prostu jest moda na deep learning. Nawet m$ dał od siebie cntk https://github.com/Microsoft/CNTK

0

Znając podstawy budowy sieci neuronowych oraz ich uczenia, można przeprowadzić incepcję neuronalną.

Polega to na tym, że budujemy sieć neuronową, na kompie testujemy, na kartce papieru wizualizujemy.
Potem korzystając z mnemotechnik budujemy połączenia neuronowe skojarzeniami, każde skojarzenie to neuron.
Po takim zabiegu, karmimy nasze sieci danymi przechodząc symulując aktywację neuronów dla danych, w tym wypadku przechodzimy po skojarzeniach wycierając ścieżki.
Po dojściu do biegłości, jeśli pomyślimy o problemie, to od razu otrzymujemy jego wynik końcowy.

0

Jak każdy zapodał jakimś linkiem, to też coś zapodam do poczytania.

http://sknbo.ue.poznan.pl/neuro/ssn/pliki/czesc1.html

Warto przeczytać na początek, dość prosto tłumaczone, I od razu trzeba implementować, bo same czytanie g**no daje.

Fajne sny są jeśli jest to twój pierwszy raz z neuronami, to rano się obudzisz i jeszcze będziesz rozwiązywać problem sieci.

Takie podstawy tam są, ale dużo wyjaśniają, w krótkim czasie jeden-dwa-trzy dni max.

0

W kontekście SI warto spojrzeć na TensorFlow

0
GutekSan napisał(a):

Sieci sprawdzają się tam, gdzie nie wiadomo jakie wybrać cechy do klasyfikacji, więc bierze się jak leci i liczy się na to, że sieć się jakoś dostosuje.

Albo nie rozumiem, co napisałeś, albo napisałeś bzdury. W sieciach to Ty musisz określić dane wejściowe i wyjściowe. I to są właśnie cechy / właściwości. Klasycznym przykładem może być klasyfikacja win. Chyba że mówiąc "cechy" miałeś na myśli coś innego.

Sieci są bardzo dobre na początek, bo są najprostsze w zrozumieniu i w implementacji.

3
Juhas napisał(a):

Albo nie rozumiem, co napisałeś, albo napisałeś bzdury. W sieciach to Ty musisz określić dane wejściowe i wyjściowe. I to są właśnie cechy / właściwości. Klasycznym przykładem może być klasyfikacja win. Chyba że mówiąc "cechy" miałeś na myśli coś innego.

Cechy są danym wejściowymi dla sieci, ale już niekoniecznie dla problemu, który pomagają rozwiązać. Sieci są zaledwie klasyfikatorem, a przed procesem klasyfikacji mamy nie mniej ważny proces ekstrakcji cech z tychże danych. Ekstrakcja cech jest istotna, bo redukuje przestrzeń danych wejściowych do tych, które mają potencjał dyskryminacyjny. Tymczasem sieci neuronowe, przez to że radzą sobie względnie dobrze z klasyfikacją obszarów przestrzeni, których nie da się odseparować liniowo albo wielomianowo, pozwalają zignorować ekstrakcję cech. Popatrz na pierwszy lepszy tutorial do sieci neuronowych, dotyczący np. rozpoznawania wzorca na obrazku. Czy uczy się tam ekstrakcji cech? Nie, zazwyczaj od razu karmi się sieć surowymi pikselami i liczy na to, że sieć odwali całą robotę.

Sieci są bardzo dobre na początek, bo są najprostsze w zrozumieniu i w implementacji.

Sieci wcale nie są najprostsze w zrozumieniu, są dużo prostsze i bardziej intuicyjne klasyfikatory, choćby klasyfikator k-NN. Tam od razu widać dlaczego coś powinno należeć do danej klasy, bo klasyfikacja sprowadza się do mierzenia odległości, a sieć działa trochę jak magiczne pudełko. Sam algorytm propagacji wstecznej jest moim zdaniem mniej intuicyjny niż analogiczny stosowany w programowaniu dynamicznym.

Dla osoby, która nie miała nigdy do czynienia z uczeniem maszynowym, sieci neuronowe nie są dobre na początek, bo nie uczą jak należy podchodzić do tego typu zagadnień, nie uczą umiejętności doboru odpowiedniego narzędzia do konkretnego problemu. Brak tej umiejętności skutkuje antywzorcem "złotego młotka"
https://sourcemaking.com/antipatterns/golden-hammer

0

co do tej matmy, to zależy jak definiujesz pojęcie "statystyka" bo uczenie się takiej podstawowej statystyki, w stylu testowanie hipotez, mediana itp. jest trochę niepotrzebne w kontekście ML/DL( w sensie, wiadomo że jest potrzebne, ale w życiu ważne są priorytety). Więc jeśli chodzi o priorytety, przede wszystkim rachunek prawdopodobieństwa trzeba opanować tzn. zrozumieć co to jest niezaleność zmiennych, rozkłady warunkowe, funkcja gęstości , rozkłady wielowymiarowe itp., po opanowaniu podstaw rachunku prawdopodobieństwa jest już z górki. Potem na drugim miejscu jest algebra liniowa na poziomie że wiesz co to wartości osobliwe, transformacja liniowa, baza macierzy itp. (czyli w sumie podstawowa algebra 1 na kierunkach inżynierskich i ekonomiczno ilośiowych)

0

Myślę że jezyk angielski będzie najlepszy żeby to AI rozmawialo z ludzmi

0

Szczerze, to pies umie wykryć z większym prawdopodobieństwem raka niż maszyna, może lepiej skupić się na organicznych sieciach neuronowych?

0

Zawsze głównym celem jest zapewnienie człowiekowi wygody i bezpieczeństwa ale skoto człowiek sam nie potrafi tego zrobić może warto zaprząc do pracy maszyny :)

Dziękuję wszystkim za odpowiedzi. Przeglądam właśnie materiały, które mi wysłaliście. Informacji jest mnóstwo :) ostatnio co prawda mam mało czasu bo przygotowuje się do e.14 który mam w czerwcu ale w wakacje planuje dłużej nad tym przysiąść

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