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(reda_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.