Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Removi 74% dos neurônios de uma rede neural.
Isso reduziu a precisão em apenas 0,50%.
Aqui está uma análise (com código):
Uma rede neural treinada tem sempre neurônios que não contribuem substancialmente para o desempenho.
Mas eles ainda consomem memória.
Estes podem ser removidos sem comprometer significativamente a precisão.
Vamos ver como identificá-los!
Aqui estão os passos:
Passo 1) Treine a rede neural como de costume.
Passo 2) Passe o conjunto de validação pela rede treinada e, para cada neurônio nas camadas ocultas, calcule:
- A ativação média
- A variância das ativações (se as ativações puderem ser -ve)
Verifique isto👇

Passo 3) Corte os neurônios que têm uma média e variância de ativação próximas de zero, pois têm pouco impacto na saída do modelo.
Idealmente, plote o desempenho em vários limiares de poda para selecionar o modelo que se ajusta ao seu equilíbrio entre tamanho e precisão.
Verifique isto 👇

Vamos olhar para o código.
Começamos por definir uma rede neural simples e treiná-la.
Como iremos calcular as ativações a nível de neurônios mais tarde para poda, retornamos todas as ativações intermediárias na passagem direta.
Verifique isto👇

Em seguida, definimos duas listas com três elementos:
- Uma armazenará a média das ativações
- Outra armazenará o desvio padrão das ativações
Passamos o conjunto de validação pelo nosso modelo para calcular essas estatísticas para cada camada oculta.
Verifique isto 👇

Neste ponto, vamos criar um gráfico de distribuição das estatísticas a nível de neurônios que gerámos acima.
Como mostrado abaixo, a maioria das ativações médias dos neurônios e o seu desvio padrão estão fortemente distribuídos em torno de valores próximos de zero.
Vamos tentar podá-los a seguir.

Para a poda, iteramos sobre uma lista de limiares e:
- Criamos uma nova rede e transferimos os pesos que passam o limiar.
- Avaliamos a nova rede e calculamos o total de parâmetros.
- Adicionamos os resultados a uma lista.
Verifique isto 👇

Esta tabela compara a precisão do modelo podado e a redução de tamanho em vários limiares em relação ao modelo original.
Com média=0.1 e desvio-padrão=0.4:
- A precisão do modelo cai em 0.08%.
- O tamanho do modelo reduz em 62%.
Isso é uma enorme redução.
Verifique isto 👇

Aqui está outro resultado interessante.
Com média=0.5 e desvio-padrão=1:
- A precisão do modelo cai em 0.5%.
- O tamanho do modelo reduz em 74%.
Portanto, essencialmente, obtemos um desempenho quase semelhante para 1/4 dos parâmetros.
Verifique isto 👇

Claro que há um compromisso entre precisão e tamanho. À medida que reduzimos o tamanho, a precisão diminui (veja o vídeo).
Mas na maioria dos casos, a precisão não é a única métrica que otimizamos.
Em vez disso, várias métricas operacionais, como eficiência, memória, etc., são os fatores chave.
40,99K
Top
Classificação
Favoritos