Coletânea Python do ZERO às Redes Neurais Artificiais

Fernando Feltrin · Capítulo 284 de 287

Páginas do PDF

Coletânea Python do ZERO às Redes Neurais Artificiais

Capítulo Resumo

 

Muito bem, foram muitas páginas, muitos exemplos, muitas linhas de código, mas acredito que neste momento você já tenha construído bases bastante sólidas sobre o que é ciência de dados e aprendizado de máquina.

Como nossa metodologia foi procedural, gradativamente fomos abordando tópicos que nos levaram desde uma tabela verdade até uma rede neural artificial convolucional generativa, algo que está enquadrado no que há de mais avançado dentro dessa área da computação.

Apenas agora dando uma breve resumida nos conceitos, desde o básico ao avançado, espero que você realmente não tenha dúvidas quanto a teoria e quanto a aplicação de tais recursos. Caso ainda haja, sempre é interessante consultar as documentações oficiais de cada biblioteca assim como buscar exemplos diferentes dos abordados neste livro. Se tratando de programação, conhecimento nunca será demais, sempre haverá algo novo a aprender ou ao menos aprimorar.

Pois bem, abaixo está a lista de cada ferramenta que usamos (por ordem de uso) com sua explicação resumida:

 

BIBLIOTECAS E MÓDULOS:

 

Numpy: Biblioteca de computação científica que suporta operações matemáticas para dados em forma vetorial ou matricial (arrays).

SKLearn: Biblioteca que oferece uma série de ferramentas para leitura e análise de dados.

Pandas: Biblioteca desenvolvida para manipulação e análise de dados, em especial, importadas do formato .csv

Keras: Biblioteca que oferece uma série de modelos estruturados para fácil construção de redes neurais artificiais.

MatPlotLib: Biblioteca integrada ao Numpy para exibição de dados em forma de gráficos.

KNeighborsClassifier: Módulo pré-configurado para aplicação do modelo estatístico KNN.

TrainTestSplit: Módulo pré-configurado para divisão de amostras em grupos, de forma a testá-los individualmente e avaliar a performance do algoritmo.

Metrics: Módulo que oferece ferramentas para avaliação de performance dos processos aplicados sobre uma rede neural.

LogisticRegression: Módulo que aplica a chamada regressão logística, onde se categorizam os dados para que a partir dos mesmos se possam realizar previsões.

LabelEncoder: Módulo que permite a alteração dos rótulos dos objetos/variáveis internamente de forma que se possa fazer o correto cruzamento dos dados.

Sequential: Módulo que permite facilmente criar estruturas de redes neurais sequenciais, onde os nós das camadas anteriores são ligados com os da camada subsequente.

Dense: Módulo que permite que se criem redes neurais densas, modelo onde todos neurônios estão (ou podem estar) interligados entre si.

KerasClassifier: Módulo que oferece um modelo de classificador de amostras pré-configurado e de alta eficiência a partir da biblioteca Keras.

NPUtils: Módulo que oferece uma série de ferramentas adicionais para se trabalhar e extrair maiores informações a partir de arrays.

Dropout: Módulo que funciona como filtro para redes que possuem muitos neurônios por camada em sua estrutura, ele aleatoriamente remove neurônios para que sejam testadas a integridade dos dados dos neurônios remanescentes.

GridSearchCV: Módulo que aplica técnicas de validação cruzada sobre matrizes, podendo fazer o uso de vários parâmetros e comparar qual o que resulta em dados mais íntegros.

OneHotEncoder: Módulo que permite a criação de variáveis do tipo dummy, variáveis estas com indexação interna própria e para fácil normalização dos tipos de dados.

KerasRegressor: Módulo que oferece um modelo pré-configurado de regressor a partir da biblioteca Keras.

Conv2D: Módulo que permite a transformação de arrays tridimensionais para estruturas bidimensionais para se aplicar certas funções limitadas a 2D.

MaxPooling2D: Módulo que oferece ferramentas para que sejam filtrados dados fora de um padrão, a fim de aumentar a precisão dos resultados.

Flatten: Módulo que permite a redução de dados matriciais de duas ou mais dimensões para uma dimensão, muito usado para vetorizar dados de uma imagem transformando-os em neurônios de uma determinada camada.

BatchNormalization: Módulo que possui internamente ferramentas para que se encontre os melhores padrões de atualização de pesos e valores dos registros de uma rede neural.

ImageDataGenerator: Módulo que permite a conversão e extração de atributos numéricos a partir de imagens para geração de novas imagens.

MinMaxScaler: Módulo muito usado quando necessária a normalização do range de dados dentro de um intervalo pré-estabelecido (entre 0 e 1, por exemplo).

LSTM: Biblioteca que permite a criação de modelos de redes neurais recorrentes. Onde a chamada recorrência se dá pela atualização dos valores do próprio neurônio na própria camada após aplicadas algumas funções.

MiniSom: Biblioteca que possui ferramentas para fácil criação de mapas auto organizáveis.

PColor: Módulo que permite a inserção de marcadores coloridos em cima de gráficos.

ColorBar: Módulo acessório ao PColor que permite a inserção de uma barra de cores que gera um padrão mínimo/máximo de acordo com as características e proximidade dos dados.

RBM: Módulo que permite a criação de modelos de Boltzmann Machines, ou seja, de redes que funcionam como sistemas de recomendação.

Pandas DataReader: Biblioteca oriunda da biblioteca Pandas, oferecendo suporte a importação de dados diretamente de algum site específico.

TQDM: Biblioteca para plotagem de barras de progresso em console.

Gym: Biblioteca de estudos de inteligência artificial, com vários exemplos adaptados de forma a termos acesso ao seu código fonte para que possamos implementar uma inteligência artificial.

ImageIO: Biblioteca que oferece uma série de ferramentas para que se trabalhe diretamente sobre imagens.

SciKit-Image: Biblioteca oriunda da SciKit-Learn voltada para o processamento de dados a partir de imagens.

 

REFERENCIAL TEÓRICO:

 

Redes neurais artificiais: Arquitetura de código voltada ao reconhecimento de padrões a partir de processamento de dados de entrada, gerando saídas conforme a necessidade.

Machine Learning: Em tradução livre, aprendizado de máquina, método de cruzamento de dados de vetores/matrizes por meio de conexões e aplicação de funções em camadas de neurônios artificiais.

Deep Learning: Técnica de aprendizado de máquina onde são considerados um número maior de camadas de neurônios e suas respectivas funções, a fim de obter melhores dados a partir de grandes volumes de dados e/ou filtros para detecção de padrões de forma mais minuciosa.

Q-Learning: Técnica de aprendizado de máquina onde o chamado aprendizado por reforço é aplicado, de forma que temos uma rede neural que aprende por tentativa e erro, se retroalimenta e realiza processamento em tempo real.

Data Science: Em tradução livre, ciência de dados, onde grandes volumes de dados históricos, estatísticos ou probabilísticos são processados de forma a obter informação para possíveis classificações, regressões, prospectos ou previsões a partir dos mesmos.