parte 3, imm

This commit is contained in:
PesceWanda 2016-11-19 18:40:32 +01:00
parent 80abd0f4c2
commit f870318fed
10 changed files with 1057 additions and 0 deletions

View file

@ -0,0 +1,59 @@
---
title: Capire il Machine Learning (parte 3)
date: 2016-11-15
author: pesceWanda
layout: post
categories:
- PesceWanda
tags:
- AI
- Genetic algorithm
- Neural networks
- reti neurali
- algoritmi genetici
- programming
---
## Riconoscimento delle immagini
Il machine learning viene utilizzato anche per il riconoscimento delle immagini.
La tipologia di rete neurale utilizzata per questa applicazione è chiamata rete neural a convoluzione ( **convolutional neural networks**), abbreviata CNN.
Innanzitutto consideriamo che ogni immagine può essere codificata come una matrice di valori
![pixel](/wp-content/uploads/2016/8.jpg)
Vediamo ora quali sono le operazioni compiute da una **CNN** per riconoscere delle immagini.
#### Convoluzione
Durante la fase di apprendimento, la rete neurale analizza moltissime immagini (categorizzate) utilizzando dei "filtri", ovvero delle funzioni che mescolate all'input originale permettono di evidenziare dei pattern nell'immagine.
Questi pattern corrispondono alle caratteristiche proprie di un oggetto (quali possono essere ad esempio per un uccello il becco, le piume, le ali) e nel caso queste sono presenti, possiamo riconoscere l'immagine.
In questo esempio l'immagine di Wally é mescolata (l'operazione si chiama **convoluzione**) con un filtro "a cerchio" che risponde molto bene a caratteristiche come quella di possedere degli occhi.
![waldoblue](/wp-content/uploads/2016/bluefilter.png)
La **convoluzione** é un'operazione che ha la proprietá di essere indipendente dalla posizione. Non importa la posizione degli occhi, quando applichiamo la **convoluzione** su un'immagine con un filtro "a cerchio" notiamo che gli occhi sono presenti.
#### Subsampling
Ogni segnale contiene del "rumore", ovvero degli elementi che la allontanano dal comportamento ideale.
![ideal](/wp-content/uploads/2016/ideal.jpg)
![real](/wp-content/uploads/2016/real.jpg)
Attraverso il subsampling possiamo ridurre il rumore e rendere il nostro algoritmo meno suscettibile a queste piccole variazioni; benché l'immagine abbia una risoluzione minore, i pattern rimangono.
![waldosub](/wp-content/uploads/2016/sub.png)
#### Connessione completa
Alla fine dell'analisi tutte le caratteristiche estrapolate vengono considerate nell'insieme e in questo modo possiamo capire a quale categoria appartiene l'immagine.
Questo procedimento a livello algoritmo si esplicita con una connessione completa fra tutti i nodi della rete neurale che possono poi restituire l'output (probabilitá che l'immagine appartenga ad una determinata categoria).
#### Fase di rinforzo
Durante il training é presente un'ultima fase (o strato), chiamato piú propriamente **loss layer**. Questo strato provvede a dare un **feedback** alla rete neurale analizzando l'output in relazione ai dati di partenza (ovvero le immagini giá categorizzate).

View file

