<jupyter_start><jupyter_text>Redes NeuraisO que é?    Um modelo matemático e computacional baseado no carébro humano e dos animais, ou seja, a gente tenta reproduzir como o cerébro humano funciona para colocarmos dentro de um computador.Como é isso é feito?    Usando as entradas, por exemplo, se vermos uma figura branca, essa informação vai até a entrada dos neurónio, depois, é levada até outro pela sinapse, assim, nos dá um retorno, por exemplo, "essa figura é branca".Vantagens e desvantagens    Vantagem: abrange ao resolver problemas    Desvantagem: lento    x1, x2 e xn representam as entradas onde os dados irão entrar        O peso (w0, w1 e wn) é a aprendizagem da rede neural, o quanto ela aprendeu com os erros.Formula(x1.w1)+(x2.w2)+(xn.wn)+...    Ele irá verificar se a somatória dos valores, se for maior que zero. ele retorna 1, senão,retorna 0.    São as formulas usadas para calcular o peso, ou seja, a apreendizagem da nossa rede neural No gráfico acima usamos a taxa de apreendizagem como o erro pelo peso    Única maenira de ter um número de erros menor é ter uma taxa de apreendizagem pequena (como 0.1), entretanto, a quantidade de processamento será maior.Exemplo de Calculo    Vamos calculando até chegar no resultado certo Exemplo de código    Aqui não irei usar random, pois colocando w1, w2 = 0, demora mais tempo para achar o valor<jupyter_code>#from random import *


w1 = w2 = 0 # podemos usar random()
entrada1 = int(input('Digite a entrada 1: '))
entrada2 = int(input('Digite a entrada 2: '))
while True:
    if entrada1 == 1 and entrada2 == 1:
        valorEsperado = 1
    else:
        valorEsperado = 0

    somatoria = (entrada1 * w1) + (entrada2 * w2)

    if somatoria > 1: resultado = 1
    else: resultado = 0

    if resultado != valorEsperado:
        erro = valorEsperado - resultado
        w1 += (0.1 * entrada1 * erro)
        w2 += (0.1 * entrada2 * erro)

        print(f'\nPeso 1 = {w1}\nPeso 2 = {w2}\n')
    else:
        print('--' * 20) 
        print(f'Valor esperado {valorEsperado}\nValor retornado: {resultado}')
        print('--' * 20) 
        break<jupyter_output>Peso 1 = 0.1
Peso 2 = 0.1


Peso 1 = 0.2
Peso 2 = 0.2


Peso 1 = 0.30000000000000004
Peso 2 = 0.30000000000000004


Peso 1 = 0.4
Peso 2 = 0.4


Peso 1 = 0.5
Peso 2 = 0.5


Peso 1 = 0.6
Peso 2 = 0.6

----------------------------------------
Valor esperado 1
Valor retornado: 1
----------------------------------------
{'fraction_non_alphanumeric': 0.11124744376278119, 'fraction_numerical': 0.04948875255623722, 'mean_word_length': 2.7286585365853657, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '516811', 'license': 'MIT', 'n_tokens_mistral': 977, 'n_tokens_neox': 896, 'n_words': 329, 'path': 'Outros/Redes_Neurais/1_teo_rede_neurais.ipynb', 'repo_name': 'rafaelvizu/Estudos', 'size': '2445'}