andrewekhalel / MLQuestions

a collection of technical interview questions for machine learning and computer vision engineering positions.

1) Qual é a troca entre viés e variância?

se o nosso modelo é muito simples e tem muito poucos parâmetros, então pode ter viés elevado e baixa variância. Por outro lado, se nosso modelo tem um grande número de parâmetros, então ele vai ter alta variância e baixa viés. Portanto, precisamos encontrar o equilíbrio certo / bom sem sobrecarregar e subfitting os dados.

2) What is gradient descent?

3) explicar o excesso e a sub-adaptação e como combatê-los?

4) Como combater a maldição da dimensionalidade?

  • Manual de Seleção de Recurso
  • Análise de Componentes Principais (PCA)
  • Escalonamento Multidimensional
  • Localmente linear incorporação

5) o Que é regularização, por que usá-lo, e dar alguns exemplos de métodos comuns?

uma técnica que desencoraja a aprendizagem de um modelo mais complexo ou flexível, de modo a evitar o risco de sobrecarga.Exemplos

  • Ridge (norma L2)
  • Lasso (norma L1)
    a desvantagem óbvia da regressão ridge, é a interpretação do modelo. Irá diminuir os coeficientes para os predictores menos importantes, muito perto de zero. Mas isso nunca vai torná-los exactamente zero. Em outras palavras, o modelo final incluirá todos os predictores. No entanto, no caso do laço, a penalidade L1 tem o efeito de forçar algumas das estimativas do coeficiente a serem exatamente iguais a zero quando o parâmetro de afinação λ é suficientemente grande. Portanto, o método lasso também realiza seleção variável e é dito que produz modelos esparsos.

6) explicar a análise principal dos componentes (APC)?

7) Por que é o ReLU melhor e mais frequentemente usado do que o Sigmoid em Redes Neurais?

Imagine uma rede com pesos inicializados aleatórios (ou normalizados) e quase 50% da rede produz ativação 0 por causa da característica de ReLu ( saída 0 para valores negativos de x). Isso significa que menos neurônios estão disparando (ativação esparsa) e a rede é mais leve.

8) dados stride s e kernel tamanhos para cada camada de uma CNN (1-dimensional), criar uma função para computar o campo receptivo de um determinado nó na rede. Isto é apenas encontrar quantos nós de entrada realmente se conectam a um neurônio em uma CNN.

9) implementar componentes conectados em uma imagem / Matriz.

10) implementa uma classe de matriz esparsa em C++.

11) criar uma função para computar uma imagem integral, e criar outra função para obter somas de área da imagem integral.

12) Como remover os valores anómalos ao tentar estimar um plano plano plano a partir de amostras ruidosas?

13) Como funciona o CBIR?

14) Como funciona o registo de imagens? Fluxo óptico esparso contra denso e assim por diante.

15) descrever como funciona a convolução. E se as suas entradas forem tons de cinzento contra imagens RGB? O que determina a forma da próxima camada?

16) Me fale sobre como você criaria um modelo 3D de um objeto a partir de imagens e medições de sensores de profundidade tomadas em todos os ângulos ao redor do objeto.

17) implementar SQRT(const double & x) sem usar quaisquer funções especiais, apenas aritmética fundamental.

18) inverter uma bitstring.

19) implementar supressão não máxima tão eficientemente quanto possível.

20) inverter uma lista de ligações em vigor.

21) o que é a normalização dos dados e por que precisamos dele?

a normalização dos dados é um passo de pré-processamento muito importante, usado para alterar valores para se encaixar em uma faixa específica para assegurar uma melhor convergência durante a contrapropagação. Em geral, resume-se a subtrair a média de cada ponto de dados e a dividir pelo seu desvio-padrão. Se não fizermos isso, então algumas das características (aquelas com alta magnitude) serão mais ponderadas na função de custo (se uma característica de maior magnitude muda em 1%, então essa mudança é bastante grande, mas para características menores é bastante insignificante). A normalização dos dados faz com que todas as características sejam ponderadas de forma igual.

22) Por que usamos convoluções para imagens ao invés de apenas camadas FC?

em primeiro lugar, as convoluções preservam, codificam e realmente usam a informação espacial da imagem. Se usássemos apenas camadas FC não teríamos informação espacial relativa. Em segundo lugar, as redes neurais convolucionais (CNNs) têm uma tradução parcialmente embutida em variância, uma vez que cada kernel de convolução atua como seu próprio filtro/detector de recursos.

