The document discusses various aspects of artificial intelligence including machine learning algorithms like Naive Bayes, K-Means clustering, and neural networks. It focuses on deep learning and artificial neural networks, explaining the basic biological structure of neurons and how artificial neural networks are modeled after this with layers of nodes that can learn from data. Specific neural network models are examined like McCulloch-Pitts neurons, perceptrons, and sigmoid neurons.
The document describes a back propagation network, which is a multilayer artificial neural network that uses a supervised learning method called backward propagation of errors. The network has at least three layers - an input layer, one or more hidden layers, and an output layer. It initializes weights randomly, then performs forward propagation to calculate outputs. It calculates errors between outputs and targets, then propagates the errors back through the network to adjust the weights, in order to minimize errors through iterative training. Sigmoid activation functions are commonly used. Autoassociation is also described, where patterns are compressed in the hidden layer and reconstructed at the output layer.
This document provides an overview of neural networks and backpropagation algorithms. It discusses how neural networks are inspired by biological brains and how they can be used to perform complex classification tasks. The key topics covered include perceptrons, Adaline networks, multi-layer perceptrons, backpropagation for training multi-layer networks, and an example of how backpropagation works to minimize error in a simple two-layer network.
A neural network maps a set of inputs to a set of outputs. It is composed of nodes or units connected by links with weights. A neural network can compute or approximate functions, perform pattern recognition, signal processing, and learn to do any of these. A perceptron is a basic type of neural network that uses a threshold activation function. It can be trained to learn functions using the perceptron learning rule, which adjusts the weights to minimize errors between the network's output and the target output.
The document provides an introduction to artificial neural networks and their components. It discusses the basic neuron model, including the summation function, activation function, and bias. It also covers various neuron models based on different activation functions. The document introduces different network architectures, including single-layer feedforward networks, multilayer feedforward networks, and recurrent networks. It discusses perceptrons, ADALINE networks, and the backpropagation algorithm for training multilayer networks. The limitations of perceptrons for non-linearly separable problems are also covered.
The document discusses various aspects of artificial intelligence including machine learning algorithms like Naive Bayes, K-Means clustering, and neural networks. It focuses on deep learning and artificial neural networks, explaining the basic biological structure of neurons and how artificial neural networks are modeled after this with layers of nodes that can learn from data. Specific neural network models are examined like McCulloch-Pitts neurons, perceptrons, and sigmoid neurons.
The document describes a back propagation network, which is a multilayer artificial neural network that uses a supervised learning method called backward propagation of errors. The network has at least three layers - an input layer, one or more hidden layers, and an output layer. It initializes weights randomly, then performs forward propagation to calculate outputs. It calculates errors between outputs and targets, then propagates the errors back through the network to adjust the weights, in order to minimize errors through iterative training. Sigmoid activation functions are commonly used. Autoassociation is also described, where patterns are compressed in the hidden layer and reconstructed at the output layer.
This document provides an overview of neural networks and backpropagation algorithms. It discusses how neural networks are inspired by biological brains and how they can be used to perform complex classification tasks. The key topics covered include perceptrons, Adaline networks, multi-layer perceptrons, backpropagation for training multi-layer networks, and an example of how backpropagation works to minimize error in a simple two-layer network.
A neural network maps a set of inputs to a set of outputs. It is composed of nodes or units connected by links with weights. A neural network can compute or approximate functions, perform pattern recognition, signal processing, and learn to do any of these. A perceptron is a basic type of neural network that uses a threshold activation function. It can be trained to learn functions using the perceptron learning rule, which adjusts the weights to minimize errors between the network's output and the target output.
The document provides an introduction to artificial neural networks and their components. It discusses the basic neuron model, including the summation function, activation function, and bias. It also covers various neuron models based on different activation functions. The document introduces different network architectures, including single-layer feedforward networks, multilayer feedforward networks, and recurrent networks. It discusses perceptrons, ADALINE networks, and the backpropagation algorithm for training multilayer networks. The limitations of perceptrons for non-linearly separable problems are also covered.
The document provides an introduction to neural networks, including:
- Biological neural networks transmit signals via neurons connected by synapses and axons.
- Artificial neural networks are composed of simple processing elements (neurons) that operate in parallel and are determined by network structure and connection strengths (weights).
- Multilayer neural networks consist of an input layer, hidden layers, and output layer connected by weights to solve complex problems. Learning involves updating weights so the network can efficiently perform tasks.
This document provides an introduction to neural networks. It discusses how neural networks have recently achieved state-of-the-art results in areas like image and speech recognition and how they were able to beat a human player at the game of Go. It then provides a brief history of neural networks, from the early perceptron model to today's deep learning approaches. It notes how neural networks can automatically learn features from data rather than requiring handcrafted features. The document concludes with an overview of commonly used neural network components and libraries for building neural networks today.
Introduction to Convolutional Neural NetworksHannes Hapke
This document provides an introduction to machine learning using convolutional neural networks (CNNs) for image classification. It discusses how to prepare image data, build and train a simple CNN model using Keras, and optimize training using GPUs. The document outlines steps to normalize image sizes, convert images to matrices, save data formats, assemble a CNN in Keras including layers, compilation, and fitting. It provides resources for learning more about CNNs and deep learning frameworks like Keras and TensorFlow.
I think this could be useful for those who works in the field of Coputational Intelligence. Give your valuable reviews so that I can progree in my research
This document summarizes support vector machines (SVMs), a machine learning technique for classification and regression. SVMs find the optimal separating hyperplane that maximizes the margin between positive and negative examples in the training data. This is achieved by solving a convex optimization problem that minimizes a quadratic function under linear constraints. SVMs can perform non-linear classification by implicitly mapping inputs into a higher-dimensional feature space using kernel functions. They have applications in areas like text categorization due to their ability to handle high-dimensional sparse data.
This document discusses classifying handwritten digits using the MNIST dataset with a simple linear machine learning model. It begins by introducing the MNIST dataset of images and corresponding labels. It then discusses using a linear model with weights and biases to make predictions for each image. The weights represent a filter to distinguish digits. The model is trained using gradient descent to minimize the cross-entropy cost function by adjusting the weights and biases based on batches of training data. The goal is to improve the model's ability to correctly classify handwritten digit images.
Here is a MATLAB program to implement logic functions using a McCulloch-Pitts neuron:
% McCulloch-Pitts neuron for logic functions
% Inputs
x1 = 1;
x2 = 0;
% Weights
w1 = 1;
w2 = 1;
% Threshold
theta = 2;
% Net input
net = x1*w1 + x2*w2;
% Activation function
if net >= theta
y = 1;
else
y = 0;
end
% Output
disp(y)
This implements a basic AND logic gate using a McCulloch-Pitts neuron.
Basic definitions, terminologies, and Working of ANN has been explained. This ppt also shows how ANN can be performed in matlab. This material contains the explanation of Feed forward back propagation algorithm in detail.
Introduction to Adaptive Resonance Theory (ART) neural networks including:
Introduction (Stability-Plasticity Dilemma)
ART Network
ART Types
Basic ART network Architecture
ART Algorithm and Learning
ART Computational Example
ART Application
Conclusion
Main References
This document provides an introduction to artificial neural networks. It discusses biological neurons and how artificial neurons are modeled. The key components of a neural network including the network architecture, learning approaches, and the backpropagation algorithm for supervised learning are described. Applications and advantages of neural networks are also mentioned. Neural networks are modeled after the human brain and learn by modifying connection weights between nodes based on examples.
This document provides an overview of convolutional neural networks and summarizes four popular CNN architectures: AlexNet, VGG, GoogLeNet, and ResNet. It explains that CNNs are made up of convolutional and subsampling layers for feature extraction followed by dense layers for classification. It then briefly describes key aspects of each architecture like ReLU activation, inception modules, residual learning blocks, and their performance on image classification tasks.
Provides a brief overview of what machine learning is, how it works (theory), how to prepare data for a machine learning problem, an example case study, and additional resources.
This document discusses gradient descent algorithms, feedforward neural networks, and backpropagation. It defines machine learning, artificial intelligence, and deep learning. It then explains gradient descent as an optimization technique used to minimize cost functions in deep learning models. It describes feedforward neural networks as having connections that move in one direction from input to output nodes. Backpropagation is mentioned as an algorithm for training neural networks.
Back Propagation in Deep Neural NetworkVARUN KUMAR
The document discusses back propagation in neural networks. It begins with an introduction that explains back propagation is used to fine-tune weights in a neural network to minimize error. It then provides steps to solve a back propagation problem using an example neural network with two inputs, two outputs, and a single hidden layer. The steps include calculating outputs, errors, and updated weights using equations that propagate error backwards to adjust weights and reduce total error.
This document discusses decision trees, which are supervised learning algorithms used for both classification and regression. It describes key decision tree concepts like decision nodes, leaves, splitting, and pruning. It also outlines different decision tree algorithms (ID3, C4.5, CART), attribute selection measures like Gini index and information gain, and the basic steps for implementing a decision tree in a programming language.
Deep Learning Tutorial | Deep Learning TensorFlow | Deep Learning With Neural...Simplilearn
This Deep Learning presentation will help you in understanding what is Deep Learning, why do we need Deep learning, what is neural network, applications of Deep Learning, what is perceptron, implementing logic gates using perceptron, types of neural networks. At the end of the video, you will get introduced to TensorFlow along with a usecase implementation on recognizing hand-written digits. Deep Learning is inspired by the integral function of the human brain specific to artificial neural networks. These networks, which represent the decision-making process of the brain, use complex algorithms that process data in a non-linear way, learning in an unsupervised manner to make choices based on the input. Deep Learning, on the other hand, uses advanced computing power and special type of neural networks and applies them to large amounts of data to learn, understand, and identify complicated patterns. W will also understand neural networks and how they work in this Deep Learning tutorial video. This Deep Learning tutorial is ideal for professionals with beginner to intermediate level of experience. Now, let us dive deep into this topic and understand what Deep Learning actually is.
Below topics are explained in this Deep Learning presentation:
1. What is Deep Learning?
2. Why do we need Deep Learning?
3. What is Neural network?
4. What is Perceptron?
5. Implementing logic gates using Perceptron
6. Types of Neural networks
7. Applications of Deep Learning
8. Working of Neural network
9. Introduction to TensorFlow
10. Use case implementation using TensorFlow
Simplilearn’s Deep Learning course will transform you into an expert in deep learning techniques using TensorFlow, the open-source software library designed to conduct machine learning & deep neural network research. With our deep learning course, you’ll master deep learning and TensorFlow concepts, learn to implement algorithms, build artificial neural networks and traverse layers of data abstraction to understand the power of data and prepare you for your new role as deep learning scientist.
Why Deep Learning?
It is one of the most popular software platforms used for deep learning and contains powerful tools to help you build and implement artificial neural networks.
Advancements in deep learning are being seen in smartphone applications, creating efficiencies in the power grid, driving advancements in healthcare, improving agricultural yields, and helping us find solutions to climate change.
There is booming demand for skilled deep learning engineers across a wide range of industries, making this deep learning course with TensorFlow training well-suited for professionals at the intermediate to advanced level of experience. We recommend this deep learning online course particularly for the following professionals:
1. Software engineers
2. Data scientists
3. Data analysts
4. Statisticians with an interest in deep learning
This document provides an overview of neural networks. It discusses that artificial neural networks (ANNs) are computational models inspired by the human nervous system. ANNs are composed of interconnected processing units (neurons) that learn by example. There are typically three layers in a neural network: an input layer, hidden layers that process inputs, and an output layer. Neural networks can learn complex patterns and are used for applications like pattern recognition. The document also describes how biological neurons function and the key components of artificial neurons and neural network models. It explains different learning methods for neural networks including supervised, unsupervised, and reinforcement learning.
The document provides an overview of artificial neural networks (ANNs). It discusses how ANNs are modeled after biological neural networks and neurons. The key concepts covered include the basic structure and functioning of artificial neurons, different types of learning in ANNs, commonly used network architectures, and applications of ANNs. Examples of applications discussed are classification, recognition, assessment, forecasting and prediction. The document also notes how ANNs are used across various fields including computer science, statistics, engineering, cognitive science, neurophysiology, physics and biology.
Deep learning uses neural networks, which are systems inspired by the human brain. Neural networks learn patterns from large amounts of data through forward and backpropagation. They are constructed of layers including an input layer, hidden layers, and an output layer. Deep learning can learn very complex patterns and has various applications including image classification, machine translation, and more. Recurrent neural networks are useful for sequential data like text and audio. Convolutional neural networks are widely used in computer vision tasks.
The document provides an introduction to neural networks, including:
- Biological neural networks transmit signals via neurons connected by synapses and axons.
- Artificial neural networks are composed of simple processing elements (neurons) that operate in parallel and are determined by network structure and connection strengths (weights).
- Multilayer neural networks consist of an input layer, hidden layers, and output layer connected by weights to solve complex problems. Learning involves updating weights so the network can efficiently perform tasks.
This document provides an introduction to neural networks. It discusses how neural networks have recently achieved state-of-the-art results in areas like image and speech recognition and how they were able to beat a human player at the game of Go. It then provides a brief history of neural networks, from the early perceptron model to today's deep learning approaches. It notes how neural networks can automatically learn features from data rather than requiring handcrafted features. The document concludes with an overview of commonly used neural network components and libraries for building neural networks today.
Introduction to Convolutional Neural NetworksHannes Hapke
This document provides an introduction to machine learning using convolutional neural networks (CNNs) for image classification. It discusses how to prepare image data, build and train a simple CNN model using Keras, and optimize training using GPUs. The document outlines steps to normalize image sizes, convert images to matrices, save data formats, assemble a CNN in Keras including layers, compilation, and fitting. It provides resources for learning more about CNNs and deep learning frameworks like Keras and TensorFlow.
I think this could be useful for those who works in the field of Coputational Intelligence. Give your valuable reviews so that I can progree in my research
This document summarizes support vector machines (SVMs), a machine learning technique for classification and regression. SVMs find the optimal separating hyperplane that maximizes the margin between positive and negative examples in the training data. This is achieved by solving a convex optimization problem that minimizes a quadratic function under linear constraints. SVMs can perform non-linear classification by implicitly mapping inputs into a higher-dimensional feature space using kernel functions. They have applications in areas like text categorization due to their ability to handle high-dimensional sparse data.
This document discusses classifying handwritten digits using the MNIST dataset with a simple linear machine learning model. It begins by introducing the MNIST dataset of images and corresponding labels. It then discusses using a linear model with weights and biases to make predictions for each image. The weights represent a filter to distinguish digits. The model is trained using gradient descent to minimize the cross-entropy cost function by adjusting the weights and biases based on batches of training data. The goal is to improve the model's ability to correctly classify handwritten digit images.
Here is a MATLAB program to implement logic functions using a McCulloch-Pitts neuron:
% McCulloch-Pitts neuron for logic functions
% Inputs
x1 = 1;
x2 = 0;
% Weights
w1 = 1;
w2 = 1;
% Threshold
theta = 2;
% Net input
net = x1*w1 + x2*w2;
% Activation function
if net >= theta
y = 1;
else
y = 0;
end
% Output
disp(y)
This implements a basic AND logic gate using a McCulloch-Pitts neuron.
Basic definitions, terminologies, and Working of ANN has been explained. This ppt also shows how ANN can be performed in matlab. This material contains the explanation of Feed forward back propagation algorithm in detail.
Introduction to Adaptive Resonance Theory (ART) neural networks including:
Introduction (Stability-Plasticity Dilemma)
ART Network
ART Types
Basic ART network Architecture
ART Algorithm and Learning
ART Computational Example
ART Application
Conclusion
Main References
This document provides an introduction to artificial neural networks. It discusses biological neurons and how artificial neurons are modeled. The key components of a neural network including the network architecture, learning approaches, and the backpropagation algorithm for supervised learning are described. Applications and advantages of neural networks are also mentioned. Neural networks are modeled after the human brain and learn by modifying connection weights between nodes based on examples.
This document provides an overview of convolutional neural networks and summarizes four popular CNN architectures: AlexNet, VGG, GoogLeNet, and ResNet. It explains that CNNs are made up of convolutional and subsampling layers for feature extraction followed by dense layers for classification. It then briefly describes key aspects of each architecture like ReLU activation, inception modules, residual learning blocks, and their performance on image classification tasks.
Provides a brief overview of what machine learning is, how it works (theory), how to prepare data for a machine learning problem, an example case study, and additional resources.
This document discusses gradient descent algorithms, feedforward neural networks, and backpropagation. It defines machine learning, artificial intelligence, and deep learning. It then explains gradient descent as an optimization technique used to minimize cost functions in deep learning models. It describes feedforward neural networks as having connections that move in one direction from input to output nodes. Backpropagation is mentioned as an algorithm for training neural networks.
Back Propagation in Deep Neural NetworkVARUN KUMAR
The document discusses back propagation in neural networks. It begins with an introduction that explains back propagation is used to fine-tune weights in a neural network to minimize error. It then provides steps to solve a back propagation problem using an example neural network with two inputs, two outputs, and a single hidden layer. The steps include calculating outputs, errors, and updated weights using equations that propagate error backwards to adjust weights and reduce total error.
This document discusses decision trees, which are supervised learning algorithms used for both classification and regression. It describes key decision tree concepts like decision nodes, leaves, splitting, and pruning. It also outlines different decision tree algorithms (ID3, C4.5, CART), attribute selection measures like Gini index and information gain, and the basic steps for implementing a decision tree in a programming language.
Deep Learning Tutorial | Deep Learning TensorFlow | Deep Learning With Neural...Simplilearn
This Deep Learning presentation will help you in understanding what is Deep Learning, why do we need Deep learning, what is neural network, applications of Deep Learning, what is perceptron, implementing logic gates using perceptron, types of neural networks. At the end of the video, you will get introduced to TensorFlow along with a usecase implementation on recognizing hand-written digits. Deep Learning is inspired by the integral function of the human brain specific to artificial neural networks. These networks, which represent the decision-making process of the brain, use complex algorithms that process data in a non-linear way, learning in an unsupervised manner to make choices based on the input. Deep Learning, on the other hand, uses advanced computing power and special type of neural networks and applies them to large amounts of data to learn, understand, and identify complicated patterns. W will also understand neural networks and how they work in this Deep Learning tutorial video. This Deep Learning tutorial is ideal for professionals with beginner to intermediate level of experience. Now, let us dive deep into this topic and understand what Deep Learning actually is.
Below topics are explained in this Deep Learning presentation:
1. What is Deep Learning?
2. Why do we need Deep Learning?
3. What is Neural network?
4. What is Perceptron?
5. Implementing logic gates using Perceptron
6. Types of Neural networks
7. Applications of Deep Learning
8. Working of Neural network
9. Introduction to TensorFlow
10. Use case implementation using TensorFlow
Simplilearn’s Deep Learning course will transform you into an expert in deep learning techniques using TensorFlow, the open-source software library designed to conduct machine learning & deep neural network research. With our deep learning course, you’ll master deep learning and TensorFlow concepts, learn to implement algorithms, build artificial neural networks and traverse layers of data abstraction to understand the power of data and prepare you for your new role as deep learning scientist.
Why Deep Learning?
It is one of the most popular software platforms used for deep learning and contains powerful tools to help you build and implement artificial neural networks.
Advancements in deep learning are being seen in smartphone applications, creating efficiencies in the power grid, driving advancements in healthcare, improving agricultural yields, and helping us find solutions to climate change.
There is booming demand for skilled deep learning engineers across a wide range of industries, making this deep learning course with TensorFlow training well-suited for professionals at the intermediate to advanced level of experience. We recommend this deep learning online course particularly for the following professionals:
1. Software engineers
2. Data scientists
3. Data analysts
4. Statisticians with an interest in deep learning
This document provides an overview of neural networks. It discusses that artificial neural networks (ANNs) are computational models inspired by the human nervous system. ANNs are composed of interconnected processing units (neurons) that learn by example. There are typically three layers in a neural network: an input layer, hidden layers that process inputs, and an output layer. Neural networks can learn complex patterns and are used for applications like pattern recognition. The document also describes how biological neurons function and the key components of artificial neurons and neural network models. It explains different learning methods for neural networks including supervised, unsupervised, and reinforcement learning.
The document provides an overview of artificial neural networks (ANNs). It discusses how ANNs are modeled after biological neural networks and neurons. The key concepts covered include the basic structure and functioning of artificial neurons, different types of learning in ANNs, commonly used network architectures, and applications of ANNs. Examples of applications discussed are classification, recognition, assessment, forecasting and prediction. The document also notes how ANNs are used across various fields including computer science, statistics, engineering, cognitive science, neurophysiology, physics and biology.
Deep learning uses neural networks, which are systems inspired by the human brain. Neural networks learn patterns from large amounts of data through forward and backpropagation. They are constructed of layers including an input layer, hidden layers, and an output layer. Deep learning can learn very complex patterns and has various applications including image classification, machine translation, and more. Recurrent neural networks are useful for sequential data like text and audio. Convolutional neural networks are widely used in computer vision tasks.
Previsione della radiazione solare mediante modelli basati su reti neurali artificiali.
Tesi di Laurea di:
Claudio Leani
Relatore:
prof. Stefano Ferrari
Cosa c’entrano i Videogames, il Retail, i GPS ed i Droni con la Medicina?
Mai sentito parlare di Optogenetics, Kaggle Competitions, Lab-on-achip, M-Health, PatientsLikeMe, TeraHertz Medicine?
Conosci o vorresti saperne di più di 3D printing Revolution, Genomica, Agumented Reality, Gesture Controls, come sfruttare il potere dei Big Data con il Machine Learning, la Robotica e la Mecatronica?
Questi sono alcuni dei topics che compongono il Corso di Studi del Master “re-Design Medicine” improntato a ripensare la Medicina, il design degli ospedali del futuro ed i devices medicali.
"APPLICAZIONI DI MACHINE LEARNING NEL DIGITAL OUT OF HOMEConcordia Srl
L’intervento ha lo scopo di presentare le nuove tecnologie e i nuovi modelli che permettono, in tempo reale, di misurare le caratteristiche, i comportamenti di acquisto, la relazione fra prodotti e shopper nei punti vendita.
Attraverso casi e dimostrazioni pratiche (casi reali presentati in tempo reale) sarà possibile approfondire le dinamiche che fanno si che uno shopper potenziale diventi un acquirente. In particolare si analizzerà:
Il comportamento e la segmentazione degli shopper nei punti vendita
I principali KPI di efficacia in store
Le condizioni che determinano l’ottimizzazione del sell-out
L’efficacia della comunicazione (in store e nel Digital out of home)
Tecniche basate su machine learning per la determinazione del profilo di un a...kylanee
Tesi di laurea magistrale in Ingegneria Informatica.
Il presente lavoro descrive il metodo realizzato per affrontare il problema della determinazione del profilo di un autore sulla base di un insieme di suoi tweet, utilizzando tecniche di machine learning. E' stato presentato in occasione della partecipazione alla competizione internazionale denominata PAN2015.
Slide riassuntive: http://www.slideshare.net/kylanee/slide-tecniche-basate-su-machine-learning-per-la-determinazione-del-profilo-di-un-autore-su-twitter
[SLIDE] Tecniche basate su machine learning per la determinazione del profilo...kylanee
Presentazione per prelaurea.
Elaborato: http://www.slideshare.net/kylanee/tecniche-basate-su-machine-learning-per-la-determinazione-del-profilo-di-un-autore-su-twitter
Introduzione ai Big Data e alla scienza dei dati - I formati datiVincenzo Manzoni
Lezione 1 del corso di analisi dati tenuto al Palazzolo Digital Hub (Palazzolo sull'Oglio, Brescia) nel 2014. Il tema di questa prima lezione sono i formati dati.
Si è tornato a parlare molto di Machine Learning negli ultimi anni. Grazie anche al fatto che è possibile oggi processare enormi moli di dati in tempi (relativamente) veloci questa parte dell'informatica sta vivendo una seconda giovinezza.
In questa sessione vedremo cos'è il machine learning, quali sono le diverse casistiche tecniche e funzionali in cui può essere usato ed inizieremo a "giocare" con i dati per vedere fin dove possiamo spingerci, usando strumenti On-Premise e quindi spostandoci poi sull'offerta Azure Machine Learning dove, una volta fatta propria la teoria, si possono realizzare soluzioni estremamente complesso in modo molto visuale e sfruttare la scalabilità di Azure per avere performance ottimali. Il tutto senza dimenticare che gli algoritmi così ottenuti possono essere facilmente integrati nelle nostre applicazioni semplicemente invocando un web service.
Identificare feature significative per l’analisi nell’informatica forense uti...Antonio Notarangelo
Tecniche di intelligenza artificiale usate per scoprire le prove in una grande varietà di crimini informatici, evitando di compromettere la sicurezza e la riservatezza delle informazioni.
AZURE Machine Learning Studio: applicazione alla manutenzione predittivaAriel Cedola
Presentazione al meetup Azure Torino del 13 dicembre 2018 sullo strumento Azure Machine Learning Studio. Comprende una breve intro al machine learning, concetti di base di Azure Machine Learning Studio e del suo utilizzo, e la sua integrazione con altri servizi di Azure come Event Hub, Stream Analytics, Blob Storage e Power BI, in un caso di uso di analisi di dati in tempo reale nell'ambito della manutenzione predittiva. I dati di telemetria di sensori in streaming sono stati simulati a partire di un codice in-house sviluppato in Python.
Tesi di laurea triennale
Esplorare le tecniche statistiche nel data mining, comprenderne in linee generali le modalità di utilizzo in ambito aziendale ed analizzarne la diffusione in Italia.
CCI 2019 - Strumenti Azure per l'Anomaly Detection in ambito Industria 4.0walk2talk srl
Il rilevamento delle anomalie consiste nell'identificazione di eventi nei dati che risultano fuori del comportamento previsto, utilizzando metodi computazionali. Nelle industrie che avanzano verso la trasformazione digitale, lo scopo di questa tecnica non si limita solo alla manutenzione predittiva delle macchine, essendo anche estremamente utile ad esempio nel rilevamento di variazioni della domanda di prodotti, nell'individuazione di errori presenti nei dati aziendali, o nella scoperta di attività fraudolente, tra gli altri.
A causa di fattori come volume, frequenza e dimensione degli eventi anomali, il modo più pratico e intelligente di eseguire il rilevamento è tramite l'applicazione di algoritmi di machine learning.
In questa sessione vedremo come Azure facilita il rilevamento delle anomalie nei dati mettendo a disposizione diversi strumenti di intelligenza artificiale.
By Ariel Cedola
Una veduta d'insieme sul Machine Learning, in italiano e che utilizza un linguaggio semplice e adatto a chiunque. La presentazione non è pensata per un pubblico tecnico.
Include informazioni di base su 4 argomenti (secondo me) fondamentali:
1. definizione di Machine Learning e 3 esempi
2. classificazione dei problemi di Machine Learning (per tipo di apprendimento e per tipo di output)
3. algoritmi (panoramica)
4. errori (definizione e bias vs varianza)
2. AGENDA DEL CORSO
PARTE I
Introduzione all‟Intelligenza Artificiale e al Machine Learning.
Introduzione alle Reti Neurali. E
Encog 3.0.
Primi Esempi di Reti Neurali. S
PARTE II E
Addestramento supervisionato.
Normalizzazione dei dati. R
Valutazione del modello addestrato.
Classi e metodi d‟utilità per l‟addestramento. C
PARTE III I
Funzioni d‟attivazione.
PARTE IV Z
Altre tipologie di Reti Neurali.
I
REALIZZATO DA: VALERIO CAPOZIO 2
5. INTRODUZIONE ALL‟ IA
L'espressione "Intelligenza Artificiale“ (IA) fu coniata nel 1956 dal matematico
americano John Mc Carthy.
Scopo di questa disciplina è rendere le macchine capaci di compiere azioni per le
quali è richiesta l'applicazione di una qualche forma di "intelligenza".
Il desiderio di creare “automi intelligenti” cui affidare lavori, è sempre stato insito
nell‟uomo:
Nell‟antica Grecia si narrava che Efesto avesse creato degli automi per aiutarlo nei
lavori pesanti (Omero, Iliade XVIII 417-421).
Leonardo da Vinci nel 1495 progetto un automa cavaliere.
Johann Wolfgang von Kempelen (ingegnere ungherese) ideò e presentò il Turco
Meccanico, giocatore di scacchi del 1769.
L‟IA è stata soggetta ad un enorme interesse, seguito da una grande delusione
causata da promesse idealistiche e irraggiungibili:
I robot di Asimov
REALIZZATO DA: VALERIO CAPOZIO 5
6. INTRODUZIONE AL MACHINE LEARNING
Il Machine Learning (ML) è una branca dell‟IA.
Concerne la progettazione e lo sviluppo di algoritmi che consentano ai computer di
apprendere sulla base di dati empirici e, in alcuni casi, evolvere i propri
comportamenti.
Possiamo affermare che:
un algoritmo è in grado di apprendere da un‟esperienza E, rispetto ad un task T e
ad una misura delle prestazioni P, se le sue prestazioni P, nel task T, migliorano con
l‟esperienza E (Mitchell 1997).
Ad esempio:
T: “giocare a tennis”
E: “disputare un match”
P: “score”
REALIZZATO DA: VALERIO CAPOZIO 6
7. PRINCIPALI APPROCCI
Alberi di decisione: modello predittivo che associa le osservazioni di un elemento con
le conclusioni relative ai suoi possibili valori.
SVM: modello di classificazione basato sulla ricerca di un iperpiano di separazione dei
dati.
Clustering: modello basato sulla suddivisione dei dati in “insiemi simili”.
Reti Bayesiane: modello statistico inferenziale. I dati sono variabili generate da
distribuzioni di probabilità e legate da relazioni di dipendenza statistica.
Reti neurali: modello ispirato alla struttura delle reti neurali biologiche.
Algoritmi genetici: modello di algoritmo evolutivo ispirato all‟evoluzione biologica.
REALIZZATO DA: VALERIO CAPOZIO 7
9. ALGORITMI D‟APPRENDIMENTO
Le tecniche di apprendimento sono raggruppabili principalmente in tre macro
tipologie:
Supervisionato: utilizza un insieme di dati di training per ottenere una funzione che
guidi gli input verso gli output desiderati (classificazione).
Rinforzato: utilizza stimoli ambientali esterni (agenti intelligenti).
Non supervisionato: utilizza i dati osservati per modellarli ed ottenere l‟output
(clustering).
Semi-supervisionato: utilizza i due approcci precedenti combinandoli.
REALIZZATO DA: VALERIO CAPOZIO 9
10. ADDESTRAMENTO SUPERVISIONATO
Il sistema apprende una funzione dell‟input partendo da esempi di coppie input-
output
Esempio: Previsioni del tempo
Input: coppie temperatura – pressione
Output: bello /brutto tempo
T(°C) P(hPa) Output
12.2 1022.8 Bello
20.4 1015.9 Bello
25.2 1028.9 Brutto 𝒚 = 𝒔𝒊𝒈𝒏(𝜶 ∗ 𝑻 + 𝜷 ∗ 𝑷)
17.7 1020.0 Brutto
18.4 1021.5 Brutto
22.0 1021.7 Bello
28.1 1016.3 Brutto
REALIZZATO DA: VALERIO CAPOZIO 10
11. ADDESTRAMENTO SUPERVISIONATO RINFORZATO
Il sistema apprende esplorando l’ambiente e ricevendo ricompense in caso di azioni
positive.
Questa metodologia è utilizzata soprattutto per gli agenti software.
REALIZZATO DA: VALERIO CAPOZIO 11
12. ADDESTRAMENTO NON SUPERVISIONATO
Il sistema impara a riconoscere pattern o schemi nell‟input senza alcuna indicazione
dei valori di output.
Esempio: Clustering, Market Basket Analysis
REALIZZATO DA: VALERIO CAPOZIO 12
14. PROCEDURA DI APPRENDIMENTO
Training Set Testing Set
La procedura di apprendimento è divisa in 2 fasi:
Training:
Al sistema viene fornito un insieme di coppie input-output
Il sistema adatta il proprio stato interno per classificare correttamente le coppie
fornite.
Testing:
Al sistema viene fornito un diverso insieme di input(di cui è comunque noto
l‟output)
Si valuta l‟accuratezza del sistema analizzando la percentuale di risposte corrette
REALIZZATO DA: VALERIO CAPOZIO 14
15. ESEMPI DI REGRESSIONE
A) Under-fitting
B) Ok
C)Over-fitting
REALIZZATO DA: VALERIO CAPOZIO 15
16. OVER-FITTING
Adattare troppo il modello ai dati di input può portare al problema dell‟over-fitting.
In caso di over-fitting il sistema perde la sua capacità di generalizzazione.
Per prevenire il problema si può suddividere ulteriormente il training set, tenendo da
parte un validation set.
Durante l‟allenamento, si testerà
periodicamente l‟accuratezza del modello sul
validation set.
In presenza di un errore maggiore sul
validation set si è in over-fitting.
REALIZZATO DA: VALERIO CAPOZIO 16
17. N-FOLD CROSS VALIDATION
Per assicurarsi di non aver introdotto bias con suddivisioni particolari del result set si
possono applicare delle tecniche come:
Random sampling
N-fold cross validation: Si suddivide il dataset in N sottoinsiemi, si allena il sistema su N-
1 sottoinsiemi e lo si testa sul restante sottoinsieme. Si itera per N volte e si prende la
media dei risultati.
REALIZZATO DA: VALERIO CAPOZIO 17
18. 3-FOLD CROSS VALIDATION
Addestro tutti i punti non rossi e testo la qualità del modello sui rossi.
Addestro tutti i punti non verdi e testo la qualità del modello sui verdi.
Addestro tutti i punti non blu e testo la qualità del modello sui blu.
MSE lineare 2.05
MSE quadratico 1.11
MSE unisci punti 2.93
REALIZZATO DA: VALERIO CAPOZIO 18
19. QUICK TRICKS
Azioni che possono essere prese in considerazione per uscire da situazioni di
underfitting sono:
Inserire feature aggiuntive
Adottare un modello più complesso
Azioni che possono essere prese in considerazione per uscire da situazioni di overfitting
sono:
Inserire esempi di training aggiuntivi
Rimuovere alcune feature
REALIZZATO DA: VALERIO CAPOZIO 19
20. SKEWED DATA
Con questo termine sono indicati dataset contenenti classi asimmetriche.
Situazione che si verifica spesso nei casi reali
Fraud detection
Carte di credito
Acquisti on line
Furti di identità
Ecc
Esistono tecniche per tentare di superare questo problema:
Applicare un costo di errata classificazione
Under sampling
Over sampling
Utilizzare misure specifiche per valutare il modello ottenuto.
REALIZZATO DA: VALERIO CAPOZIO 20
22. NEURAL NETWORK
Il cervello umano è composto di
circa 1011 neuroni (100 bilioni).
Ogni neurone è connesso ad altri
e riceve segnali elettrici
attraverso i dendriti.
Ogni neurone invia messaggi
attraverso una lunga Dendriti
appendice chiamata assone.
Al termine di ogni assone si
diramano una serie di Assone
ramificazioni dette sinapsi. Sinapsi
Le sinapsi hanno lo scopo di
stimolare gli altri neuroni,
tramite segnali elettrici, al fine
di attivarli.
L‟apprendimento influenza la
capacità delle sinapsi di
attivare o meno altri neuroni.
REALIZZATO DA: VALERIO CAPOZIO 22
23. ARTIFICIAL NEURAL NETWORK
Il termine Artificial Neural Network (ANN) è utilizzato in IA, per identificare modelli
matematici volti a simulare la struttura e il funzionamento della rete neurale umana.
Le ANNs sono utilizzate per approcciare problemi di:
Pattern recognition
Classificazione/Predizione
Regressione
Image Analysis
…
Esistono diverse tipologie di reti:
FeedForward
Single-Layer
Multi-Layer
Recurrent
Self-Organizing Map (SOM)
Tipicamente le ANNs sono sistemi adattivi che mutano dinamicamente la propria
struttura topologica sulla base di informazioni che giungono durante la fase di
learning.
REALIZZATO DA: VALERIO CAPOZIO 23
24. STRUTTURA DI UN NEURONE ARTIFICIALE
Pesi BIAS
X1 Output
W1
𝑛
X2 W2
𝑥𝑖 𝑤𝑖 O1
Input
W3 𝑖=1
X3
Wn Funzione
d’attivazione
Xn
REALIZZATO DA: VALERIO CAPOZIO 24
25. COMPARAZIONE TRA MODELLI
Input
Sinapsi
F.Attivazio
Dendriti ne
Assone
Output
REALIZZATO DA: VALERIO CAPOZIO 25
26. CONNESSIONI TRA NEURONI
L‟utilizzo di più neuroni può dar vita a diverse topologie di rete:
Single Layer Multi Layer
REALIZZATO DA: VALERIO CAPOZIO 26
27. APPRENDIMENTO IN UNA RETE NEURALE
Una rete neurale, nella fase d‟apprendimento, stabilisce delle relazioni tra gli input e gli
output.
Calcolando l’importanza relativa esistente tra gli input e gli output il sistema è capace
di determinare alcune relazioni.
Il sistema compara i risultati attesi, presenti nel training-set, con quelli ottenuti attraverso
i diversi tentativi.
Lo studio dell‟errore compiuto ad ogni tentativo guida la modifica dei pesi assegnati
agli input.
L‟apprendimento può terminare al verificarsi di diverse condizioni, ad esempio quando
la rete raggiunge una data soglia di accuratezza.
REALIZZATO DA: VALERIO CAPOZIO 27
29. ENCOG 3.0
Encog è un Framework sviluppato sia in Java che .Net
Nato come framework per progettare e realizzare diverse tipologie di reti neurali sta evolvendo
includendo anche altre tecniche di machine learning.
Consente programmazione multithreading.
Può utilizzare la GPU per velocizzare i calcoli.
Per utilizzare la versione JAVA è necessario aver installato:
JVM 1.6 o superiori
Maven
IDE (Eclipse)
È richiesta familiarità con:
metodologie di programmazione OO;
utilizzo delle Collection;
utilizzo dei Generics;
capacità di consultare la javadoc.
REALIZZATO DA: VALERIO CAPOZIO 29
30. STRUTTURA DI UNA RETE NEURALE CON ENCOG
(1/2)
Input Layer:
L‟input di una rete neurale è SEMPRE rappresentato come un array di double.
Ogni elemento dell‟ array memorizza il valore di un neurone di input.
double[].size() = #neuroni in input.
In Encog questo array di double è gestito mediante l‟interfaccia
org.encog.ml.data.MLData.
Output Layer:
Rappresentato anche questo come un array di double.
Sempre gestito mediante l‟interfaccia MLData.
REALIZZATO DA: VALERIO CAPOZIO 30
31. STRUTTURA DI UNA RETE NEURALE CON ENCOG
(2/2)
Per rappresentare una generica rete in Encog si utilizza la classe
org.encog.neural.networks.BasicNetworks.
BasicNetworks fornisce i metodi e le strutture adatti per modellare una rete generica.
I metodi principali per la creazione della struttura sono:
addLayer(Layer l): consente di aggiungere livelli alla rete;
reset(): permette di inizializzare i pesi in maniera casuale.
Terminata l‟aggiunta dei livelli, prima di invocare il metodo reset() deve SEMPRE essere
invocato il metodo getStructure().finalizeStructure() per dichiarare completa la
struttura.
REALIZZATO DA: VALERIO CAPOZIO 31
32. ADDESTRAMENTO DI UNA RETE NEURALE CON
ENCOG (1/2)
L‟interfaccia org.encog.ml.data.MLDataSet è utilizzata in Encog per memorizzare i dati
dell‟insieme di training.
L‟insieme di training è composto di due sottoinsiemi:
I dati di input, su cui addestrare la rete.
I dati di output attesi per l‟input passato.
Gli oggetti di tipo MLDataSet consentono di gestire i valori dell‟insieme di training
mediante un unico oggetto.
Oggetti di tipo MLDataSet sono tipicamente memory-based. Quindi, per insiemi
particolarmente corposi di dati possono dar luogo a problemi di memoria
REALIZZATO DA: VALERIO CAPOZIO 32
33. ADDESTRAMENTO DI UNA RETE NEURALE CON
ENCOG (2/2)
Attraverso un oggetto di tipo org.encog.ml.train.MLTrain è possibile eseguire
l‟addestramento della rete.
Da un oggetto di tipo MLTrain è possibile eseguire un ciclo d‟addestramento invocando il
metodo iteration().
Al termine dell‟addestramento è MOLTO importante invocare il metodo finishTraining(). La
chiamata di questo metodo è particolarmente importante nella programmazione
multithread.
È possibile calcolare l‟errore compiuto dal modello durante l‟addestramento utilizzando il
metodo getError() sull‟oggetto di tipo MLTrain.
Ad un algoritmo d‟addestramento può essere assegnata una strategia attraverso il metodo
addStrategy(Strategy s)
L‟interfaccia org.encog.ml.train.strategy.Strategy è implementata da tutte le classi che
consentono di aggiungere logica addizionale al processo di addestramento
REALIZZATO DA: VALERIO CAPOZIO 33
34. ESECUZIONE DI UNA RETE NEURALE CON
ENCOG
Per eseguire la rete ottenuta è necessario invocare il metodo compute(MLData d).
Questo metodo, preso in input l‟oggetto MLData, esegue la rete e restituisce in output
un oggetto dello stesso tipo contenente il valore elaborato dalla rete.
È possibile utilizzare le reti anche come classificatori attraverso il metodo
classify(MLData d). L‟output in questo caso sarà un intero rappresentante la classe
d‟appartenenza dell‟input.
Esiste infine un metodo winner(MLData d) che restituisce un intero rappresentante
l‟indice del neurone di output attivato.
REALIZZATO DA: VALERIO CAPOZIO 34
36. LA NOSTRA PRIMA RETE
Feed-Forward Single-Layer:
Segnali viaggiano in una sola direzione.
La rete calcola una funzione degli input.
Percettrone.
I neuroni sono connessi tramite archi orientati e pesati
Un percorso può essere:
stimolante (peso positivo)
inibitorio (peso negativo).
L‟attivazione di un neurone è di tipo binario, il neurone può essere:
attivo (fired)
inattivo (not fired).
La funzione d‟attivazione sarà quindi del tipo:
F(yin) = 1, se yin>=T 0 altrimenti
Dove yin è il totale dei segnali ricevuti in input e T è la threshold per Y
REALIZZATO DA: VALERIO CAPOZIO 36
37. PRIMI ESEMPI: FUNZIONE NOT
X1 Y
0 1
1 0
-1
X1 Y
Threshold(Y)=0
REALIZZATO DA: VALERIO CAPOZIO 37
38. PRIMI ESEMPI: FUNZIONE AND
X1 X2 Y
0 0 0
0 1 0
1 0 0
1 1 1
X1 1
Y
X2 1
Threshold(Y)=1,5
REALIZZATO DA: VALERIO CAPOZIO 38
39. PRIMI ESEMPI: FUNZIONE OR
X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 1
X1 2
Y
X2 2
Threshold(Y)=2
REALIZZATO DA: VALERIO CAPOZIO 39
40. PRIMI ESEMPI: FUNZIONE XOR
X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 0
?
REALIZZATO DA: VALERIO CAPOZIO 40
41. COSA PUÒ RAPPRESENTARE UN PERCETTRONE
1,1
1,1
0,1
0,1
0,0 1,0
1,0
0,0
AND XOR
Funzioni che possono essere separate come nel caso della funzione AND sono
dette linearmente separabili.
Un percettrone, e più in generale una rete feed-forward single-layer, può
rappresentare SOLO funzioni linearmente separabili.
XOR non può essere rappresentato attraverso un percettrone.
REALIZZATO DA: VALERIO CAPOZIO 41
42. COME RAPPRESENTARE UNO XOR
Modificando l‟espressione logica e riscrivendola in forme note.
X1 XOR X2 = (X1 AND NOT X2) OR (NOT X1 AND X2)
X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 0
X NOT X NOT X1 AND NOT NOT X1 AND Y
1 X1 2 X2 X2 X2
0 1 0 1 0 0 0
0 1 1 0 0 1 1
1 0 0 1 1 0 1
1 0 1 0 0 0 0
REALIZZATO DA: VALERIO CAPOZIO 42
43. PRIMI ESEMPI: FUNZIONE XOR
X1 X2 Y
0 0 0
0 1 1 Threshold(H)=2
1 0 1 Threshold(Y)=2
1 1 0
Hidden-
(X1 AND NOT X2) Layer
2
X1 H
1 2
-1
OR Y
-1
H 2
X2 2
2
(X2 AND NOT X1)
X1 XOR X2 = (X1 AND NOT X2) OR (NOT X1 AND X2)
REALIZZATO DA: VALERIO CAPOZIO 43
44. HIDDEN LAYER
Servono per modellare problemi più complessi, come la funzione logica XOR.
Sono detti nascosti perché a cavallo tra il livello di input e di output della rete neurale
quindi all‟interno della blackbox rappresentata dalla rete stessa.
Nella stessa rete possono coesistere diversi livelli nascosti.
In molti casi si utilizza un numero di hidden layer compreso tra 1 e 2.
REALIZZATO DA: VALERIO CAPOZIO 44
47. ADDESTRAMENTO SUPERVISIONATO
Nella fase di addestramento i valori di pesi e soglie della rete neurale sono impostati in modo
da ottenere gli output desiderati.
Nell‟addestramento supervisionato, oltre ai dati di input, vengo passati all‟algoritmo anche i
dati attesi in output.
Le tecniche di addestramento a propagazione sono diverse e possono dare risultati
estremamente performanti a patto di avere un congruo numero di dati valutati e non
eccessivamente rumorosi.
Encog supporta tre principali forme di addestramento per propagazione:
Backpropagation.
Manhattan Update Rule.
Resilient Propagation.
Le classi di Encog basate sulla propagazione implementano l‟interfaccia
org.encog.neural.networks.training.propagation.Propagation.
REALIZZATO DA: VALERIO CAPOZIO 47
48. DISCESA DEL GRADIENTE
La discesa del gradiente è una tecnica di ottimizzazione locale.
Data una funzione differenziabile, la discesa del gradiente consente di trovare un
minimo (locale) in questa funzione.
La tecnica consiste nel valutare la funzione stessa e il suo gradiente in un punto scelto
a caso. Scelto poi un secondo punto sulle indicazioni del gradiente, si confrontano i
valori dei due punti.
Si possono verificare 2 casi:
La funzione ha un valore minore: si continua la discesa seguendo le indicazioni
ottenute dal calcolo del gradiente sul secondo punto.
La funzione ha un valore maggiore:
Si è arrivati ad un minimo locale.
Ci si è allontanati troppo dal primo punto.
REALIZZATO DA: VALERIO CAPOZIO 48
49. ADDESTRAMENTO A PROPAGAZIONE (1/2)
Gli algoritmi a propagazione passano attraverso una serie di iterazioni.
Ad ogni iterazione si tenta di migliorare l‟error-rate della rete neurale.
Ogni iterazione esegue un ciclo completo sull‟intero insieme dei dati di training
calcolando variazioni sui pesi e sulle soglie.
Un ciclo completo è comunemente identificato col nome di epoca .
I cambiamenti così calcolati sono applicati al termine di ogni iterazione, in questo
modo è possibile valutare, al termine di ogni epoca, lo stato dell‟addestramento.
REALIZZATO DA: VALERIO CAPOZIO 49
50. ADDESTRAMENTO A PROPAGAZIONE (2/2)
Nel corso di un‟epoca vengono elaborati tutti gli elementi presenti nel insieme di
training.
L‟elaborazione di ognuno di questi elementi dell‟insieme di training consiste di due fasi:
Forward.
Backward.
Nel fase di forward i dati vengono passati alla rete come se questa non fosse in fase di
addestramento. In questa fase vengono mantenuti anche gli output dei livelli
intermedi.
Nella fase di backward si procede a ritroso, partendo dal livello di output, si calcola la
differenza tra ognuno degli output reali con il corrispettivo ideale per ognuno dei
neuroni. Il gradiente di questa differenza viene poi calcolato effettuando la
derivata della funzione d‟attivazione del livello e moltiplicando il risultato ottenuto
per l‟errore.
REALIZZATO DA: VALERIO CAPOZIO 50
51. BACKPROPAGATION
L‟algoritmo di backpropagation è uno dei primi metodi d‟addestramento introdotti per
le reti neurali.
L‟algoritmo, oltre all‟errore, utilizza due parametri:
Learning rate.
Momentum.
Il learning rate è una percentuale che determina come il gradiente dovrebbe essere
applicato ai pesi e alle soglie. Il gradiente è moltiplicato per il learning rate e poi
aggiunto ai pesi e alle soglie.
Il Momentum è anch‟esso una percentuale e specifica con quale proporzione i
cambiamenti apportati nell‟epoca precedente debbano essere riapplicati.
REALIZZATO DA: VALERIO CAPOZIO 51
52. MANHATTAN UPDATE RULE
L‟utilizzo del gradiente può portare a cambiamenti troppo grandi nella matrice dei
pesi.
Algoritmi come questo utilizzano quindi solo il segno del gradiente. Ovvero l‟unica cosa
importante per l‟algoritmo non è il valore numerico del gradiente, ma che questi sia
positivo, negativo o vicino a zero.
Il segno del gradiente è utilizzato per determinare come aggiornare i valori di pesi e
soglie.
Se il valore è vicino allo zero nessun cambiamento viene apportato.
Se il valore è positivo il peso o la soglia sono incrementati.
Se il valore è negativo il peso o la soglia sono decrementati.
Il valore di incremento o decremento è una costante fornita in input all‟algoritmo.
REALIZZATO DA: VALERIO CAPOZIO 52
53. RESILIENT PROPAGATION
Il miglior pregio di questo algoritmo è l‟assenza di parametri aggiuntivi da impostare.
L‟algoritmo lavora in maniera similare al Manhattan update rule sfruttando il segno del
gradiente, ma utilizza un approccio più raffinato per calcolare il valore del
cambiamento da apportare.
Differentemente dagli altri due algoritmi appena proposti non utilizza parametri fissi, ma
ricalcola il valore da applicare sulla base dei progressi fatti dall‟addestramento.
Il valore d‟aggiornamento è estremamente piccolo all‟inizio per poi variare, nel corso
delle epoche, sulla base del segno (incremento/decremento) e del valore del
gradiente.
REALIZZATO DA: VALERIO CAPOZIO 53
54. SVANTAGGI DELL‟ADDESTRAMENTO A
PROPAGAZIONE
Sono algoritmi basati sull‟epoca, ovvero propagano tutti i dati in avanti e poi tutti gli
errori all‟indietro.
Avere l‟epoca come scope d‟addestramento può essere molto oneroso dal punto di
vista computazionale se si hanno molti dati.
Utilizzano il metodo di discesa del gradiente e quindi soffrono di:
Convergenza su minimi locali.
Convergenza lenta. Se la derivata è piccola l‟algoritmo si muove a piccoli passi.
REALIZZATO DA: VALERIO CAPOZIO 54
55. ADDESTRAMENTO A PROPAGAZIONE E
MULTITHREADING (1/2)
Ormai anche i computer di fascia più bassa sono dei multicore e quindi possono istanziare
più di un thread fisico alla volta.
Per sfruttare il vantaggio di avere core multipli su cui eseguire operazioni macchina è
necessario avere del software che sia multithread.
L‟idea generale si basa sul principio del DIVIDE ET IMPERA.
Encog consente la programmazione multithread in quei task tipicamente time consuming.
Ad esempio nella fase di training.
Tutti gli algoritmi d‟addestramento basati sulla tecnica della propagazione supportano
nativamente il multithreading.
Per specificare alla rete quanti thread utilizzare si fa uso del metodo setThreadCount(int n)
dell‟oggetto di tipo Propagation.
REALIZZATO DA: VALERIO CAPOZIO 55
56. ADDESTRAMENTO A PROPAGAZIONE E
MULTITHREADING (2/2)
Le tecniche di programmazione multithread fanno sentire maggiormente il loro
contributo in presenza di grandi moli di dati e, ovviamente, in presenza di
macchine che le supportino.
La possibilità di utilizzare più thread viene sfruttata nell‟elaborazione dei passi di
Forward e Backward.
All‟inizio di ogni epoca i dati vengono suddivisi in pacchetti e ogni pacchetto
assegnato ad un thread distinto per essere elaborato. Al termine un solo thread si
occupa di aggregare i risultati di tutte le elaborazioni e di riportare i risultati globali
sulla rete.
Avere un‟elaborazione multithread NON influisce sul numero di epoche necessarie
all‟addestramento della rete, ma sulla velocità dell‟addestramento.
REALIZZATO DA: VALERIO CAPOZIO 56
58. INTRODUZIONE ALLA NORMALIZZAZIONE
Spesso i dati ottenuti non sono utilizzabili direttamente da una rete.
Le reti neurali sono progettate per accettare in input numeri in virgola mobile.
In particolare lavorano al massimo delle prestazioni con input appartenenti al range [-
1,1] o [0,1].
La scelta del range può essere influenzata dall‟utilizzo di una determinata funzione
d‟attivazione.
Ad esempio la funzione Sigmoide gestisce solo numeri appartenenti ad un range
positivo.
Normalizzare, a seconda del tipo di dato trattato, può implicare diverse operazioni.
REALIZZATO DA: VALERIO CAPOZIO 58
59. NORMALIZZAZIONE DI VALORI NUMERICI (1/2)
I valori numerici sono comunemente utilizzati sia come input che come output.
I loro valori numerici hanno un significato in quanto numeri.
Affermare che il monte X sia alto 1000m e il monte Y sia alto 1200m ha un significato
perché 1200 > 1000.
Valori come l‟altezza dei monti non rientrano però nel range che consente alle reti
neurali di lavorare in maniera ottimale e devono quindi essere normalizzati.
In questo caso l‟operazione di normalizzazione consiste nel riportare i dati numerici
entro un range prestabilito [-1,1] oppure [0,1].
REALIZZATO DA: VALERIO CAPOZIO 59
60. NORMALIZZAZIONE DI VALORI NUMERICI (1/1)
La normalizzazione di valori numerici in Encog può essere eseguita attraverso la classe
org.encog.util.arrayutil.NormalizeArray.
Il metodo di normalizzazione è basato sulla seguente equazione:
𝑥 − 𝑚𝑖𝑛
𝑓 𝑥 = ∗ 𝑖𝑔 − 𝑙𝑜𝑤 + 𝑙𝑜𝑤
𝑚𝑎𝑥 − 𝑚𝑖𝑛
Dove:
x = il valore da normalizzare.
min = il valore minimo ricoperto da x.
max = il valore massimo ricoperto da x.
low = il valore minimo del range.
high = il valore più alto del range.
REALIZZATO DA: VALERIO CAPOZIO 60
61. NORMALIZZAZIONE DI VALORI NOMINALI (1/3)
I valori nominali sono utilizzati tipicamente per assegnare delle label alle cose.
Ad esempio il genere di una persona: uomo o donna.
I valori nominali possono essere utilizzati anche per descrivere attributi di un oggetto.
Valori nominali possono essere utilizzati sia in fase di input che di output.
Per essere normalizzati i valori nominali devono essere ricondotti a valori numerici
capaci di rappresentarli.
In Encog esistono due modalità di normalizzazione dei valori nominali:
One-of-n.
Equilateral.
REALIZZATO DA: VALERIO CAPOZIO 61
62. NORMALIZZAZIONE DI VALORI NOMINALI (2/3)
One-of-n è una forma di normalizzazione molto semplice.
Supponendo di avere una rete che in output restituisce 3 valori nominali A, B, C.
La rete dovrà avere tre neuroni di output (uno per ogni valore nominale).
Il valore nominale predetto dalla rete dovrà corrispondere al neurone col più alto
valore d‟attivazione.
Nell‟insieme di training i valori ideali di output saranno codificati inserendo un 1 nella
posizione relativa al neurone da attivare e -1 nelle altre. Si avrà ad esempio:
A=1,-1,-1
B=-1,1,-1
C=-1,-1,1
REALIZZATO DA: VALERIO CAPOZIO 62
63. NORMALIZZAZIONE DI VALORI NOMINALI (3/3)
Consente di „„spalmare‟‟ l‟errore su tutti i neuroni coinvolti.
Questo approccio garantisce che lo stesso errore abbia lo stesso peso anche in caso
di neuroni differenti.
Per ottenere questo risultato è necessario che ogni insieme di valori abbia la stessa
distanza.
Per quantificare la distanza viene utilizzata la distanza euclidea tra due punti.
𝑖1 − 𝑎1 2 + 𝑖2 − 𝑎2 2 +⋯ 𝑖𝑛− 𝑎𝑛 2
𝑑𝑖𝑠𝑡𝑎𝑛𝑧𝑎 =
𝑛
Dove:
i: rappresenta il valore di output ideale;
a: rappresenta il valore di output realmente ottenuto.
REALIZZATO DA: VALERIO CAPOZIO 63
65. MEAN SQUARED ERROR
L‟errore quadratico medio o mean squared error (MSE) è una misura utilizzata per
quantificare la qualità della stima effettuata.
L‟errore quadratico medio misura quanto i valori predetti si discostino da quelli reali.
𝑁 2
𝑖=1 𝑟𝑒𝑎𝑙 𝑖 − 𝑝𝑟𝑒𝑑 𝑖
𝑀𝑆𝐸 =
𝑁
In particolare valuta per ogni dato la distanza esistente tra il punto predetto e il
corrispondente reale.
Il quadrato è inserito per evitare che valori negativi cancellino i positivi.
REALIZZATO DA: VALERIO CAPOZIO 65
66. CONFUSION MATRIX
Rappresentazione tabellare del
risultato di una classificazione.
Valori FALSE classificati Ogni riga rappresenta un‟istanza di
come Positivi una classe predetta.
Errore di Tipo I Ogni colonna rappresenta un‟istanza
di una classe reale.
Valori Reali
Consente di capire le reali
True False prestazioni di un classificatore
Valori Predetti
anche nel caso di dataset
Positive True Positive False sbilanciati.
Positive
Negativ False True Un vantaggio di questa
e Negative Negative rappresentazione è la possibilità
di individuare subito se il
Valori TRUE classificati sistema confonde due classi.
come Negativi
Errore di Tipo II
REALIZZATO DA: VALERIO CAPOZIO 66
67. ACCURACY
L‟accuracy è una misura
statistica, utilizzata per
quantificare quanto
bene funzioni un
classificatore nell‟ Valori Reali
identificare le classi. True False
Valori Predetti
È definita come il Positive True Positive False
rapporto tra tutti i Positive
risultati true rispetto Negativ False True
all‟intera popolazione. e Negative Negative
𝑇𝑃+𝑇𝑁
𝐴𝑐𝑐 =
𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁
REALIZZATO DA: VALERIO CAPOZIO 67
68. PRECISION
La Precision è una misura
statistica utilizzata per Valori Reali
quantificare quanto bene
un classificatore identifichi i True False
membri di una classe.
Valori Predetti
Positive True Positive False
Questa misura è definita come Positive
il rapporto tra i true positive
e tutti i valori predetti come Negativ False True
positive. e Negative Negative
𝑇𝑃
𝑃𝑟𝑒𝑐 = 𝑇𝑃+𝐹𝑃
Un sistema con elevata
Precision tipicamente pochi
errori di Tipo I.
REALIZZATO DA: VALERIO CAPOZIO 68
69. RECALL
La Recall è una misura
statistica utilizzata per Valori Reali
quantificare quanto bene
un classificatore identifichi True False
risultati positivi.
Valori Predetti
Positive True Positive False
Questa misura è definita come Positive
il rapporto tra i true positive
e tutti i valori reali di quella Negativ False True
classe. e Negative Negative
𝑇𝑃
𝑅𝑐𝑎𝑙𝑙 = 𝑇𝑃+𝐹𝑁
Un sistema con elevata Recall
ha tipicamente pochi errori
di Tipo II.
REALIZZATO DA: VALERIO CAPOZIO 69
71. LEGGERE DATI DA FONTI ESTERNE
Encog dispone di alcune classi di utilità per leggere dati in maniera agevole da fonti
esterne quali:
File CSV.
Database Relazionali.
In entrambe i casi si fa uso di particolari specializzazioni della classe BasicMLDataSet.
org.encog.ml.data.specific.CSVNeuralDataSet. Sarà sufficiente istanziare l‟oggetto
passando come parametri il path del file, e le dimensioni del dataset di input e del
dataset di output atteso per ottenere un oggetto di tipo MLDataSet da utilizzare.
org.encog.ml.data.specific.SQLNeuralDataSet. Sarà sufficiente istanziare l‟oggetto
passando una connessione al database, la query SQL da effettuare e le dimensioni
del dataset di input e del dataset di output atteso per ottenere un oggetto di tipo
MLDataSet da utilizzare.
REALIZZATO DA: VALERIO CAPOZIO 71
72. METODI UTILI DI MLTRAIN
L‟addestramento di insiemi di dati molto corposi può portare via diverse ore (anche giorni).
Encog consente, con alcuni algoritmi d‟addestramento, di bloccare il processo e riprenderlo
in seguito.
Per sapere se un algoritmo d‟addestramento consente di essere „„messo in pausa‟‟ si può
richiamare il metodo canContinue().
Per bloccare un algoritmo e riprenderne in seguito l‟elaborazione si utilizza invece il metodo
pause() che restituirà un oggetto di tipo
org.encog.neural.networks.training.propagation.TrainingContinuation.
Per riprendere un addestramento precedentemente interrotto sarà necessario invocare il
metodo resume(TrainingContinuation tc).
Questi tre metodi sono presenti in tutti gli algoritmi d‟addestramento poiché specificati
nell‟interfaccia MLTrain.
REALIZZATO DA: VALERIO CAPOZIO 72
73. INTERFACCIA D‟UTILITÀ ENCOGPERSISTOR
Encog consente di salvare i modelli ottenuti a valle dell‟addestramento mediante
l‟utilizzo degli oggetti di tipo org.encog.persist.EncogPersistor.
EncogPersistor è un‟interfaccia di cui esistono diverse implementazioni che
specializzano i metodi sulla base del modello che si intende salvare.
Un oggetto di tipo EncogPersistor salva un oggetto di Encog in un file EG.
I metodi principali della classe sono 3:
getPersistClassString(). Restituisce una stringa contenente il nome della classe che si
vuole salvare/caricare.
read(InputStream i). Restituisce un Object contenente quanto caricato dallo stream.
save(OutputStream o, Object o). Salva l‟Object tramite lo stream.
REALIZZATO DA: VALERIO CAPOZIO 73
76. INTRODUZIONE ALLE FUNZIONI D‟ATTIVAZIONE
La funzione d‟attivazione è una delle componenti base dell‟architettura di una rete
neurale.
La funzione d‟attivazione agisce come una „„funzione di schiacciamento‟‟
comprimendo l‟output di un neurone in un determinato range (tipicamente [0,1]
oppure [-1,1])
In generale si possono raggruppare le funzioni d‟attivazione in tre macro-categorie:
1 𝑣≥0
Basate su soglia: 𝜑 𝑣 =
0 𝑣<0
1
1 𝑣≥
2
1 1
Lineari: 𝜑 𝑣 = 𝑣 − > 𝑣>
2 2
1
0 𝑣≤−
2
𝑣 1−exp(−𝑣)
Sigmoidali: 𝜑 𝑣 = tanh =
2 1+exp(−𝑣)
REALIZZATO DA: VALERIO CAPOZIO 76
77. INTERFACCIA ACTIVATIONFUCTION
In Encog tutte le funzioni d‟attivazione implementano l‟interfaccia
org.encog.engine.network.activation.ActivationFunction.
L‟interfaccia dichiara tre metodi
void activationFunction(double[] d)
void derivativeFunction(double[] d)
boolean hasDerivative()
La logica applicativa della funzione d‟attivazione si trova all‟interno del metodo
activationFunction.
Il secondo metodo è implementato da tutte quelle funzioni che si intende utilizzare
anche per l‟addestramento basato su propagazione.
Il terzo metodo è utilizzato per capire, in maniera veloce, se una funzione è
differenziabile oppure no.
REALIZZATO DA: VALERIO CAPOZIO 77
78. SCELTA DELLA FUNZIONI D‟ATTIVAZIONE
La scelta di quale funzione d‟attivazione utilizzare può essere guidata da alcuni
parametri quali:
Il tipo di rete neurale che si intende utilizzare.
Il tipo d‟addestramento che si intende utilizzare.
Il range in cui l‟output deve ricadere.
Oltre a questi criteri, utili per orientarsi nella scelta iniziale, sono poi sempre i dati a
guidare e validare le scelte compiute.
REALIZZATO DA: VALERIO CAPOZIO 78
79. ACTIVATIONBIPOLAR
Utilizzata quando si ha la necessità di ottenere un output bipolare.
Per qualunque valore passatole l‟output ottenuto può essere solo 1 o -1
𝑥>0 1
𝑓 𝑥 =
𝑥 ≤0 −1
Non è una funzione differenziabile.
REALIZZATO DA: VALERIO CAPOZIO 79
80. ACTIVATIONCOMPETITIVE
Utilizzata per forzare solo un gruppo di neuroni a vincere.
Vince il gruppo di neuroni che ha l‟output maggiore.
La grandezza dei gruppi è definibile mediante parametro.
Tutti i neuroni facenti parte del gruppo vincente avranno lo stesso valore, gli altri
saranno invece impostati a 0.
Non è una funzione differenziabile.
Spesso utilizzata nelle reti di tipo SOM.
REALIZZATO DA: VALERIO CAPOZIO 80
81. ACTIVATIONGAUSSIAN
Basata sulla funzione Gaussiana, produce la classica forma a campana.
𝑥−𝑏 2
−
𝑓 𝑥 = 𝑎𝑒 2𝑐 2
Dove a rappresenta l‟altezza del picco della curva, b rappresenta la posizione della
curva, c rappresenta la larghezza della curva.
È una funzione differenziabile.
a
b
c
REALIZZATO DA: VALERIO CAPOZIO 81
82. ACTIVATIONLINEAR
Non è una vera e propria funzione d‟attivazione.
Implementa semplicemente una funzione lineare del tipo :
𝑓 𝑥 = 𝑥
Questa funzione è utilizzata principalmente per specificare funzioni d‟attivazioni fittizie
per reti che non ne fanno uso come alcuni tipi di SOM.
È una funzione differenziabile.
REALIZZATO DA: VALERIO CAPOZIO 82
83. ACTIVATIONLOG
Utilizza un algoritmo basato sulla funzione logaritmo.
𝑥 ≥ 0 log(1 + 𝑥)
𝑓 𝑥 =
𝑥 < 0 − log(1 − 𝑥)
Produce una curva simile a quella della TANH.
Può essere utilizzata per prevenire la saturazione.
È una funzione differenziabile.
REALIZZATO DA: VALERIO CAPOZIO 83
84. ACTIVATIONSIGMOID
Basata sulla funzione del sigmoide.
1
𝑓 𝑥 =
1 + 𝑒 −𝑥
Ha un output sempre positivo.
È una funzione differenziabile.
Nessun output
negativo
REALIZZATO DA: VALERIO CAPOZIO 84
85. ACTIVATIONSIN
Basata sulla funzione seno.
𝑓 𝑥 = sin 𝑥
Utilizzata di rado.
È una funzione differenziabile.
Restituisce sia valori di output positivi che negativi.
REALIZZATO DA: VALERIO CAPOZIO 85
86. ACTIVATIONSOFTMAX
Appiattisce tutti i valori di input in modo che la loro somma sia uguale a uno.
Inizia sommando l‟esponente naturale di tutti i valori in input, quindi ricalcola ogni
valore di input come il rapporto tra lo stesso e la somma calcolata in precedenza.
È una funzione differenziabile.
double sum = 0;
for (int i = 0; i <
d.length; i++) {
d[i] =
BoundMath.exp(d[i]);
sum += d[i];
}
for (int i = 0; i <
d.length; i++) {
d[i] = d[i] / sum;
}
REALIZZATO DA: VALERIO CAPOZIO 86
87. ACTIVATIONTANH
Basata sulla funzione della tangente iperbolica.
𝑒 2𝑥 − 1
𝑓 𝑥 = 2𝑥
𝑒 +1
È probabilmente la funzione d‟attivazione più comune.
È una funzione differenziabile.
REALIZZATO DA: VALERIO CAPOZIO 87
90. LIMITI DELLE RETI FEED-FORWARD
Le reti di tipo feed-forward sono reti in cui la computazione si svolge sempre „„in
avanti‟‟.
Le reti di tipo feed-forward necessitano di un addestramento di tipo supervisionato.
In questo tipo di reti non sono quindi consentiti cicli.
Le reti feed-forward sono stateless.
In caso di dati provenienti da sequenze temporali può essere oneroso realizzare un
architettura feed-forward che ottenga buoni risultati.
REALIZZATO DA: VALERIO CAPOZIO 90
91. INTRODUZIONE ALLE RETI SOM
Le reti neurali Self Organizing Map sono una particolare tipologia di rete neurale
utilizzata per task di clusterizzazione.
Possono essere molto utili per identificare similarità tra i dati.
Le reti SOM sono addestrate mediante algoritmi d‟apprendimento non supervisionati.
Encog consente di utilizzare le reti SOM e riserva loro un set di classi specifiche
organizzate all‟interno del package org.encog.neural.som.
In Encog una rete SOM è implementata come una rete di due layer (input-output).
REALIZZATO DA: VALERIO CAPOZIO 91
92. ADDESTRAMENTO DELLE RETI SOM (1/2)
L‟addestramento procede per un numero di iterazioni prefissato.
Tra il pattern di training e i pesi viene calcolata la distanza euclidea:
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 = 𝑝1 − 𝑤1 2 + ⋯ + 𝑝 𝑛 − 𝑤 𝑛 2
In questo modo è possibile quantificare la differenza tra ogni vettore dei pesi e il
pattern di input.
La distanza è calcolata per ogni neurone di output. Il neurone con la distanza minima
è detto Best Matching Unit (BMU).
Il BMU è il neurone che apprende maggiormente dal pattern, mentre i suoi vicini
imparano meno.
REALIZZATO DA: VALERIO CAPOZIO 92
93. ADDESTRAMENTO DELLE RETI SOM (2/2)
Individuato il BMU si itera su tutti i pesi aggiornandone il valore sulla base della funzione
di apprendimento
𝑊𝑣 𝑡 + 1 = 𝑊𝑣 𝑡 + 𝜃 𝑣, 𝑡 𝛼 𝑡 𝐷 𝑡 − 𝑊𝑣 𝑡
Dove
t rappresenta il numero dell‟iterazione.
D(t)-Wv(t) rappresenta la differenza tra il peso corrente e il vettore di input.
𝛉 𝐯, 𝐭 rappresenta la funzione di vicinanza.
𝛂 𝐭 rappresenta un learning rate decrescente.
La funzione di vicinanza considera quanto uno neurone sia vicino al BMU.
Il learning rate influenza l‟apprendimento di un neurone, così come avviene anche
nella backpropagation.
REALIZZATO DA: VALERIO CAPOZIO 93
94. INTRODUZIONE ALLE RETI NEURALI RICORRENTI
Le reti neurali ricorrenti presentano le stesse caratteristiche delle reti feed-forward, ma
in più consentono di gestire dei cicli.
In particolare sono consentite conessioni:
Verso lo stesso livello.
Verso livelli precedenti.
La presenza di questi cicli consente alle reti di avere uno stato.
Alcune topologie hanno inoltre un livello particolare, detto livello di contesto.
REALIZZATO DA: VALERIO CAPOZIO 94
95. RETI NEURALI RICORRENTI IN ENCOG
Encog mette a disposizioni 4 topologie di reti neurali ricorrenti:
Hopfield.
Boltzmann.
Elman.
Jordan.
Queste sono le 4 topologie ricorrenti tipicamente più utilizzate.
Le prime due sono architetturalmente più semplici:
Sono auto-connesse.
Le ultime due sono più complesse:
Hanno un livello di contesto.
REALIZZATO DA: VALERIO CAPOZIO 95
96. RETE DI HOPFIELD
La rete di Hopfield è,
architetturalmente,
estremamente semplice.
È composta di un solo livello
che ha funzione sia di input
che di output e non
gestisce livelli nascosti.
Tutti i neuroni della rete sono
totalmente connessi gli uni
agli altri.
Non sono consentite connessioni tra un
neurone e se stesso.
La rete di Hopfield accetta
solo una funzione
d‟attivazione di tipo
Bipolare.
Per ogni neurone di output il valore sarà
solo 1 o -1.
REALIZZATO DA: VALERIO CAPOZIO 96
97. RETE DI BOLTZMANN
La macchina di Boltzmann è la
controparte stocastica della rete di
Hopfield ed è basata su un
approccio di tipo generativo.
Composta da un singolo livello.
Il grado di casualità della rete dipende
dalla „„temperatura corrente‟‟ della
rete stessa.
Più „„raffredda‟‟ e minore è la casualità.
Accetta come funzione d‟attivazione
solo la funzione Bipolare.
Utili per approcciare problemi di tipo
combinatorio (richiedono molto
tempo).
Spesso viene scartata per problemi di
performance non banali.
REALIZZATO DA: VALERIO CAPOZIO 97
98. RETE DI ELMAN
La rete di Elman ha un
funzionamento molto simile alle
reti di tipo feed-forward e può
utilizzare gli stessi metodi
d‟addestramento.
La rete di Elman è composta di tre
livelli classici:
Input
Output
Hidden
È composta inoltre di un livello di
contesto che consente il
feedback.
Il livello di contesto è connesso al livello
hidden tramite un‟associazione 1:1
Il livello di contesto è privo di pesi
e quindi non può apprendere,
serve solo per fornire la rete di
memoria.
REALIZZATO DA: VALERIO CAPOZIO 98
99. RETE DI JORDAN
La rete di Jordan è molto
simile alle rete di Helman
per topologia.
È composta di 4 livelli:
Input.
Output.
Hidden.
Contesto.
Nella rete di Jordan il livello
di contesto è collegato al
livello hidden attraverso
connessioni pesate, ma
anche al livello di output
da cui riceve il feedback.
REALIZZATO DA: VALERIO CAPOZIO 99
101. Questo opera è distribuita con
licenza Creative Commons
Attribuzione - Non commerciale
- Non opere derivate 2.5 Italia
REALIZZATO DA: VALERIO CAPOZIO 101