web-dev-qa-db-fra.com

Math pour l'informatique

J'ai lu plusieurs réponses sur ce sujet, mais j'ai encore des questions. Il y a beaucoup de cours de mathématiques et je ne sais pas lequel suivre en premier. Quels cours de mathématiques chaque informaticien devrait-il suivre? Et quelle classe devrait être la première et pourquoi?

64
LoLzMan

Très bonne et importante question! Une bonne compréhension des mathématiques est essentielle pour tout informaticien, et les exigences en mathématiques commencent à se diversifier.

  • Discrete Math est la classe la plus importante et la plus élémentaire en informatique et, pour cette raison, elle est généralement proposée dans les départements CS plutôt que dans les départements de mathématiques. Ce cours soutiendra votre introduction aux algorithmes et vous enseignera comment prouver mathématiquement des choses et vous donnera les bases de l'analyse des structures de données et des algorithmes.
  • Calcul , bien que n'étant pas directement utilisé dans les cours d'informatique de niveau intro, est généralement une séquence de cours proposés par votre université pour améliorer vos compétences en mathématiques. Cependant, à mesure que vous aborderez des domaines tels que la programmation numérique et l'apprentissage automatique, cela s'avérera extrêmement utile. C'est également une exigence pour les cours avancés de probabilités/statistiques.
  • Probabilité est généralement couvert dans une certaine mesure dans votre classe de mathématiques discrète, mais vous voudrez prendre un cours sur les distributions de probabilité continues et inférence statistique , probablement dans les domaines des mathématiques et des statistiques département. Cela vous donnera une meilleure compréhension de la façon de faire du calcul numérique et de la simulation, et est fondamentalement nécessaire pour apprentissage automatique , l'une des applications les plus importantes de l'informatique.
  • Algèbre linéaire est une classe que vous trouverez principalement utile pour les classes d'apprentissage automatique et d'algorithmes (avancés), mais son importance en vision par ordinateur, infographie, apprentissage automatique et autres sous-disciplines quantitatives est primordiale.

Cela dit, si une classe d'introduction à la machine est disponible, elle couvrira probablement suffisamment d'algèbre linéaire et d'autres éléments que vous pourrez utiliser avec une classe de probabilité de base. Cependant, pour les études supérieures en informatique, une bonne compréhension de tous les domaines des mathématiques ci-dessus est essentielle.

Au-delà des mathématiques de premier cycle, les cours de mathématiques de niveau supérieur sont utiles pour certains domaines théoriques de l’informatique (par exemple, la théorie des jeux algorithmique, qui recoupe l’économie) et surtout pour aller au-delà du simple apprentissage automatique du développement de nouveaux algorithmes. Ces cours comprennent:

  • Analyse réelle , y compris théorie de la mesure où vous constaterez que si vous étudiez la probabilité et le calcul suffisamment longtemps, ils convergent à nouveau. L'analyse est généralement utile pour savoir quand vous commencez à utiliser des algorithmes comportant des nombres.

  • Optimisation , y compris optimisation linéaire , optimisation convexe , descente de gradient , etc. Dans de nombreux cas, "apprendre" un modèle d'apprentissage machine revient essentiellement à optimiser une fonction objective, et les propriétés de cette fonction, telles que son convexité, ont un impact important sur sa facilité d'optimisation.

  • Méthodes numériques : certains ne considéreraient pas cela comme une classe de mathématiques en soi , mais en traduisant les algorithmes et la théorie en représentations imparfaites des calculs en virgule flottante, de nombreux problèmes pratiques doivent être résolus. Par exemple, le astuce log-sum-exp .

  • Pour ceux qui seront dans la "science des données" et les domaines connexes, les statistiques avancées et en particulier inférence causale sont très importantes. Il y a beaucoup de choses à savoir, principalement parce que l'accès à de nombreuses tentations de données ce problème pour les non-initiés.

86
Andrew Mao
9
Mikhail Vladimirov

Puisque vous spécifiez "informaticien", nous prendrons la route difficile:

  1. L'analyse des algorithmes repose sur le calcul, les équations différentielles et les mathématiques discrètes. (Beaucoup considèrent l'analyse des algorithmes comme le principal différenciateur entre les programmes d'informatique et de génie logiciel).
  2. La visualisation informatique/scientifique nécessite une sorte d’arrière-plan en analyse technique: méthodes numériques, algèbre linéaire, etc.
  3. Géométrie computationnelle
  4. Approximation de la fonction
  5. Théorie des ensembles, logique/calcul du premier ordre
  6. Probabilité/Statistiques
  7. la liste continue :)
6
Throwback1986