23) What makes CNNs translation invariant?

como explicado acima, cada kernel de convolução atua como seu próprio filtro / detector de recursos. Então vamos dizer que você está fazendo detecção de objetos, não importa onde na imagem o objeto está, uma vez que vamos aplicar a convolução de uma forma de janela de deslizamento através de toda a imagem de qualquer maneira.

24) Por que temos o máximo de agrupamento na classificação CNN?

para um papel na Visão Computacional. O pooling máximo num CNN permite-lhe reduzir a computação, uma vez que os seus mapas de funcionalidades são mais pequenos após o pooling. Você não perde muita informação semântica, já que está tomando a ativação máxima. Há também uma teoria de que max-pooling contribui um pouco para dar CNNs mais Tradução em variância. Veja este grande vídeo do Andrew Ng sobre os benefícios do Max-pooling.

25) por que os CNNs segmentados normalmente têm um estilo / estrutura codificador-decodificador?

o codificador CNN pode basicamente ser pensado como uma rede de extração de recursos, enquanto o decodificador usa essa informação para prever os segmentos de imagem “descodificando” as características e aumentando para o tamanho original da imagem.

26) Qual é o significado das redes residuais?

a principal coisa que conexões residuais fizeram foi permitir o acesso direto de recursos de camadas anteriores. Isso torna a propagação da informação em toda a rede muito mais fácil. Um artigo muito interessante sobre isso mostra como o uso de conexões locais skip dá à rede um tipo de estrutura multi-path ensemble, dando recursos múltiplos caminhos para se propagar por toda a rede.

27) Qual é a normalização dos lotes e por que funciona?

treinar redes neurais profundas é complicado pelo fato de que a distribuição das entradas de cada camada muda durante o treinamento, à medida que os parâmetros das camadas anteriores mudam. A idéia é então normalizar as entradas de cada camada de tal forma que eles tenham uma ativação de saída média de zero e desvio padrão de um. Isto é feito para cada mini-Lote individual em cada camada I. E. calcular a média e variância desse mini-lote sozinho, em seguida, normalizar. Isto é análogo a como as entradas para redes são padronizadas. Como é que isto ajuda? Sabemos que normalizar as entradas para uma rede ajuda a aprender. Mas uma rede é apenas uma série de camadas, onde a saída de uma camada se torna a entrada para a próxima. Isso significa que podemos pensar em qualquer camada de uma rede neural como a primeira camada de uma rede menor subseqüente. Pensados como uma série de redes neurais alimentando-se umas às outras, normalizamos a saída de uma camada antes de aplicar a função de ativação, e então a alimentamos na seguinte camada (sub-rede).

28) Por que você usaria muitos pequenos núcleos convolucionais como 3×3 ao invés de alguns grandes?

isto é muito bem explicado no documento VGGNet. Existem 2 razões: Primeiro, você pode usar vários kernels menores em vez de alguns grandes para obter o mesmo campo receptivo e capturar mais contexto espacial, mas com os kernels menores você está usando menos parâmetros e computações. Em segundo lugar, porque com kernels menores você estará usando mais filtros, você será capaz de usar mais funções de ativação e, assim, ter uma função de mapeamento mais discriminativa sendo aprendida pelo seu CNN.

29) Por que precisamos de um conjunto de validação e teste? Qual é a diferença entre eles? Quando treinamos um modelo, dividimos os dados disponíveis em três conjuntos separados.:

  • o conjunto de dados de formação é utilizado para ajustar os parâmetros do modelo. No entanto, a precisão que alcançamos no conjunto de treinamento não é confiável para prever se o modelo será preciso em novas amostras.
  • o conjunto de dados de validação é utilizado para medir a eficácia do modelo em exemplos que não faziam parte do conjunto de dados de formação. As métricas computadas nos dados de validação podem ser usadas para afinar os hiper-parâmetros do modelo. No entanto, cada vez que avaliamos os dados de validação e tomamos decisões com base nessas pontuações, estamos vazando informações dos dados de validação para o nosso modelo. Quanto mais avaliações, mais informações são divulgadas. Então, podemos acabar sobrecarregando os dados de validação, e mais uma vez a pontuação de validação não será confiável para prever o comportamento do Modelo No mundo real.
  • o conjunto de dados de ensaio é utilizado para medir o desempenho do modelo em exemplos nunca vistos. Só deve ser usado quando tivermos ajustado os parâmetros usando o conjunto de validação.

