{"id":1485,"date":"2019-06-10T10:33:46","date_gmt":"2019-06-10T09:33:46","guid":{"rendered":"http:\/\/xmau.com\/wp\/ilpost\/?p=1485"},"modified":"2019-06-12T10:38:06","modified_gmt":"2019-06-12T09:38:06","slug":"interpretabilita","status":"publish","type":"post","link":"https:\/\/xmau.com\/ilpost\/2019\/06\/10\/interpretabilita\/","title":{"rendered":"Interpretabilit\u00e0"},"content":{"rendered":"<p>Leggendo <a href=\"https:\/\/medium.com\/@massibelloni\/if-its-interpretable-it-s-pretty-much-useless-8a186bcdc8b1\">il post di Massimo Belloni<\/a> su Medium, che afferma provocatoriamente che nel campo della Machine Learning se si capisce come funziona un algoritmo allora esso \u00e8 inutile, mi sono accorto di una cosa che in genere passa inosservata, o almeno che io non avevo ancora notato. Belloni fa l&#8217;esempio di un algoritmo di classificazione, per cui gli algoritmi &#8220;classici&#8221;, come un albero di decisione, si comportano a suo parere peggio di quelli moderni; e soprattutto afferma che il supposto vantaggio di potere interpretare i risultati non \u00e8 affatto tale. L&#8217;interpretabilit\u00e0 per lui \u00e8 una semplice questione di fiducia: se un modello funziona bene con i dati di addestramento e male con quelli di test la risposta \u00e8 che o sono malfatti i dati oppure \u00e8 sbagliato l&#8217;ambiente di test. In fin dei conti quello che noi abbiamo nel caso del machine learning (ML) \u00e8 un caso in cui noi sappiamo qual \u00e8 la domanda, sappiamo anche qual \u00e8 la risposta, ma non conosciamo un modo facile per passare dalla domanda alla risposta. L&#8217;esempio che fa \u00e8 distinguere tra un cane e un gatto: e la chiosa finale \u00e8 che se ci fosse un modo facile per farlo, allora non servirebbe tutto l&#8217;armamentario del ML ma si potrebbe scrivere quello che quarant&#8217;anni fa passava per &#8220;sistema esperto&#8221;: una sfilza di if-then-else.<\/p>\n<p>Il discorso tecnicamente fila, ma mi pare che ci sia un problema di base. \u00c8 ovvio che noi possiamo seguire passo passo un programma e &#8220;capire cosa fa&#8221;, anche se nel caso non abbiamo la pi\u00f9 pallida idea del <b>perch\u00e9<\/b> lo faccia. Insomma la teleologia \u00e8 al di fuori della nostra comprensione degli algoritmi. Ma tutto questo \u00e8 poi vero? Torniamo un attimo indietro e rifugiamoci sull&#8217;informatica teorica. Come sapete, la classe di algoritmi NP comprende quelli &#8220;difficili&#8221;, nel senso che il costo computazionale per risolverli ottimamente cresce in modo esponenziale con la dimensione dei dati in ingresso. All&#8217;atto pratico si studiano algoritmi che danno un risultato quasi ottimale, o che portano quasi sempre alla risposta ottimale, e si vive felici; i teorici non sono per\u00f2 contenti di questo stato di cose. Immaginiamo per\u00f2 un sistema ML che risolva in tempo polinomiale uno di questi problemi. Dovremmo fidarci? La risposta \u00e8 affermativa, ma per una semplice ragione: una caratteristica dei problemi NP \u00e8 che anche se non sappiamo se esiste un algoritmo di soluzione che giri in tempo polinomiale possiamo per\u00f2 <b>verificare<\/b> la soluzione in tempo polinomiale. Quindi abbiamo un modo per verificare quanto ci \u00e8 stato detto. <\/p>\n<p>Il vero problema si ha quando usiamo questi algoritmi per risolvere un problema di cui non solo non conosciamo la risposta, ma non possiamo nemmeno verificarla. Pensiamo a un algoritmo che debba stabilire quanti sussidi dare a un insieme di persone, sapendo che la quantit\u00e0 di denaro totale a disposizione \u00e8 limitata. In questo caso la matematica o l&#8217;informatica non ci possono aiutare: se non sappiamo verificare il risultato n\u00e9 interpretarlo, dobbiamo fidarci ciecamente di esso, e scaricare le responsabilit\u00e0 sull'&#8221;asettico algoritmo&#8221; che per\u00f2 forse tanto asettico non \u00e8, perch\u00e9 d\u00e0 un peso esagerato a caratteristiche a noi ignote e che avremmo eliminato se solo le avessimo conosciute. In un certo senso, insomma, \u00e8 come se lanciassimo una moneta: una tecnica a prova di imparzialit\u00e0 ma non necessariamente la migliore. Non si pu\u00f2 far finta che gli algoritmi facciano tutto da soli!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Serve o non serve essere in grado di interpretare il risultato di un algoritmo di machine learning? Dipende dalle domande che ci si fa.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[104,213,214],"class_list":["post-1485","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-algoritmi","tag-machine-learning","tag-p-vs-np"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/phh2yP-nX","jetpack-related-posts":[{"id":2650,"url":"https:\/\/xmau.com\/ilpost\/2013\/11\/07\/chi-ha-paura-degli-algoritmi\/","url_meta":{"origin":1485,"position":0},"title":"Chi ha paura degli algoritmi?","author":".mau.","date":"07\/11\/2013","format":false,"excerpt":"\u00c8 facile ridicoleggiare quello che non si conosce, se si sa scrivere bene.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":501,"url":"https:\/\/xmau.com\/ilpost\/2015\/01\/09\/il-computer-che-gioca-a-poker-pillole\/","url_meta":{"origin":1485,"position":1},"title":"il computer che vince a poker [Pillole]","author":".mau.","date":"09\/01\/2015","format":false,"excerpt":"Per la prima volta un computer gioca in modo ottimale a un gioco a informazione non completa","rel":"","context":"In \"algoritmi\"","block_context":{"text":"algoritmi","link":"https:\/\/xmau.com\/ilpost\/tag\/algoritmi\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2426,"url":"https:\/\/xmau.com\/ilpost\/2011\/08\/02\/il-crivello-dopo-eratostene\/","url_meta":{"origin":1485,"position":2},"title":"Il crivello dopo Eratostene","author":".mau.","date":"02\/08\/2011","format":false,"excerpt":"Non \u00e8 che ci siano chiss\u00e0 quali metodi per calcolare i numeri primi. Pu\u00f2 essere divertente scoprire che esiste un crivello... geometrico.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2011\/08\/crivello1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2011\/08\/crivello1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2011\/08\/crivello1.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2584,"url":"https:\/\/xmau.com\/ilpost\/2013\/04\/03\/euclide-aritmetico\/","url_meta":{"origin":1485,"position":3},"title":"Euclide aritmetico","author":".mau.","date":"03\/04\/2013","format":false,"excerpt":"Gli Elementi non parlano solo di geometria, ma anche di aritmetica; e anche qua brilla l'esposizione di Euclide.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2013\/04\/Euclids_algorithm_Book_VII_Proposition_2_3.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":524,"url":"https:\/\/xmau.com\/ilpost\/2015\/03\/03\/chi-non-si-vaccina-fa-ammalare-anche-te\/","url_meta":{"origin":1485,"position":4},"title":"Chi non si vaccina fa ammalare anche te","author":".mau.","date":"03\/03\/2015","format":false,"excerpt":"In teoria si potrebbe pensare che se qualcuno non si vaccina \u00e8 solo un suo problema: beh, non \u00e8 proprio cos\u00ec.","rel":"","context":"In \"combinatorica\"","block_context":{"text":"combinatorica","link":"https:\/\/xmau.com\/ilpost\/tag\/combinatorica\/"},"img":{"alt_text":"[immunit\u00e0 di gregge]","src":"https:\/\/i0.wp.com\/xmau.com\/wp\/ilpost\/wp-content\/uploads\/sites\/4\/2015\/03\/Community_Immunity.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2470,"url":"https:\/\/xmau.com\/ilpost\/2012\/01\/09\/sudoku-minimali-e-massimali\/","url_meta":{"origin":1485,"position":5},"title":"Sudoku minimali e massimali","author":".mau.","date":"09\/01\/2012","format":false,"excerpt":"Il 2012 si \u00e8 aperto con la dimostrazione che per avere un sudoku risolvibile \u00e8 necessario avere almeno 17 numeri. Come ci si \u00e8 arrivati? Forza (quasi) bruta.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2012\/01\/sudoku77.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts\/1485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/comments?post=1485"}],"version-history":[{"count":3,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts\/1485\/revisions"}],"predecessor-version":[{"id":1493,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts\/1485\/revisions\/1493"}],"wp:attachment":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/media?parent=1485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/categories?post=1485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/tags?post=1485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}