Consigli su "Intelligenza artificiale"

di il
15 risposte

Consigli su "Intelligenza artificiale"

Salve a tutti, in maniera veloce mi potrei identificare come un Freelancer appassionato di informatica, computer e programmazione (un pò generale come descrizione ma non ha importanza).
Vi scrivo per chiedervi dei consigli piuttosto mirati riguardo ad un argomento che non conosco affatto.
Da tempo ho una piccola società con un mio amico con la quale mettiamo in pratica le nostre conoscenze informatiche, creando programmi per determinati settori, questa volta ci siamo cimentati nella realizzazione di un progetto(programma) che richiede conoscenze molto selettive nel campo del "Machine learning", AI ecc ecc.
Non abbiamo compreso al 100% quale è il ramo che ci interessa, dato che sono totalmente nuovo a questo argomento, ma idealmente parlando abbiamo bisogno di un programma/AI/Bot (in qualsiasi modo esso si chiamerà) che svolge ripetutamente una serie di istruzioni determinate dall'ambiente di sviluppo, istruzioni che ovviamente sono determinate dalla matematica degli avvenimenti.
Non scendo troppo nei dettagli perchè ho paura di perdermi se già non l'ho fatto.
Vi chiedo se gentilmente qualche esperto con una buona esperienza nel settore possa consigliarmi un punto di inizio, che può essere libro/corso/ecc e magari darmi un'infarinata generale su quello a cui stiamo andando incontro.

Grazie mille in anticipo!