portanto, se omitirmos o conjunto de testes e usarmos apenas um conjunto de validação, a pontuação de validação não será uma boa estimativa da generalização do modelo.

30) O que é a validação cruzada estratificada e quando devemos usá-la?

a validação cruzada é uma técnica para dividir os dados entre conjuntos de treino e validação. Na validação cruzada típica, esta separação é feita aleatoriamente. Mas na validação cruzada estratificada, a divisão preserva a proporção das categorias tanto nos conjuntos de dados de formação como de validação.Por exemplo, se tivermos um conjunto de dados com 10% da categoria A e 90% da categoria B, e usarmos validação cruzada estratificada, teremos as mesmas proporções na formação e validação. Em contraste, se usarmos uma simples validação cruzada, no pior dos casos, podemos descobrir que não existem amostras da categoria A no conjunto de validação.A validação cruzada estratificada pode ser aplicada nos seguintes cenários ::

  • num conjunto de dados com várias categorias. Quanto menor for o conjunto de dados e quanto mais desequilibradas forem as categorias, mais importante será utilizar a validação cruzada estratificada.
  • num conjunto de dados com dados de diferentes distribuições. Por exemplo, em um conjunto de dados para condução autônoma, podemos ter imagens tiradas durante o dia e à noite. Se não assegurarmos que ambos os tipos estão presentes na formação e validação, teremos problemas de generalização.

31) porque é que os conjuntos têm pontuações mais elevadas do que os modelos individuais?

um conjunto é a combinação de vários modelos para criar uma única previsão. A ideia-chave para fazer melhores previsões é que os modelos devem cometer erros diferentes. Dessa forma, os erros de um modelo serão compensados pelas suposições certas dos outros modelos e, assim, a pontuação do conjunto será maior.Precisamos de diversos modelos para criar um conjunto. A diversidade pode ser alcançada:

  • usando algoritmos de ML diferentes. Por exemplo, você pode combinar regressão logística, vizinhos k-mais próximos, e árvores de decisão.
  • utilizando diferentes subconjuntos dos dados para formação. Isto chama-se bagging.
  • dando um peso diferente a cada uma das amostras do conjunto de treino. Se isto for feito iterativamente, ponderando as amostras de acordo com os erros do conjunto, é chamado de impulsionar.Muitas soluções vencedoras para competições de ciência da Informação são conjuntos. No entanto, em projetos de aprendizagem de máquinas na vida real, os engenheiros precisam encontrar um equilíbrio entre o tempo de execução e a precisão.

32) o que é um conjunto de dados desequilibrado? Podes enumerar algumas formas de lidar com isso?

um conjunto de dados desequilibrado é um conjunto que tem diferentes proporções de categorias-alvo. Por exemplo, um conjunto de dados com imagens médicas, onde temos de detectar alguma doença, normalmente terá muito mais amostras negativas do que amostras positivas—digamos, 98% das imagens estão sem a doença e 2% das imagens estão com a doença.

existem diferentes opções para lidar com conjuntos de dados desequilibrados:

  • excesso de amostragem ou subamostragem. Em vez de amostrar com uma distribuição uniforme a partir do conjunto de dados de treinamento, podemos usar outras distribuições para que o modelo veja um conjunto de dados mais equilibrado.
  • aumento dos dados. Podemos adicionar dados nas categorias menos frequentes modificando dados existentes de forma controlada. No conjunto de dados de exemplo, podemos virar as imagens com doenças, ou adicionar ruído a cópias das imagens de tal forma que a doença permanece visível.
  • usando métricas apropriadas. No conjunto de dados de exemplo, se tivéssemos um modelo que sempre fizesse previsões negativas, alcançaria uma precisão de 98%. Existem outras métricas como precisão, recall e f-score que descrevem melhor a precisão do modelo ao usar um conjunto de dados desequilibrado.

33) pode explicar as diferenças entre supervisão, sem supervisão e reforço da aprendizagem?

