Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA – UNOPAR 
 
 
 
 
 
ENGENHARIA DE SOFTWARE 
 
 
 
 
 
 
(ALUNO) 
 
 
 
 
 
 
Portifólio - Relatório de aula prática 
FUNDAMENTOS DA INTELIGÊNCIA ARTIFICIAL 
 
 
 
 
 
 
 
 
COLINAS DO TOCANTINS-TO 
2024
 
 
(ALUNO) 
 
 
 
 
 
 
Portifólio - Relatório de aula prática 
FUNDAMENTOS DA INTELIGÊNCIA ARTIFICIAL 
 
 
 
 
 
 
 
 
Relatório de aula prática apresentado no curso 
de Engenharia de Software como requisito 
parcial para a obtenção de pontos na matéria 
de Fundamentos da Inteligência Artificial para 
a média semestral. 
Tutor: Vinicius Camargo Prattes 
 
 
 
 
 
 
 
 
COLINAS DO TOCANTINS-TO 
2024
 
 
SUMÁRIO 
 
1. INTRODUÇÃO ............................................................................................................. 3 
2. MÉTODOS ..................................................................................................................... 4 
3. RESULTADOS ............................................................................................................... 7 
4. CONCLUSÃO ................................................................................................................ 8 
REFERÊNCIAS ....................................................................................................................... 9 
 
 
 
 
 
 
 
 
3 
 
1. INTRODUÇÃO 
 
O JDoodle Python é uma plataforma online que oferece um ambiente de 
desenvolvimento integrado (IDE) diretamente no navegador, permitindo aos usuários 
programar em Python de maneira prática e eficiente. Ele é amplamente utilizado para 
aprendizado e desenvolvimento, especialmente em áreas como ciência de dados, inteligência 
artificial e aprendizado de máquina. O JDoodle Python simplifica a execução de código, 
oferecendo recursos como realce de sintaxe, sugestões de código e feedback imediato, o que 
facilita a escrita e depuração de programas. 
Neste trabalho, usaremos o JDoodle Python para implementar uma rede neural 
artificial (RNA) simples de uma camada, cujo objetivo é realizar a tarefa de classificação 
binária. As redes neurais artificiais (RNAs) são modelos computacionais inspirados no 
funcionamento do cérebro humano, capazes de realizar tarefas de classificação, previsão e 
reconhecimento de padrões. Implementaremos uma rede neural simples de uma camada 
(perceptron de camada única), com o objetivo de realizar uma tarefa de classificação binária. 
Para isso, utilizamos a função de ativação sigmoide, que transforma a saída do neurônio em 
um valor entre 0 e 1, adequado para problemas de classificação binária. A rede será treinada 
utilizando o método de aprendizado supervisionado, onde ajustaremos os pesos com base no 
erro entre a saída esperada e a saída real. O treinamento será feito em 10.000 iterações para 
garantir a convergência da rede. O JDoodle Python facilita a execução desse processo, 
permitindo o uso da biblioteca NumPy para realizar operações matemáticas e manipulação de 
arrays de maneira eficiente. 
 
 
4 
 
2. MÉTODOS 
 
Os seguintes métodos foram utilizados para realizar a atividade: 
 
• Bibliotecas utilizadas: A principal biblioteca utilizada será a NumPy que nos permite 
realizar operações matemáticas de forma eficiente e manipular arrays. 
• Função sigmoide: A função de ativação sigmoide transforma qualquer valor de entrada em 
um valor entre 0 e 1. Sua fórmula é dada por: 
Também usaremos sua derivada para calcular o gradiente durante o ajuste dos pesos: 
• Matriz de entrada e saída: Definimos a matriz de entrada X (dados de entrada) e matriz de 
saída e (saída desejada), que conterá os valores esperados para cada entrada. 
• Inicialização dos pesos: Os pesos da sinapse serão inicializados com valores aleatórios para 
garantir que a rede não comece em um estado simétrico. 
• Treinamento: Implementaremos um loop de treinamento, onde em cada iteração 
avançaremos a propagação para frente, design do erro, ajuste dos pesos e atualização dos 
mesmos. 
Abaixo, na imagem 1, o código escrito: 
Imagem 1 – Código em Python 
 
Fonte: Do Autor, 2024. 
 
Explicação do Código: 
5 
 
