{"id":14268,"date":"2020-02-12T07:30:08","date_gmt":"2020-02-12T06:30:08","guid":{"rendered":"https:\/\/www.unilab.eu\/?p=14268"},"modified":"2020-02-10T11:20:55","modified_gmt":"2020-02-10T10:20:55","slug":"programmazione-probabilistica","status":"publish","type":"post","link":"https:\/\/www.unilab.eu\/it\/articoli\/coffee-break-it\/programmazione-probabilistica\/","title":{"rendered":"GEN e linguaggi di programmazione probabilistica: cosa sono?"},"content":{"rendered":"<p>I linguaggi di <strong>programmazione probabilistica<\/strong> sono dei particolari linguaggi di programmazione in grado di creare modelli e previsioni, analizzando campioni di dati. Sono anche detti PPL e comportano una vera e propria evoluzione nel modo di scrivere i software.<\/p>\n<p>Pur essendo ancora in fase embrionale, queste nuove tecniche di scrittura informatica lasciano intuire le enormi <strong>possibilit\u00e0 applicative<\/strong> (che spaziano in diversi settori). Alcuni sistemi fanno gi\u00e0 uso di PPL relativamente semplici, con risultati molto incoraggianti.<\/p>\n<p><strong>Il ragionamento probabilistico \u00e8 un aiuto concreto<\/strong><\/p>\n<p>Riuscire a programmare software capaci di <strong>compiere ragionamenti complessi<\/strong> \u00e8 un sogno che l\u2019uomo persegue ormai da diverso tempo. Ad oggi la programmazione probabilistica sembra essere la via pi\u00f9 concreta per raggiungere tale obiettivo e i primi esempi di successi non si sono fatti attendere.<\/p>\n<p>Le grandi IP del web stanno gi\u00e0 lavorando su programmi, che sfruttano il <strong>ragionamento probabilistico<\/strong> per analizzare grosse quantit\u00e0 di dati ed estrarre grafici &#8211; previsioni il pi\u00f9 verosimili possibile. I campi di applicazione sono svariati e spaziano dall\u2019andamento delle borse, fino al riconoscimento facciale e alla ricostruzione 3D di volti presi da foto 2D.<\/p>\n<p>Le potenzialit\u00e0 offerte dalla programmazione probabilistica sono tante e in continua evoluzione. Fra i <strong>pi\u00f9 noti software<\/strong> attualmente in uso vale la pena citare: Fossetta e Chimple (basati su linguaggio Java), Infer.NET (basato su fremwork.NET) o PRISM (per Prolog). Altri utilizzano invece linguaggi di programmazione autonomi, come ad esempio avviene per WinBUGS o Stan.<\/p>\n<p>Lo scopo ultimo di tali programmi \u00e8 quello di aiutare gli esseri umani a <strong>prendere decisioni oculate quando vi \u00e8 incertezza<\/strong>. L\u2019idea \u00e8 tentare di codificare e analizzare ogni variabile, creando previsioni accurate che aiutino a scegliere una certa opzione, grazie al supporto concreto dei dati statistici.<\/p>\n<p><strong>GEN il nuovo esempio di programmazione probabilistica<\/strong><\/p>\n<p>Quello che propone il <strong>MIT<\/strong> (Massachusetts Institute of Technology) \u00e8 un linguaggio di programmazione probabilistica di nuova generazione, denominato GEN. La caratteristica che lo distingue rispetto agli altri software gi\u00e0 presenti nel mercato, \u00e8 la possibilit\u00e0 di essere utilizzato facilmente dagli esperti, come anche da chi non ha particolari conoscenze nel coding.<\/p>\n<p>La struttura di GEN funziona grazie a <strong>tre strumenti principali<\/strong>, che ne vanno a definire le caratteristiche pi\u00f9 interessanti:<\/p>\n<ul>\n<li>dispone di una funzione generativa capace di inglobare diversi modelli probabilistici;<\/li>\n<li>possiede linguaggi di modellazione interoperabili;<\/li>\n<li>ha algoritmi di inferenza ad alto livello di astrazione.<\/li>\n<\/ul>\n<p>Il linguaggio di programmazione su cui si basa GEN \u00e8 <strong>Julia<\/strong>, al quale sono stati implementati altri strumenti di supporto come: il DML (un compilatore che genera funzioni contenenti hash-table, utili per la creazione dei grafici), l\u2019SML (che si occupa dell\u2019analisi statistica) e il TML (che agevola l\u2019impiego di reti neurali profonde).<\/p>\n<p><strong>I risultati di GEN rispetto agli altri linguaggi di programmazione probabilistica<\/strong><\/p>\n<p>Per <strong>verificare la precisione<\/strong> dei modelli restituiti da GEN, sono stati realizzati i medesimi test anche con altri linguaggi di programmazione probabilistica gi\u00e0 in uso. Le prove effettuate hanno riguardato:<\/p>\n<ul>\n<li>regressione robusta sull\u2019algoritmo di Bayes;<\/li>\n<li>apprendimento gaussiano;<\/li>\n<li>stima 3D che prevede la disposizione delle persone in una stanza;<\/li>\n<li>modelli non lineari per la previsione degli stati nello spazio;<\/li>\n<li>modelli per agenti autonomi.<\/li>\n<\/ul>\n<p>Tutte queste prove hanno dato <strong>esito positivo<\/strong>, confermando le enormi potenzialit\u00e0 applicative di GEN. Tale linguaggio di programmazione probabilistica pu\u00f2 essere impiegato in innumerevoli campi di ricerca e, pur essendo ancora in fase di testing, rappresenta per molti il futuro della programmazione intelligente.<\/p>\n<!--themify_builder_content-->\n<div id=\"themify_builder_content-14268\" data-postid=\"14268\" class=\"themify_builder_content themify_builder_content-14268 themify_builder tf_clear\">\n    <\/div>\n<!--\/themify_builder_content-->\n","protected":false},"excerpt":{"rendered":"<p>I linguaggi di programmazione probabilistica sono dei particolari linguaggi di programmazione in grado di creare modelli e previsioni, analizzando campioni di dati. Sono anche detti PPL e comportano una vera e propria evoluzione nel modo di scrivere i software.<\/p>\n","protected":false},"author":10,"featured_media":14271,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"I linguaggi di programmazione probabilistica sono dei particolari linguaggi di programmazione in grado di creare modelli e previsioni, analizzando campioni di dati. Sono anche detti PPL e comportano una vera e propria evoluzione nel modo di scrivere i software.","_seopress_robots_index":"","footnotes":""},"categories":[46],"tags":[],"class_list":["post-14268","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coffee-break-it","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"builder_content":"","_links":{"self":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/14268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/comments?post=14268"}],"version-history":[{"count":0,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/14268\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media\/14271"}],"wp:attachment":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media?parent=14268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/categories?post=14268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/tags?post=14268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}