na aprendizagem supervisionada, nós treinamos um modelo para aprender a relação entre dados de entrada e dados de saída. Precisamos ter rotulado os dados para ser capaz de fazer a aprendizagem supervisionada.

com aprendizagem não supervisionada, só temos dados não marcados. O modelo aprende uma representação dos dados. Aprendizado não supervisionado é frequentemente usado para inicializar os parâmetros do modelo quando temos um monte de dados não marcados e uma pequena fração de dados rotulados. Primeiro treinamos um modelo sem supervisão e, depois disso, usamos os pesos do modelo para treinar um modelo supervisionado.

na aprendizagem de reforço, o modelo tem alguns dados de entrada e uma recompensa dependendo da saída do modelo. O modelo aprende uma política que maximiza a recompensa. A aprendizagem de reforço tem sido aplicada com sucesso a jogos estratégicos, como Go e até mesmo clássico Atari jogos de vídeo.

34) Qual é o aumento dos dados? Pode dar alguns exemplos?

o aumento dos dados é uma técnica para sintetizar novos dados modificando dados existentes de tal forma que o alvo não seja alterado, ou seja alterado de uma forma conhecida.

a visão computacional é um dos campos onde o aumento de dados é muito útil. Há muitas modificações que podemos fazer para imagens:

  • Redimensionar
  • Horizontal ou vertical
  • Girar
  • Adicionar ruído
  • Deformar
  • Modificar colorsEach problema precisa de um personalizadas de dados de aumento de pipeline. Por exemplo, no OCR, fazer flips irá mudar o texto e não será benéfico; no entanto, redimensionamentos e pequenas rotações podem ajudar.

35) O que é o teste de Turing?

o teste de Turing é um método para testar a capacidade da máquina de igualar a inteligência de nível humano. Uma máquina é usada para desafiar a inteligência humana que quando passa o teste, é considerada inteligente. No entanto, uma máquina pode ser vista como inteligente sem conhecer suficientemente as pessoas para imitar um humano.

36) O que é a precisão?

Precisão (também chamado de valor preditivo positivo) é a fração de instâncias pertinentes entre as instâncias recuperadas
Precisão = positivo verdadeiro / (verdadeiro positivo + positivo falso)

37) o Que é Recall?

Recall (também conhecida como sensibilidade) é a fração de instâncias relevantes que foram recuperadas ao longo da quantidade total de instâncias relevantes.Recall = true positive / (true positive + false negative))

38) Define pontuação F1.

é a média ponderada de precisão e recolha. Considera falsos positivos e falsos negativos. É usado para medir o desempenho do modelo.
F1-Score = 2 * (precision * recall) / (precision + recall)

39) What is cost function?

função de custo é uma função escalar que quantifica o Fator de erro da Rede Neural. Reduza a função de custo melhor a rede Neural. Eg: conjunto de dados MNIST para classificar a imagem, a imagem de entrada é o dígito 2 e a rede Neural erradamente prevê que seja 3

40) Lista diferentes neurônios de ativação ou funções.

  • neurónio Linear
  • neurónio limiar binário
  • neurónio binário estocástico binário
  • neurónio sigmóide
  • função Tanh
  • unidade Linear rectificada (ReLU)

41) Defina taxa de aprendizagem.

a taxa de aprendizagem é um hiper-parâmetro que controla o quanto estamos ajustando os pesos da nossa rede com respeito ao gradiente de perda.

42) What is Momentum (w.r.t NN optimization)?

Momentum permite que o algoritmo de otimização se lembre de seu último passo, e adiciona alguma proporção dele ao passo atual. Desta forma, mesmo se o algoritmo está preso em uma região plana, ou um pequeno mínimo local, ele pode sair e continuar em direção ao verdadeiro mínimo.

43) Qual é a diferença entre a descida do gradiente em lote e a descida do gradiente estocástico?

descida do gradiente em lote calcula o gradiente usando todo o conjunto de dados. Isto é ótimo para coletores de erro convexos, ou relativamente lisos. Neste caso, avançamos um pouco directamente para uma solução óptima, local ou global. Além disso, a descida do gradiente de lote, dada uma taxa de aprendizagem recozida, acabará por encontrar o mínimo localizado na sua bacia de atracção.

declive estocástico descendente (SGD) calcula o gradiente usando uma única amostra. SGD funciona bem (não bem, eu suponho, mas melhor do que a descida do gradiente de lote) para coletores de erro que têm muitos máximos/mínimos locais. Neste caso, o gradiente um pouco mais ruidoso calculado usando o número reduzido de amostras tende a empurrar o modelo para fora dos mínimos locais em uma região que esperamos seja mais ótima.

44) época vs lote vs iteração.

Epoch: one forward pass and one backward pass of all the training examples
Batch: examples processed together in one pass (forward and backward)
Iteration: number of training examples / Batch size

45) What is vanishing gradient? À medida que adicionamos mais e mais camadas ocultas, a propagação das costas torna-se cada vez menos útil na transmissão de informações para as camadas inferiores. Com efeito, à medida que a informação é repassada, os gradientes começam a desaparecer e tornam-se pequenos em relação aos pesos das redes.

46) O que são desistências?

Dropout é uma forma simples de evitar que uma rede neural fique sobrecarregada. É o abandono de algumas unidades numa rede neural. É semelhante ao processo de reprodução natural, onde a natureza produz fontes através da combinação de genes distintos (deixando de fora outros) ao invés de fortalecer a co-adaptação deles.

47) Define LSTM.

memória de longo prazo-são explicitamente projetados para resolver o problema de dependência de longo prazo, mantendo um estado o que lembrar e o que esquecer.

48) listar os principais componentes da LSTM.

  • Portas (se esqueça, Memória, atualização & Leia)
  • tanh(x) (valores entre -1 a 1)
  • Sigmóide(x) (valores entre 0 a 1)

49) Lista de variantes de RNN.

  • LSTM: Longa Memória de Curto Prazo
  • GRU: Fechado Recorrente Unidade
  • fim para Fim de Rede
  • Rede de Memória

50) o Que é Autoencoder, o nome de algumas aplicações.

o codificador automático é basicamente usado para aprender uma forma comprimida de dados. Algumas aplicações incluem

  • Dados de denoising
  • redução de Dimensionalidade
  • reconstrução de Imagem
  • Imagem de colorização

51) Quais são os componentes do GAN?

  • Gerador
  • discriminador

52) Qual é a diferença entre roubar e ensacar?

impulsionar e ensacar são semelhantes, na medida em que ambos são técnicas de montagem, onde um número de alunos fracos (classificadores/regressores que são mal melhores do que adivinhar) se combinam (através de média ou voto máximo) para criar um aluno forte que pode fazer previsões precisas. Bagging significa que você toma amostras de bootstrap (com substituição) do seu conjunto de dados e cada amostra treina um (potencialmente) aprendiz fraco. Impulsionar, por outro lado, usa todos os dados para treinar cada aluno, mas casos que foram mal classificados pelos alunos anteriores são dados mais peso para que os alunos subsequentes dar mais foco a eles durante a formação.

53) explicar como funciona uma curva ROC.

a curva ROC é uma representação gráfica do contraste entre as taxas verdadeiras positivas e a taxa falsa positiva em vários limiares. É muitas vezes usado como um proxy para o trade-off entre a sensibilidade do modelo (verdadeiros positivos) vs o fall-out ou a probabilidade de que ele irá desencadear um falso alarme (falsos positivos).

54) Qual é a diferença entre erro de tipo I e tipo II?

o erro do tipo I é um falso positivo, enquanto o erro do tipo II é um falso negativo. Brevemente dito, erro Tipo I significa afirmar que algo aconteceu quando não aconteceu, enquanto erro Tipo II significa que você afirma que nada está acontecendo quando de fato algo está.Uma maneira inteligente de pensar sobre isso é pensar no erro Tipo I como dizer a um homem que ele está grávida, enquanto erro Tipo II significa que você diz a uma mulher grávida que ela não está carregando um bebê.

55) Qual é a diferença entre um modelo generativo e discriminativo?

um modelo generativo aprenderá categorias de dados enquanto um modelo discriminativo aprenderá simplesmente a distinção entre diferentes categorias de dados. Em geral, os modelos discriminativos ultrapassarão os modelos generativos em matéria de tarefas de classificação.

contribuições

contribuições são mais bem-vindas.

  1. Fork the repository.Commit your questions or answers.Pedido de puxão aberto.

Deixe uma resposta

O seu endereço de email não será publicado.