Questão anulada
Determinada topologia de Rede Neural Artificial profunda (RNA) foi treinada em diferentes funções escritas em linguagem Python. Cada uma das formas de treino foram parametrizadas nas funções treino1, treino2 e treino3, expressas no código abaixo.
def treino1(rede_neural, n0, learning_rate):
gradiente = 0
for amostra in lista_amostras:
saida = rede_neural.get_saida(amostra.valor)
erro = rede_neural.get_erro(saida, amostra.saida_esperada)
gradiente += rede_neural.backpropagation(erro)
rede_neural.update_weights(n0 * gradiente)
return rede_neural
def treino2(rede_neural, n0):
for amostra in lista_amostras:
saida = rede_neural.get_saida(amostra.valor)
erro = rede_neural.get_erro(saida, amostra.saida_esperada)
gradiente = rede_neural.backpropagation(erro)
rede_neural.update_weights(n0 * gradiente)
return rede_neural
def treino3(rede_neural, n0, fator_n):
n = n0
for amostra in lista_amostras:
saida = rede_neural.get_saida(amostra.valor)
erro = rede_neural.get_erro(saida, amostra.saida_esperada)
gradiente = rede_neural.backpropagation(erro)
rede_neural.update_weights(n * gradiente)
n *= fator_n
return rede_neural
Assim, "rede_neural" representa o modelo de Aprendizado de Máquina e possui os métodos get_saida, que calcula o valor previsto pela rede com base na entrada e o método get_erro, que calcula o erro com base no valor previsto e no valor de referência, respectivamente. Além disso, o objeto "rede_neural" armazena todos os parâmetros da rede, possui a função "backpropagation" para calcular o gradiente do erro em um hiperespaço vetorial, no qual cada dimensão corresponde a um peso e a função "update_weights" para somar aos pesos o valor fornecido em seu argumento. Assinale a opção correta tendo como base os códigos apresentados.
def treino1(rede_neural, n0, learning_rate):
gradiente = 0
for amostra in lista_amostras:
saida = rede_neural.get_saida(amostra.valor)
erro = rede_neural.get_erro(saida, amostra.saida_esperada)
gradiente += rede_neural.backpropagation(erro)
rede_neural.update_weights(n0 * gradiente)
return rede_neural
def treino2(rede_neural, n0):
for amostra in lista_amostras:
saida = rede_neural.get_saida(amostra.valor)
erro = rede_neural.get_erro(saida, amostra.saida_esperada)
gradiente = rede_neural.backpropagation(erro)
rede_neural.update_weights(n0 * gradiente)
return rede_neural
def treino3(rede_neural, n0, fator_n):
n = n0
for amostra in lista_amostras:
saida = rede_neural.get_saida(amostra.valor)
erro = rede_neural.get_erro(saida, amostra.saida_esperada)
gradiente = rede_neural.backpropagation(erro)
rede_neural.update_weights(n * gradiente)
n *= fator_n
return rede_neural
Assim, "rede_neural" representa o modelo de Aprendizado de Máquina e possui os métodos get_saida, que calcula o valor previsto pela rede com base na entrada e o método get_erro, que calcula o erro com base no valor previsto e no valor de referência, respectivamente. Além disso, o objeto "rede_neural" armazena todos os parâmetros da rede, possui a função "backpropagation" para calcular o gradiente do erro em um hiperespaço vetorial, no qual cada dimensão corresponde a um peso e a função "update_weights" para somar aos pesos o valor fornecido em seu argumento. Assinale a opção correta tendo como base os códigos apresentados.