15 Risposte

  • Re: Consigli su "Intelligenza artificiale"

    Senza nulla togliere alla buona volonta, ma, dato che conosco qualcosina dell'argomento, quello che vuoi fare e' avere un libro/corso/ecc per impare a costruire lo Space Shuttle!

    AI, ed attualmente Machine Learning, e' un settore talmente VASTO e COMPLESSO che un semplice libro non e' minimamente sufficiente.
    Con una decina, FORSE, si potrebbe iniziare a ragionare

    NON E' come imparare un nuovo linguaggio di programmazione, fattibile in un giorno.

    Per AI, http://aima.cs.berkeley.ed e' un buon punto di partenza. E' un testo introduttivo.

    Per il ML, ti posso solo dire
    1) lascia stare: il settore e' di una vastita'/complessita' pazzesca.

    In alternativa:

    2) DEVI avere una laurea MAGISTRALE e ti serve un MASTER annuale. E questo per fare le cose mooooolto semplici. Per fare cose un po' piu' complicate, TI SERVE un Dottorato di Ricerca. A cui aggiungere parecchi anni di lavoro sul campo.

    Ma se vuoi leggere qualcosa:
    1) statistica, TANTA. E non la robetta delle superiori. Teorema di Bayes come la gramigna. In tutte le salse. Analisi Bayesiana, Bayes Network, ... qualunque cosa contenga il nome Bayes o una sua declinazione ... si deve conoscere.

    Per darti un assaggio, DEVI digerire ALMENO questo: Introduttivo pure lui.

    Ma il VERO libro su cui STUDIARE sarebbe questo:

    La 'bibbia'! Ostico pure per gli statistici!

    Perche' poi ci sono le Neural Network ed il Deep Learning (http://deeplearning.net/reading-list), altro mondo .... ma non semplice pianeta o galassia! Letteralmente altro universo

    Per non parlare di tutto quello che riguarda le reti complesse (teoria dei grafi): usato, ad esempio, nell'analisi dei social nework (Facebook, Twitter, ...). Altro universo ancora!

    Ma perche' non metterci anche tutto quello che riguarda il NLP (Natural Language Processing)? Neccessaio per processare i testi scritti (.txt, .pdf, .doc, ecc). Ma si, mettiamocelo. Di nuovo, altro universo.

    Ma si, e l' Information Retrieval??? Come si fa a dimenticarsi della IR!! E' come dimenticarsi la moglie al distributore dell'autostrada! Tutti lo vorrebbero fare, ma non si puo!!!

    E siamo ANCORA nell'ambito del Machine Learning, sia chiaro!
    E questo per mantenere separato i settori, per non parlare quando vengono mischiati.

    Serve sapere tutto? Piu' o meno si! E' questa la GRANDE fregatura!!!

    SE arrivi alla fine di due precedenti testi, e non hai ancora abbandonato, ci sono diversi altri testi, teoricamente da STUDIARE, ma almeno da leggere. Ad esempio: .
    Ma ce di meglio (o peggio , dipende dal punto di vista), mooolto meglio (peggio ): https://mitpress.mit.edu/books/machine-learning-


    Per il MASTER, ad esempio l'Universita' Bicocca (Milano) ha un corso di Business Intelligence & Big Data Analytics.
    Si puo' frequentare SOLO con laurea magistrale.
    Ma sicuramente troverai corsi presso le universita' della tua zona.

    Dirai: ma a che mi serve la teoria, visto che ci sono gia' i tool/librerie pronte da usare?
    Nota: implementare un algoritmo di ML, anche se ben descritto (e spesso non lo sono), E' UN BAGNO DI SANGUE!

    Piccolo inconveniente: OGNI algoritmo di ML (e ce ne sono K-mila) ha N-mila parametri che vanno configurate, i dati vanno opportunamente PRE-trattati.
    SE non sai che cosa significano i parametri, SE non sai perche' i dati devono essere in un certo formato, NON NE ESCI.
    E NON BASTA leggere il manuale, sempre se c'e'!

    Ma tanto per iniziare a giocare, guardati questo: http://scikit-learn.org/stable

    Il settore e' ESTREMAMENTE interessante, hai a che fare con argomenti FOLLI
    Finalmente capisci il concetto di 'algoritmo', e cosa vuol dire progettare un algoritmo

    Ma SERVONO competenze SPECIALISTICHE MOOOOOOLTO spinte, acquisibili SOLO in MOOOOLTI anni di studio.

    Due argomenti con cui sto cincischiando in questi (2) giorni, e che dovro' conoscere letteralmente ENTRO domani (di cui, ovviamente, non ne avevo MAI sentito parlare prima ):

    Association Rule mining: fondamentalmente basato sull'algoritmo 'apriori', ma ci sono anche altri algoritmi.
    Text clustering, specificatamente applicato a testi brevi.

    Per il primo, beccati questo:

    E questo sono 2 degli N-milioni di argomenti che mi devo studiare


    ===========================================================================================

    Per giocare, comunque, ci sono diverse alternative: tutti i testi

    della O'Reilly (https://www.oreilly.com/topics/a) e
    della Packt (https://www.packtpub.com)

    possono fornire delle interessanti letture per la spiaggia.

    ===========================================================================================

    NATURALMENTE se stiamo parlando di AI/ML nel vero senso dei termini.

    SE tutto quello che devi fare e' riempire una form HTML da codice, allora e' TUTTA un'altra questione. Puoi tranquillamente dimenticare tutto quello che e' stato scritto prima.

  • Re: Consigli su "Intelligenza artificiale"

    Se specifichi meglio quello che vuoi fare magari scopriamo che ti serve solo una piccola parte di quanto elencato da migliorabile e ti possiamo dare indicazioni più precise.
  • Re: Consigli su "Intelligenza artificiale"

    dvaosta ha scritto:


    Se specifichi meglio quello che vuoi fare magari scopriamo che ti serve solo una piccola parte di quanto elencato da migliorabile e ti possiamo dare indicazioni più precise.


    Hai ragione, non avevo un esempio pratico da darvi da campione ad essere sincero, però credo che la cosa che gli si avvicina di più concettualmente sia una AI che si occupi della risoluzione matematica/statistica di giochi tipo scacchi, poker, backgammon ecc ecc.

    Migliorabile ti ringrazio infinitamente dei tuoi consigli, mi appunto tutti i link passatomi e al più presto possibile comincio a studiare il tuo materiale! spero di impiegarci il minor tempo possibile!.
    Grazie ancora
  • Re: Consigli su "Intelligenza artificiale"

    Allora ti basta il testo su AI.
    Piccolo inconveniente:
    gli algoritmi per il gioco degli scacchi, pocker, backgammon NON SONO UNO SCHERZO.
    Sono basati su euristiche che fanno impallidire l'implementazione PIU'COMPLESSA che tu abbia mai realizzato!

    Il minor tempo possibile?
    6/12 mesi, se vuoi minimamente capire quello che stai facendo
    Se non altro perche' dovrai integrare quello che studi con n-mila altri argomenti, di cui si suppone la conoscenza per chi legge testi del genere
    Auguri
  • Re: Consigli su "Intelligenza artificiale"

    Tra l'altro, devi avere una conoscenza molto approfondita delle regole dei vari giochi e dell'importanza delle varie mosse (ad esempio, sai cos'è il controllo del centro negli scacchi, e quanto è importante rispetto ad altre configurazioni della scacchiera?).
  • Re: Consigli su "Intelligenza artificiale"

    dvaosta ha scritto:


    Tra l'altro, devi avere una conoscenza molto approfondita delle regole dei vari giochi e dell'importanza delle varie mosse (ad esempio, sai cos'è il controllo del centro negli scacchi, e quanto è importante rispetto ad altre configurazioni della scacchiera?).


    Bè si, i giochi si distinguono da tutte le dinamiche, regole, dettagli ecc ecc però in primo luogo credevo che la vera domanda da farsi era capire in quale modo si può programmare una cosa del genere.
  • Re: Consigli su "Intelligenza artificiale"

    dvaosta ha scritto:


    Tra l'altro, devi avere una conoscenza molto approfondita delle regole dei vari giochi e dell'importanza delle varie mosse (ad esempio, sai cos'è il controllo del centro negli scacchi, e quanto è importante rispetto ad altre configurazioni della scacchiera?).
    Diciamo che il controllo del centro... è un concetto ormai superato.
    (qui ci andrebbe il pippone su scacchi & computer e - visto l'argomento - go & computer)

    A parte queste sottigliezze da specialisti veri, mi sfugge un pochino la domanda precisa.
    Forse proponendo qualche esempio sarebbe più agevole dare indicazioni utili.
  • Re: Consigli su "Intelligenza artificiale"

    Valek ha scritto:


    dvaosta ha scritto:


    Tra l'altro, devi avere una conoscenza molto approfondita delle regole dei vari giochi e dell'importanza delle varie mosse (ad esempio, sai cos'è il controllo del centro negli scacchi, e quanto è importante rispetto ad altre configurazioni della scacchiera?).


    Bè si, i giochi si distinguono da tutte le dinamiche, regole, dettagli ecc ecc però in primo luogo credevo che la vera domanda da farsi era capire in quale modo si può programmare una cosa del genere.
    Per avere un infarinatura leggi il capitolo "Adversarial search" di "Artificial Intelligence: a modern approach".
  • Re: Consigli su "Intelligenza artificiale"

    Grazie a tutti dei preziosi consigli...sto leggendo "Artificial Intelligence: a modern approach", libro molto impegnativo e pieno di contenuti, sono sicuro sarà una bella sfida da prendere molto seriamente.
    Volevo chiedervi un'ultima cosa (almeno per adesso ), mentre sto studiando i contenuti del precedente libro, cosa posso consigliare di studiare al mio amico/collega di complementare? in modo da poterci dare una mano a vicenda in un futuro prossimo così da mettere insieme le conoscenze e abbreviare i tempi di studio.
    Non so come ringraziarvi!
  • Re: Consigli su "Intelligenza artificiale"

    Mentre tu studi la parte "tecnologica" lui potrebbe approfondire le regole e le tattiche dei vari giochi.
  • Re: Consigli su "Intelligenza artificiale"

    dvaosta ha scritto:


    Mentre tu studi la parte "tecnologica" lui potrebbe approfondire le regole e le tattiche dei vari giochi.

    Per quanto riguarda questo settore ho già delle persone di riferimento che lavorano come professionisti in due dei settori prima citati.
    Credevamo che una buona suddivisione dei compiti e dello studio potesse portare molto vantaggio in termini di tempo e fatica soprattutto.
  • Re: Consigli su "Intelligenza artificiale"

    Il problema è che è tutto collegato, per cui non puoi suddividere gli argomenti in due filoni paralleli.
  • Re: Consigli su "Intelligenza artificiale"

    dvaosta ha scritto:


    Il problema è che è tutto collegato, per cui non puoi suddividere gli argomenti in due filoni paralleli.

    Non c'è proprio nessun modo possibile? mi spiego meglio, credo sia giusto e ovvio che sia tutto collegato, ma se ipoteticamente pensiamo a due punti di partenza differenti? spero si trovi una via del genere...
  • Re: Consigli su "Intelligenza artificiale"

    Piu' banale: cerca librerie software gia' pronte e PROVALE.
    Trovare del buon software open source ed usarlo, NON E' un'attivita' da sottovalutare.

    A parte il fatto che non e' detto che si trovi, un software open source non vale nulla se e' la versioni 0.1 dello studente delle superiori.

    Va sempre scelto software di qualita' a livello 'di produzione', ben scritto, testato, efficiente, BEN DOCUMENTATO, per il quale, ad esempio ESISTONO LIBRI. E scritto da professionisti (che possono essere anche ricercatori, ...), e MANTENUTO, a cui viene fatto regolarmente del bug fixing, esteso con nuove funzionalita', integrato con framework esistenti, ecc.

    Insomma, prodotti qualitativamente validi.

    Il fatto di essere open-source, NON IMPLICA necessariamente che sia un prodotto qualitativamente valido.
    Anzi, il 99.9999% e' inutilizzabile: ne per scopi didattici (imparare a scrivere il codice da codice scritto male non e' una grande idea) ne in termini di utilizzo (usare software pieno di bug, in cui, se qualcosa non va, non capisci se e' colpa tua o della libreria, non e' una grande idea).
Devi accedere o registrarti per scrivere nel forum
15 risposte