Perceptron e Adaline

Bem-vindo ao repositório dos algoritmos Perceptron e Adaline, dois conceitos fundamentais no campo do aprendizado de máquina e das redes neurais artificiais. Aprender e dominar esses algoritmos é crucial para compreender conceitos mais avançados e aplicar a inteligência artificial em uma ampla gama de tarefas.


📑 Algoritmos

🐍 Revisão Python

A revisão de Python é uma introdução básica à linguagem de programação Python, uma linguagem amplamente utilizada em ciência de dados e aprendizado de máquina. Essa seção aborda os fundamentos da linguagem, incluindo sintaxe, tipos de dados, estruturas de controle e funções. Essa revisão é essencial para quem está começando a aprender sobre redes neurais e algoritmos de aprendizado de máquina, pois oferece uma base sólida para a compreensão e implementação dos algoritmos Perceptron e Adaline.

💻 Google Colab

🐼 Revisão Pandas e Seaborn - Titanic

A revisão de Pandas e Seaborn aborda duas bibliotecas fundamentais para a análise e visualização de dados em Python. Pandas é uma biblioteca de manipulação de dados que fornece estruturas de dados flexíveis, como DataFrames, para trabalhar com dados tabulares. Seaborn é uma biblioteca de visualização de dados baseada no Matplotlib que facilita a criação de gráficos estatísticos informativos e atraentes.

💻 Google Colab

📈 Revisão de Vetores e Encadeamento

A revisão de Vetores e Encadeamento de Código aborda conceitos importantes relacionados à manipulação de vetores e à organização eficiente de código em Python. Vetores são estruturas de dados unidimensionais que armazenam uma coleção de elementos do mesmo tipo, como números, e são comumente usados em aprendizado de máquina e redes neurais artificiais para representar dados e realizar cálculos.

💻 Google Colab

🧠 Perceptron uma Camada

O Perceptron de uma Camada é um dos algoritmos fundamentais no campo do aprendizado de máquina e das redes neurais artificiais. Trata-se de um modelo linear simples baseado no neurônio artificial, que recebe várias entradas e produz uma saída única. O Perceptron de uma Camada é usado principalmente para tarefas de classificação linear, ou seja, para separar dados em duas classes distintas com base em um hiperplano.

💻 Google Colab

🧠 Perceptron para Regressão Linear

O algoritmo aprende a partir de um conjunto de dados de treinamento, ajustando os pesos associados às entradas e o limiar de decisão (bias) de forma iterativa. O processo de aprendizado envolve a atualização dos pesos e do limiar de acordo com a regra de aprendizado do Perceptron, que minimiza os erros de regressão linear.

💻 Google Colab

🧠 Perceptron uma Camada com Numpy

Ao utilizar a biblioteca NumPy, é possível melhorar a eficiência e a simplicidade do código Perceptron de uma Camada, aproveitando as funções e operações vetoriais fornecidas pela biblioteca. Isso permite que você se concentre nos conceitos e na lógica do algoritmo, enquanto o NumPy cuida dos detalhes relacionados à manipulação de vetores e matrizes.

💻 Google Colab

⭕ TLU

A TLU (Threshold Logic Unit) é um tipo de neurônio artificial que serve como base para o Perceptron de uma Camada e outros algoritmos de aprendizado de máquina. A TLU recebe várias entradas, aplica pesos a essas entradas, soma os produtos e, em seguida, passa o resultado por uma função de ativação limiar. Essa função de ativação produz uma saída única, normalmente representando uma classe ou categoria em problemas de classificação.

💻 Google Colab

🧠 Adaline

Adaline é um acrônimo para Adaptive Linear Neuron, que é um tipo de neurônio artificial desenvolvido por Bernard Widrow e Marcian Hoff em 1960. Adaline é uma extensão do Perceptron de uma Camada e utiliza o mesmo conceito de neurônio artificial com entradas ponderadas e uma função de ativação. No entanto, a diferença fundamental entre o Perceptron e o Adaline está na forma como os pesos são atualizados durante o treinamento.

💻 Google Colab

📉 Derivada

A derivada é um conceito fundamental no cálculo diferencial e tem aplicações importantes em várias áreas, incluindo aprendizado de máquina, otimização e análise de funções. Em termos simples, a derivada de uma função representa a taxa de variação da função em relação a uma de suas variáveis. A derivada nos fornece informações sobre a inclinação de uma função em um ponto específico, o que pode ser útil para determinar extremos locais (máximos e mínimos) e pontos de inflexão.

💻 Google Colab

🔀 Conceito de Gradiente