@ -0,0 +1,998 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<link href="http://gmpg.org/xfn/11" rel="profile">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<!-- Enable responsiveness on mobile devices-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<title>
Capire il Machine Learning (parte 3) &middot; Caught in the Net
</title>
<!-- CSS -->
<link rel="stylesheet" href="/public/css/poole.css">
<link rel="stylesheet" href="/public/css/syntax.css">
<link rel="stylesheet" href="/public/css/hyde.css">
<!-- Icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/public/apple-touch-icon-144-precomposed.png">
<link rel="shortcut icon" href="/public/favicon.ico">
<!-- RSS -->
<link rel="alternate" type="application/rss+xml" title="RSS" href="/atom.xml">
</head>
<body class="theme-base-09">
<div class="sidebar">
<div class="container sidebar-sticky">
<div class="sidebar-about">
<h1>
<a href="/">
Caught in the Net
</a>
</h1>
<p class="lead"></p>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Home</a>
<a class="sidebar-nav-item" href="/about/">About</a>
<a class="sidebar-nav-item" href="/archive/">Archive</a>
<a class="sidebar-nav-item" href="/contattami/">Contact me</a>
<a class="sidebar-nav-item" href="/feed.xml">RSS</a>
<a class="sidebar-nav-item" href="http://francescomecca.eu:3000/explore/repos">Personal Git</a>
<span class="sidebar-nav-item" href="" >Powered by Jekyll and Hyde</span>
</nav>
<p>&copy; 2016. CC BY-SA 4.0 International </p>
</div>
</div>
<h3 class="masthead-title">
<a href="/" title="Home">Caught in the Net</a>
</h3>
<div class="content container">
<div class="post">
<h1 class="post-title">Capire il Machine Learning (parte 3)</h1>
<span class="post-date">15 Nov 2016</span>
<h2 id="riconoscimento-delle-immagini">Riconoscimento delle immagini</h2>
<p>Il machine learning viene utilizzato anche per il riconoscimento delle immagini.
La tipologia di rete neurale utilizzata per questa applicazione è chiamata rete neural a convoluzione ( <strong>convolutional neural networks</strong>), abbreviata CNN.</p>
<p>Innanzitutto consideriamo che ogni immagine può essere codificata come una matrice di valori</p>
<p><img src="/wp-content/uploads/2016/8.jpg" alt="pixel"></p>
<p>Vediamo ora quali sono le operazioni compiute da una <strong>CNN</strong> per riconoscere delle immagini.</p>
<h4 id="convoluzione">Convoluzione</h4>
<p>Durante la fase di apprendimento, la rete neurale analizza moltissime immagini (categorizzate) utilizzando dei &quot;filtri&quot;, ovvero delle funzioni che mescolate all&#39;input originale permettono di evidenziare dei pattern nell&#39;immagine.
Questi pattern corrispondono alle caratteristiche proprie di un oggetto (quali possono essere ad esempio per un uccello il becco, le piume, le ali) e nel caso queste sono presenti, possiamo riconoscere l&#39;immagine.</p>
<p>In questo esempio l&#39;immagine di Wally é mescolata (l&#39;operazione si chiama <strong>convoluzione</strong>) con un filtro &quot;a cerchio&quot; che risponde molto bene a caratteristiche come quella di possedere degli occhi.</p>
<p><img src="/wp-content/uploads/2016/bluefilter.png" alt="waldoblue"></p>
<p>La <strong>convoluzione</strong> é un&#39;operazione che ha la proprietá di essere indipendente dalla posizione. Non importa la posizione degli occhi, quando applichiamo la <strong>convoluzione</strong> su un&#39;immagine con un filtro &quot;a cerchio&quot; notiamo che gli occhi sono presenti.</p>
<h4 id="subsampling">Subsampling</h4>
<p>Ogni segnale contiene del &quot;rumore&quot;, ovvero degli elementi che la allontanano dal comportamento ideale. </p>
<p><img src="/wp-content/uploads/2016/ideal.jpg" alt="ideal"></p>
<p><img src="/wp-content/uploads/2016/real.jpg" alt="real"></p>
<p>Attraverso il subsampling possiamo ridurre il rumore e rendere il nostro algoritmo meno suscettibile a queste piccole variazioni; benché l&#39;immagine abbia una risoluzione minore, i pattern rimangono.</p>
<p><img src="/wp-content/uploads/2016/sub.png" alt="waldosub"></p>
<h4 id="connessione-completa">Connessione completa</h4>
<p>Alla fine dell&#39;analisi tutte le caratteristiche estrapolate vengono considerate nell&#39;insieme e in questo modo possiamo capire a quale categoria appartiene l&#39;immagine.</p>
<p>Questo procedimento a livello algoritmo si esplicita con una connessione completa fra tutti i nodi della rete neurale che possono poi restituire l&#39;output (probabilitá che l&#39;immagine appartenga ad una determinata categoria).</p>
<h4 id="fase-di-rinforzo">Fase di rinforzo</h4>
<p>Durante il training é presente un&#39;ultima fase (o strato), chiamato piú propriamente <strong>loss layer</strong>. Questo strato provvede a dare un <strong>feedback</strong> alla rete neurale analizzando l&#39;output in relazione ai dati di partenza (ovvero le immagini giá categorizzate).</p>
</div>
<!--<div class="related">-->
<!--<related-posts />-->
<!--<h2>Related Posts</h2>-->
<!--<ul class="related-posts">-->
<!---->
<!--<li>-->
<!--<h3>-->
<!--<a href="/pescewanda/2016/11/11/machine-learning-PARTE2/">-->
<!--Capire il Machine Learning (parte 2)-->
<!--<small>11 Nov 2016</small>-->
<!--</a>-->
<!--</h3>-->
<!--</li>-->
<!---->
<!--<li>-->
<!--<h3>-->
<!--<a href="/pescewanda/2016/11/10/machine-learning-intro/">-->
<!--Capire il Machine Learning (parte 1)-->
<!--<small>10 Nov 2016</small>-->
<!--</a>-->
<!--</h3>-->
<!--</li>-->
<!---->
<!--<li>-->
<!--<h3>-->
<!--<a href="/pescewanda/2016/07/07/pres-berk/">-->
<!--A short talk about cryptography at the Berkman Klein Center-->
<!--<small>07 Jul 2016</small>-->
<!--</a>-->
<!--</h3>-->
<!--</li>-->
<!---->
<!--<li>-->
<!--<h3>-->
<!--<a href="/pescewanda/2016/07/06/IM-services/">-->
<!--Phone messaging apps comparison-->
<!--<small>06 Jul 2016</small>-->
<!--</a>-->
<!--</h3>-->
<!--</li>-->
<!---->
<!--<li>-->
<!--<h3>-->
<!--<a href="/pescewanda/2016/07/05/arduino_keyboard/">-->
<!--Arduino Uno as HID keyboard-->
<!--<small>05 Jul 2016</small>-->
<!--</a>-->
<!--</h3>-->
<!--</li>-->
<!---->
<!--</ul>-->
<!--</div>-->
<h4>Similar Posts</h4>
<ul>
<li class="relatedPost">
<a href="/pescewanda/2016/11/11/machine-learning-PARTE2/">Capire il Machine Learning (parte 2)
</a>
</li>
<li class="relatedPost">
<a href="/pescewanda/2016/11/10/machine-learning-intro/">Capire il Machine Learning (parte 1)
</a>
</li>
<li class="relatedPost">
<a href="/pescewanda/2016/07/05/arduino_keyboard/">Arduino Uno as HID keyboard
</a>
</li>
<li class="relatedPost">
<a href="/pescewanda/2016/05/15/genetic-alg/">Interpolation using a genetic algorithm
</a>
</li>
<li class="relatedPost">
<a href="/pescewanda/2016/04/17/kpd-player/">Kyuss Music Player
</a>
</li>
</ul>
</div>
<!--<link rel="alternate" type="application/rss+xml" title="Francesco Mecca RSS" href="/feed.xml">-->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB