Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Uma primeira rede neural
Neste exercício, vamos treinar nossa primeira rede neural.
As redes neurais nos permitem aprender modelos não lineares sem
o uso de cruzamentos de atributos explícitos.
Tarefa 1:o modelo conforme fornecido combina nossos dois atributos de entrada em um
um único neurônio. Esse modelo aprenderá alguma não linearidade? Execute-o para confirmar
palpite.
Tarefa 2: tente aumentar o número de neurônios na camada escondida de
1 para 2, além de tentar mudar de uma ativação linear para uma não linear
como ReLU. É possível criar um modelo que possa aprender não linearidades? Ela consegue modelar
os dados de modo eficaz?
Tarefa 3: tente aumentar o número de neurônios na camada escondida de
2 a 3, usando uma ativação não linear como ReLU. Ela consegue modelar os dados?
com eficiência? Como a qualidade do modelo varia de execução para execução?
Tarefa 4: continue testando adicionando ou removendo camadas ocultas
e neurônios por camada. Fique à vontade para alterar
as taxas de aprendizado
regularização e outras configurações de aprendizado. Qual é o tamanho menor
número de neurônios e camadas que podem ser usados para gerar a perda de teste
de 0,177 ou inferior?
Aumentar o tamanho do modelo melhora a adequação ou a rapidez da convergência dele?
Isso muda a frequência com que ele converge para um bom modelo? Por exemplo, tente o
arquitetura a seguir:
Primeira camada escondida com 3 neurônios.
Segunda camada escondida com três neurônios.
Terceira camada escondida com dois neurônios.
As respostas aparecem logo abaixo do exercício.
Clique no ícone de adição para receber uma resposta à Tarefa 1.
A ativação é definida como Linear, para que o modelo não aprenda
qualquer não linearidade. A perda é muito alta, e dizemos que o modelo fica underfitting
os dados.
Clique no ícone de adição para receber uma resposta à Tarefa 2.
A função de ativação não linear pode aprender modelos não lineares. No entanto,
uma única camada escondida com dois neurônios não pode refletir todas as não linearidades
conjunto de dados e terá alta perda mesmo sem ruído: ele ainda
substitui os dados. Esses exercícios não são determinísticos, então algumas corridas
não vai aprender um modelo eficaz, enquanto outras execuções vão ter um bom trabalho.
O melhor modelo pode não ter o formato que você espera!
Clique no ícone de adição para receber uma resposta à Tarefa 3.
A natureza não determinista do Playground se destaca neste exercício. Um
uma única camada escondida com 3 neurônios é suficiente para modelar o conjunto de dados (ausente
ruído), mas nem todas as execuções vão convergir para um bom modelo.
Três neurônios são suficientes porque a função XOR pode ser expressa como uma combinação de três meio-planos (ativação de ReLU). Perceba isso no
imagens de neurônios, que mostram a saída de cada neurônio. Em um modelo bom
com 3 neurônios e ativação ReLU, haverá uma imagem com
linha vertical, detectando X1 positivo (ou negativo; o sinal pode
trocada), uma imagem com uma linha quase horizontal, detectando o sinal
X2 e uma imagem com uma linha diagonal, detectando
interação.
No entanto, nem todas as execuções vão convergir para um bom modelo. Algumas execuções não vão
é melhor do que um modelo com dois neurônios. Note que os neurônios duplicados ficam
casos de uso diferentes.
Clique no ícone de adição para receber uma resposta à Tarefa 4.
Uma única camada escondida com três neurônios é capaz de modelar os dados, mas não
redundância. Assim, em muitas execuções, ele vai perder um neurônio e não aprender uma
um bom modelo. Uma única camada com mais de três neurônios tem mais redundância.
portanto, é mais provável que convergir para um bom modelo.
Uma camada escondida com apenas dois neurônios não pode modelar os dados.
muito bem. Ao testar, é possível ver que todos os itens da camada final
só podem ter formas compostas pelas linhas desses dois nós. Nesse caso, um
Uma rede mais profunda pode modelar o conjunto de dados melhor do que a primeira camada escondida sozinha:
neurônios individuais na segunda camada podem modelar formas mais complexas, como o
quadrante superior direito, combinando neurônios na primeira camada. Ao adicionar
a segunda camada escondida ainda pode modelar o conjunto de dados melhor do que a primeira
pode fazer mais sentido adicionar nós à primeira camada para
deixe que mais linhas façam parte do kit a partir do qual a segunda camada cria sua
formas.
No entanto, um modelo com 1 neurônio na primeira camada escondida não pode aprender uma boa
não importa a profundidade dele. Isso ocorre porque a saída do primeiro
varia apenas ao longo de uma dimensão (geralmente uma linha diagonal), que não é
o suficiente para modelar bem esse conjunto de dados. Camadas posteriores não podem compensar isso, não
não importa quão complexa seja; nos dados de entrada são irrecuperáveis
perdidos.
E se, em vez de tentar usar uma rede pequena, tivéssemos muitas camadas com
muitos neurônios, para um problema simples como esse? Como vimos, a primeira
poderá tentar várias inclinações de linha diferentes. E o segundo
camada poderá acumulá-los em muitas formas diferentes,
com muitas e muitas formas nas camadas subsequentes.
Permitindo que o modelo considere tantas formas diferentes
neurônios ocultos diferentes, você criou espaço suficiente para que o modelo comece
overfitting facilmente do ruído no conjunto de treinamento, permitindo
formas complexas para corresponder aos elementos problemáticos dos dados de treinamento,
informações empíricas generalizadas. Neste exemplo, modelos maiores podem ter complicações
limites para corresponder aos pontos de dados precisos. Em casos extremos, um modelo grande
poderia aprender uma ilha ao redor de um ponto individual de ruído, o que é chamado
memorizar os dados. Ao permitir que o modelo seja muito maior, você
verá que ele geralmente tem um desempenho pior do que o modelo mais simples com
apenas neurônios suficientes para resolver o problema.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-08-22 UTC."],[],[]]