From chĂŽmeur to Deep Learning Engineer

Share this post

Recap #1 Ce que j'ai lu sur le Deep Learning cette semaine (ChatGPT, Magic Methods en Python, l'approche data-centric..)

proutia.substack.com
📧 Recaps de la semaine

Recap #1 Ce que j'ai lu sur le Deep Learning cette semaine (ChatGPT, Magic Methods en Python, l'approche data-centric..)

Aristide
Dec 25, 2022
Share this post

Recap #1 Ce que j'ai lu sur le Deep Learning cette semaine (ChatGPT, Magic Methods en Python, l'approche data-centric..)

proutia.substack.com

Namaste 🙏

Voici un rĂ©cap de ma semaine de lecture d’articles :

‘Predicting The FIFA World Cup 2022 With a Simple Model using Python’

Sur les prĂ©dictions pour le mondial de foot. Dans cet article, le gus a utilisĂ© la loi de Poisson mais c’est pas ce qui m’intĂ©resse.

Ce projet me rappelle ce que j’ai lu dans le livre Big Data Foot :

L’économiste israĂ©lien Daniel Kahneman, auteur de SystĂšme 1/ SystĂšme 2, et d’autres ont dĂ©couverts 188 formes diffĂ©rentes de biais cognitifs. Tous ont la mĂȘme origine : la tendance du cerveau Ă  commettre des erreurs quand il est amenĂ© Ă  rĂ©flĂ©chir trop vite, et non de maniĂšre calme et analytique. Les jugements hĂątifs sont souvent erronĂ©s parce qu’on surestime notre capacitĂ© Ă  prendre la bonne dĂ©cision dans un laps de temps trĂšs court.

Les chiffres peuvent facilement conduire Ă  plus de biais cognitifs. La tentation de choisir des statistiques qui confirment les a priori que l’on a sur un joueur est forte, tout comme d’écarter les stats susceptibles de le discrĂ©diter.


7 Super Cheat Sheets You Need To Ace Machine Learning Interview

Mon article préféré de la semaine !!!

Regardez moi ce petit recap des principaux algos en Machine Learning.

Idem pour Scikit-learn avec ce recap (Loading data, Splitting the dataset into train and test sets, Preprocessing data, Performing supervised machine learning tasks, Performing unsupervised machine learning tasks, Model fitting, Prediction, Evaluation, Cross validation, Model tuning).

Parfait quand on débute comme moi :D

Source

‘Say Goodbye to Loops in Python, and Welcome Vectorization!’

Sur l’importance de la vectorization.

Rien de neuf sous le soleil. Je peux rĂ©sumer l’article Ă  ‘The np.dot implements Vectorized matrix multiplication in the backend. It is 165x faster as compared to loops in python.’

ConcrÚtement ce que ça donne :

import numpy as np
m = np.random.rand(1, 5)
x = np.random.rand(5000000, 5)

np.dot(x,m.T) 

Pour la peine, j’ai cherchĂ© Ă  creuser les tableaux et calculs de vecteurs. VoilĂ  ce que j’en ai retenu.


ChatGPT is taking over the internet. But do you know how it actually works? It's so clever.

Il explique que son fonctionnement est des plus simples :

  • Payer des gens pour parler de sorte Ă  avoir un model qui gĂ©nĂšre des phrases humaines

  • Utiliser des gens pour classer les phrases gĂ©nĂ©rĂ©es. Ce second model accorde un score (ils parlent de reward, c’est marrant pour un algo).

  • En fonction du score l’algo procĂšde Ă  des modifications pour gagner en pertinence dans la rĂ©ponse

  • RĂ©pĂ©ter ce processus des millions de fois.

C’est amusant parce que dit comme ça, ça ne semble pas extraordinaire.


The power of the data-centric approach

L’auteur de cet article explique que sa vision de la façon d'aborder les problĂšmes a changĂ©. En fait, plutĂŽt que de se concentrer sur le model (comme il l’a toujours fait), il accorde beaucoup plus d’importance aux donnĂ©es.

Grosso modo, on a beau chercher à optimiser le model, si les données sont merdiques, vous perdez votre temps. Des données merdiques sont des données incohérentes, avec de nombreuses valeurs NULL, par exemple.

Son conseil est donc de faire une bonne analyse exploratoire des données (EDA).

Ne sachant pas trop diffĂ©rencier la bonne d’une mauvaise exploration de donnĂ©es, je me suis ajoutĂ© sur ma liste des sujets Ă  creuser. Bonne raison de s’abonner ;)


Python Magic Methods You Might Not Have Heard About

Grosso modo j’y ai dĂ©couvert plusieurs mĂ©thodes/attributs magiques :

  • __call__ qui permet de personnaliser le comportement d’une instance d’une classe.

class NoInstances(type): 
   def __call__(cls, *args, **kwargs): 
       raise TypeError("Can't create instance of this class") 

This can be useful if you have a class that only have static methods and therefore there’s no good reason to create instances of said class.

  • __new__ Instead of calling Document(...) we invoke which creates a bare instance without invoking __init__.

Document.__new__(Document)
  • __all__ can be used to define which variables and function get exported from a module.

__all__ = ["func", "some_var"]

Il évoque aussi __file__, __debug__

Joyeux noël ;)

Share this post

Recap #1 Ce que j'ai lu sur le Deep Learning cette semaine (ChatGPT, Magic Methods en Python, l'approche data-centric..)

proutia.substack.com
Comments
TopNew

No posts

Ready for more?

© 2023 Aristide
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing