# Rede neural artificial perceptron, brainnet e neuroeducação

Paulo Góis

► To cite this version:

Paulo Góis. Rede neural artificial perceptron, brainnet e neuroeducação. 2024. hal-04536015v2

HAL Id: hal-04536015

https://hal.science/hal-04536015v2

Preprint submitted on 14 May 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
Rede neural artificial perceptron, brainnet e neuroeducação

Por: João Paulo da Silva Pereira

Resumo

Perceptron é uma rede neural artificial de classificador linear e binário, onde a função de ativação assume dois possíveis valores, -1 e 1. Em relação a soma entre os valores de entrada e os seus respectivos pesos, deve ser sempre acrescentado o viés, o peso inicial, que se aplica ao primeiro valor de entrada do neurônio ou nó. Brainnet é um conceito desenvolvido por Nicolelis e outros cientistas que nos diz que dois ou mais cérebros podem estar conectados e se comunicarem na realização de uma mesma tarefa. Dado o distanciamento ainda presente entre o professor e o aluno pelo símbolo de alteridade ainda estar bem associado ao professor e sabendo que tais fatos não tendem a ser eficazes no processo de ensino-aprendizagem, investiguei a rede neural perceptron a fim de chegar a uma descrição matemática do conceito de brainnet no que se refere a interface cérebro-cérebro e encaminhar nas considerações finais possíveis benefícios que a compreensão de tal conceito pelo docente pode trazer ao processo de ensino e aprendizagem.

Palavras-chave: Perceptron; Brainnet; Neuroeducação.

Summary

Perceptron is an artificial neural network with a linear and binary classifier, where the activation function assumes two possible values, -1 and 1. In relation to the sum of the input values and their respective weights, the bias must always be added, the initial weight, which applies to the first input value of the neuron or node. Brainnet is a concept developed by Nicolelis and other scientists that tells us that two or more
Rede neural artificial perceptron, brainnet e neuroeducação

Por: João Paulo da Silva Pereira

Resumo

Perceptron é uma rede neural artificial de classificador linear e binário, onde a função de ativação assume dois possíveis valores, -1 e 1. Em relação a soma entre os valores de entrada e os seus respectivos pesos, deve ser sempre acrescentado o viés, o peso inicial, que se aplica ao primeiro valor de entrada do neurônio ou nó. Brainnet é um conceito desenvolvido por Nicolelis e outros cientistas que nos diz que dois ou mais cérebros podem estar conectados e se comunicarem na realização de uma mesma tarefa. Dado o distanciamento ainda presente entre o professor e o aluno pelo símbolo de alteridade ainda estar bem associado ao professor e sabendo que tais fatos não tendem a ser eficazes no processo de ensino-aprendizagem, investiguei a rede neural perceptron a fim de chegar a uma descrição matemática do conceito de brainnet no que se refere a interface cérebro-cérebro e encaminhar nas considerações finais possíveis benefícios que a compreensão de tal conceito pelo docente pode trazer ao processo de ensino e aprendizagem.

Palavras-chave: Perceptron; Brainnet; Neuroeducação.

Summary

Perceptron is an artificial neural network with a linear and binary classifier, where the activation function assumes two possible values, -1 and 1. In relation to the sum of the input values and their respective weights, the bias must always be added, the initial weight, which applies to the first input value of the neuron or node. Brainnet is a concept developed by Nicolelis and other scientists that tells us that two or more
brains can be connected and communicate to perform the same task. Given the
distance still present between the teacher and the student due to the symbol of
otherness still being well associated with the teacher and knowing that such facts do
not tend to be effective in the teaching-learning process, I investigated the
perceptron neural network in order to arrive at a description mathematics of the
brainnet concept with regard to the brain-brain interface and forward in the final
considerations possible benefits that the understanding of such a concept by the
teacher can bring to the teaching and learning process.

Keywords: Perceptron; Brainnet; Neuroeducation.

Introdução

No algoritmo perceptron, geralmente usamos o produto escalar porque ele
mede a semelhança entre dois vetores. O produto escalar entre dois vetores é
calculado multiplicando a magnitude dos vetores pelo cosseno do ângulo entre eles.
Isso significa que o produto escalar é maior quando os vetores estão alinhados na
mesma direção e menor quando os vetores estão alinhados em direções diferentes.

No entanto, no contexto do perceptron, o produto escalar entre o peso do
perceptron e o vetor de entrada nos permite medir o quão responsivo o perceptron é
ao padrão de entrada. Se o produto escalar for positivo, significa que o perceptron
está respondendo corretamente ao padrão de entrada, enquanto um produto escalar
negativo significa que a resposta está incorreta. Isto é crucial para ajustar os pesos
do perceptron durante o treinamento, com o objetivo de melhorar a capacidade do
perceptron de classificar corretamente os padrões de entrada.
brains can be connected and communicate to perform the same task. Given the
distance still present between the teacher and the student due to the symbol of
otherness still being well associated with the teacher and knowing that such facts do
not tend to be effective in the teaching-learning process, I investigated the
perceptron neural network in order to arrive at a description mathematics of the
brainnet concept with regard to the brain-brain interface and forward in the final
considerations possible benefits that the understanding of such a concept by the
teacher can bring to the teaching and learning process.

Keywords: Perceptron; Brainnet; Neuroeducation.

Introdução

No algoritmo perceptron, geralmente usamos o produto escalar porque ele
mede a semelhança entre dois vetores. O produto escalar entre dois vetores é
calculado multiplicando a magnitude dos vetores pelo cosseno do ângulo entre eles.
Isso significa que o produto escalar é maior quando os vetores estão alinhados na
mesma direção e menor quando os vetores estão alinhados em direções diferentes.

No entanto, no contexto do perceptron, o produto escalar entre o peso do
perceptron e o vetor de entrada nos permite medir o quão responsivo o perceptron é
ao padrão de entrada. Se o produto escalar for positivo, significa que o perceptron
está respondendo corretamente ao padrão de entrada, enquanto um produto escalar
negativo significa que a resposta está incorreta. Isto é crucial para ajustar os pesos
do perceptron durante o treinamento, com o objetivo de melhorar a capacidade do
perceptron de classificar corretamente os padrões de entrada.
No algoritmo perceptron, o valor de saída é geralmente interpretado como 1 ou -1, o que tem mais a ver com as convenções empregadas no algoritmo do que com a própria lógica booleana.

Na lógica booleana, operações lógicas como AND, OR e NOT produzem uma saída de 0 ou 1, indicando falso ou verdadeiro, respectivamente. Porém, no perceptron, usamos a saída 1 e -1 para representar duas classes diferentes, como positiva e negativa. Isso facilita o ajuste dos pesos do perceptron durante o treinamento, pois podemos utilizar o sinal de saída para corrigir os pesos de acordo com a classe correta.

Resumindo, a lógica booleana usa 0 e 1 para representar falso e verdadeiro respectivamente, enquanto no Perceptron usamos 1 e -1 para representar classes diferentes, tornando o algoritmo mais fácil de aprender.

# Desenvolvimento

## 1º Parte

No algoritmo perceptron, $w_0$ é chamado de viés. Bias é um parâmetro adicional que permite ao perceptron fazer previsões mesmo que todas as entradas sejam zero. Funciona de forma semelhante ao ajuste fino, permitindo que o perceptron aprenda a função de ativação correta. O valor de $w_0$ não é necessariamente 1, ele pode ser ajustado durante o treinamento do perceptron.

A função sgn (sinal) é uma função de ativação simples usada no perceptron. Se o argumento for maior ou igual a 0, retorna 1, caso contrário, retorna -1. A função de ativação é aplicada à soma ponderada das entradas e pesos, incluindo o viés:
No algoritmo perceptron, o valor de saída é geralmente interpretado como 1 ou -1, o que tem mais a ver com as convenções empregadas no algoritmo do que com a própria lógica booleana.

Na lógica booleana, operações lógicas como AND, OR e NOT produzem uma saída de 0 ou 1, indicando falso ou verdadeiro, respectivamente. Porém, no perceptron, usamos a saída 1 e -1 para representar duas classes diferentes, como positiva e negativa. Isso facilita o ajuste dos pesos do perceptron durante o treinamento, pois podemos utilizar o sinal de saída para corrigir os pesos de acordo com a classe correta.

Resumindo, a lógica booleana usa 0 e 1 para representar falso e verdadeiro respectivamente, enquanto no Perceptron usamos 1 e -1 para representar classes diferentes, tornando o algoritmo mais fácil de aprender.

# Desenvolvimento

## 1º Parte

No algoritmo perceptron, $w_0$ é chamado de viés. Bias é um parâmetro adicional que permite ao perceptron fazer previsões mesmo que todas as entradas sejam zero. Funciona de forma semelhante ao ajuste fino, permitindo que o perceptron aprenda a função de ativação correta. O valor de $w_0$ não é necessariamente 1, ele pode ser ajustado durante o treinamento do perceptron.

A função sgn (sinal) é uma função de ativação simples usada no perceptron. Se o argumento for maior ou igual a 0, retorna 1, caso contrário, retorna -1. A função de ativação é aplicada à soma ponderada das entradas e pesos, incluindo o viés:
$$ sgn = \sum_{i=1}^{n} x_i w_i + w_0 $$

Esta função de ativação determina se o perceptron deve ser ativado (produzir a saída desejada) com base em uma soma ponderada de entradas e pesos. Finalmente, o viés $w_0$ é adicionado à soma ponderada das entradas e pesos antes de aplicar a função de ativação para permitir que o perceptron tome decisões com base em um limite ajustável. Isso significa que o perceptron pode aprender a classificar corretamente os dados de entrada, mesmo que os dados não sejam linearmente separáveis. A soma ponderada das tendências é então passada para a função sgn para produzir a saída final do perceptron.

A função de custo, também conhecida como função de perda ou função de erro, é uma medida que quantifica o desempenho de um modelo de aprendizado de máquina em um conjunto de dados de treinamento, dado um conjunto de parâmetros. Esta função é a base de algoritmos de aprendizagem supervisionada, como regressão linear, regressão logística e redes neurais, pois orienta o processo de otimização dos parâmetros do modelo durante o treinamento.

A escolha da função de custo depende do tipo de problema a ser resolvido. Por exemplo, para problemas de regressão, uma função comum é o erro quadrático médio (MSE), enquanto para problemas de classificação, a entropia cruzada é frequentemente usada.

O objetivo do treinamento é minimizar a função de custo ajustando os parâmetros do modelo para que as previsões fiquem o mais próximas possível dos valores reais no conjunto de treinamento. Isso normalmente é feito usando técnicas de otimização, como gradiente descendente, que ajusta iterativamente os parâmetros do modelo no sentido de reduzir o valor da função de custo.

A função de ativação em um perceptron pode ser sigmoide, mas mais comumente uma função degrau é usada (step function), onde retorna 1 se o
$$ sgn = \sum_{i=1}^{n} x_i w_i + w_0 $$

Esta função de ativação determina se o perceptron deve ser ativado (produzir a saída desejada) com base em uma soma ponderada de entradas e pesos. Finalmente, o viés $w_0$ é adicionado à soma ponderada das entradas e pesos antes de aplicar a função de ativação para permitir que o perceptron tome decisões com base em um limite ajustável. Isso significa que o perceptron pode aprender a classificar corretamente os dados de entrada, mesmo que os dados não sejam linearmente separáveis. A soma ponderada das tendências é então passada para a função sgn para produzir a saída final do perceptron.

A função de custo, também conhecida como função de perda ou função de erro, é uma medida que quantifica o desempenho de um modelo de aprendizado de máquina em um conjunto de dados de treinamento, dado um conjunto de parâmetros. Esta função é a base de algoritmos de aprendizagem supervisionada, como regressão linear, regressão logística e redes neurais, pois orienta o processo de otimização dos parâmetros do modelo durante o treinamento.

A escolha da função de custo depende do tipo de problema a ser resolvido. Por exemplo, para problemas de regressão, uma função comum é o erro quadrático médio (MSE), enquanto para problemas de classificação, a entropia cruzada é frequentemente usada.

O objetivo do treinamento é minimizar a função de custo ajustando os parâmetros do modelo para que as previsões fiquem o mais próximas possível dos valores reais no conjunto de treinamento. Isso normalmente é feito usando técnicas de otimização, como gradiente descendente, que ajusta iterativamente os parâmetros do modelo no sentido de reduzir o valor da função de custo.

A função de ativação em um perceptron pode ser sigmoide, mas mais comumente uma função degrau é usada (step function), onde retorna 1 se o
argumento for maior ou igual a zero, e -1 caso contrário. Resumidamente, a escolha
da função de ativação depende do problema e do modelo específico que está sendo
utilizado.

Quanto à função de custo, poderíamos ter:

$$
c(w, b) = \frac{1}{2n} \sum_{k=1}^{n} \left\| \Delta_{z_k} - \text{output} \right\|.
$$

Contudo, não é a função de custo típica do perceptron. A função de custo que penaliza o perceptron por classificar erroneamente os exemplos de treinamento é mais comum para esse algoritmo. Definirei posteriormente tal função.

A função sgn, ou função sinal, é uma função de ativação simples usada em alguns modelos de neurônios artificiais, como o perceptron. Essa função retorna 1 se o argumento for maior ou igual a zero, e -1 caso contrário. Matematicamente, podemos escrever a função sgn:

$$
y = \operatorname{sgn}(x) = \begin{cases} 1 & \text{para } x \ge 0; \\ -1 & \text{para } x < 0. \end{cases}
$$

$$
y = \operatorname{sgn}(x) = -1 \quad \text{para } x < 0.
$$

Esse recurso é útil em modelos do tipo perceptron porque permite que os
neurônios tomem decisões binárias (como classificar um ponto como pertencente a
uma classe ou não) com base em um limite. Se a soma dos pesos de entrada
(juntamente com o viés, se aplicável) for maior ou igual a 0, o neurônio dispara e
retorna 1, caso contrário ele não dispara e retorna -1. A função de custo de um
modelo de aprendizado de máquina fornece uma medida do desempenho do
modelo no conjunto de dados de treinamento. Esta função indica o quão próximas
as previsões do modelo estão dos valores reais dos exemplos de treinamento.
argumento for maior ou igual a zero, e -1 caso contrário. Resumidamente, a escolha
da função de ativação depende do problema e do modelo específico que está sendo
utilizado.

Quanto à função de custo, poderíamos ter:

$$
c(w, b) = \frac{1}{2n} \sum_{k=1}^{n} \left\| \Delta_{z_k} - \text{output} \right\|.
$$

Contudo, não é a função de custo típica do perceptron. A função de custo que penaliza o perceptron por classificar erroneamente os exemplos de treinamento é mais comum para esse algoritmo. Definirei posteriormente tal função.

A função sgn, ou função sinal, é uma função de ativação simples usada em alguns modelos de neurônios artificiais, como o perceptron. Essa função retorna 1 se o argumento for maior ou igual a zero, e -1 caso contrário. Matematicamente, podemos escrever a função sgn:

$$
y = \operatorname{sgn}(x) = \begin{cases} 1 & \text{para } x \ge 0; \\ -1 & \text{para } x < 0. \end{cases}
$$

$$
y = \operatorname{sgn}(x) = -1 \quad \text{para } x < 0.
$$

Esse recurso é útil em modelos do tipo perceptron porque permite que os
neurônios tomem decisões binárias (como classificar um ponto como pertencente a
uma classe ou não) com base em um limite. Se a soma dos pesos de entrada
(juntamente com o viés, se aplicável) for maior ou igual a 0, o neurônio dispara e
retorna 1, caso contrário ele não dispara e retorna -1. A função de custo de um
modelo de aprendizado de máquina fornece uma medida do desempenho do
modelo no conjunto de dados de treinamento. Esta função indica o quão próximas
as previsões do modelo estão dos valores reais dos exemplos de treinamento.
Tome os vetores $x = (x_1, x_2)$ e $w = (w_0, w_1, w_2)$, o seu produto escalar que
corta o plano em dois ao passar pelo ponto zero será:

$$
x \cdot w = (x_1 w_1 + x_2 w_2 + w_0) = 0.
$$

Assim, a função de corte pode ser dada por:

$$
y = \operatorname{sgn}(x \cdot w).
$$

Tome a função de custo:

$$
J(w) = - \sum_{i=1}^{n} y_i (x \cdot w_i).
$$

Onde $y_i$ representa as classes que o algoritmo assumiu por meio da função
de ativação ao longo de suas iterações. Vamos agora a um exemplo hipotético:

$$
\begin{align*}
\sum_{i=1}^{n} x_i w_i &= 0 \Rightarrow y = \operatorname{sgn}(x \cdot w + w_0) = 1. \quad \text{E } y = \operatorname{sgn}(x \cdot w + w_0) = -1 \Rightarrow \\
& y = \operatorname{sgn}(1, x_1, x_2)(w_0, w_1, w_2) + w_0 \Rightarrow y = \operatorname{sgn}(w_0 + x_1 w_1 + x_2 w_2) + w_0, \\
\text{onde } w_0 &= 1. \quad \therefore (w_0 + x_1 w_1 + x_2 w_2) = 0.
\end{align*}
$$

Para

$$
y = \operatorname{sgn}(x_1 w_1 + x_2 w_2 + w_0) + w_0 = -1 \Rightarrow \sum_{i=1}^{n} x_i w_i = -2, \text{ pois } w_0 = 1.
$$
Tome os vetores $x = (x_1, x_2)$ e $w = (w_0, w_1, w_2)$, o seu produto escalar que corta o plano em dois ao passar pelo ponto zero será:

$$x \cdot w = (x_1 w_1 + x_2 w_2 + w_0) = 0.$$

Assim, a função de corte pode ser dada por:

$$y = \operatorname{sgn}(x \cdot w).$$

Tome a função de custo:

$$J(w) = - \sum_{i=1}^{n} y_i(x \cdot w_i).$$

Onde $y_i$ representa as classes que o algoritmo assumiu por meio da função de ativação ao longo de suas iterações. Vamos agora a um exemplo hipotético:

$$ 
\begin{gathered}
\sum_{i=1}^{n} x_i w_i = 0 \Rightarrow y = \operatorname{sgn}(x \cdot w + w_0) = 1. 
E y = \operatorname{sgn}(x \cdot w + w_0) = -1 \Rightarrow \\
y = \operatorname{sgn}(1, x_1, x_2)(w_0, w_1, w_2) + w_0 \Rightarrow y = \operatorname{sgn}(w_0 + x_1 w_1 + x_2 w_2) + w_0, \\
\text{onde } w_0 = 1. \therefore (w_0 + x_1 w_1 + x_2 w_2) = 0.
\end{gathered}
$$

Para

$$y = \operatorname{sgn}(x_1 w_1 + x_2 w_2 + w_0) + w_0 = -1 \Rightarrow \sum_{i=1}^{n} x_i w_i = -2, \text{pois } w_0 = 1.$$
Então teremos

$$J(w) = -2(y_1 + y_2).$$

Desenvolvendo, teremos

$$y = \operatorname{sgn}(x_1 w_1 + x_2 w_2 + w_0) + w_0$$

$$y = -1 = -2 + 1.$$

Sabendo que

$$\sum_{i=1}^{n} y_i = -1 + 1 = 0.$$

Teremos que a função de custo será

$$J(w) = -0(-2) = 0.$$

Observe que a função de custo retornou 0, ou seja, está a sugerir que o algoritmo não está a performar bem e nem mal. Ao minimizar a função de custo durante o treinamento do modelo, estaria a ajustar seus parâmetros de forma a fazer previsões mais precisas. Em resumo, a função de custo nos ajuda a avaliar e melhorar a qualidade do modelo de machine learning.
Então teremos

$$J(w) = -2(y_1 + y_2).$$

Desenvolvendo, teremos

$$y = \operatorname{sgn}(x_1 w_1 + x_2 w_2 + w_0) + w_0$$

$$y = -1 = -2 + 1.$$

Sabendo que

$$\sum_{i=1}^{n} y_i = -1 + 1 = 0.$$

Teremos que a função de custo será

$$J(w) = -0(-2) = 0.$$

Observe que a função de custo retornou 0, ou seja, está a sugerir que o algoritmo não está a performar bem e nem mal. Ao minimizar a função de custo durante o treinamento do modelo, estaria a ajustar seus parâmetros de forma a fazer previsões mais precisas. Em resumo, a função de custo nos ajuda a avaliar e melhorar a qualidade do modelo de machine learning.
## 2º Parte

Matematicamente, as conexões entre cérebros podem ser representadas como redes neurais. Aqui, cada nó representa um cérebro ou conjunto de neurônios, e as conexões entre os nós representam interações entre esses cérebros.

Na prática, isso pode ser implementado usando tecnologias de interface cérebro-cérebro (ICC), como eletroencefalografia (EEG) ou magnetoencefalografia (MEG), que podem medir de forma não invasiva a atividade elétrica ou magnética no cérebro. Além disso, técnicas como estimulação transcraniana por corrente contínua (ETCC) ou estimulação magnética transcraniana (EMT) podem ser usadas para modular a atividade cerebral e promover a comunicação cérebro-cérebro.

Para ilustrar, considere o seguinte cenário hipotético. Duas pessoas estão conectadas a um dispositivo de EEG que mede a atividade cerebral. A atividade cerebral de um indivíduo é convertida em sinais que são transmitidos ao cérebro de outro indivíduo por meio de estimulação cerebral não invasiva. O segundo cérebro então interpreta esses sinais e reage de acordo, iniciando o ciclo de interação cerebral.

A implementação prática de redes ICC e cerebrais para comunicação cerebral bidirecional em tempo real é um desafio complexo e ainda está nos estágios iniciais de pesquisa. No entanto, os recentes avanços na neurociência e na tecnologia tornaram esta possibilidade cada vez mais visível.

Para ilustrar a ideia, vamos simplificar um cenário hipotético em que dois cérebros estão conectados por um ICC. Presumo que cada cérebro pode enviar e receber sinais binários, denotados como 1 ou -1, indicando o estado “ativo” ou “inativo” do cérebro, respectivamente. Então teremos alguns conceitos. O primeiro é o valor de entrada. Cada cérebro recebe sinais de entrada dos outros cérebros. Chamarei esses sinais de $x_1$ e $x_2$. Aqui $x_1$ é o sinal do primeiro cérebro recebido pelo segundo cérebro e $x_2$ é o sinal do segundo cérebro recebido pelo primeiro cérebro.
## 2º Parte

Matematicamente, as conexões entre cérebros podem ser representadas como redes neurais. Aqui, cada nó representa um cérebro ou conjunto de neurônios, e as conexões entre os nós representam interações entre esses cérebros.

Na prática, isso pode ser implementado usando tecnologias de interface cérebro-cérebro (ICC), como eletroencefalografia (EEG) ou magnetoencefalografia (MEG), que podem medir de forma não invasiva a atividade elétrica ou magnética no cérebro. Além disso, técnicas como estimulação transcraniana por corrente contínua (ETCC) ou estimulação magnética transcraniana (EMT) podem ser usadas para modular a atividade cerebral e promover a comunicação cérebro-cérebro.

Para ilustrar, considere o seguinte cenário hipotético. Duas pessoas estão conectadas a um dispositivo de EEG que mede a atividade cerebral. A atividade cerebral de um indivíduo é convertida em sinais que são transmitidos ao cérebro de outro indivíduo por meio de estimulação cerebral não invasiva. O segundo cérebro então interpreta esses sinais e reage de acordo, iniciando o ciclo de interação cerebral.

A implementação prática de redes ICC e cerebrais para comunicação cerebral bidirecional em tempo real é um desafio complexo e ainda está nos estágios iniciais de pesquisa. No entanto, os recentes avanços na neurociência e na tecnologia tornaram esta possibilidade cada vez mais visível.

Para ilustrar a ideia, vamos simplificar um cenário hipotético em que dois cérebros estão conectados por um ICC. Presumo que cada cérebro pode enviar e receber sinais binários, denotados como 1 ou -1, indicando o estado “ativo” ou “inativo” do cérebro, respectivamente. Então teremos alguns conceitos. O primeiro é o valor de entrada. Cada cérebro recebe sinais de entrada dos outros cérebros. Chamarei esses sinais de $x_1$ e $x_2$. Aqui $x_1$ é o sinal do primeiro cérebro recebido pelo segundo cérebro e $x_2$ é o sinal do segundo cérebro recebido pelo primeiro cérebro.
cérebro. O segundo é o conceito de peso, onde o peso das conexões entre cérebros se refere à força das conexões ou à influência de um cérebro sobre o outro. Vamos denotar esses pesos como $w_1$ e $w_2$. A terceira é a função de ativação.

Para simplificar, usaremos a função de ativação sgn (função de sinal), onde $sgn(x) = 1$ para $x \ge 0$ e $sgn(x) = -1$ para $x < 0$. Em quarto lugar está o custo. Como a função considera um cenário binário simples, podemos usar uma função de custo simples que penaliza as diferenças entre o sinal transmitido e o sinal recebido pelo cérebro.

Com base nestes fatores, as interconexões do cérebro podem ser definidas matematicamente da seguinte forma:

- Entradas: $x_1, x_2$;

- Pesos: $w_1, w_2$;

- Soma ponderada: $z = w_1 x_1 + w_2 x_2$;

- Função de ativação: $output = sgn(z)$;

- Função de custo: $C = 1/2 (output - x_1)^2 + 1/2 (output - x_2)^2$.

Nesse exemplo, a função de custo penaliza a diferença entre o sinal enviado por um cérebro e o sinal recebido pelo outro cérebro. O objetivo do treinamento seria ajustar os pesos $w_1$ e $w_2$ de forma a minimizar essa função de custo, permitindo uma comunicação eficaz entre os cérebros.

### 3° Parte

No contexto das redes neurais artificiais, a autorreferência refere-se à capacidade de uma rede se referir a si mesma durante o aprendizado ou o
cérebro. O segundo é o conceito de peso, onde o peso das conexões entre cérebros se refere à força das conexões ou à influência de um cérebro sobre o outro. Vamos denotar esses pesos como $w_1$ e $w_2$. A terceira é a função de ativação.

Para simplificar, usaremos a função de ativação sgn (função de sinal), onde $sgn(x) = 1$ para $x \ge 0$ e $sgn(x) = -1$ para $x < 0$. Em quarto lugar está o custo. Como a função considera um cenário binário simples, podemos usar uma função de custo simples que penaliza as diferenças entre o sinal transmitido e o sinal recebido pelo cérebro.

Com base nestes fatores, as interconexões do cérebro podem ser definidas matematicamente da seguinte forma:

- Entradas: $x_1, x_2$;

- Pesos: $w_1, w_2$;

- Soma ponderada: $z = w_1 x_1 + w_2 x_2$;

- Função de ativação: $output = sgn(z)$;

- Função de custo: $C = 1/2 (output - x_1)^2 + 1/2 (output - x_2)^2$.

Nesse exemplo, a função de custo penaliza a diferença entre o sinal enviado por um cérebro e o sinal recebido pelo outro cérebro. O objetivo do treinamento seria ajustar os pesos $w_1$ e $w_2$ de forma a minimizar essa função de custo, permitindo uma comunicação eficaz entre os cérebros.

### 3° Parte

No contexto das redes neurais artificiais, a autorreferência refere-se à capacidade de uma rede se referir a si mesma durante o aprendizado ou o
raciocínio. Isso pode acontecer de várias maneiras, como quando a saída de uma camada da rede é usada como entrada para a mesma camada em uma etapa posterior, ou quando a saída de uma camada é usada como entrada de uma camada anterior.

A autorreferência pode ser um recurso importante em certos tipos de redes neurais, como redes neurais recorrentes (RNNs), que são projetadas para processar dados sequenciais, como séries temporais ou texto. Em uma RNN, a saída de um passo de tempo é frequentemente usada como entrada do próximo passo de tempo, permitindo que a rede retenha a memória dos estados anteriores.

No entanto, a autorreferência pode representar desafios, tais como a possibilidade de instabilidade de gradiente ou rajadas em redes profundas. Portanto, a sua utilização precisa ser cuidadosamente considerada e controlada para garantir a eficiência da rede.

Para definir uma rede neural artificial com neurônios como nós e conexões entre eles como arestas, é necessário defini-la em termos de um grafo direcionado. Presumirei que tenho uma rede neural de duas camadas. O primeiro é a da entrada e a segunda é a da saída. Onde a saída de cada neurônio (na camada de saída) é realimentada como entrada (na camada de entrada).

Neste contexto, representarei os pesos das conexões entre os neurônios como $w_{ij}$, onde $i$ é o índice do neurônio na camada de entrada e $j$ na camada de saída. Seja $x_i$ a saída do neurônio na camada de entrada $i$ e $y_j$ a saída do neurônio na camada de saída $j$, a saída do neurônio na camada de saída é dada por:

$$y_j = \sigma(\sum_{i=1}^{n} w_{ij} x_i).$$
raciocínio. Isso pode acontecer de várias maneiras, como quando a saída de uma camada da rede é usada como entrada para a mesma camada em uma etapa posterior, ou quando a saída de uma camada é usada como entrada de uma camada anterior.

A autorreferência pode ser um recurso importante em certos tipos de redes neurais, como redes neurais recorrentes (RNNs), que são projetadas para processar dados sequenciais, como séries temporais ou texto. Em uma RNN, a saída de um passo de tempo é frequentemente usada como entrada do próximo passo de tempo, permitindo que a rede retenha a memória dos estados anteriores.

No entanto, a autorreferência pode representar desafios, tais como a possibilidade de instabilidade de gradiente ou rajadas em redes profundas. Portanto, a sua utilização precisa ser cuidadosamente considerada e controlada para garantir a eficiência da rede.

Para definir uma rede neural artificial com neurônios como nós e conexões entre eles como arestas, é necessário defini-la em termos de um grafo direcionado. Presumirei que tenho uma rede neural de duas camadas. O primeiro é a da entrada e a segunda é a da saída. Onde a saída de cada neurônio (na camada de saída) é realimentada como entrada (na camada de entrada).

Neste contexto, representarei os pesos das conexões entre os neurônios como $w_{ij}$, onde $i$ é o índice do neurônio na camada de entrada e $j$ na camada de saída. Seja $x_i$ a saída do neurônio na camada de entrada $i$ e $y_j$ a saída do neurônio na camada de saída $j$, a saída do neurônio na camada de saída é dada por:

$$y_j = \sigma(\sum_{i=1}^{n} w_{ij} x_i).$$
Onde $\sigma$ é a função de ativação. A função de custo da rede por sua vez é definida como:

$$C = \frac{1}{2} \sum_{j=1}^{n} (y_j - d_j)^2.$$

Onde $d_j$ é a saída desejada para o neurônio na camada de saída $j$. Para atualizar os pesos durante o treinamento, irei utilizar o gradiente descendente, que significa matematicamente calcular as derivadas parciais da função de custo em relação aos pesos $w_{ij}$. Para isso, utilizarei a regra da cadeia:

$$\frac{\partial C}{\partial w_{ij}} = \frac{\partial C}{\partial y_j} \frac{\partial y_j}{\partial w_{ij}}.$$

Onde

$$\frac{\partial C}{\partial y_j} = y_j - d_j;$$

$$\frac{\partial y_j}{\partial w_{ij}} = \sigma'(z_j)x_i.$$

Onde $z_j$ é a entrada líquida do neurônio na camada de saída $j$, isto é,

$$z_j = \sum_{i=1}^{n} w_{ij} x_i.$$

Agora atualizarei os pesos utilizando a regra do gradiente descendente:

$$w_{ij} \leftarrow w_{ij} - \eta \frac{\partial C}{\partial w_{ij}}.$$
Onde $\sigma$ é a função de ativação. A função de custo da rede por sua vez é definida como:

$$C = \frac{1}{2} \sum_{j=1}^{n} (y_j - d_j)^2.$$

Onde $d_j$ é a saída desejada para o neurônio na camada de saída $j$. Para atualizar os pesos durante o treinamento, irei utilizar o gradiente descendente, que significa matematicamente calcular as derivadas parciais da função de custo em relação aos pesos $w_{ij}$. Para isso, utilizarei a regra da cadeia:

$$\frac{\partial C}{\partial w_{ij}} = \frac{\partial C}{\partial y_j} \frac{\partial y_j}{\partial w_{ij}}.$$

Onde

$$\frac{\partial C}{\partial y_j} = y_j - d_j;$$

$$\frac{\partial y_j}{\partial w_{ij}} = \sigma'(z_j)x_i.$$

Onde $z_j$ é a entrada líquida do neurônio na camada de saída $j$, isto é,

$$z_j = \sum_{i=1}^{n} w_{ij} x_i.$$

Agora atualizarei os pesos utilizando a regra do gradiente descendente:

$$w_{ij} \leftarrow w_{ij} - \eta \frac{\partial C}{\partial w_{ij}}.$$
Onde η é a taxa de aprendizado. Esse processo é repetido iterativamente até que a função de custo seja minimizada e a rede neural aprenda a tarefa desejada.

Em termos de "brainnet", que se refere a uma rede neural que incorpora interações entre cérebros humanos, a autorreferência pode ser vista como a capacidade da rede de processar e usar a própria saída como entrada para influenciar seus próprios estados futuros.

Suponha que temos dois cérebros interconectados em uma "brainnet". Cada cérebro é representado por um nó na rede, e a conexão entre os cérebros é representada por uma aresta direcionada que permite a comunicação entre eles.

Seja $x_j$ a saída do neurônio no cérebro $i$ e $y_j$ a saída retroalimentada desse neurônio como entrada para o mesmo cérebro na próxima iteração. A interação entre os cérebros pode ser descrita como:

$$y_j = \sigma(\sum_{i=1}^{n} w_{ji} x_j).$$

Onde $\sigma$ é a função de ativação e $w_{ji}$ são os pesos das conexões entre os cérebros.

A função de custo da "brainnet" pode ser definida de forma semelhante à rede neural convencional, levando em consideração a diferença entre a saída desejada e a saída real dos cérebros.

Para atualizar os pesos durante o treinamento da "brainnet", o gradiente descendente pode ser usado de maneira análoga à rede neural convencional, calculando as derivadas parciais da função de custo em relação aos pesos.

A implementação prática de uma "brainnet" envolveria a medição e transmissão de sinais cerebrais entre os cérebros, bem como a interpretação e
Onde η é a taxa de aprendizado. Esse processo é repetido iterativamente até que a função de custo seja minimizada e a rede neural aprenda a tarefa desejada.

Em termos de "brainnet", que se refere a uma rede neural que incorpora interações entre cérebros humanos, a autorreferência pode ser vista como a capacidade da rede de processar e usar a própria saída como entrada para influenciar seus próprios estados futuros.

Suponha que temos dois cérebros interconectados em uma "brainnet". Cada cérebro é representado por um nó na rede, e a conexão entre os cérebros é representada por uma aresta direcionada que permite a comunicação entre eles.

Seja $x_j$ a saída do neurônio no cérebro $i$ e $y_j$ a saída retroalimentada desse neurônio como entrada para o mesmo cérebro na próxima iteração. A interação entre os cérebros pode ser descrita como:

$$y_j = \sigma(\sum_{i=1}^{n} w_{ij} x_j).$$

Onde $\sigma$ é a função de ativação e $w_{ij}$ são os pesos das conexões entre os cérebros.

A função de custo da "brainnet" pode ser definida de forma semelhante à rede neural convencional, levando em consideração a diferença entre a saída desejada e a saída real dos cérebros.

Para atualizar os pesos durante o treinamento da "brainnet", o gradiente descendente pode ser usado de maneira análoga à rede neural convencional, calculando as derivadas parciais da função de custo em relação aos pesos.

A implementação prática de uma "brainnet" envolveria a medição e transmissão de sinais cerebrais entre os cérebros, bem como a interpretação e
resposta a esses sinais para facilitar a comunicação e a colaboração entre os indivíduos.

## Considerações finais

O primeiro estudo (Vieira, 2013) sobre o que daria origem ao brainnet demonstrou a transmissão de informações sensório-motoras em tempo real entre os cérebros de dois ratos. Os ratos colaboraram em uma tarefa para obter uma recompensa, com um rato sendo o "transmissor" e o outro o "receptor" das informações. No terceiro estudo (Vieira, 2015) foi demonstrado que a mesma interface cérebro-cérebro podia ser expandida para permitir a comunicação entre três cérebros de ratos simultaneamente. Isso deu origem ao conceito de "Brainnet". No segundo estudo (Grau, 2014) foi mostrada a possibilidade de comunicação direta entre cérebros humanos usando tecnologias não invasivas, como EEG e estimulação magnética transcraniana (TMS). Os participantes conseguiram realizar tarefas simples de colaboração sem comunicação verbal ou gestual.

Por fim, para além da ICC, o conceito brainnet pode ser estendido para a educação. Assim sendo, podemos compreender melhor que com uma boa relação com os alunos por meio de um ambiente colaborativo, faz-se possível a vinda de uma conexão para além da social, isto é, a cerebral. Com isso, há uma infinidade de possibilidades que o professor pode explorar com tal conceito. Em suma, para além dos neurônios espelhos, a "brainnet" nos permite aprender mais rapidamente por meio da observação, imitação do comportamento e, principalmente, por meio da motivação.
resposta a esses sinais para facilitar a comunicação e a colaboração entre os indivíduos.

## Considerações finais

O primeiro estudo (Vieira, 2013) sobre o que daria origem ao brainnet demonstrou a transmissão de informações sensório-motoras em tempo real entre os cérebros de dois ratos. Os ratos colaboraram em uma tarefa para obter uma recompensa, com um rato sendo o "transmissor" e o outro o "receptor" das informações. No terceiro estudo (Vieira, 2015) foi demonstrado que a mesma interface cérebro-cérebro podia ser expandida para permitir a comunicação entre três cérebros de ratos simultaneamente. Isso deu origem ao conceito de "Brainnet". No segundo estudo (Grau, 2014) foi mostrada a possibilidade de comunicação direta entre cérebros humanos usando tecnologias não invasivas, como EEG e estimulação magnética transcraniana (TMS). Os participantes conseguiram realizar tarefas simples de colaboração sem comunicação verbal ou gestual.

Por fim, para além da ICC, o conceito brainnet pode ser estendido para a educação. Assim sendo, podemos compreender melhor que com uma boa relação com os alunos por meio de um ambiente colaborativo, faz-se possível a vinda de uma conexão para além da social, isto é, a cerebral. Com isso, há uma infinidade de possibilidades que o professor pode explorar com tal conceito. Em suma, para além dos neurônios espelhos, a "brainnet" nos permite aprender mais rapidamente por meio da observação, imitação do comportamento e, principalmente, por meio da motivação.
Referências

BROWNLEE, Jason. **Master Machine Learning Algorithms: Discover How They Work and Implement Them From Scratch.** Edition one. Machine Learning Mastery, 2016. p. 152.

KRISHNACHANDRAN, V. **Lecture Notes in Machine Learning.** Vidya Centre for Artificial Intelligence Research: Índia, 2018. p. 206.

BUENO, Leandro. **Interface Cérebro-Computador Baseada em EEG Utilizando Redes Neurais Auto-Organizadas.** Tese de Doutorado (Engenharia Elétrica) - Departamento de Engenharia Elétrica, Universidade Federal do Espírito Santo. Vitória - ES, p. 143. 2017.

VIEIRA, Miguel; LEBEDEV, Mikhail et al. A Brain-to-Brain Interface for Real-Time Sharing of Sensorimotor Information. Scientific Reports, 2013.

VIEIRA, Miguel; LEBEDEV, Mikhail et al. A Brain-to-Brain Interface for Real-Time Sharing of Sensorimotor Information in Rats. Scientific Reports, 2015.

GRAU, C.; GINHOU, R. et al. Conscious brain-to-brain communication in humans using non-invasive technologies. PLoS One, 2014.
Referências

BROWNLEE, Jason. **Master Machine Learning Algorithms: Discover How They Work and Implement Them From Scratch.** Edition one. Machine Learning Mastery, 2016. p. 152.

KRISHNACHANDRAN, V. **Lecture Notes in Machine Learning.** Vidya Centre for Artificial Intelligence Research: Índia, 2018. p. 206.

BUENO, Leandro. **Interface Cérebro-Computador Baseada em EEG Utilizando Redes Neurais Auto-Organizadas.** Tese de Doutorado (Engenharia Elétrica) - Departamento de Engenharia Elétrica, Universidade Federal do Espírito Santo. Vitória - ES, p. 143. 2017.

VIEIRA, Miguel; LEBEDEV, Mikhail et al. A Brain-to-Brain Interface for Real-Time Sharing of Sensorimotor Information. Scientific Reports, 2013.

VIEIRA, Miguel; LEBEDEV, Mikhail et al. A Brain-to-Brain Interface for Real-Time Sharing of Sensorimotor Information in Rats. Scientific Reports, 2015.

GRAU, C.; GINHOU, R. et al. Conscious brain-to-brain communication in humans using non-invasive technologies. PLoS One, 2014.