SLTINTA - Ementa - Plano de Aula
Máquinas de Vetores de Suporte (SVM) no Diagnóstico de Falhas Industriais
1. Contexto Histórico e Origem das Máquinas de Vetores de Suporte
Para compreender o impacto e a elegância matemática do SVM (Support Vector Machines), é fundamental analisar a evolução dos algoritmos de classificação ao longo do século XX.
No final da década de 1950, Frank Rosenblatt desenvolveu o Perceptron, a primeira arquitetura de rede neural artificial simplificada. O Perceptron buscava encontrar um hiperplano capaz de separar duas classes ajustando iterativamente seus pesos a cada erro de classificação. No entanto, o Perceptron possuía duas limitações severas:
- Infinidade de Soluções: Se os dados fossem linearmente separáveis, existia um número infinito de linhas ou hiperplanos capazes de separar as classes com \(100\%\) de acerto. O Perceptron parava assim que encontrava a primeira linha válida, sem qualquer garantia de qualidade ou estabilidade temporal.
- Sensibilidade a Amostras Limítrofes e Ruído: Fronteiras traçadas muito próximas dos pontos de treino tendiam a falhar categoricamente ao receber novos dados ligeiramente ruidosos.
Nas décadas de 1960 a 1990, o matemático russo Vladimir Vapnik e seus colaboradores nos laboratórios da AT&T Bell Labs, como Alexey Chervonenkis, Isabelle Guyon e Corinna Cortes, reformularam os fundamentos do aprendizado de máquina ao propor a Teoria do Aprendizado Estatístico.
Em vez de focar apenas na Minimização do Risco Empírico, reuzir o erro no conjunto de treinamento, Vapnik introduziu o princípio da Minimização do Risco Estrutural (SRM). A grande inovação ocorreu em 1992, com a introdução do Truque do Kernel, e em 1995 ,com a formulação da Margem Suave por Vapnik e Cortes, consolidando o SVM como o algoritmo soberano em classificação e reconhecimento de padrões antes do advento do Deep Learning moderno.
2. Objetivo e Necessidade do SVM na Manutenção Preditiva (Indústria 4.0)
Na engenharia de manutenção preditiva, o objetivo de um modelo de classificação é atuar como um agente de triagem em tempo real. Sensores físicos instalados em máquinas (medindo Temperatura, Torque, Vibração e Rotação/RPM) enviam fluxos contínuos de dados. O modelo deve analisar essas variáveis e responder instantaneamente: a máquina opera em Condição Normal (Classe 0) ou entrou em Zona de Falha Iminente (Classe 1)?
Por que o SVM é a ferramenta ideal para essa tarefa?
- Busca pela Fronteira de Separação Ótima: Diferente de outros classificadores, o SVM posiciona a fronteira de decisão exatamente no centro do "corredor" mais largo possível entre as duas classes. Isso confere ao modelo uma alta capacidade de generalização ao lidar com variações e ruídos térmicos dos sensores no chão de fábrica.
- Capacidade de Lidar com Relações Não Lineares: Fenômenos físicos industriais raramente são lineares. A interação entre alta temperatura e queda de RPM exige fronteiras curvas complexas, que o SVM constrói eficientemente no espaço dimensional adequado.
- Robustez em Espaços de Alta Dimensão: O SVM permanece matematicamente estável mesmo quando o número de sensores e variáveis derivadas supera a quantidade de amostras disponíveis.
3. Fundamentos Matemáticos do SVM (Do Primal ao Dual)
3.1. A Equação do Hiperplano e a Margem Máxima
Considere um conjunto de dados de treinamento composto por \(N\) amostras: \[\mathcal{D} = {(\mathbf{x}_1, y_1), (\mathbf{x}_2, y_2), \dots, (\mathbf{x}_N, y_N)}\] onde \(\mathbf{x}_i \in \mathbb{R}^d\) representa o vetor de atributos do sensor e \(y_i \in {-1, +1}\) representa o rótulo da classe (onde \(-1\) é Normal e \(+1\) é Falha).
O hiperplano separador é definido pela equação linear: \[f(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + b = 0\] onde \(\mathbf{w}\) é o vetor ortogonal (normal) ao hiperplano e \(b\) é o termo de deslocamento (bias).
Para amostras perfeitamente separáveis, definimos dois hiperplanos paralelos limites que delimitam a "rua" ou margem de segurança: \[\mathbf{w}^T \mathbf{x}_i + b \ge +1 \quad \text{se } y_i = +1\] \[\mathbf{w}^T \mathbf{x}_i + b \le -1 \quad \text{se } y_i = -1\]
Combinando ambas as desigualdades em uma única expressão, obtemos a restrição da Margem Rígida (Hard Margin): \[y_i (\mathbf{w}^T \mathbf{x}_i + b) \ge 1, \quad \forall i = 1, \dots, N\]
Geometricamente, a largura da margem entre os dois hiperplanos paralelos é calculada como: \[\text{Margem} = \frac{2}{|\mathbf{w}|}\]
Maximizar a margem \(\frac{2}{|\mathbf{w}|}\) equivale matematicamente a minimizar \(|\mathbf{w}|\), ou para fins de diferenciação no cálculo computacional, minimizar a função quadrática convexa \(\frac{1}{2} |\mathbf{w}|^2\):
\[\min_{\mathbf{w}, b} \frac{1}{2} |\mathbf{w}|^2 \quad \text{sujeito a } y_i (\mathbf{w}^T \mathbf{x}_i + b) \ge 1, \quad \forall i\]
3.2. Margem Suave (Soft Margin) e Variáveis de Folga (\(\xi_i\))
Em cenários industriais reais, os dados contêm ruído, sobreposição e medições imperfeitas, tornando a separação linear perfeita impossível. Para contornar essa restrição, Vapnik introduziu as variáveis de folga (\(\xi_i \ge 0\)), permitindo que algumas amostras invadam a margem ou sejam temporariamente classificadas de forma incorreta:
\[y_i (\mathbf{w}^T \mathbf{x}_i + b) \ge 1 - \xi_i, \quad \xi_i \ge 0, \quad \forall i\]
A nova função objetivo a ser minimizada passa a ser: \[\min_{\mathbf{w}, b, \boldsymbol{\xi}} \left( \frac{1}{2} |\mathbf{w}|^2 + C \sum_{i=1}^{N} \xi_i \right)\]
O papel do Hiperparâmetro \(C\) (Custo de Regularização):
- \(C\) Elevado: Aplica uma penalidade severa a qualquer erro no treino. O algoritmo tenta zerar as folgas (\(\xi_i \to 0\)), resultando em margens mais estreitas. Isso pode causar Overfitting (o modelo memoriza o ruído das amostras).
- \(C\) Baixo: Torna o algoritmo mais permissivo a erros no treino. A margem de separação fica mais larga e generalizável, aumentando o viés mas reduzindo a variância do modelo.
3.3. A Formulação Dual e os Multiplicadores de Lagrange
Para resolver esse problema de otimização quadrática sujeita a restrições de desigualdade, constrói-se a Função Lagrangeana Primal utilizando os multiplicadores de Lagrange \(\alpha_i \ge 0\) e \(\mu_i \ge 0\):
Derivando \(\mathcal{L}\) em relação às variáveis primais (\(\mathbf{w}\), \(b\), \(\xi_i\)) e igualando a zero, chega-se à Formulação Dual de Wolfe:
Por que a Formulação Dual é Revolucionária?
- Dependência Exclusiva de Produtos Escalares: A otimização não depende mais da dimensão explícita dos dados, mas apenas do produto escalar \((\mathbf{x}_i^T \mathbf{x}_j)\) entre os pares de amostras.
- Condições de Karush-Kuhn-Tucker (KKT) e Esparsidade: As condições de otimidade KKT exigem que \(\alpha_i \left[ y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1 + \xi_i \right] = 0\).
- Para a grande maioria das amostras distantes da fronteira, \(\alpha_i = 0\).
- Apenas para os pontos situados sobre a margem ou violando-a, teremos \(\alpha_i > 0\). Esses pontos são os Vetores de Suporte! O modelo final descarta todas as outras amostras do dataset e depende unicamente desse subconjunto esparso.
4. O Truque do Kernel (Kernel Trick) e Não-Linearidade
Quando as variáveis de processo formam padrões circulares ou agrupamentos complexos, traçar uma linha reta no espaço original resulta em erros massivos.
A solução teórica seria aplicar uma função de transformação não linear \(\phi(\mathbf{x})\) que projeta os dados do espaço original \(d\)-dimensional para um espaço de atributos de dimensão muito mais alta \(\mathcal{H}\) (onde as classes passam a ser linearmente separáveis).
No entanto, calcular explicitamente \(\phi(\mathbf{x})\) para cada amostra em altas dimensões causaria uma explosão combinatória de memória e tempo de CPU.
O Teorema de Mercer e o Truque do Kernel
O Truque do Kernel resolve esse impasse: se substituirmos o produto escalar de alta dimensão \(\phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j)\) por uma Função de Kernel \(K(\mathbf{x}_i, \mathbf{x}_j)\), podemos calcular o resultado dessa projeção operando diretamente sobre os vetores no espaço original:
\[K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j)\]
Comparativo dos Principais Kernels
- Kernel Linear: \(K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_j\). Usado quando os dados já são linearmente separáveis ou quando o número de variáveis é gigantesco.
- Kernel RBF (Radial Basis Function / Gaussiano): \[K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left(-\gamma |\mathbf{x}_i - \mathbf{x}_j|^2\right)\] onde \(\gamma > 0\) representa a largura ou alcance do raio de influência de cada vetor de suporte.
A Intuição do Parâmetro \(\gamma\) no Kernel RBF:
- \(\gamma\) Elevado: O raio de alcance de cada amostra fica extremamente curto. O modelo desenha "ilhas" ou curvas fechadas ao redor de pontos individuais de treino, levando ao Overfitting.
- \(\gamma\) Baixo: O raio de alcance é amplo. As curvas de decisão tornam-se suaves e contínuas, mas se for baixo demais, pode causar Underfitting.
5. Principais Dúvidas Práticas e Cuidados no Desenvolvimento
5.1 Por que o Escalonamento de Atributos (StandardScaler) é Obrigatório?
Em sensores industriais, a Rotação (RPM) oscila em milhares (\(1800\) RPM), enquanto a Vibração varia em decimais (\(2.5\) mm/s) e a Temperatura em centenas (\(300\) K).
Como o SVM calcula a margem otimizando distâncias euclidianas no espaço vetorial, atributos com magnitudes elevadas dominariam \(99\%\) do cálculo vetorial, ignorando completamente os sensores de menor escala.
Padronização via Z-score:
\[z = \frac{x - \mu}{\sigma}\]
O StandardScaler transforma todas as variáveis para que tenham média zero (\(\mu=0\)) e desvio padrão unitário (\(\sigma=1\)).
Cuidado Teórico contra Data Leakage: O ajuste (
fit) do escalonador deve ser calculado apenas no conjunto de treinamento. Fazer ofitno dataset inteiro antes da divisão expõe o modelo a estatísticas do teste, corrompendo a validação científica do experimento.
5.2 Como Tratar o Desbalanceamento Extremo de Classes?
Em plantas industriais, \(97\%\) das leituras correspondem ao estado Normal (Classe 0) e apenas \(3\%\) correspondem a Falhas (Classe 1).
Se treinarmos o SVM sem ajustes, ele priorizará a classe majoritária para maximizar a acurácia, obtendo \(97\%\) de acerto ao errar \(100\%\) das falhas reais (o que geraria prejuízos catastróficos por paradas não planejadas).
A Solução via class_weight='balanced':
Ao ativar essa opção, o Scikit-Learn recalcula o parâmetro \(C\) para cada classe proporcionalmente à sua raridade:
\[w_j = \frac{N}{2 \times N_j}\]
Dessa forma, o custo de cometer um erro em uma amostra de Falha passa a ser multiplicado por um peso substancialmente maior (\(\approx 17.0\)), enquanto o erro na classe Normal recebe peso menor (\(\approx 0.51\)). O hiperplano é forçado a se afastar da classe de falhas, aumentando expressivamente a métrica de Recall.
5.3 Como Usar o Limiar de Decisão (decision_function) para Reduzir Alarmes Falsos?
O método .predict() do SVM classifica como Falha qualquer amostra cuja pontuação no hiperplano atinja \(\ge 0.0\).
Em vez de aceitar o valor padrão, o engenheiro pode extrair a distância contínua de cada ponto até o hiperplano usando decision_function(X_test) e ajustar o limiar (ex: \(\ge 0.5\)) para calibrar o compromisso entre Precisão (confiabilidade dos alarmes) e Recall (taxa de captura de quebras).
6. Limitações, Restrições e Complexidade Computacional
Apesar de suas virtudes matematicamente comprovadas, o engenheiro deve estar ciente das restrições do algoritmo ao projetar sistemas industriais:
| Característica / Módulo | Detalhamento Técnico |
|---|---|
| Complexidade no Treinamento | O solver clássico do SVC (baseado na biblioteca libsvm) possui complexidade de tempo entre \(\mathcal{O}(N^2 \cdot d)\) e \(\mathcal{O}(N^3 \cdot d)\), onde \(N\) é o número de amostras. Em datasets com centenas de milhares de linhas, o treinamento torna-se inviável. Para Big Data, recomenda-se o uso de LinearSVC ou SGDClassifier(loss='hinge') com complexidade \(\mathcal{O}(N \cdot d)\). |
| Falta de Probabilidades Naturais | O SVM é um classificador não probabilístico que retorna apenas distâncias geométricas. Para converter saídas em probabilidades, utiliza-se a técnica de Platt Scaling (ajuste de uma regressão logística sobre as distâncias), que é apenas uma heurística assintótica. |
| Sensibilidade a Hiperparâmetros | O desempenho com Kernel RBF depende criticamente do ajuste conjunto da dupla \((C, \gamma)\). Uma escolha inadequada pode levar o modelo do underfitting ao overfitting rapidamente. |