Domanda Quali linguaggi e strumenti sono funzionali all'apprendimento dell'AI?

blackWindow01

Utente Silver
3 Novembre 2017
116
35
5
91
Ciao il campo dell'AI è enorme e chiedo cosa è funzionale all'apprendimento dell'AI?
Strumenti, linguaggi ecc. cosa mi consigliate di studiare? e magari anche libri in inglese per approcciarlo
Grazie :)
 
In passato Lisp e Prolog hanno dato un forte contributo allo sviluppo di questa branca dell'informatica, ma adesso sono considerati linguaggi di nicchia e Python è tra i linguaggi più utilizzati, soprattutto se hai intenzione di studiare quella branca dell'AI chiamata machine learning. R e Julia sono altre scelte popolari per l'apprendimento supervisionato. Le librerie che andrai a utilizzare (in qualsiasi linguaggio) sono quasi tutte implementate in C, C++ e CUDA. Per il resto niente, puoi usare il linguaggio che ti pare... meglio se scegli un linguaggio che già conosci. Se sei interessato a un settore specifico può essere che trovi più risorse (librerie, tutorial, etc.) nel linguaggio X piuttosto che nel linguaggio Y.

Uno dei libri più conosciuti che parla di AI in senso generale, senza specializzarsi in alcun settore, si chiama Artificial Intelligence: A Modern Approach. Lo trovi sia in inglese che in italiano. Io non l'ho mai letto, quindi mi astengo da fornirti commenti inutili. Se sei interessato al machine learning devi valutare se vuoi un libro che parla della teoria o se preferisci guardare la pratica. Nel secondo caso, un MOOC (se cerchi ne trovi tanti, anche gratuiti) potrebbe risultarti più efficace di un libro. Anche qui evito di darti un parere su corsi/libri che ho visto solo superficialmente.
 
Ultima modifica:
In passato Lisp e Prolog hanno dato un forte contributo allo sviluppo di questa branca dell'informatica, ma adesso sono considerati linguaggi di nicchia e Python è tra i linguaggi più utilizzati, soprattutto se hai intenzione di studiare quella branca dell'AI chiamata machine learning. R e Julia sono altre scelte popolari per l'apprendimento supervisionato. Le librerie che andrai a utilizzare (in qualsiasi linguaggio) sono quasi tutte implementate in C, C++ e CUDA. Per il resto niente, puoi usare il linguaggio che ti pare... meglio se scegli un linguaggio che già conosci. Se sei interessato a un settore specifico può essere che trovi più risorse (librerie, tutorial, etc.) nel linguaggio X piuttosto che nel linguaggio Y.

Uno dei libri più conosciuti che parla di AI in senso generale, senza specializzarsi in alcun settore, si chiama Artificial Intelligence: A Modern Approach. Lo trovi sia in inglese che in italiano. Io non l'ho mai letto, quindi mi astengo da fornirti commenti inutili. Se sei interessato al machine learning devi valutare se vuoi un libro che parla della teoria o se preferisci guardare la pratica. Nel secondo caso, un MOOC (se cerchi ne trovi tanti, anche gratuiti) potrebbe risultarti più efficace di un libro. Anche qui evito di darti un parere su corsi/libri che ho visto solo superficialmente.
C++ e C sono utilizzati anche per la programmazione delle CCTV ? Credo sia importante anche arrivare a saper usare MatLab in questo campo. Qualcuno di voi l'ha introdotto e se si quando?
Ciao, io sono partito con Python, numpy e tensorflow (ho un minimo di esperienza con le reti neurali).
Grazie !:)
 
Ultima modifica:
C++ e C sono utilizzati anche per la programmazione delle CCTV?
Intendi per il facial recognition, per leggere le targhe delle auto e per fare cose simili? Non necessariamente.

I programmi scritti in C e in C++ sono impegnativi da scrivere, ma possono ampiamente ottimizzati per girare molto veloci e consumare poche risorse. I programmi scritti in Python, ad esempio, sono estremamente lenti, ma Python è un linguaggio molto semplice da usare. Quindi cosa faccio? Implemento le primitive, ovvero gli algoritmi che puoi trovare su un libro, in C++ e poi le vado ad usare in un programma in Python. Quando in Python vai ad usare TensorFlow, Keras, PyTorch o librerie simili, stai utilizzando del codice scritto in C++ e CUDA senza lo sbattimento di dover utilizzare questi linguaggi difficili da usare. The best of both worlds.

Ovvio che se scrivi tutto in C++ e CUDA il tuo programma sarà ancora più veloce (se sei bravo), ma il più delle volte il gioco non vale la candela: il guadagno in performance è poco rilevante, mentre tu hai speso molto più tempo per scriverlo e mantenerlo. Adesso io non so dirti cosa usano nelle CCTV, ma non dare per scontato che usano linguaggi a basso livello. il più delle volte Java o Python sono più che adeguati.

Credo sia importante anche arrivare a saper usare MatLab in questo campo.
Matlab è il programma standard per chi si occupa di ingegneria. Non credo sia molto utilizzato per sviluppare IA e credo si poco apprezzato dagli informatici. La licenza per uso privato ti richiede di spendere 800€ l'anno e se non ti occupi di ingegneria secondo me non te ne fai quasi niente.

Poi "questo campo" è un termine molto generico. Se ti vuoi occupare di intelligenza artificiale per i videogiochi realisticamente vorrai usare Lua, C#, Java et simili; la situazione sarà molto diversa se ti vuoi occupare di problemi di classificazione. La scelta del linguaggio più adatto è molto più legata all'applicazione che hai intenzione di sviluppare che al macro-settore dell'intelligenza artificiale.
 
Ultima modifica:
Grazie delle dritte! Hai approfondito personalmente questo campo, applicandoti all'AI?
Messaggio unito automaticamente:

Ciao, io sono partito con Python, numpy e tensorflow (ho un minimo di esperienza con le reti neurali).
Stai continuando a lavorarci? da quanto studi e quanto sei confident ora ? Quali difficoltà hai avuto?
 
Grazie delle dritte! Hai approfondito personalmente questo campo, applicandoti all'AI?
Messaggio unito automaticamente:


Stai continuando a lavorarci? da quanto studi e quanto sei confident ora ? Quali difficoltà hai avuto?
Non sto continuando a lavorarci e non sono per niente esperto/confident.

Ho creato una semplice ma efficace rete neurale in python (utilizzando tensorflow) per la risoluzione dei captcha di un famoso social network (non faccio nomi). Questo risolutore di captcha è parte di un progetto più ampio (progetto completato, non ci sto più lavorando).