O código implementa uma rede neural artificial (RNA) de uma camada utilizando 
a função de ativação sigmoide. O objetivo é realizar uma classificação binária, ajustando os 
pesos da rede por meio de um processo de treinamento supervisionado. Vamos detalhar cada 
etapa do código: 
Linha 1 do código: importação da biblioteca NumPy: A biblioteca NumPy é importada 
para realizar operações matemáticas e manipular arrays de forma eficiente. Ela é essencial 
para criar e manipular as matrizes de entrada, saída e pesos. 
Linhas 4 e 5 do código: Função de ativação sigmoide: A função de ativação sigmoide é 
implementada para transformar as saídas dos neurônios em valores entre 0 e 1. Ela é uma 
função não linear e adequada para problemas de classificação binária. 
Linhas 8 e 9 do código: Derivada da função sigmoide: A derivada da função sigmoide é 
utilizada no cálculo do ajuste dos pesos durante o treinamento. Ela é necessária para calcular 
o gradiente no processo de retropropagação do erro. 
Linhas 13 a 19 do código: Definição das entradas (X) e saídas esperadas (y): Neste 
exemplo, criamos uma matriz X com quatro amostras de três entradas cada (0 ou 1), e uma 
matriz y com as saídas esperadas para cada amostra. O objetivo é treinar a rede para que, dada 
uma entrada, ela produza a saída correspondente. 
Linhas 22 a 23 do código: Inicialização dos pesos: Os pesos (ou sinapses) são inicializados 
aleatoriamente para garantir que a rede neural comece de maneira não simétrica. Os valores 
são gerados entre -1 e 1 com distribuição uniforme. 
Linha 26 do código: Loop de treinamento: O treinamento ocorre em um loop de 10.000 
iterações, ajustando os pesos em cada ciclo. A cada iteração, a rede faz os seguintes passos: 
• Nas linhas 31 e 32 temos a propagação para frente: Calcula a saída da rede 
(ativação do neurônio) com base na multiplicação da matriz de entrada pelos pesos e 
aplicando a função sigmoide. 
• Na linha 35 temos o cálculo do erro: O erro é a diferença entre a saída real da 
rede (calculada) e a saída esperada (y). Esse erro será usado para ajustar os pesos. 
• Na linha 38 temos o Ajuste dos pesos: Utilizando a derivada da função 
sigmoide, calcula-se o "delta" ou o ajuste necessário para os pesos. Este ajuste é 
aplicado aos pesos na próxima iteração. 
• Na linha 41 temos a Atualização dos pesos: Os pesos são atualizados 
somando o ajuste calculado à multiplicação da matriz de entrada transposta pelo 
6 
 
delta (ajuste). Isso permite que os pesos sejam ajustados para reduzir o erro nas 
próximas iterações. 
Linhas 44 e 45 do código: Exibição dos resultados: Após o término das 10.000 iterações, o 
código imprime a saída da rede neural, mostrando como ela aprendeu a tarefa de classificação 
binária, aproximando-se das saídas esperadas (0 ou 1). 
No final, a rede consegue aprender a relação entre as entradas e as saídas, realizando 
corretamente a classificação binária. 
 
7 
 
3. RESULTADOS 
 
Após a execução do treinamento por 10.000 iterações, a rede neural ajusta os pesos 
de maneira que a saída calculada se aproxime das saídas desejadas para cada entrada. Abaixo, 
o resultado após o treinamento: 
Imagem 2 – Resultado (saída) 
 
Fonte: Do Autor, 2024. 
 
A saída da rede é muito próxima dos valores desejados: 0 e 1. Isso demonstra que o 
treinamento foi eficaz na tarefa de classificação binária, ajustando os pesos de forma que a 
rede fosse capaz de aprender o padrão de entradas e suas respectivas saídas. 
 
8 
 
4. CONCLUSÃO 
 
Neste trabalho, criamos uma rede neural simples de uma camada para resolver um 
problema de classificação binária. Usamos a função de ativação sigmoide e, por meio de um 
processo de aprendizado supervisionado, ajustamos os pesos da redepara que as saídas 
ficassem cada vez mais próximas dos valores esperados. A rede conseguiu aprender a relação 
entre os dados de entrada e suas respectivas saídas, o que mostrou a eficiência do modelo para 
a tarefa. O treinamento foi bem-sucedido e destacou a importância da função de ativação e do 
ajuste dos pesos no aprendizado de redes neurais. 
 
9 
 
REFERÊNCIAS 
 
NUMPY. Biblioteca NumPy. Disponível em: https://numpy.org/. Acesso em: 24 set. 2024. 
 
JDOODLE. JDoodle - Python IDE Online. Disponível em: 
https://www.jdoodle.com/python3-programming-online. Acesso em: 24 set. 2024. 
 
ALURA. Rede neural artificial: Uma introdução. Disponível em: 
https://www.alura.com.br/conteudo/pln-deep-learning. Acesso em: 24 set. 2024. 
 
PYTHON. Python - Documentação oficial. Disponível em: https://docs.python.org/3/. 
Acesso em: 24 set. 2024. 
 
https://numpy.org/
https://www.jdoodle.com/python3-programming-online
https://www.alura.com.br/conteudo/pln-deep-learning
https://docs.python.org/3/

Mais conteúdos dessa disciplina