{"id":1630,"date":"2018-05-01T23:17:51","date_gmt":"2018-05-01T21:17:51","guid":{"rendered":"https:\/\/vgrblogg.se\/utveckling\/?p=1630"},"modified":"2018-05-01T23:17:51","modified_gmt":"2018-05-01T21:17:51","slug":"gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv","status":"publish","type":"post","link":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/","title":{"rendered":"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv"},"content":{"rendered":"<p>GAN (Generative Adversarial Network) \u00e4r en teknik f\u00f6r att f\u00e5 en maskin att instruera sig sj\u00e4lv. Att vi utvecklare inte uttryckligen ber\u00e4ttar f\u00f6r den hur den l\u00e4r sig och vad som utm\u00e4rker kunskapen. Eftersom maskinen sj\u00e4lv har en lite st\u00f6rre del av ansvaret att l\u00e4ra sig klassificeras GAN som <i>unsupervised machine learning<\/i>, till skillnad fr\u00e5n <i>supervised machine learning<\/i>.<!--more--><\/p>\n<blockquote><p>&#8221;a system of two neural networks contesting with each other in a zero-sum game framework. They were introduced by Ian Goodfellow et al. in 2014. This technique can generate photographs that look at least superficially authentic to human observers, having many realistic characteristics\u201d<br \/>\n\u2013 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Generative_adversarial_network\">Generative adversarial network &#8211; Wikipedia<\/a><\/p><\/blockquote>\n<p>Bilden du ser i bloggpostens huvud \u00e4r resultatet av tre timmars ber\u00e4kningar. Fr\u00e5n b\u00f6rjan hade inget av de neurala n\u00e4tverken koll p\u00e5 n\u00e5gonting n\u00e4r det g\u00e4llde bilder och n\u00e5gon timme senare b\u00f6rjade saker att utkristallisera sig, \u00e5tminstone om man har lite fantasi.<\/p>\n<h2>Anv\u00e4ndningsomr\u00e5den f\u00f6r GAN<\/h2>\n<p>Ett anv\u00e4ndningsomr\u00e5de \u00e4r att generera bilder, vilket vi kommer g\u00e5 igenom mer i detalj strax. Andra anv\u00e4ndningsomr\u00e5den \u00e4r att modifiera bilder ur ett antal sammanhang, bland annat assistera konstn\u00e4rer och skapa fotorealistiska bilder fr\u00e5n teckningar.<\/p>\n<p>GAN kan ocks\u00e5 generera talat ljud, du kanske sett \u201cdeep fakes\u201d d\u00e4r n\u00e5gon k\u00e4nd person s\u00e4ger n\u00e5got ov\u00e4ntat?<\/p>\n<p>Ett GAN kan ocks\u00e5 r\u00e4kna ut hur en m\u00e4nniska kan t\u00e4nkas se ut efter att ha \u00e5ldrats. Den l\u00e4r sig m\u00f6nstret f\u00f6r \u00e5ldrande och kan sedan applicera det p\u00e5 en enskild person. Det finns f\u00f6rst\u00e5s m\u00e5nga fler m\u00f6jligheter.<\/p>\n<h2>Hur funkar ett GAN och hur tr\u00e4nas det upp?<\/h2>\n<p>Hur g\u00e5r tr\u00e4ningen till? Nedan steg \u00e4r mer av en metaforisk utveckling, det \u00e4r inte olika moment utan utvecklingssteg i maskinens l\u00e4rande f\u00f6r att beskriva de steg man kan observera.<\/p>\n<h3>Steg 1: B\u00f6rja duellera<\/h3>\n<figure id=\"attachment_1631\" aria-describedby=\"caption-attachment-1631\" style=\"width: 525px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/GAN-systemskiss.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-1631\" src=\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/GAN-systemskiss-1024x517.png\" alt=\"Systemskiss \u00f6ver ett GAN (Generative Adversarial Network) \" width=\"525\" height=\"265\" srcset=\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/GAN-systemskiss-1024x517.png 1024w, https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/GAN-systemskiss-300x151.png 300w, https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/GAN-systemskiss-768x387.png 768w, https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/GAN-systemskiss.png 2000w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><figcaption id=\"caption-attachment-1631\" class=\"wp-caption-text\">Systemskiss \u00f6ver ett GAN (Generative Adversarial Network)<\/figcaption><\/figure>\n<p>Det finns som sagt tv\u00e5 neurala n\u00e4tverk i ett GAN. Det ena kallas f\u00f6r en <b>Generator<\/b>, nedan f\u00f6rkortat <b>G<\/b>, och s\u00e5 finns <b>Discriminator<\/b>, nedan f\u00f6rkortat <b>D<\/b>.<\/p>\n<p>Generatorns (G) jobb \u00e4r att hitta p\u00e5 grejer och f\u00f6resl\u00e5 till Discriminatorn (D). Ds jobb \u00e4r att f\u00f6rs\u00f6ka skilja mellan fakta och fiktion. Det b\u00f6rjar med att ingen av dem kan n\u00e5got om n\u00e5gonting alls.<\/p>\n<p>G har slumpm\u00e4ssigt brus som ing\u00e5ngsv\u00e4rde f\u00f6r att skapa sina bilder att skicka till D. D matas samtidigt med korrekt information och ska f\u00f6rs\u00f6ka bed\u00f6ma vad som \u00e4r vad. Exempelvis kan D f\u00e5 bilder med svartvitt brus fr\u00e5n G samtidigt med n\u00e5gra bilder som f\u00f6rest\u00e4ller hundar.<\/p>\n<p>N\u00e4r D gissat en f\u00f6rsta g\u00e5ng f\u00e5r den facit. S\u00e4g att G p\u00e5stod sig skickat bilder p\u00e5 hundar och att det fanns bilder p\u00e5 faktiska hundar i datam\u00e4ngden D fick s\u00e5 f\u00e5r den reda p\u00e5 vilka bilder som var nonsens och vilka som inneh\u00f6ll hundar. D l\u00e4r sig p\u00e5 s\u00e5 s\u00e4tt \u201cp\u00e5 egen hand\u201d genom att f\u00e5 tillg\u00e5ng till exempeldata lite om vad den tycker \u00e4r karakteriserande f\u00f6r hundbilder.<\/p>\n<h4>Backpropagation ger \u00e5terkoppling till det neurala n\u00e4tverket<\/h4>\n<p>Den h\u00e4r \u00e5terkopplingen i l\u00e4randet har du kanske h\u00f6rt talas om redan, det kallas f\u00f6r backpropagation och uppt\u00e4cktes tidigt 1960-tal (och har \u00e5teruppt\u00e4ckts m\u00e5nga g\u00e5nger sedan dess).<\/p>\n<p>Backpropagation g\u00e5r ut p\u00e5 att r\u00e4tta Ds uppfattning av vad som ser ut som en hund. Som du nog listat ut g\u00e5r backpropagation bara att anv\u00e4nda om man har tillg\u00e5ng till r\u00e4tt svar.<\/p>\n<p>Ett delmoment under steg ett \u00e4r n\u00e4r D f\u00e5r veta vilka bilder som inneh\u00f6ll hundar och vilka som inte gjorde det . D\u00e5 uppdateras Ds n\u00e4tverk av neuroner med den vetskapen. Sedan g\u00f6r G ett f\u00f6rs\u00f6k till med samma bilder vilket leder till att D f\u00e5r bef\u00e4sta sin kunskap och ge G \u00e4nnu s\u00e4mre betyg \u00e4n innan p\u00e5 de genererade bilderna. Men n\u00e5gon av bilderna kanske \u00e4r mindre d\u00e5lig vilket \u00e4r ett tips f\u00f6r G hur den ska forts\u00e4tta.<\/p>\n<h3>Steg 2: Generatorn skapar bilder som b\u00f6rjar f\u00f6rest\u00e4lla n\u00e5got som kan k\u00e4nnas igen<\/h3>\n<p>N\u00e5gra tusen omg\u00e5ngar senare b\u00f6rjar G bli bra p\u00e5 att skapa fejkade bilder.<\/p>\n<p>D f\u00e5r st\u00e4ndigt nya bilder p\u00e5 hundar att titta p\u00e5 och l\u00e4r sig p\u00e5 s\u00e5 s\u00e4tt om vilken variation det finns i hur en hund kan se ut. Detta motverkar risken f\u00f6r overfitting &#8211; att kunskapsmodellen \u00e4r allt f\u00f6r specialiserad p\u00e5 n\u00e5gra f\u00e5 bilder.<\/p>\n<p>Vad D l\u00e4r sig ber\u00e4ttar den ocks\u00e5 f\u00f6r G som d\u00e4rmed ocks\u00e5 blir b\u00e4ttre \u00f6ver tid p\u00e5 att generera f\u00f6rslag. D rent utav ber\u00e4ttar vad G gjorde f\u00f6r fel, kanske att den f\u00f6rv\u00e4ntar sig n\u00e5got som liknar \u00f6gon p\u00e5 vardera sida om nosen.<\/p>\n<h3>Steg 3: Oavgjort?<\/h3>\n<p>Efter ett tag b\u00f6rjar G skapa bilder d\u00e4r hundarna har \u00f6gon, \u00f6ron och bilden k\u00e4nns mer tredimensionell. Nu b\u00f6rjar D ha sv\u00e5rt att skilja p\u00e5 vad som \u00e4r en fejkad hundbild och vad som \u00e4r p\u00e5 riktigt.<\/p>\n<p>Ja just det, det neurala n\u00e4tverket i fallet med ett GAN \u00e4r ett Deconvolutional Neural Network (DNN), allts\u00e5 inte <i>Convolutional<\/i> Neural Network (CNN) som du kanske h\u00f6rt talas om tidigare. Skillnaden dem emellan \u00e4r att ett DNN v\u00e4nder p\u00e5 processen och b\u00f6rjar med data att utv\u00e4rdera innan den kommer fram till facit (vad som skulle varit en <i>feature map<\/i> i ett CNN). I ett CNN beskriver du egenskaperna som \u00e4r intressanta medan ett DNN forcerar sig fram till att uppt\u00e4cka dem mer eller mindre sj\u00e4lv.<\/p>\n<h2>Tankar kring att drifta insikterna fr\u00e5n ett GAN<\/h2>\n<p>En t\u00e4nkbar utmaning kan vara hur en s\u00e5n h\u00e4r l\u00e4rdom f\u00f6rvaltas \u00f6ver tid. Det \u00e4r n\u00e4mligen sv\u00e5rt att inte bli tvungen att b\u00f6rja om fr\u00e5n b\u00f6rjan med G och D, de beh\u00f6ver l\u00e4ra sig tillsammans. S\u00e5 om man ska l\u00e4gga till n\u00e5got nytt i sitt GAN finns risken att D har ett f\u00f6r stort f\u00f6rspr\u00e5ng mot G och inte ger den en chans att komma med tillr\u00e4ckligt sv\u00e5ra genererade bilder.<\/p>\n<p>Kanske borde man fokusera p\u00e5 att ha extremt specialiserat GAN. Som i avsnittet i Silicon Valley S04E04 n\u00e4r Jian Yang byggt en app som kan skilja p\u00e5 varmkorv och <i>inte<\/i> varmkorv \ud83d\ude42<\/p>\n<p><iframe loading=\"lazy\" title=\"Silicon Valley: Not Hotdog (Season 4 Episode 4 Clip) | HBO\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/ACmydtFDTGs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Skulle en s\u00e5dan kunna l\u00e4ra sig nya f\u00f6rm\u00e5gor i efterhand? N\u00e5got helt annorlunda, som pizza, eller baljv\u00e4xter?<\/p>\n<h2>L\u00e4s mer om GAN (Generative Adversarial Network)<\/h2>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Generative_adversarial_network\">Generative adversarial network &#8211; Wikipedia<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Unsupervised_machine_learning\">Unsupervised learning &#8211; Wikipedia<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Backpropagation\">Backpropagation &#8211; Wikipedia<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Stochastic_gradient_descent\">Stochastic gradient descent &#8211; Wikipedia<\/a><\/li>\n<li><a href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.849.3679&amp;rep=rep1&amp;type=pdf\">PDF: Adaptive deconvolutional networks for mid and high level feature learning<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/pdf\/1511.06434v2.pdf\">PDF: Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=9cgFPttB_RQ\">ARTIST Vs. PIX2PIX &#8211; Is this HUMOR or HORROR?! &#8211; YouTube<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>GAN (Generative Adversarial Network) \u00e4r en teknik f\u00f6r att f\u00e5 en maskin att instruera sig sj\u00e4lv. Att vi utvecklare inte uttryckligen ber\u00e4ttar f\u00f6r den hur den l\u00e4r sig och vad som utm\u00e4rker kunskapen. Eftersom maskinen sj\u00e4lv har en lite st\u00f6rre del av ansvaret att l\u00e4ra sig klassificeras GAN som unsupervised machine learning, till skillnad fr\u00e5n &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\" class=\"more-link\">Forts\u00e4tt l\u00e4sa<span class=\"screen-reader-text\"> \u201dGAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv\u201d<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":1632,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[47,829,832,831,798,827,828,761,830,833,834,617,667],"class_list":["post-1630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projekt","tag-artificiell-intelligens-ai","tag-backpropagation","tag-convolutional-neural-network-cnn","tag-deconvolutional-neural-network-dnn","tag-deep-learning-dl","tag-generative-adversarial-network-gan","tag-ian-goodfellow","tag-machine-learning-ml","tag-overfitting","tag-silicon-valley","tag-stochastic-gradient-descent","tag-supervised-learning","tag-unsupervised-learning"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv &#8212; Utveckling i VGR<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv &#8212; Utveckling i VGR\" \/>\n<meta property=\"og:description\" content=\"GAN (Generative Adversarial Network) \u00e4r en teknik f\u00f6r att f\u00e5 en maskin att instruera sig sj\u00e4lv. Att vi utvecklare inte uttryckligen ber\u00e4ttar f\u00f6r den hur den l\u00e4r sig och vad som utm\u00e4rker kunskapen. Eftersom maskinen sj\u00e4lv har en lite st\u00f6rre del av ansvaret att l\u00e4ra sig klassificeras GAN som unsupervised machine learning, till skillnad fr\u00e5n &hellip; Forts\u00e4tt l\u00e4sa \u201dGAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv\u201d\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\" \/>\n<meta property=\"og:site_name\" content=\"Utveckling i VGR\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-01T21:17:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1100\" \/>\n\t<meta property=\"og:image:height\" content=\"607\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marcus \u00d6sterberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marcusosterberg\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcus \u00d6sterberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\"},\"author\":{\"name\":\"Marcus \u00d6sterberg\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/person\/89521ab4d20982613661305cbdd5bc79\"},\"headline\":\"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv\",\"datePublished\":\"2018-05-01T21:17:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\"},\"wordCount\":1240,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#organization\"},\"image\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg\",\"keywords\":[\"Artificiell Intelligens (AI)\",\"Backpropagation\",\"Convolutional Neural Network (CNN)\",\"Deconvolutional Neural Network (DNN)\",\"Deep Learning (DL)\",\"Generative Adversarial Network (GAN)\",\"Ian Goodfellow\",\"Machine Learning (ML)\",\"Overfitting\",\"Silicon Valley\",\"Stochastic Gradient Descent\",\"Supervised learning\",\"Unsupervised learning\"],\"articleSection\":[\"Projekt\"],\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\",\"url\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\",\"name\":\"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv &#8212; Utveckling i VGR\",\"isPartOf\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg\",\"datePublished\":\"2018-05-01T21:17:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage\",\"url\":\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg\",\"contentUrl\":\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg\",\"width\":1100,\"height\":607,\"caption\":\"Tre timmars tr\u00e4ning av ett GAN Generative Adversarial Network)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hem\",\"item\":\"https:\/\/vgrblogg.se\/utveckling\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#website\",\"url\":\"https:\/\/vgrblogg.se\/utveckling\/\",\"name\":\"Utveckling i VGR\",\"description\":\"Inblick i utvecklingsarbetet inom VGR\",\"publisher\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vgrblogg.se\/utveckling\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#organization\",\"name\":\"Utveckling i VGR\",\"url\":\"https:\/\/vgrblogg.se\/utveckling\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/02\/cropped-logotype_color-1.png\",\"contentUrl\":\"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/02\/cropped-logotype_color-1.png\",\"width\":1234,\"height\":250,\"caption\":\"Utveckling i VGR\"},\"image\":{\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/person\/89521ab4d20982613661305cbdd5bc79\",\"name\":\"Marcus \u00d6sterberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3e009001c1a7e5183f24b2642fdbf63d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3e009001c1a7e5183f24b2642fdbf63d?s=96&d=mm&r=g\",\"caption\":\"Marcus \u00d6sterberg\"},\"description\":\"Jobbade som utvecklings- och innovationsledare p\u00e5 V\u00e4stra G\u00f6talandsregionen, bl.a. p\u00e5 avdelningen V\u00e5rdens digitalisering, med expertis inom webbanalys och webbutveckling. Slutade 2022. F\u00f6rfattare till boken Webbstrategi f\u00f6r alla, samt Webbanalys - f\u00f6rst\u00e5 och f\u00f6rb\u00e4ttra anv\u00e4ndarnas upplevelse. Mer om Marcus \u00d6sterberg finns h\u00e4r.\",\"sameAs\":[\"https:\/\/marcusosterberg.se\",\"https:\/\/se.linkedin.com\/in\/marcusosterberg\",\"https:\/\/x.com\/marcusosterberg\"],\"url\":\"https:\/\/vgrblogg.se\/utveckling\/author\/mosterberg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv &#8212; Utveckling i VGR","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/","og_locale":"sv_SE","og_type":"article","og_title":"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv &#8212; Utveckling i VGR","og_description":"GAN (Generative Adversarial Network) \u00e4r en teknik f\u00f6r att f\u00e5 en maskin att instruera sig sj\u00e4lv. Att vi utvecklare inte uttryckligen ber\u00e4ttar f\u00f6r den hur den l\u00e4r sig och vad som utm\u00e4rker kunskapen. Eftersom maskinen sj\u00e4lv har en lite st\u00f6rre del av ansvaret att l\u00e4ra sig klassificeras GAN som unsupervised machine learning, till skillnad fr\u00e5n &hellip; Forts\u00e4tt l\u00e4sa \u201dGAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv\u201d","og_url":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/","og_site_name":"Utveckling i VGR","article_published_time":"2018-05-01T21:17:51+00:00","og_image":[{"width":1100,"height":607,"url":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg","type":"image\/jpeg"}],"author":"Marcus \u00d6sterberg","twitter_card":"summary_large_image","twitter_creator":"@marcusosterberg","twitter_misc":{"Skriven av":"Marcus \u00d6sterberg","Ber\u00e4knad l\u00e4stid":"6 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#article","isPartOf":{"@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/"},"author":{"name":"Marcus \u00d6sterberg","@id":"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/person\/89521ab4d20982613661305cbdd5bc79"},"headline":"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv","datePublished":"2018-05-01T21:17:51+00:00","mainEntityOfPage":{"@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/"},"wordCount":1240,"commentCount":0,"publisher":{"@id":"https:\/\/vgrblogg.se\/utveckling\/#organization"},"image":{"@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage"},"thumbnailUrl":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg","keywords":["Artificiell Intelligens (AI)","Backpropagation","Convolutional Neural Network (CNN)","Deconvolutional Neural Network (DNN)","Deep Learning (DL)","Generative Adversarial Network (GAN)","Ian Goodfellow","Machine Learning (ML)","Overfitting","Silicon Valley","Stochastic Gradient Descent","Supervised learning","Unsupervised learning"],"articleSection":["Projekt"],"inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/","url":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/","name":"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv &#8212; Utveckling i VGR","isPartOf":{"@id":"https:\/\/vgrblogg.se\/utveckling\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage"},"image":{"@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage"},"thumbnailUrl":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg","datePublished":"2018-05-01T21:17:51+00:00","breadcrumb":{"@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#primaryimage","url":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg","contentUrl":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/05\/generative-adversarial-network-after-three-hours.jpg","width":1100,"height":607,"caption":"Tre timmars tr\u00e4ning av ett GAN Generative Adversarial Network)"},{"@type":"BreadcrumbList","@id":"https:\/\/vgrblogg.se\/utveckling\/2018\/05\/01\/gan-tranar-en-maskins-forstaelse-genom-att-duellera-sig-sjalv\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Hem","item":"https:\/\/vgrblogg.se\/utveckling\/"},{"@type":"ListItem","position":2,"name":"GAN tr\u00e4nar en maskins f\u00f6rst\u00e5else genom att duellera sig sj\u00e4lv"}]},{"@type":"WebSite","@id":"https:\/\/vgrblogg.se\/utveckling\/#website","url":"https:\/\/vgrblogg.se\/utveckling\/","name":"Utveckling i VGR","description":"Inblick i utvecklingsarbetet inom VGR","publisher":{"@id":"https:\/\/vgrblogg.se\/utveckling\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vgrblogg.se\/utveckling\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/vgrblogg.se\/utveckling\/#organization","name":"Utveckling i VGR","url":"https:\/\/vgrblogg.se\/utveckling\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/logo\/image\/","url":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/02\/cropped-logotype_color-1.png","contentUrl":"https:\/\/vgrblogg.se\/utveckling\/wp-content\/uploads\/sites\/3\/2018\/02\/cropped-logotype_color-1.png","width":1234,"height":250,"caption":"Utveckling i VGR"},"image":{"@id":"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/person\/89521ab4d20982613661305cbdd5bc79","name":"Marcus \u00d6sterberg","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/vgrblogg.se\/utveckling\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3e009001c1a7e5183f24b2642fdbf63d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3e009001c1a7e5183f24b2642fdbf63d?s=96&d=mm&r=g","caption":"Marcus \u00d6sterberg"},"description":"Jobbade som utvecklings- och innovationsledare p\u00e5 V\u00e4stra G\u00f6talandsregionen, bl.a. p\u00e5 avdelningen V\u00e5rdens digitalisering, med expertis inom webbanalys och webbutveckling. Slutade 2022. F\u00f6rfattare till boken Webbstrategi f\u00f6r alla, samt Webbanalys - f\u00f6rst\u00e5 och f\u00f6rb\u00e4ttra anv\u00e4ndarnas upplevelse. Mer om Marcus \u00d6sterberg finns h\u00e4r.","sameAs":["https:\/\/marcusosterberg.se","https:\/\/se.linkedin.com\/in\/marcusosterberg","https:\/\/x.com\/marcusosterberg"],"url":"https:\/\/vgrblogg.se\/utveckling\/author\/mosterberg\/"}]}},"_links":{"self":[{"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/posts\/1630"}],"collection":[{"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/comments?post=1630"}],"version-history":[{"count":3,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/posts\/1630\/revisions"}],"predecessor-version":[{"id":1636,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/posts\/1630\/revisions\/1636"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/media\/1632"}],"wp:attachment":[{"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/media?parent=1630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/categories?post=1630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vgrblogg.se\/utveckling\/wp-json\/wp\/v2\/tags?post=1630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}