Glossário de aprendizagem de máquina quânticaQuantum Machine Learning glossary

O treino de um classificador quântico centrado em circuitos é um processo com muitas partes móveis que requerem a mesma (ou ligeiramente maior) quantidade de calibração por tentativa e erro como formação de classificadores tradicionais.Training of a circuit-centric quantum classifier is a process with many moving parts that require the same (or slightly larger) amount of calibration by trial and error as training of traditional classifiers. Aqui definimos os principais conceitos e ingredientes deste processo de formação.Here we define the main concepts and ingredients of this training process.

Horários de treino/testesTraining/testing schedules

No contexto da formação de classificados, um programa descreve um subconjunto de amostras de dados num conjunto de treino ou testes globais.In the context of classifier training a schedule describes a subset of data samples in an overall training or testing set. Um horário é geralmente definido como uma coleção de índices de amostra.A schedule is usually defined as a collection of sample indices.

Pontuações parâmetro/viésParameter/bias scores

Dado um vetor de parâmetros candidatos e um viés de classificação, a sua pontuação de validação é medida em relação a um calendário de validação escolhido S e é expressa por uma série de classificações erradas contadas em todas as amostras do calendário S.Given a candidate parameter vector and a classifier bias, their validation score is measured relative to a chosen validation schedule S and is expressed by a number of misclassifications counted over all the samples in the schedule S.

HiperparmetrosHyperparameters

O processo de formação do modelo rege-se por certos valores pré-definidos chamados hiperparímetros:The model training process is governed by certain pre-set values called hyperparameters :

Taxa de aprendizagemLearning rate

É um dos hiperparímetros chave.It is one of the key hyperparameters. Define a quantidade atual de estimativa de gradiente estocástico que impacta a atualização dos parâmetros.It defines how much current stochastic gradient estimate impacts the parameter update. O tamanho da atualização dos parâmetros delta é proporcional à taxa de aprendizagem.The size of parameter update delta is proportional to the learning rate. Valores de taxa de aprendizagem mais pequenos conduzem a uma evolução mais lenta dos parâmetros e a uma convergência mais lenta, mas valores excessivamente grandes de LR podem quebrar completamente a convergência, uma vez que a descida do gradiente nunca se compromete a um mínimo local específico.Smaller learning rate values lead to slower parameter evolution and slower convergence, but excessively large values of LR may break the convergence altogether as the gradient descent never commits to a particular local minimum. Embora a taxa de aprendizagem seja ajustada de forma adaptável pelo algoritmo de treino em certa medida, selecionar um bom valor inicial para ele é importante.While learning rate is adaptively adjusted by the training algorithm to some extent, selecting a good initial value for it is important. O valor inicial padrão habitual para a taxa de aprendizagem é de 0,1.A usual default initial value for learning rate is 0.1. Selecionar o melhor valor da taxa de aprendizagem é uma arte fina (ver, por exemplo, secção 4.3 de Goodfellow et al."Deep learning", MIT Press, 2017).Selecting the best value of learning rate is a fine art (see, for example, section 4.3 of Goodfellow et al.,"Deep learning", MIT Press, 2017).

Tamanho de minibatchMinibatch size

Define quantas amostras de dados são usadas para uma única estimativa do gradiente estocástico.Defines how many data samples is used for a single estimation of stochastic gradient. Valores maiores de tamanho de minibatch geralmente conduzem a uma convergência mais robusta e mais monótona, mas podem potencialmente abrandar o processo de treino, uma vez que o custo de qualquer estimativa de gradiente é proporcional ao tamanho mini-ajuste.Larger values of minibatch size generally lead to more robust and more monotonic convergence but can potentially slow down the training process, as the cost of any one gradient estimation is proportional to the minimatch size. Um valor padrão habitual para o tamanho da minibatch é 10.A usual default value for the minibatch size is 10.

Épocas de treino, tolerância, impassesTraining epochs, tolerance, gridlocks