O gradiente é um conceito central em otimização e aprendizado de máquina. Ele representa um vetor que contém as derivadas parciais de uma função multivariável em relação a cada uma de suas variáveis. O gradiente fornece informações sobre a direção de maior aumento na função, ou seja, a direção na qual a função cresce mais rapidamente. A magnitude do gradiente indica a taxa de aumento da função nessa direção.

💻 Google Colab

⏬ Gradiente Descendente

O Gradiente Descendente é um algoritmo de otimização amplamente utilizado em aprendizado de máquina e redes neurais. Sua principal função é minimizar uma função de custo (ou função de erro) ajustando os parâmetros do modelo, como pesos e viés, de forma iterativa. O algoritmo utiliza o gradiente da função de custo para determinar a direção de maior decréscimo, ou seja, a direção na qual a função de custo diminui mais rapidamente.

💻 Google Colab

✴️ Rede Neural + Gradiente Descendente

Combinar redes neurais com o algoritmo de otimização Gradiente Descendente é uma abordagem poderosa para treinar modelos de aprendizado de máquina capazes de aprender e se adaptar aos dados de treinamento. O Gradiente Descendente é usado para ajustar os pesos e viés dos neurônios nas camadas da rede neural de forma a minimizar a função de custo. O processo de treinamento consiste em passar os dados de treinamento pela rede, calcular o erro (ou custo) e, em seguida, usar o gradiente desse erro para atualizar os parâmetros do modelo.

💻 Google Colab

🌐 MultiLayer Perceptron Simples

O MultiLayer Perceptron (MLP) é uma arquitetura de rede neural artificial que consiste em múltiplas camadas de neurônios. Esta arquitetura é mais avançada e capaz de lidar com problemas mais complexos do que o Perceptron de uma camada. Um MLP simples geralmente possui uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída.

💻 Google Colab

⏪ Backpropagation

O algoritmo de Backpropagation, também conhecido como retropropagação, é uma técnica fundamental no treinamento de redes neurais artificiais, especialmente em arquiteturas MultiLayer Perceptron (MLP). O objetivo do Backpropagation é calcular o gradiente da função de custo em relação aos parâmetros (pesos e viés) da rede neural, de modo a permitir que o algoritmo de Gradiente Descendente ajuste os parâmetros e minimize a função de custo.

💻 Google Colab

〽️ Ações da Americanas (AMER3)

A aplicação de redes neurais artificiais no mercado financeiro, como a bolsa de valores, tem ganhado popularidade devido à sua capacidade de aprender padrões complexos e realizar previsões com base em dados históricos. Investidores e analistas financeiros têm explorado o uso de redes neurais para modelar e prever o comportamento dos preços das ações, índices e outros instrumentos financeiros, com o objetivo de tomar decisões de investimento mais informadas e melhorar a rentabilidade.

💻 Google Colab

⚠️ MLP para Detectar Malware

As redes neurais podem ser treinadas para identificar padrões e características específicas de arquivos e processos maliciosos. Utilizando técnicas de aprendizado profundo e conjuntos de dados rotulados contendo exemplos de malwares e arquivos benignos, é possível criar modelos de classificação capazes de distinguir entre software malicioso e legítimo com alta precisão.

💻 Google Colab

⛔ Resolvendo a Porta XOR

A porta XOR (exclusive OR) é uma função lógica binária que retorna verdadeiro (1) apenas quando o número de entradas verdadeiras (1s) é ímpar. Em outras palavras, ela produz 1 quando as entradas são diferentes e 0 quando as entradas são iguais. O problema da porta XOR é um exemplo clássico em aprendizado de máquina e redes neurais, pois representa um problema de classificação não linearmente separável que não pode ser resolvido diretamente por um único perceptron de camada única.

💻 Google Colab

📊 Regressão Linear

A regressão linear é um método estatístico que busca modelar a relação entre uma variável dependente e uma ou mais variáveis independentes. Embora a regressão linear possa ser eficientemente resolvida usando métodos matemáticos tradicionais, como o método dos mínimos quadrados, também é possível abordá-la usando redes neurais artificiais. Nesse caso, a rede neural é configurada para ter uma única camada de entrada com tantos neurônios quanto as variáveis independentes, e uma única camada de saída com um único neurônio que representa a variável dependente.Ao utilizar uma função de ativação linear na camada de saída e treinar a rede neural com algoritmos como o gradiente descendente ou o backpropagation, a rede neural aprenderá os coeficientes da equação de regressão linear que melhor se ajusta aos dados. Dessa forma, a rede neural se torna um modelo de regressão linear.

💻 Google Colab