Executando verificação de segurança...
10

🖥️ Micro framework de Machine Learning em python puro

Olá!

Recentemente venho estudando muito sobre Machine learning.

Durante esse processo estou escrevendo muito código em C e Python.

Bom, acabei de subir um micro framework de Machine Learning para iniciantes no github chamado: smlf, que estende para "Small Machine Learning Framework".

Dêem um olhada, acho que vocês nunca virão um framework tão pequeno e fácil de usar.

Também deixei um exemplo utilizando o framework para criar um modelo com 2 inputs 2 camadas escondidas e um output com um total de 9 parâmetros.

Esse modelo é capaz de aprender uma operação bem simples, a operação XOR.

que tem os seguintes valores

0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0

Bom, aqui está o link: https://github.com/marcos-venicius/smlf.

E um solene pedido: deixa a estrelinha

4

Parabéns pela iniciativa, fiz a mesma coisa quando comecei aprender redes neurais há um bom tempo atrás. Eu trabalho com isso atualmente e deixo aqui esse site que contém bastante conteúdo sobre redes neurais: https://d2l.ai/, é o que a gente usa para treinar os estagiários no início.

Além disso, se você quiser ir mais a fundo nesse seu trabalho, eu recomendo você aprender sobre números duais: https://blog.demofox.org/2014/12/30/dual-numbers-automatic-differentiation/

Basicamente toda framework, PyTorch/TensorFlow/PaddlePaddle, usam isso para o cálculo dos gradientes.

2

Cara, que massa!

Estou precisando aprender sobre isso e estou ficando cada vez mais maravilhado com o assunto.

Muito obrigado pelas indicações, vou acessar os dois links.

2
3

Inteligência Artificial é o que se chama de Deep Learning (Aprendizagem Profunda) e outros algoritmos clássicos.

Quando trabalhamos com Machine Learning, utilizamos algoritmos de Regressão Linear, Regressão Logística, Random Forests, KNN (K-Nearest Neighbors, ou K-Vizinhos Mais Próximos).

Tecnologias como ChatGPT entram na parte de aprendizagem profunda, Deep Learning. Onde você tem um modelo, que chamamos de rede neural, que é composta por várias operações. O ChatGPT no caso utiliza uma camada, layer, chamada de Transformer: https://paperswithcode.com/paper/attention-is-all-you-need, também conhecido como mecanismo de atenção (attention layer).

Existem outros algoritmos de Machine Learning, tais como Haar Cascades: https://pyimagesearch.com/2021/04/12/opencv-haar-cascades/, para fazer detecção de objetos. Esse algoritmo no caso é antigo e é facilmente superado por modelos mais atuais, tais como: https://github.com/ultralytics/yolov5. YOLO (You Only Look Once) é um algoritmo, que compreende uma rede neural e um pós-processamento na saída dessa rede neural. Surgiu primeiramente nesse artigo aqui: https://arxiv.org/abs/1506.02640 . Ao longo do tempo sofreu várias modificações e melhorias.

Ai uma pergunta que você pode fazer, qual a barreira que diferencia o machine learning do deep learning? Normalmente a gente considera o número de parâmetros que você precisa otimizar. Uma rede neural nada mais é do que um grafo orientado, onde cada nó representa uma operação (Convolução, Multiplicação de Matriz, Soma e etc...) e as edges representam pra onde que a saída daquele nó vai. Um ChatGPT, por exemplo, possui bilhões de parâmetros para você otimizar, talvez mais mas não me lembro de cabeça.