"Época" significa uma passagem completa através dos dados de treino programados."Epoch" means one complete pass through the scheduled training data. O número máximo de épocas por fio de treino (ver abaixo) deve ser limitado.The maximum number of epochs per a training thread (see below) should be capped. O fio de treino é definido para terminar (com os parâmetros candidatos mais conhecidos) quando o número máximo de épocas foi executado.The training thread is defined to terminate (with the best known candidate parameters) when the maximum number of epochs has been run. No entanto, essa formação terminaria mais cedo quando a taxa de classificação errada no calendário de validação se situasse abaixo de uma tolerância escolhida.However such training would terminate earlier when misclassification rate on validation schedule falls below a chosen tolerance. Suponhamos, por exemplo, que a tolerância à classificação errada é de 0,01 (1%); se no conjunto de validação de 2000 amostras estamos a assistir a menos de 20 classificações erradas, então o nível de tolerância foi atingido.Suppose, for example, that misclassification tolerance is 0.01 (1%); if on validation set of 2000 samples we are seeing fewer than 20 misclassifications, then the tolerance level has been achieved. Um fio de treino também termina prematuramente se a pontuação de validação do modelo candidato não tiver mostrado qualquer melhoria em várias épocas consecutivas (um impasse).A training thread also terminates prematurely if the validation score of the candidate model has not shown any improvement over several consecutive epochs (a gridlock). A lógica para a rescisão do impasse está atualmente codificada.The logic for the gridlock termination is currently hardcoded.

Contagem de mediçõesMeasurements count

Estimar as pontuações de treino/validação e os componentes do gradiente estocástico num dispositivo quântico equivale a estimar sobreposições de estado quântico que requer várias medições dos observáveis apropriados.Estimating the training/validation scores and the components of the stochastic gradient on a quantum device amounts to estimating quantum state overlaps that requires multiple measurements of the appropriate observables. O número de medições deve ser escalado como $O (1/\epsilon^2)$ onde $\epsilon$ é o erro de estimativa pretendido.The number of measurements should scale as $O(1/\epsilon^2)$ where $\epsilon$ is the desired estimation error. Em regra do polegar, a contagem inicial de medições pode ser aproximadamente $1/\mbox{tolerância}^2$ (ver definição de tolerância no parágrafo anterior).As a rule of thumb, the initial measurements count could be approximately $1/\mbox{tolerance}^2$ (see definition of tolerance in the previous paragraph). Seria necessário rever a contagem de medidas para cima se a descida do declive parecesse demasiado errática e a convergência demasiado difícil de alcançar.One would need to revise the measurement count upward if the gradient descent appears to be too erratic and convergence too hard to achieve.

Fios de treinoTraining threads

A função de probabilidade que é a utilidade de treino para o classificador é muito raramente convexa, o que significa que geralmente tem uma infinidade de optima local no espaço de parâmetros que podem diferir significativamente pela qualidade.The likelihood function which is the training utility for the classifier is very seldom convex, meaning that it usually has a multitude of local optima in the parameter space that may differ significantly by quality. Uma vez que o processo SGD pode convergir para apenas um ideal específico, é importante explorar vários vetores de parâmetros iniciais.Since the SGD process can converge to only one specific optimum, it is important to explore multiple starting parameter vectors. A prática comum na aprendizagem automática é inicializar tais vetores iniciais aleatoriamente.Common practice in machine learning is to initialize such starting vectors randomly. A Q# API de formação aceita uma matriz arbitrária de tais vetores iniciais, mas o código subjacente explora-os sequencialmente.The Q# training API accepts an arbitrary array of such starting vectors but the underlying code explores them sequentially. Num computador multicore ou de facto em qualquer arquitetura de computação paralela é aconselhável realizar várias chamadas para Q# a formação de API em paralelo com diferentes inicializações de parâmetros através das chamadas.On a multicore computer or in fact on any parallel computing architecture it is advisable to perform several calls to Q# training API in parallel with different parameter initializations across the calls.

Como modificar os hiperparímetrosHow to modify the hyperparameters

Na biblioteca QML, a melhor forma de modificar os hiperparmetros é sobrevam os valores predefinidos da UDT TrainingOptions .In the QML library, the best way to modify the hyperparameters is by overriding the default values of the UDT TrainingOptions. Para isso chamamos-lhe com a função DefaultTrainingOptions e aplicamos o operador w/ para anular os valores predefinidos.To do this we call it with the function DefaultTrainingOptions and apply the operator w/ to override the default values. Por exemplo, utilizar 100.000 medições e uma taxa de aprendizagem de 0,01:For example, to use 100,000 measurements and a learning rate of 0.01:

let options = DefaultTrainingOptions()
w/ LearningRate <- 0.01
w/ NMeasurements <- 100000;