In questi giorni l'apprendimento automatico utilizza principalmente tecniche statistiche. È quasi sinonimo di statistiche. Quindi, l'algebra lineare è un buon inizio. Avrai anche bisogno di una solida comprensione della probabilità e delle statistiche (ad esempio variabili casuali, distribuzioni di probabilità,
stima della densità, reti Bayes, modelli Markov, modelli grafici, ecc.)
Un buon libro da raccogliere sarebbe Riconoscimento pattern e apprendimento automatico di Christopher Bishop.
Il linguaggio di programmazione che usi è in gran parte irrilevante qui. Se non altro, è utile conoscere Matlab, semplicemente perché rende molto facile la prototipazione degli algoritmi di apprendimento automatico ed è ampiamente utilizzato dalla comunità di ricerca sull'apprendimento automatico. Controlla anche Weka , che è una libreria Java che implementa praticamente ogni immaginabile algoritmo di classificazione e clustering, e fornisce ottimi strumenti per addestrare e testare i classificatori.
Se vuoi seriamente entrare in questo campo, ti consiglio di andare in una scuola di specializzazione con un dipartimento CS decente o un dipartimento di statistiche decente e di ottenere almeno un Master in CS o statistiche.