{"id":20235,"date":"2016-07-28T21:03:24","date_gmt":"2016-07-29T05:03:24","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=20235"},"modified":"2019-06-20T04:09:01","modified_gmt":"2019-06-20T01:09:01","slug":"learning-game-control-strategies-with-deep-q-networks-and-tensorflow","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/","title":{"rendered":"Learning Game Control Strategies with Deep Q-Networks and TensorFlow"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-in-san-francisco-march-2016-1.jpeg\" alt=\"tensorflow-meetup-in-san-francisco-march-2016\" width=\"160\" style=\"margin: 0px 0px 20px 20px;\" class=\"alignright size-full wp-image-20238\" \/><\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/what-is-behind-deep-reinforcement-learning-and-transfer-learning-with-tensorflow\/\">Reinforcement learning<\/a> is an area of machine learning that enables an agent to learn how to interact with its environment\u2014based on positive and negative feedback from the interactions. A recent <a href=\"https:\/\/www.meetup.com\/TensorFlow-San-Francisco\/events\/232610900\/\" target=\"_blank\" rel=\"noopener noreferrer\">TensorFlow San Francisco<\/a> meetup was dedicated to deep Q-learning as a reinforcement learning technique and to the implementation of this model using TensorFlow.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#Q-learning_for_video_game_environments\" >Q-learning for video game environments<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#Want_details_Watch_the_video\" >Want details? Watch the video!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#Related_slides\" >Related slides<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Q-learning_for_video_game_environments\"><\/span>Q-learning for video game environments<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In his presentation, <a href=\"https:\/\/www.linkedin.com\/in\/akshay-srivatsan-20414190\" target=\"_blank\" rel=\"noopener noreferrer\">Akshay Srivatsan<\/a> focused on reinforcement learning. He also talked about a recently developed <a href=\"https:\/\/www.nature.com\/articles\/nature14236\" target=\"_blank\" rel=\"noopener noreferrer\">deep learning model<\/a> to find out optimal control patterns from visual input\u2014using <a href=\"https:\/\/www.altoros.com\/blog\/deep-q-networks-and-practical-reinforcement-learning-with-tensorflow\/\">reinforcement learning<\/a> and, precisely, deep Q-learning. According to Akshay, this technique is highly generalizable and is capable of achieving better than human performance in several specific video game environments.<\/p>\n<p>In addition, Akshay showed how the discussed model can be implemented using the TensorFlow library. For the details on employing deep Q-networks to learn video game strategies and on the achieved results, see <a href=\"https:\/\/github.com\/nikitasrivatsan\/DeepLearningVideoGames\" target=\"_blank\" rel=\"noopener noreferrer\">this GitHub link<\/a>.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-san-francisco-q-learning.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-san-francisco-q-learning.png\" alt=\"tensorflow-meetup-san-francisco-q-learning\" width=\"640\" class=\"aligncenter size-full wp-image-20239\" \/><\/a><\/p>\n<p>Among other topics on the meeting agenda were also the latest advancements in reinforcement learning, such as Google&#8217;s <a href=\"https:\/\/deepmind.com\/alpha-go\" target=\"_blank\" rel=\"noopener noreferrer\">AlphaGo<\/a>, which beat Lee Sedol\u2014the 18-time Go world champion\u2014in March, 2016.<\/p>\n<p>Akshay\u2019s presentation slides are <a href=\"https:\/\/onedrive.live.com\/view.aspx?resid=618B8151F85E2597!170968&#038;ithint=file%2cpptx&#038;app=PowerPoint&#038;authkey=!ANvaAGcztR2yvOE\" target=\"_blank\" rel=\"noopener noreferrer\">also available<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Want_details_Watch_the_video\"><\/span>Want details? Watch the video!<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><center><script charset=\"ISO-8859-1\" src=\"\/\/fast.wistia.com\/assets\/external\/E-v1.js\" async><\/script><\/p>\n<div class=\"wistia_embed wistia_async_1y2083njix\" style=\"height:360px;width:640px\">&nbsp;<\/div>\n<p><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/what-is-behind-deep-reinforcement-learning-and-transfer-learning-with-tensorflow\/\">What Is Behind Deep Reinforcement Learning and Transfer Learning with TensorFlow?<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/mastering-game-development-with-deep-reinforcement-learning-and-gpus\/\">Mastering Game Development with Deep Reinforcement Learning and GPUs<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/deep-q-networks-and-practical-reinforcement-learning-with-tensorflow\/\">Deep Q-Networks and Practical Reinforcement Learning with TensorFlow<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/tensorflow-in-action-tensorboard-training-a-model-and-deep-q-learning\/\">TensorFlow in Action: TensorBoard, Training a Model, and Deep Q-learning<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_slides\"><\/span>Related slides<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><center><script async class=\"speakerdeck-embed\" data-id=\"1144a30e01a34744a2ce2cc4ec3c03df\" data-ratio=\"1.77777777777778\" src=\"\/\/speakerdeck.com\/assets\/embed.js\"><\/script><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_expert\"><\/span>About the expert<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div>\n<div style=\"float: right;\"><a href=\"https:\/\/www.linkedin.com\/in\/akshay-srivatsan-20414190\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/akshay-srivatsan.png\" alt=\"akshay-srivatsan\" width=\"150\" height=\"150\" class=\"aligncenter size-full wp-image-20237\" \/><\/a><\/div>\n<div style=\"width: 600px;\"><small><a href=\"https:\/\/www.linkedin.com\/in\/akshay-srivatsan-20414190\/\" target=\"_blank\" rel=\"noopener noreferrer\">Akshay Srivatsan<\/a> has a strong interest in machine learning, especially in natural language processing. He has worked with graphical model approaches such as LDA and also deep learning techniques, including word vector embeddings. Recently, Akshay has become interested in TensorFlow as an effective toolkit for deep learning. Using the library, he has implemented projects on deep Q-learning and canonical correlation analysis.<\/small><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<hr\/>\n<p><center><small>The post was written by Victoria Fedzkovich with assisstance from <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<\/p>\n<p>Reinforcement learning is an area of machine learning that enables an agent to learn how to interact with its environment\u2014based on positive and negative feedback from the interactions. A recent TensorFlow San Francisco meetup was dedicated to deep Q-learning as a reinforcement learning technique and to the implementation of this [&#8230;]<\/p>\n","protected":false},"author":24,"featured_media":20240,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[748,749],"class_list":["post-20235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-machine-learning","tag-tensorflow"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Learning Game Control Strategies with Deep Q-Networks and TensorFlow | Altoros<\/title>\n<meta name=\"description\" content=\"After sufficient training, a model achieved better-than-human performance on the Pong games, demonstrating the potential of deep learning for high-level control.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learning Game Control Strategies with Deep Q-Networks and TensorFlow | Altoros\" \/>\n<meta property=\"og:description\" content=\"Reinforcement learning is an area of machine learning that enables an agent to learn how to interact with its environment\u2014based on positive and negative feedback from the interactions. A recent TensorFlow San Francisco meetup was dedicated to deep Q-learning as a reinforcement learning technique and to the implementation of this [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-29T05:03:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-20T01:09:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks-1024x768.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Victoria Fedzkovich\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Victoria Fedzkovich\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/\",\"name\":\"Learning Game Control Strategies with Deep Q-Networks and TensorFlow | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks.png\",\"datePublished\":\"2016-07-29T05:03:24+00:00\",\"dateModified\":\"2019-06-20T01:09:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/c7b416b09612e334a4e0184568906c36\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks.png\",\"width\":3264,\"height\":2448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning Game Control Strategies with Deep Q-Networks and TensorFlow\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/c7b416b09612e334a4e0184568906c36\",\"name\":\"Victoria Fedzkovich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/author-v-f-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/author-v-f-150x150.jpg\",\"caption\":\"Victoria Fedzkovich\"},\"description\":\"Victoria Fedzkovich strives for effective technical communication at Altoros. As a professional with 7+ years of experience in technical and scientific writing, she creates content for user guides, manuals, white papers, and technical overviews. Victoria is currently focused on the Cloud Foundry ecosystem and IoT solutions.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/viktoryia-fedzkovich\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learning Game Control Strategies with Deep Q-Networks and TensorFlow | Altoros","description":"After sufficient training, a model achieved better-than-human performance on the Pong games, demonstrating the potential of deep learning for high-level control.","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:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/","og_locale":"en_US","og_type":"article","og_title":"Learning Game Control Strategies with Deep Q-Networks and TensorFlow | Altoros","og_description":"Reinforcement learning is an area of machine learning that enables an agent to learn how to interact with its environment\u2014based on positive and negative feedback from the interactions. A recent TensorFlow San Francisco meetup was dedicated to deep Q-learning as a reinforcement learning technique and to the implementation of this [...]","og_url":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/","og_site_name":"Altoros","article_published_time":"2016-07-29T05:03:24+00:00","article_modified_time":"2019-06-20T01:09:01+00:00","og_image":[{"width":1024,"height":768,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks-1024x768.png","type":"image\/png"}],"author":"Victoria Fedzkovich","twitter_misc":{"Written by":"Victoria Fedzkovich","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/","url":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/","name":"Learning Game Control Strategies with Deep Q-Networks and TensorFlow | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks.png","datePublished":"2016-07-29T05:03:24+00:00","dateModified":"2019-06-20T01:09:01+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/c7b416b09612e334a4e0184568906c36"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-meetup-sf-deep-q-networks.png","width":3264,"height":2448},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/learning-game-control-strategies-with-deep-q-networks-and-tensorflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Learning Game Control Strategies with Deep Q-Networks and TensorFlow"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/c7b416b09612e334a4e0184568906c36","name":"Victoria Fedzkovich","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/author-v-f-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/author-v-f-150x150.jpg","caption":"Victoria Fedzkovich"},"description":"Victoria Fedzkovich strives for effective technical communication at Altoros. As a professional with 7+ years of experience in technical and scientific writing, she creates content for user guides, manuals, white papers, and technical overviews. Victoria is currently focused on the Cloud Foundry ecosystem and IoT solutions.","url":"https:\/\/www.altoros.com\/blog\/author\/viktoryia-fedzkovich\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/20235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=20235"}],"version-history":[{"count":11,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/20235\/revisions"}],"predecessor-version":[{"id":44473,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/20235\/revisions\/44473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/20240"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=20235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=20235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=20235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}