<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-21224994</id><updated>2017-07-21T12:45:12.106-07:00</updated><category term="Machine Learning" /><category term="Education" /><category term="Google Brain" /><category term="University Relations" /><category term="Deep Learning" /><category term="Publications" /><category term="TensorFlow" /><category term="open source" /><category term="Natural Language Processing" /><category term="Neural Networks" /><category term="conference" /><category term="Computer Vision" /><category term="MOOC" /><category term="Research Awards" /><category term="Natural Language Understanding" /><category term="conferences" /><category term="Computer Science" /><category term="Research" /><category term="datasets" /><category term="Machine Intelligence" /><category term="Awards" /><category term="YouTube" /><category term="Machine Perception" /><category term="Android" /><category term="K-12" /><category term="Speech" /><category term="Structured Data" /><category term="ACM" /><category term="Earth Engine" /><category term="Security and Privacy" /><category term="ph.d. fellowship" /><category term="HCI" /><category term="Machine Translation" /><category term="Voice Search" /><category term="grants" /><category term="Faculty Summit" /><category term="Health" /><category term="Quantum Computing" /><category term="Search" /><category term="Vision Research" /><category term="Visualization" /><category term="CVPR" /><category term="Collaboration" /><category term="Course Builder" /><category term="Google+" /><category term="Image Processing" /><category term="NIPS" /><category term="Translate" /><category term="User Experience" /><category term="WWW" /><category term="statistics" /><category term="Computational Photography" /><category term="Fusion Tables" /><category term="Google Accelerated Science" /><category term="Google Books" /><category term="Google Cloud Platform" /><category term="Moore's Law" /><category term="Ngram" /><category term="market algorithms" /><category term="optimization" /><category term="renewable energy" /><category term="ACL" /><category term="Algorithms" /><category term="App Engine" /><category term="Diversity" /><category term="Gmail" /><category term="Google Genomics" /><category term="Google Play Apps" /><category term="Google Translate" /><category term="Information Retrieval" /><category term="Internet of Things" /><category term="Machine Hearing" /><category term="NLP" /><category term="Networks" /><category term="Robotics" /><category term="Semi-supervised Learning" /><category term="TTS" /><category term="UI" /><category term="accessibility" /><category term="crowd-sourcing" /><category term="data science" /><category term="economics" /><category term="internationalization" /><category term="publication" /><category term="search ads" /><category term="wikipedia" /><category term="API" /><category term="App Inventor" /><category term="Art" /><category term="Automatic Speech Recognition" /><category term="China" /><category term="Cloud Computing" /><category term="Computational Imaging" /><category term="DeepMind" /><category term="EMEA" /><category term="Environment" /><category term="Exacycle" /><category term="Expander" /><category term="Google Drive" /><category term="Google Maps" /><category term="Google Science Fair" /><category term="Graph" /><category term="Graph Mining" /><category term="Hardware" /><category term="ICLR" /><category term="ICML" /><category term="Inbox" /><category term="Labs" /><category term="MapReduce" /><category term="On-device Learning" /><category term="Optical Character Recognition" /><category term="Policy" /><category term="Social Networks" /><category term="Speech Recognition" /><category term="Supervised Learning" /><category term="Systems" /><category term="VLDB" /><category term="Video Analysis" /><category term="ads" /><category term="distributed systems" /><category term="schema.org" /><category term="trends" /><category term="AI" /><category term="Acoustic Modeling" /><category term="Adaptive Data Analysis" /><category term="Africa" /><category term="Android Wear" /><category term="April Fools" /><category term="Audio" /><category term="Australia" /><category term="Cantonese" /><category term="Chemistry" /><category term="Chrome" /><category term="Conservation" /><category term="Data Center" /><category term="Data Discovery" /><category term="DeepDream" /><category term="EMNLP" /><category term="Electronic Commerce and Algorithms" /><category term="Encryption" /><category term="Entity Salience" /><category term="Europe" /><category term="Faculty Institute" /><category term="Flu Trends" /><category term="Gboard" /><category term="Google Docs" /><category term="Google Photos" /><category term="Google Sheets" /><category term="Google Trips" /><category term="Google Voice Search" /><category term="Government" /><category term="High Dynamic Range Imaging" /><category term="ICSE" /><category term="IPython" /><category term="Image Annotation" /><category term="Image Classification" /><category term="Interspeech" /><category term="Journalism" /><category term="KDD" /><category term="Keyboard Input" /><category term="Klingon" /><category term="Korean" /><category term="Linear Optimization" /><category term="Low-Light Photography" /><category term="ML" /><category term="Magenta" /><category term="Market Research" /><category term="Mixed Reality" /><category term="Multimodal Learning" /><category term="NAACL" /><category term="Network Management" /><category term="Nexus" /><category term="PhD Fellowship" /><category term="PhotoScan" /><category term="PiLab" /><category term="Pixel" /><category term="Professional Development" /><category term="Proposals" /><category term="Public Data Explorer" /><category term="SIGCOMM" /><category term="SIGMOD" /><category term="Site Reliability Engineering" /><category term="Software" /><category term="Style Transfer" /><category term="TPU" /><category term="TV" /><category term="UNIX" /><category term="Virtual Reality" /><category term="Visiting Faculty" /><category term="Wiki" /><category term="adsense" /><category term="adwords" /><category term="correlate" /><category term="electronics" /><category term="entities" /><category term="gamification" /><category term="jsm" /><category term="jsm2011" /><category term="localization" /><category term="operating systems" /><category term="osdi" /><category term="osdi10" /><category term="patents" /><category term="resource optimization" /><category term="video" /><title type="text">Google Research Blog</title><subtitle type="html">The latest news on Google Research.</subtitle><link rel="alternate" type="text/html" href="http://research.googleblog.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" /><author><name>Google Blogs</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-SMZmHeOVbFs/AAAAAAAAAAI/AAAAAAAAR7c/esUAZEvmr9M/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>515</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/gJZg" /><feedburner:info uri="blogspot/gjzg" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry><id>tag:blogger.com,1999:blog-21224994.post-4375052421920196613</id><published>2017-07-21T12:00:00.000-07:00</published><updated>2017-07-21T12:45:12.144-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Research" /><category scheme="http://www.blogger.com/atom/ns#" term="Robotics" /><title type="text">Teaching Robots to Understand Semantic Concepts</title><content type="html">&lt;span class="byline-author"&gt;Posted by Sergey Levine, Faculty Advisor and Pierre Sermanet, Research Scientist, Google Brain Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Machine learning can allow robots to acquire complex skills, such as &lt;a href="https://research.googleblog.com/2016/03/deep-learning-for-robots-learning-from.html"&gt;grasping&lt;/a&gt; and &lt;a href="https://research.googleblog.com/2016/10/how-robots-can-acquire-new-skills-from.html"&gt;opening doors&lt;/a&gt;. However, learning these skills requires us to manually program reward functions that the robots then attempt to optimize. In contrast, people can understand the goal of a task just from watching someone else do it, or simply by being told what the goal is. We can do this because we draw on our own prior knowledge about the world: when we see someone cut an apple, we understand that the goal is to produce two slices, regardless of what type of apple it is, or what kind of tool is used to cut it. Similarly, if we are told to pick up the apple, we understand which object we are to grab because we can ground the word “apple” in the environment: we know what it means. &lt;br /&gt;&lt;br /&gt;These are semantic concepts: salient events like producing two slices, and object categories denoted by words such as “apple.” Can we teach robots to understand semantic concepts, to get them to follow simple commands specified through categorical labels or user-provided examples? In this post, we discuss some of our recent work on robotic learning that combines experience that is autonomously gathered by the robot, which is plentiful but lacks human-provided labels, with human-labeled data that allows a robot to understand semantics. We will describe how robots can use their experience to understand the salient events in a human-provided demonstration, mimic human movements despite the differences between human robot bodies, and understand semantic categories, like “toy” and “pen”, to pick up objects based on user commands.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Understanding human demonstrations with deep visual features&lt;/b&gt;&lt;br /&gt;In the first set of experiments, which appear in our paper &lt;a href="https://sermanet.github.io/rewards/"&gt;Unsupervised Perceptual Rewards for Imitation Learning&lt;/a&gt;, our is aim is to enable a robot to understand a task, such as opening a door, from seeing only a small number of unlabeled human demonstrations. By analyzing these demonstrations, the robot must understand what is the semantically salient event that constitutes task success, and then use reinforcement learning to perform it.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-6er10-LmK1o/WXESsGeJskI/AAAAAAAAB6g/5uAUqYfGuMowlCAN15xO5Rv0A9A3aAsAQCLcBGAs/s1600/image7.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="368" data-original-width="1068" height="220" src="https://2.bp.blogspot.com/-6er10-LmK1o/WXESsGeJskI/AAAAAAAAB6g/5uAUqYfGuMowlCAN15xO5Rv0A9A3aAsAQCLcBGAs/s640/image7.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Examples of human demonstrations (left) and the corresponding robotic imitation (right).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Unsupervised learning on very small datasets is one of the most challenging scenarios in machine learning. To make this feasible, we use deep visual features from a large network trained for image recognition on ImageNet. Such features are known to be sensitive to semantic concepts, while maintaining invariance to nuisance variables such as appearance and lighting. We use these features to interpret user-provided demonstrations, and show that it is indeed possible to learn reward functions in an unsupervised fashion from a few demonstrations and without retraining.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-sRs3JKidPUI/WXETDnU0cPI/AAAAAAAAB6k/NxdpV5fUP0oC7QUhWUCAkR6is2Kgz-wwQCLcBGAs/s1600/image2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="263" data-original-width="1352" height="124" src="https://2.bp.blogspot.com/-sRs3JKidPUI/WXETDnU0cPI/AAAAAAAAB6k/NxdpV5fUP0oC7QUhWUCAkR6is2Kgz-wwQCLcBGAs/s640/image2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example of reward functions learned solely from observation for the door opening tasks. Rewards progressively increase from zero to the maximum reward as a task is completed.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;After learning a reward function from observation only, we use it to guide a robot to learn a door opening task, using only the images to evaluate the reward function. With the help of an initial kinesthetic demonstration that succeeds about 10% of the time, the robot learns to improve to 100% accuracy using the learned reward function.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-EqyPKCM79d8/WXETRXyN6iI/AAAAAAAAB6o/KYSnzzi3stUNjIt2nBh3auFK4KHL3i5KACLcBGAs/s1600/image4.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="188" data-original-width="466" height="258" src="https://2.bp.blogspot.com/-EqyPKCM79d8/WXETRXyN6iI/AAAAAAAAB6o/KYSnzzi3stUNjIt2nBh3auFK4KHL3i5KACLcBGAs/s640/image4.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Learning progression.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Emulating human movements with self-supervision and imitation.&lt;/b&gt;&lt;br /&gt;In &lt;a href="https://sermanet.github.io/tcn/"&gt;Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation&lt;/a&gt;, we propose a novel approach to learn about the world from observation and demonstrate it through self-supervised pose imitation. Our approach relies primarily on co-occurrence in time and space for supervision: by training to distinguish frames from different times of a video, it learns to disentangle and organize reality into useful abstract representations. &lt;br /&gt;&lt;br /&gt;In a pose imitation task for example, different dimensions of the representation may encode for different joints of a human or robotic body. Rather than defining by hand a mapping between human and robot joints (which is ambiguous in the first place because of physiological differences), we let the robot learn to imitate in an end-to-end fashion. When our model is simultaneously trained on human and robot observations, it naturally discovers the correspondence between the two, even though no correspondence is provided. We thus obtain a robot that can imitate human poses without having ever been given a correspondence between humans and robots.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-kK7NzpI-EoE/WXETsxOpvSI/AAAAAAAAB6s/krNHtWcEpuYFtO6z01tgVivTftcAzzKBgCLcBGAs/s1600/image1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="360" data-original-width="640" height="360" src="https://4.bp.blogspot.com/-kK7NzpI-EoE/WXETsxOpvSI/AAAAAAAAB6s/krNHtWcEpuYFtO6z01tgVivTftcAzzKBgCLcBGAs/s640/image1.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Self-supervised human pose imitation by a robot.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;A striking evidence of the benefits of learning end-to-end is the &lt;i&gt;many-to-one&lt;/i&gt; and &lt;i&gt;highly non-linear&lt;/i&gt; joints mapping shown above. In this example, the up-down motion involves many joints for the human while only one joint is needed for the robot. We show that the robot has discovered this highly complex mapping on its own, without any explicit human pose information.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grasping with semantic object categories&lt;/b&gt;&lt;br /&gt;The experiments above illustrate how a person can specify a goal for a robot through an example demonstration, in which case the robots must interpret the semantics of the task -- salient events and relevant features of the pose. What if instead of showing the task, the human simply wants to tell it to what to do? This also requires the robot to understand semantics, in order to identify which objects in the world correspond to the semantic category specified by the user. In &lt;a href="https://arxiv.org/abs/1707.01932"&gt;End-to-End Learning of Semantic Grasping&lt;/a&gt;, we study how a combination of manually labeled and autonomously collected data can be used to perform the task of &lt;i&gt;semantic grasping&lt;/i&gt;, where the robot must pick up an object from a cluttered bin that matches a user-specified class label, such as “eraser” or “toy.” &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-8S7h0wZ0bBA/WXET_kZz7-I/AAAAAAAAB6w/rzhOoTYy29smrA_OzBczJlApoHFEKqhNgCLcBGAs/s1600/image5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1600" data-original-width="1056" height="640" src="https://3.bp.blogspot.com/-8S7h0wZ0bBA/WXET_kZz7-I/AAAAAAAAB6w/rzhOoTYy29smrA_OzBczJlApoHFEKqhNgCLcBGAs/s640/image5.png" width="422" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;In our semantic grasping setup, the robotic arm is tasked with picking up an object corresponding to a user-provided semantic category (e.g. Legos).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;To learn how to perform semantic grasping, our robots first gather a large dataset of grasping data by autonomously attempting to pick up a large variety of objects, as detailed in our &lt;a href="https://research.googleblog.com/2016/03/deep-learning-for-robots-learning-from.html"&gt;previous post&lt;/a&gt; and &lt;a href="https://arxiv.org/abs/1707.01932"&gt;prior work&lt;/a&gt;. This data by itself can allow a robot to pick up objects, but doesn’t allow it to understand how to associate them with semantic labels. To enable an understanding of semantics, we again enlist a modest amount of human supervision. Each time a robot successfully grasps an object, it presents it to the camera in a canonical pose, as illustrated below.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-J4ndMv_eVII/WXEUpPZO-iI/AAAAAAAAB64/DAm7hyNjEdE7CdrE8-lW0Hmypl0Vhs0JwCLcBGAs/s1600/f6.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="575" data-original-width="1145" height="320" src="https://1.bp.blogspot.com/-J4ndMv_eVII/WXEUpPZO-iI/AAAAAAAAB64/DAm7hyNjEdE7CdrE8-lW0Hmypl0Vhs0JwCLcBGAs/s640/f6.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The robot presents objects to the camera after grasping. These images can be used to label which object category was picked up.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;A subset of these images is then labeled by human labelers. Since the presentation images show the object in a canonical pose, it is easy to then propagate these labels to the remaining presentation images by training a classifier on the labeled examples. The labeled presentation images then tell the robot which object was actually picked up, and it can associate this label, in hindsight, with the images that it observed while picking up that object from the bin.&lt;br /&gt;&lt;br /&gt;Using this labeled dataset, we can then train a two-stream model that predicts which object will be grasped, conditioned on the current image and the actions that the robot might take. The two-stream model that we employ is inspired by the &lt;a href="https://en.wikipedia.org/wiki/Two-streams_hypothesis"&gt;dorsal-ventral decomposition observed in the human visual cortex&lt;/a&gt;, where the ventral stream reasons about the semantic class of objects, while the dorsal stream reasons about the geometry of the grasp. Crucially, the ventral stream can incorporate auxiliary data consisting of labeled images of objects (not necessarily from the robot), while the dorsal stream can incorporate auxiliary data of grasping that does not have semantic labels, allowing the entire system to be trained more effectively using larger amounts of heterogeneously labeled data. In this way, we can combine a limited amount of human labels with a large amount of autonomously collected robotic data to grasp objects based on desired semantic category, as illustrated in the video below:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/WR5WUKXUQ8U/0.jpg" frameborder="0" height="360" src="https://www.youtube.com/embed/WR5WUKXUQ8U?rel=0&amp;amp;feature=player_embedded" width="640"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;b&gt;Future Work&lt;/b&gt;&lt;br /&gt;Our experiments show how limited semantically labeled data can be combined with data that is collected and labeled automatically by the robots, in order to enable robots to understand events, object categories, and user demonstrations. In the future, we might imagine that robotic systems could be trained with a combination of user-annotated data and ever-increasing autonomously collected datasets, improving robotic capability and easing the engineering burden of designing autonomous robots. Furthermore, as robotic systems collect more and more automatically annotated data in the real world, this data can be used to improve not just robotic systems, but also systems for computer vision, speech recognition, and natural language processing that can all benefit from such large auxiliary data sources.&lt;br /&gt;&lt;br /&gt;Of course, we are not the first to consider the intersection of robotics and semantics. Extensive prior work in &lt;a href="https://homes.cs.washington.edu/~lsz/papers/mhzf-iser12.pdf"&gt;natural language understanding&lt;/a&gt;, &lt;a href="http://www.roboticsproceedings.org/rss09/p39.pdf"&gt;robotic perception&lt;/a&gt;, &lt;a href="https://arxiv.org/pdf/1706.09911.pdf"&gt;grasping&lt;/a&gt;, and &lt;a href="https://arxiv.org/pdf/1601.00741.pdf"&gt;imitation learning&lt;/a&gt; has considered how semantics and action can be combined in a robotic system. However, the experiments we discussed above might point the way to future work into combining self-supervised and human-labeled data in the context of autonomous robotic systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;&lt;i&gt;The research described in this post was performed by Pierre Sermanet, Kelvin Xu, Corey Lynch, Jasmine Hsu, Eric Jang, Sudheendra Vijayanarasimhan, Peter Pastor, Julian Ibarz, and Sergey Levine. We also thank Mrinal Kalakrishnan, Ali Yahya, and Yevgen Chebotar for developing the policy learning framework used for the door task, and John-Michael Burke for conducting experiments for semantic grasping.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="https://arxiv.org/abs/1612.06699"&gt;Unsupervised Perceptual Rewards for Imitation Learning&lt;/a&gt; was presented at &lt;a href="http://www.roboticsconference.org/"&gt;RSS 2017&lt;/a&gt; by Kelvin Xu, and &lt;a href="https://arxiv.org/abs/1704.06888"&gt;Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation&lt;/a&gt; will be presented this week at the &lt;a href="http://juxi.net/workshop/deep-learning-robotic-vision-cvpr-2017/"&gt;CVPR Workshop on Deep Learning for Robotic Vision&lt;/a&gt;.&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=sQBgsnZw37g:zx6NInCUUws:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/sQBgsnZw37g" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/4375052421920196613/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/teaching-robots-to-understand-semantic.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/4375052421920196613" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/4375052421920196613" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/sQBgsnZw37g/teaching-robots-to-understand-semantic.html" title="Teaching Robots to Understand Semantic Concepts" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-6er10-LmK1o/WXESsGeJskI/AAAAAAAAB6g/5uAUqYfGuMowlCAN15xO5Rv0A9A3aAsAQCLcBGAs/s72-c/image7.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/teaching-robots-to-understand-semantic.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-2011492967500301609</id><published>2017-07-21T08:00:00.000-07:00</published><updated>2017-07-21T08:00:06.778-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="conference" /><category scheme="http://www.blogger.com/atom/ns#" term="conferences" /><category scheme="http://www.blogger.com/atom/ns#" term="CVPR" /><category scheme="http://www.blogger.com/atom/ns#" term="Publications" /><category scheme="http://www.blogger.com/atom/ns#" term="Research" /><title type="text">Google at CVPR 2017</title><content type="html">&lt;span class="byline-author"&gt;Posted by Christian Howard, Editor-in-Chief, Research Communications&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From July 21-26, Honolulu, Hawaii hosts the &lt;a href="http://cvpr2017.thecvf.com/"&gt;2017 Conference on Computer Vision and Pattern Recognition&lt;/a&gt; (CVPR 2017), the premier annual computer vision event comprising the main conference and several co-located workshops and tutorials. As a leader in computer vision research and a Platinum Sponsor, Google will have a strong presence at CVPR 2017 — over 250 Googlers will be in attendance to present papers and invited talks at the conference, and to organize and participate in multiple workshops.&lt;br /&gt;&lt;br /&gt;If you are attending CVPR this year, please stop by our booth and chat with our researchers who are actively pursuing the next generation of intelligent systems that utilize the latest machine learning techniques applied to various areas of &lt;a href="https://research.google.com/pubs/MachinePerception.html"&gt;machine perception&lt;/a&gt;. Our researchers will also be available to talk about and demo several recent efforts, including the technology behind &lt;a href="https://research.googleblog.com/2017/02/headset-removal-for-virtual-and-mixed.html"&gt;Headset Removal for Virtual and Mixed Reality&lt;/a&gt;, &lt;a href="https://research.googleblog.com/2017/02/headset-removal-for-virtual-and-mixed.html"&gt;Image Compression with Neural Networks&lt;/a&gt;, &lt;a href="https://vr.google.com/jump/"&gt;Jump&lt;/a&gt;, &lt;a href="https://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html"&gt;TensorFlow Object Detection API&lt;/a&gt; and much more.&lt;br /&gt;&lt;br /&gt;You can learn more about our research being presented at CVPR 2017 in the list below (Googlers highlighted in blue).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Organizing Committee&lt;/b&gt;&lt;br /&gt;Corporate Relations Chair - &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Mei Han&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Area Chairs include - &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Alexander Toshev&lt;/span&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Ce Liu&lt;/span&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Vittorio Ferrari&lt;/span&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;David Lowe&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Papers&lt;/b&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Papadopoulos_Training_Object_Class_CVPR_2017_paper.pdf"&gt;Training object class detectors with click supervision&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Dim Papadopoulos, &lt;span style="color: #3d85c6;"&gt;Jasper Uijlings&lt;/span&gt;, Frank Keller, &lt;span style="color: #3d85c6;"&gt;Vittorio Ferrari&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Bousmalis_Unsupervised_Pixel-Level_Domain_CVPR_2017_paper.pdf"&gt;Unsupervised Pixel-Level Domain Adaptation With Generative Adversarial Networks&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Konstantinos Bousmalis&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Nathan Silberman&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;David Dohan&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Dumitru Erhan&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Dilip Krishnan&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Han_BranchOut_Regularization_for_CVPR_2017_paper.pdf"&gt;BranchOut: Regularization for Online Ensemble Tracking With Convolutional Neural Networks&lt;/a&gt; &lt;i style="font-style: italic;"&gt;Bohyung Han, &lt;span style="color: #3d85c6;"&gt;Jack Sim&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Hartwig Adam &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Plummer_Enhancing_Video_Summarization_CVPR_2017_paper.pdf"&gt;Enhancing Video Summarization via Vision-Language Embedding&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Bryan A. Plummer, &lt;span style="color: #3d85c6;"&gt;Matthew Brown&lt;/span&gt;, Svetlana Lazebnik&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Haeusser_Learning_by_Association_CVPR_2017_paper.pdf"&gt;Learning by Association — A Versatile Semi-Supervised Training Method for Neural Networks&lt;/a&gt; &lt;i style="font-style: italic;"&gt;Philip Haeusser, &lt;span style="color: #3d85c6;"&gt;Alexander Mordvintsev&lt;/span&gt;, Daniel Cremers&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Vedantam_Context-Aware_Captions_From_CVPR_2017_paper.pdf"&gt;Context-Aware Captions From Context-Agnostic Supervision&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Ramakrishna Vedantam, &lt;span style="color: #3d85c6;"&gt;Samy Bengio&lt;/span&gt;, &lt;span style="color: #0b5394;"&gt;Kevin Murphy&lt;/span&gt;, Devi Parikh, &lt;span style="color: #3d85c6;"&gt;Gal Chechik&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Figurnov_Spatially_Adaptive_Computation_CVPR_2017_paper.pdf"&gt; Spatially Adaptive Computation Time for Residual Networks&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Michael Figurnov, &lt;span style="color: #3d85c6;"&gt;Maxwell D. Collins&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Yukun Zhu&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Li Zhang&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Jonathan Huang&lt;/span&gt;,&amp;nbsp;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;Dmitry Vetrov, Ruslan Salakhutdinov&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Chollet_Xception_Deep_Learning_CVPR_2017_paper.pdf"&gt;Xception: Deep Learning With Depthwise Separable Convolutions&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;François Chollet&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Song_Deep_Metric_Learning_CVPR_2017_paper.pdf"&gt; Deep Metric Learning via Facility Location&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Hyun Oh Song&lt;/span&gt;, Stefanie Jegelka, &lt;span style="color: #3d85c6;"&gt;Vivek Rathod&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Kevin Murphy&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Huang_SpeedAccuracy_Trade-Offs_for_CVPR_2017_paper.pdf"&gt;Speed/Accuracy Trade-Offs for Modern Convolutional Object Detectors&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Jonathan Huang&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Vivek Rathod&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Chen Sun&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Menglong Zhu&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Anoop Korattikara&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Alireza Fathi&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Ian Fischer&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Zbigniew Wojna&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Yang Song&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Sergio Guadarrama&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Kevin Murphy&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Cole_Synthesizing_Normalized_Faces_CVPR_2017_paper.pdf"&gt;Synthesizing Normalized Faces From Facial Identity Features&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Forrester Cole&lt;/span&gt;, David Belanger,&lt;span style="color: #3d85c6;"&gt; Dilip Krishnan&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Aaron Sarna&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Inbar Mosseri&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;William T. Freeman&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Papandreou_Towards_Accurate_Multi-Person_CVPR_2017_paper.pdf"&gt;Towards Accurate Multi-Person Pose Estimation in the Wild&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;George Papandreou&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Tyler Zhu&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Nori Kanazawa&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Alexander Toshev&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Jonathan Tompson&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Chris Bregler&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Kevin Murphy&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/de_Vries_GuessWhat_Visual_Object_CVPR_2017_paper.pdf"&gt;GuessWhat?! Visual Object Discovery Through Multi-Modal Dialogue&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Harm de Vries, Florian Strub, Sarath Chandar, &lt;span style="color: #3d85c6;"&gt;Olivier Pietquin&lt;/span&gt;, Hugo Larochelle, Aaron Courville&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Zhang_Learning_Discriminative_and_CVPR_2017_paper.pdf"&gt;Learning discriminative and transformation covariant local feature detectors&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Xu Zhang, &lt;span style="color: #3d85c6;"&gt;Felix X. Yu&lt;/span&gt;, Svebor Karaman, Shih-Fu Chang&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Toderici_Full_Resolution_Image_CVPR_2017_paper.pdf"&gt;Full Resolution Image Compression With Recurrent Neural Networks&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;George Toderici&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Damien Vincent&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Nick Johnston&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Sung Jin Hwang&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;David Minnen&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Joel Shor&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Michele Covell&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Veit_Learning_From_Noisy_CVPR_2017_paper.pdf"&gt;Learning From Noisy Large-Scale Datasets With Minimal Supervision&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Andreas Veit, &lt;span style="color: #3d85c6;"&gt;Neil Alldrin, Gal Chechik, Ivan Krasin&lt;/span&gt;, Abhinav Gupta, Serge Belongie&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Zhou_Unsupervised_Learning_of_CVPR_2017_paper.pdf"&gt;Unsupervised Learning of Depth and Ego-Motion From Video&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Tinghui Zhou, &lt;span style="color: #3d85c6;"&gt;Matthew Brown&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Noah Snavely&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;David G. Lowe &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Gupta_Cognitive_Mapping_and_CVPR_2017_paper.pdf"&gt;Cognitive Mapping and Planning for Visual Navigation&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Saurabh Gupta, &lt;span style="color: #3d85c6;"&gt;James Davidson&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Sergey Levine&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Rahul Sukthankar&lt;/span&gt;, Jitendra Malik&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Barron_Fast_Fourier_Color_CVPR_2017_paper.pdf"&gt;Fast Fourier Color Constancy&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Jonathan T. Barron&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Yun-Ta Tsai&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Dekel_On_the_Effectiveness_CVPR_2017_paper.pdf"&gt;On the Effectiveness of Visible Watermarks&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Tali Dekel, &lt;span style="color: #3d85c6;"&gt;Michael Rubinstein&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Ce Liu&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;William T. Freeman&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openaccess.thecvf.com/content_cvpr_2017/papers/Real_YouTube-BoundingBoxes_A_Large_CVPR_2017_paper.pdf"&gt;YouTube-BoundingBoxes: A Large High-Precision Human-Annotated Data Set for Object Detection in Video&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Esteban Real&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Jonathon Shlens&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Stefano Mazzocchi&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Xin Pan&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Vincent Vanhoucke&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Workshops&lt;/b&gt;&lt;br /&gt;&lt;a href="http://juxi.net/workshop/deep-learning-robotic-vision-cvpr-2017/"&gt;Deep Learning for Robotic Vision&lt;/a&gt;&lt;br /&gt;Organizers include:&lt;i style="font-style: italic;"&gt; &lt;span style="color: #3d85c6;"&gt;Anelia Angelova&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Kevin Murphy&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Program Committee includes: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;George Papandreou&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Nathan Silberman&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Pierre Sermanet&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sites.google.com/corp/view/fgvc4/home"&gt;The Fourth Workshop on Fine-Grained Visual Categorization&lt;/a&gt;&lt;br /&gt;Organizers include: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Yang Song&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Advisory Panel includes: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Hartwig Adam&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Program Committee includes: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Anelia Angelova&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Yuning Chai&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Nathan Frey&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Jonathan Krause&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Catherine Wah&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Weijun Wang&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://languageandvision.com/2017.html"&gt;Language and Vision Workshop&lt;/a&gt;&lt;br /&gt;Organizers include:&lt;i style="font-style: italic;"&gt; &lt;span style="color: #3d85c6;"&gt;R. Sukthankar&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://negative.vision/"&gt;The First Workshop on Negative Results in Computer Vision&lt;/a&gt;&lt;br /&gt;Organizers include:&lt;i style="font-style: italic;"&gt; &lt;span style="color: #3d85c6;"&gt;R. Sukthankar&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;W. Freeman&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;J. Malik&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vision.ee.ethz.ch/webvision/workshop.html"&gt;Visual Understanding by Learning from Web Data&lt;/a&gt;&lt;br /&gt;General Chairs include: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Jesse Berent&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Abhinav Gupta&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Rahul Sukthankar&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Program Chairs include:&lt;i style="font-style: italic;"&gt; &lt;span style="color: #3d85c6;"&gt;Wei Li&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://research.google.com/youtube8m/workshop.html"&gt;YouTube-8M Large-Scale Video Understanding Challenge&lt;/a&gt;&lt;br /&gt;General Chairs: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Paul Natsev, Rahul Sukthankar&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Program Chairs:&lt;i style="font-style: italic;"&gt; &lt;span style="color: #3d85c6;"&gt;Joonseok Lee, George Toderici&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Challenge Organizers: &lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Sami Abu-El-Haija&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Anja Hauth&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Nisarg Kothari&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Hanhan Li&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Sobhan Naderi Parizi&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Balakrishnan Varadarajan&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Sudheendra Vijayanarasimhan&lt;i style="color: black;"&gt;,&lt;/i&gt;&amp;nbsp;Jian Wang&lt;/span&gt;&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=3Qh0zMPb92g:aWxIfkSwmss:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/3Qh0zMPb92g" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/2011492967500301609/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/google-at-cvpr-2017.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/2011492967500301609" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/2011492967500301609" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/3Qh0zMPb92g/google-at-cvpr-2017.html" title="Google at CVPR 2017" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/google-at-cvpr-2017.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-790820244870145326</id><published>2017-07-20T14:00:00.000-07:00</published><updated>2017-07-20T14:41:08.669-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="datasets" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><title type="text">An Update to Open Images - Now with Bounding-Boxes</title><content type="html">&lt;span class="byline-author"&gt;Posted by Vittorio Ferrari, Research Scientist, Machine Perception&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last year we introduced &lt;a href="https://research.googleblog.com/2016/09/introducing-open-images-dataset.html"&gt;Open Images&lt;/a&gt;, a collaborative release of ~9 million images annotated with labels spanning over 6000 object categories, designed to be a useful dataset for machine learning research. The initial release featured image-level labels automatically produced by a computer vision model similar to &lt;a href="https://cloud.google.com/vision/"&gt;Google Cloud Vision API&lt;/a&gt;, for all 9M images in the training set, and a validation set of 167K images with 1.2M human-verified image-level labels.&lt;br /&gt;&lt;br /&gt;Today, we introduce an update to &lt;a href="https://github.com/openimages/dataset"&gt;Open Images&lt;/a&gt;, which contains the addition of a total of ~2M bounding-boxes to the existing dataset, along with several million additional image-level labels. Details include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1.2M bounding-boxes around objects for 600 categories on the training set. These have been produced semi-automatically by an enhanced version of the technique outlined in [1], and are all human-verified.&lt;/li&gt;&lt;li&gt;Complete bounding-box annotation for all object instances of the 600 categories on the validation set, all manually drawn (830K boxes).  The bounding-box annotations in the training and validations sets will enable research on object detection on this dataset. The 600 categories offer a broader range than those in the ILSVRC and COCO detection challenges, and include new objects such as fedora hat and snowman.&lt;/li&gt;&lt;li&gt;4.3M human-verified image-level labels on the training set (over all categories). This will enable large-scale experiments on object classification, based on a clean training set with reliable labels.&lt;/li&gt;&lt;/ul&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-_-5Bxwk5DPA/WW_kvncLWmI/AAAAAAAAB6U/3ObwsFWyx-Yq7sD_Ea0NOYx65iTWyhQJACLcBGAs/s1600/f1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="534" data-original-width="1495" height="228" src="https://1.bp.blogspot.com/-_-5Bxwk5DPA/WW_kvncLWmI/AAAAAAAAB6U/3ObwsFWyx-Yq7sD_Ea0NOYx65iTWyhQJACLcBGAs/s640/f1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Annotated images from the Open Images dataset. &lt;b&gt;Left:&lt;/b&gt; &lt;a href="https://www.flickr.com/photos/mwvchamber/5433788065"&gt;FAMILY MAKING A SNOWMAN&lt;/a&gt; by &lt;a href="https://www.flickr.com/photos/mwvchamber/"&gt;mwvchamber&lt;/a&gt;. Right:  &lt;a href="https://www.flickr.com/photos/ersupalermo/5759830290"&gt;STANZA STUDENTI.S.S. ANNUNZIATA&lt;/a&gt; by &lt;a href="https://www.flickr.com/photos/ersupalermo/"&gt;ersupalermo&lt;/a&gt;. Both images used under &lt;a href="https://creativecommons.org/licenses/by/2.0/"&gt;CC BY 2.0&lt;/a&gt; license. See more examples &lt;a href="http://www.cvdfoundation.org/datasets/open-images-dataset/vis"&gt;here&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We hope that this update to Open Images will stimulate the broader research community to experiment with object classification and detection models, and facilitate the development and evaluation of new techniques.&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;[1] &lt;a href="https://arxiv.org/abs/1602.08405"&gt;We don't need no bounding-boxes: Training object class detectors using only human verification&lt;/a&gt;, &lt;i&gt;Papadopoulos, Uijlings, Keller, and Ferrari, CVPR 2016&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=Ui5oo8oDv6A:hLhZ-CkmC-E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/Ui5oo8oDv6A" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/790820244870145326/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/an-update-to-open-images-now-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/790820244870145326" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/790820244870145326" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/Ui5oo8oDv6A/an-update-to-open-images-now-with.html" title="An Update to Open Images - Now with Bounding-Boxes" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-_-5Bxwk5DPA/WW_kvncLWmI/AAAAAAAAB6U/3ObwsFWyx-Yq7sD_Ea0NOYx65iTWyhQJACLcBGAs/s72-c/f1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/an-update-to-open-images-now-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-2931801941483709912</id><published>2017-07-20T07:00:00.000-07:00</published><updated>2017-07-20T08:31:09.981-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Computational Imaging" /><category scheme="http://www.blogger.com/atom/ns#" term="Computational Photography" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Perception" /><title type="text">Motion Stills — Now on Android</title><content type="html">&lt;span class="byline-author"&gt;Posted by Karthik Raveendran and Suril Shah, Software Engineers, Google Research&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last year, we launched &lt;a href="https://research.googleblog.com/2016/06/motion-stills-create-beautiful-gifs.html"&gt;Motion Stills&lt;/a&gt;, an &lt;a href="https://itunes.apple.com/us/app/motion-stills-create-with-live-photos/id1086172168?mt=8"&gt;iOS app&lt;/a&gt; that stabilizes your Live Photos and lets you view and share them as looping GIFs and videos. Since then, Motion Stills has been well received, being listed as one of the top apps of 2016 by &lt;a href="https://www.theverge.com/2016/12/25/14078470/best-iphone-apps-2016-apple-ipad-suggestions-download"&gt;The Verge&lt;/a&gt; and &lt;a href="http://mashable.com/2016/12/09/12-best-iphone-apps-2016/#kKQkwVa9.PqQ"&gt;Mashable&lt;/a&gt;. However, from its initial release, the community has been asking us to also make Motion Stills available for Android. We listened to your feedback and today, we're excited to announce that we’re bringing this technology, and more, to devices running Android 5.1 and later!&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-mhuO-YZRDS8/WW_LHkvuILI/AAAAAAAAB54/2nvVvazacmsk4U6GKZnka-znDbrJuN3HwCLcBGAs/s1600/image1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="318" data-original-width="640" height="318" src="https://2.bp.blogspot.com/-mhuO-YZRDS8/WW_LHkvuILI/AAAAAAAAB54/2nvVvazacmsk4U6GKZnka-znDbrJuN3HwCLcBGAs/s640/image1.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Motion Stills on Android: Instant stabilization on your device.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;With &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.apps.motionstills"&gt;Motion Stills on Android&lt;/a&gt; we built a new recording experience where everything you capture is instantly transformed into delightful short clips that are easy to watch and share. You can capture a short Motion Still with a single tap like a photo, or condense a longer recording into a new feature we call Fast Forward. In addition to stabilizing your recordings, Motion Stills on Android comes with an improved trimming algorithm that guards against pocket shots and accidental camera shakes.  All of this is done during capture on your Android device, no internet connection required!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New streaming pipeline&lt;/b&gt;&lt;br /&gt;For this release, we redesigned our existing iOS video processing pipeline to use a streaming approach that processes each frame of a video as it is being recorded. By computing intermediate motion metadata, we are able to immediately stabilize the recording while still performing loop optimization over the full sequence. All this leads to instant results after recording — no waiting required to share your new GIF.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-3Hmo4l1R0VI/WW_LXHAhM2I/AAAAAAAAB58/ydva3TlHsrM1jT4KMxODDCXltBFLoC94gCLcBGAs/s1600/image3.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="360" data-original-width="203" height="640" src="https://1.bp.blogspot.com/-3Hmo4l1R0VI/WW_LXHAhM2I/AAAAAAAAB58/ydva3TlHsrM1jT4KMxODDCXltBFLoC94gCLcBGAs/s640/image3.gif" width="360" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Capture using our streaming pipeline gives you instant results.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In order to display your Motion Stills stream immediately, our algorithm computes and stores the necessary stabilizing transformation as a low resolution &lt;a href="https://en.wikipedia.org/wiki/Texture_mapping"&gt;texture map&lt;/a&gt;. We leverage this texture to apply the stabilization transform using the GPU in real-time during playback, instead of writing a new, stabilized video that would tax your mobile hardware and battery.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fast Forward&lt;/b&gt;&lt;br /&gt;Fast Forward allows you to speed up and condense a longer recording into a short, easy to share clip. The same pipeline described above allows Fast Forward to process up to a full minute of video, right on your phone. You can even change the speed of playback (from 1x to 8x) after recording. To make this possible, we encode videos with a denser &lt;a href="https://en.wikipedia.org/wiki/Video_compression_picture_types#Intra-coded_.28I.29_frames.2Fslices_.28key_frames.29"&gt;I-frame spacing&lt;/a&gt; to enable efficient seeking and playback. We also employ additional optimizations in the Fast Forward mode. For instance, we apply adaptive temporal downsampling in the linear solver and long-range stabilization for smooth results over the whole sequence. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-cNCw6N1LzVU/WW_Ls2gMf1I/AAAAAAAAB6A/_gGI1Dql8awaxwp2sWcVv79XLcaBAjnIgCLcBGAs/s1600/image2.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="318" data-original-width="640" height="318" src="https://2.bp.blogspot.com/-cNCw6N1LzVU/WW_Ls2gMf1I/AAAAAAAAB6A/_gGI1Dql8awaxwp2sWcVv79XLcaBAjnIgCLcBGAs/s640/image2.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Fast Forward condenses your recordings into easy to share clips.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Try out Motion Stills&lt;/b&gt;&lt;br /&gt;Motion Stills is an app for us to experiment and iterate quickly with short-form video technology, gathering valuable feedback along the way. The tools our users find most fun and useful may be integrated later on into existing products like Google Photos. &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.apps.motionstills"&gt;Download Motion Stills for Android from the Google Play store&lt;/a&gt;—available for mobile phones running Android 5.1 and later—and share your favorite clips on social media with hashtag #motionstills.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt; &lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;Motion Stills would not have been possible without the help of many Googlers. We want to especially acknowledge the work of Matthias Grundmann in advancing our stabilization technology, as well as our UX and interaction designers Jacob Zukerman, Ashley Ma and Mark Bowers.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=pIdmqqW7CpY:e17EFUdl6KM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/pIdmqqW7CpY" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/2931801941483709912/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/motion-stills-now-on-android.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/2931801941483709912" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/2931801941483709912" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/pIdmqqW7CpY/motion-stills-now-on-android.html" title="Motion Stills — Now on Android" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-mhuO-YZRDS8/WW_LHkvuILI/AAAAAAAAB54/2nvVvazacmsk4U6GKZnka-znDbrJuN3HwCLcBGAs/s72-c/image1.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/motion-stills-now-on-android.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-1583398583575179185</id><published>2017-07-17T11:00:00.000-07:00</published><updated>2017-07-17T11:00:23.204-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="Visualization" /><title type="text">Facets: An Open Source Visualization Tool for Machine Learning Training Data</title><content type="html">&lt;span class="byline-author"&gt;Posted by James Wexler, Senior Software Engineer, Google Big Picture Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(Cross-posted on the &lt;a href="https://opensource.googleblog.com/2017/07/facets-open-source-visualization-tool.html"&gt;Google Open Source Blog&lt;/a&gt;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Getting the best results out of a machine learning (ML) model requires that you truly understand your data. However, ML datasets can contain hundreds of millions of data points, each consisting of hundreds (or even thousands) of features, making it nearly impossible to understand an entire dataset in an intuitive fashion. Visualization can help unlock nuances and insights in large datasets. A picture may be worth a thousand words, but an interactive visualization can be worth even more.&lt;br /&gt;&lt;br /&gt;Working with the &lt;a href="https://google.ai/pair"&gt;PAIR initiative&lt;/a&gt;, we’ve released &lt;a href="https://github.com/pair-code/facets"&gt;Facets&lt;/a&gt;, an open source visualization tool to aid in understanding and analyzing ML datasets. Facets consists of two visualizations that allow users to see a holistic picture of their data at different granularities. Get a sense of the shape of each feature of the data using &lt;i&gt;Facets Overview&lt;/i&gt;, or explore a set of individual observations using &lt;i&gt;Facets Dive&lt;/i&gt;. These visualizations allow you to debug your data which, in machine learning, is as important as debugging your model. They can easily be used inside of &lt;a href="https://jupyter.org/"&gt;Jupyter notebooks&lt;/a&gt; or embedded into webpages. In addition to the open source code, we've also created a &lt;a href="https://pair-code.github.io/facets"&gt;Facets demo website&lt;/a&gt;. This website allows anyone to visualize their own datasets directly in the browser without the need for any software installation or setup, without the data ever leaving your computer. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Facets Overview&lt;/b&gt;&lt;br /&gt;Facets Overview automatically gives users a quick understanding of the distribution of values across the features of their datasets. Multiple datasets, such as a training set and a test set, can be compared on the same visualization. Common data issues that can hamper machine learning are pushed to the forefront, such as: unexpected feature values, features with high percentages of missing values, features with unbalanced distributions, and feature distribution skew between datasets.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-lkb4w1DrJ-A/WWzzyPC428I/AAAAAAAAB48/TrSFgqxaYPY-jMv0cmXJaskUz9ImyXxLwCLcBGAs/s1600/image3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1125" data-original-width="1482" height="484" src="https://3.bp.blogspot.com/-lkb4w1DrJ-A/WWzzyPC428I/AAAAAAAAB48/TrSFgqxaYPY-jMv0cmXJaskUz9ImyXxLwCLcBGAs/s640/image3.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Facets Overview visualization of the six numeric features of the UCI Census datasets[1]. The features are sorted by non-uniformity, with the feature with the most non-uniform distribution at the top. Numbers in red indicate possible trouble spots, in this case numeric features with a high percentage of values set to 0. The histograms at right allow you to compare the distributions between the training data (blue) and test data (orange).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-zY_x0sThJfk/WWz0A7t6_SI/AAAAAAAAB5A/dPthengPKfo2ksOSWKbqopCCvFkLWb2iQCLcBGAs/s1600/image2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="974" data-original-width="1289" height="482" src="https://2.bp.blogspot.com/-zY_x0sThJfk/WWz0A7t6_SI/AAAAAAAAB5A/dPthengPKfo2ksOSWKbqopCCvFkLWb2iQCLcBGAs/s640/image2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Facets Overview visualization showing two of the nine categorical features of the UCI Census datasets[1]. The features are sorted by distribution distance, with the feature with the biggest skew between the training (blue) and test (orange) datasets at the top. Notice in the “Target” feature that the label values differ between the training and test datasets, due to a trailing period in the test set (“&amp;lt;=50K” vs “&amp;lt;=50K.”). This can be seen in the chart for the feature and also in the entries in the “top” column of the table. This label mismatch would cause a model trained and tested on this data to not be evaluated correctly.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Facets Dive&lt;/b&gt;&lt;br /&gt;Facets Dive provides an easy-to-customize, intuitive interface for exploring the relationship between the data points across the different features of a dataset. With Facets Dive, you control the position, color and visual representation of each data point based on its feature values. If the data points have images associated with them, the images can be used as the visual representations.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-Kab341D9VYI/WWz0NrlzH_I/AAAAAAAAB5E/BkIxG4WnADgQTmAFxLSw2zoAuPvIRw6igCLcBGAs/s1600/image1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="488" data-original-width="600" height="520" src="https://2.bp.blogspot.com/-Kab341D9VYI/WWz0NrlzH_I/AAAAAAAAB5E/BkIxG4WnADgQTmAFxLSw2zoAuPvIRw6igCLcBGAs/s640/image1.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Facets Dive visualization showing all 16281 data points in the UCI Census test dataset[1]. The animation shows a user coloring the data points by one feature (“Relationship”), faceting in one dimension by a continuous feature (“Age”) and then faceting in another dimension by a discrete feature (“Marital Status”).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-8PjiMMtYFgo/WWz0ffq2_cI/AAAAAAAAB5I/XfobgOT8K40_mhoSwXaj-P-tqpwr3msOgCLcBGAs/s1600/image6.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="896" data-original-width="1600" height="358" src="https://4.bp.blogspot.com/-8PjiMMtYFgo/WWz0ffq2_cI/AAAAAAAAB5I/XfobgOT8K40_mhoSwXaj-P-tqpwr3msOgCLcBGAs/s640/image6.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Facets Dive visualization of a large number of face drawings from the &lt;a href="https://github.com/googlecreativelab/quickdraw-dataset"&gt;“Quick, Draw!” Dataset&lt;/a&gt;, showing the relationship between the number of strokes and points in the drawings and the ability for the “Quick, Draw!” classifier to correctly categorize them as faces.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;i&gt;&lt;u&gt;Fun Fact:&lt;/u&gt;&lt;/i&gt; In large datasets, such as the CIFAR-10 dataset[2], a small human labelling error can easily go unnoticed. We inspected the CIFAR-10 dataset with Dive and were able to catch a frog-cat – an image of a frog that had been incorrectly labelled as a cat!&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-T0dTxdse9Ow/WWz0u431RpI/AAAAAAAAB5M/rBvToJjx1L0FVVpXkgNOAwzXASyZC_JWwCLcBGAs/s1600/image4.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="600" data-original-width="600" height="640" src="https://3.bp.blogspot.com/-T0dTxdse9Ow/WWz0u431RpI/AAAAAAAAB5M/rBvToJjx1L0FVVpXkgNOAwzXASyZC_JWwCLcBGAs/s640/image4.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Exploration of the CIFAR-10 dataset using Facets Dive. Here we facet the ground truth labels by row and the predicted labels by column. This produces a &lt;a href="https://en.wikipedia.org/wiki/Confusion_matrix"&gt;confusion matrix&lt;/a&gt; view, allowing us to drill into particular kinds of misclassifications. In this particular case, the ML model incorrectly labels some small percentage of true cats as frogs. The interesting thing we find by putting the real images in the confusion matrix is that one of these "true cats" that the model predicted was a frog is actually a frog from visual inspection. With Facets Dive, we can determine that this one misclassification wasn't a true misclassification of the model, but instead incorrectly labeled data in the dataset.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-5hNpUyP5TPs/WWz1HJgS7vI/AAAAAAAAB5Q/s5q_CiGgr3YspPekyjzWLDS981UHFDk4QCLcBGAs/s1600/image5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1108" data-original-width="1566" height="452" src="https://1.bp.blogspot.com/-5hNpUyP5TPs/WWz1HJgS7vI/AAAAAAAAB5Q/s5q_CiGgr3YspPekyjzWLDS981UHFDk4QCLcBGAs/s640/image5.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Can you spot the frog-cat?&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;We’ve gotten great value out of Facets inside of Google and are excited to share the visualizations with the world. We hope they can help you discover new and interesting things about your data that lead you to create more powerful and accurate machine learning models. And since they are open source, you can customize the visualizations for your specific needs or contribute to the project to help us all better understand our data. If you have feedback about your experience with Facets, please &lt;a href="https://goo.gl/forms/PPX0rvVTgcERfi3w2"&gt;let us know what you think&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgments&lt;/b&gt;&lt;br /&gt;This work is a collaboration between Mahima Pushkarna, James Wexler and Jimbo Wilson, with input from the entire &lt;a href="https://research.google.com/bigpicture/"&gt;Big Picture team&lt;/a&gt;. We would also like to thank Justine Tunney for providing us with the build tooling.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;[1] Lichman, M. (2013). UCI Machine Learning Repository [&lt;a href="http://archive.ics.uci.edu/ml/datasets/Census+Income"&gt;http://archive.ics.uci.edu/ml/datasets/Census+Income&lt;/a&gt;]. Irvine, CA: University of California, School of Information and Computer Science&lt;br /&gt;&lt;br /&gt;[2] &lt;a href="https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf"&gt;Learning Multiple Layers of Features from Tiny Images&lt;/a&gt;, Alex Krizhevsky, 2009.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=SQdkE9GlWzk:c473RoQsd6U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/SQdkE9GlWzk" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/1583398583575179185/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/facets-open-source-visualization-tool.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/1583398583575179185" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/1583398583575179185" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/SQdkE9GlWzk/facets-open-source-visualization-tool.html" title="Facets: An Open Source Visualization Tool for Machine Learning Training Data" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-lkb4w1DrJ-A/WWzzyPC428I/AAAAAAAAB48/TrSFgqxaYPY-jMv0cmXJaskUz9ImyXxLwCLcBGAs/s72-c/image3.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/facets-open-source-visualization-tool.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-1789551507018221000</id><published>2017-07-13T10:30:00.000-07:00</published><updated>2017-07-13T18:22:54.420-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Maps" /><category scheme="http://www.blogger.com/atom/ns#" term="Image Processing" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><title type="text">Using Deep Learning to Create Professional-Level Photographs</title><content type="html">&lt;span class="byline-author"&gt;Posted by Hui Fang, Software Engineer, Machine Perception&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Machine learning (ML) excels in many areas with well defined goals. Tasks where there exists a right or wrong answer help with the training process and allow the algorithm to achieve its desired goal, whether it be correctly identifying objects in images or providing a suitable translation from one language to another. However, there are areas where objective evaluations are not available. For example, whether a photograph is beautiful is measured by its aesthetic value, which is a highly subjective concept. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-RgZ3dtkFuos/WWe1PR3bKFI/AAAAAAAAB34/8pBQoeE8HB0OZiHMVu40YnSNn6ng_tlHQCLcBGAs/s1600/image2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="800" data-original-width="1600" height="320" src="https://2.bp.blogspot.com/-RgZ3dtkFuos/WWe1PR3bKFI/AAAAAAAAB34/8pBQoeE8HB0OZiHMVu40YnSNn6ng_tlHQCLcBGAs/s640/image2.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A professional(?) photograph of Jasper National Park, Canada.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;To explore how ML can learn subjective concepts, we introduce an &lt;a href="http://arxiv.org/abs/1707.03491"&gt;experimental deep-learning system&lt;/a&gt; for artistic content creation. It mimics the workflow of a professional photographer,  roaming landscape panoramas from Google Street View and searching for the best composition, then carrying out various postprocessing operations to create an aesthetically pleasing image. Our virtual photographer “travelled” ~40,000 panoramas in areas like the Alps, Banff and Jasper National Parks in Canada, Big Sur in California and Yellowstone National Park, and returned with creations that are quite impressive, some even approaching professional quality — as judged by professional photographers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Training the Model&lt;/b&gt;&lt;br /&gt;While aesthetics can be modelled using datasets like &lt;a href="http://refbase.cvc.uab.es/files/MMP2012a.pdf"&gt;AVA&lt;/a&gt;, using it naively to enhance photos may miss some aspect in aesthetics, such as making a photo over-saturated. Using supervised learning to learn multiple aspects in aesthetics properly, however, may require a labelled dataset that is intractable to collect. &lt;br /&gt;&lt;br /&gt;Our approach relies only on a collection of professional quality photos, without before/after image pairs, or any additional labels. It breaks down aesthetics into multiple aspects automatically, each of which is learned individually with negative examples generated by a coupled image operation. By keeping these image operations semi-”orthogonal”, we can enhance a photo on its composition, saturation/HDR level and dramatic lighting with fast and separable optimizations:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-M1OHQAOz2ck/WWe1dmH-zSI/AAAAAAAAB38/7fZlP4bRZmsfNAwHiVdXlJyA0jugfZtsACLcBGAs/s1600/image8.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="550" data-original-width="682" height="516" src="https://4.bp.blogspot.com/-M1OHQAOz2ck/WWe1dmH-zSI/AAAAAAAAB38/7fZlP4bRZmsfNAwHiVdXlJyA0jugfZtsACLcBGAs/s640/image8.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A panorama (a) is cropped into (b), with saturation and HDR strength enhanced in (c), and with dramatic mask applied in (d). Each step is guided by one learned aspect of aesthetics.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;A traditional image filter was used to generate negative training examples for saturation, HDR detail and composition. We also introduce a special operation named dramatic mask, which was created jointly while learning the concept of dramatic lighting. The negative examples were generated by applying a combination of image filters that modify brightness randomly on professional photos, degrading their appearance. For the training we use a &lt;a href="https://en.wikipedia.org/wiki/Generative_adversarial_networks"&gt;generative adversarial network&lt;/a&gt; (GAN), where a generative model creates a mask to fix lighting for negative examples, while a discriminative model tries to distinguish enhanced results from the real professional ones. Unlike shape-fixed filters such as vignette, dramatic mask adds content-aware brightness adjustment to a photo. The competitive nature of GAN training leads to good variations of such suggestions. You can read more about the training details in our &lt;a href="http://arxiv.org/abs/1707.03491"&gt;paper&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Results&lt;/b&gt;&lt;br /&gt;Some creations of our system from Google Street View are shown below. As you can see, the application of the trained aesthetic filters creates some dramatic results (including the image we started this post with!):&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-NCPA65XdO_c/WWe1tx4LLoI/AAAAAAAAB4E/pGjuvjvO6H0sNmZUiR99xx2-_1lXfWW3ACLcBGAs/s1600/image5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1232" data-original-width="1600" height="492" src="https://1.bp.blogspot.com/-NCPA65XdO_c/WWe1tx4LLoI/AAAAAAAAB4E/pGjuvjvO6H0sNmZUiR99xx2-_1lXfWW3ACLcBGAs/s640/image5.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Jasper National Park, Canada.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-fAWdJoSnAI0/WWe2AjCaePI/AAAAAAAAB4Y/EmfkuwubuckHP2hwVydloVVvI1uZG9PsACLcBGAs/s1600/image9.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1234" data-original-width="1600" height="492" src="https://4.bp.blogspot.com/-fAWdJoSnAI0/WWe2AjCaePI/AAAAAAAAB4Y/EmfkuwubuckHP2hwVydloVVvI1uZG9PsACLcBGAs/s640/image9.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Interlaken, Switzerland.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-ti0ew6j0tGs/WWe1t-o0JtI/AAAAAAAAB4I/YFQpSlKlWzsMb4G6vv5XVKFkt56OJFzFwCEwYBhgL/s1600/image3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1448" data-original-width="1600" height="578" src="https://3.bp.blogspot.com/-ti0ew6j0tGs/WWe1t-o0JtI/AAAAAAAAB4I/YFQpSlKlWzsMb4G6vv5XVKFkt56OJFzFwCEwYBhgL/s640/image3.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Park Parco delle Orobie Bergamasche, Italy.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-6bVWUgA8NEI/WWe1uoW8ayI/AAAAAAAAB4Q/PeoM8jc_xMwYvNYc5HJAnrJi0GrrjvKMQCEwYBhgL/s1600/image7.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1231" data-original-width="1600" height="492" src="https://2.bp.blogspot.com/-6bVWUgA8NEI/WWe1uoW8ayI/AAAAAAAAB4Q/PeoM8jc_xMwYvNYc5HJAnrJi0GrrjvKMQCEwYBhgL/s640/image7.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Jasper National Park, Canada.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Professional Evaluation&lt;/b&gt;&lt;br /&gt;To judge how successful our algorithm was, we designed a “Turing-test”-like experiment: we mix our creations with other photos at different quality, and show them to several professional photographers. They were instructed to assign a quality score for each of them, with meaning defined as following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1: Point-and-shoot without consideration for composition, lighting etc.&lt;/li&gt;&lt;li&gt;2: Good photos from general population without a background in photography. Nothing artistic stands out.&lt;/li&gt;&lt;li&gt;3: Semi-pro. Great photos showing clear artistic aspects. The photographer is on the right track of becoming a professional.&lt;/li&gt;&lt;li&gt;4: Pro.&lt;/li&gt;&lt;/ul&gt;In the following chart, each curve shows scores from professional photographers for images within a certain predicted score range. For our creations with a high predicted score, about 40% ratings they received are at “semi-pro” to “pro” levels.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-MNKSaFq7NOw/WWe2kLDYsbI/AAAAAAAAB4c/3ychK8vLE10kgJQ0sorpBFYyCgONGWdZgCLcBGAs/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="358" data-original-width="503" height="452" src="https://1.bp.blogspot.com/-MNKSaFq7NOw/WWe2kLDYsbI/AAAAAAAAB4c/3ychK8vLE10kgJQ0sorpBFYyCgONGWdZgCLcBGAs/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Scores received from professional photographers for photos with different predicted scores.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Future Work&lt;/b&gt;&lt;br /&gt;The Street View panoramas served as a testing bed for our project. Someday this technique might even help you to take better photos in the real world. We compiled a &lt;a href="https://google.github.io/creatism/"&gt;showcase&lt;/a&gt; of photos created to our satisfaction. If you see a photo you like, you can click on it to bring out a nearby Street View panorama. Would you make the same decision if you were there holding the camera at that moment? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;This work was done by Hui Fang and Meng Zhang from Machine Perception at Google Research. We would like to thank Vahid Kazemi for his earlier work in predicting AVA scores using Inception network, and Sagarika Chalasani, Nick Beato, Bryan Klingner and Rupert Breheny for their help in processing Google Street View panoramas. We would like to thank Peyman Milanfar, Tomas Izo, Christian Szegedy, Jon Barron and Sergey Ioffe for their helpful reviews and comments. Huge thanks to our anonymous professional photographers!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=O4OM2rcB1fA:K4I0Oj_YoLs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/O4OM2rcB1fA" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/1789551507018221000/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/using-deep-learning-to-create.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/1789551507018221000" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/1789551507018221000" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/O4OM2rcB1fA/using-deep-learning-to-create.html" title="Using Deep Learning to Create Professional-Level Photographs" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-RgZ3dtkFuos/WWe1PR3bKFI/AAAAAAAAB34/8pBQoeE8HB0OZiHMVu40YnSNn6ng_tlHQCLcBGAs/s72-c/image2.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/using-deep-learning-to-create.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-739210058672819577</id><published>2017-07-12T01:00:00.000-07:00</published><updated>2017-07-12T11:30:11.004-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Translation" /><category scheme="http://www.blogger.com/atom/ns#" term="Neural Networks" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">Building Your Own Neural Machine Translation System in TensorFlow</title><content type="html">&lt;span class="byline-author"&gt;Posted by Thang Luong, Research Scientist, and Eugene Brevdo, Staff Software Engineer, Google Brain Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Machine translation – the task of automatically translating between languages –  is one of the most active research areas in the machine learning community. Among the many approaches to machine translation, sequence-to-sequence ("seq2seq") models [1, 2] have recently enjoyed great success and have become the de facto standard in most commercial translation systems, such as &lt;a href="https://translate.google.com/intl/en/about/"&gt;Google Translate&lt;/a&gt;, thanks to its ability to use &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;deep neural networks to capture sentence meanings&lt;/a&gt;. However, while there is an abundance of material on seq2seq models such as &lt;a href="http://opennmt.net/"&gt;OpenNMT&lt;/a&gt; or &lt;a href="https://research.googleblog.com/2017/04/introducing-tf-seq2seq-open-source.html"&gt;tf-seq2seq&lt;/a&gt;, there is a lack of material that teaches people both the knowledge and the skills to easily build high-quality translation systems.&lt;br /&gt;&lt;br /&gt;Today we are happy to announce a new &lt;a href="https://github.com/tensorflow/nmt"&gt;Neural Machine Translation (NMT) tutorial&lt;/a&gt; for &lt;a href="https://www.tensorflow.org/"&gt;TensorFlow&lt;/a&gt; that gives readers a full understanding of seq2seq models and shows how to build a competitive translation model from scratch. The tutorial is aimed at making the process as simple as possible, starting with some background knowledge on NMT and walking through code details to build a vanilla system. It then dives into the attention mechanism [3, 4], a key ingredient that allows NMT systems to handle long sentences. Finally, the tutorial provides details on how to replicate key features in the Google’s NMT (GNMT) system [5] to train on multiple GPUs. &lt;br /&gt;&lt;br /&gt;The tutorial also contains detailed benchmark results, which users can replicate on their own. Our models provide a strong open-source baseline with performance on par with GNMT results [5]. We achieve 24.4 BLEU points on the popular &lt;a href="http://www.statmt.org/wmt14/translation-task.html"&gt;WMT’14&lt;/a&gt; English-German translation task.&lt;br /&gt;Other benchmark results (English-Vietnamese, German-English) can be found in the tutorial.&lt;br /&gt;&lt;br /&gt;In addition, this tutorial showcases the fully dynamic seq2seq API (released with &lt;a href="https://github.com/tensorflow/tensorflow/releases/tag/v1.2.0"&gt;TensorFlow 1.2&lt;/a&gt;) aimed at making building seq2seq models clean and easy:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Easily read and preprocess dynamically sized input sequences using the new input pipeline in &lt;a href="https://www.tensorflow.org/api_docs/python/tf/contrib/data"&gt;tf.contrib.data&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Use padded batching and sequence length bucketing to improve training and inference speeds.&lt;/li&gt;&lt;li&gt;Train seq2seq models using popular architectures and training schedules, including several types of attention and scheduled sampling.&lt;/li&gt;&lt;li&gt;Perform inference in seq2seq models using in-graph beam search.&lt;/li&gt;&lt;li&gt;Optimize seq2seq models for multi-GPU settings.&lt;/li&gt;&lt;/ul&gt;We hope this will help spur the creation of, and experimentation with, many new NMT models by the research community. To get started on your own research, check out the tutorial on &lt;a href="https://github.com/tensorflow/nmt"&gt;GitHub&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Core contributors&lt;/b&gt;&lt;br /&gt;Thang Luong, Eugene Brevdo, and Rui Zhao. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;We would like to especially thank our collaborator on the NMT project, Rui Zhao. Without his tireless effort, this tutorial would not have been possible. Additional thanks go to Denny Britz, Anna Goldie, Derek Murray, and Cinjon Resnick for their work bringing new features to TensorFlow and the seq2seq library. Lastly, we thank Lukasz Kaiser for the initial help on the seq2seq codebase; Quoc Le for the suggestion to replicate GNMT; Yonghui Wu and Zhifeng Chen for details on the GNMT systems; as well as the &lt;a href="http://g.co/brain"&gt;Google Brain team&lt;/a&gt; for their support and feedback!&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;[1] &lt;a href="https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf"&gt;Sequence to sequence learning with neural networks&lt;/a&gt;, &lt;i&gt;Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. NIPS, 2014.&lt;/i&gt;&lt;br /&gt;[2] &lt;a href="http://aclweb.org/anthology/D/D14/D14-1179.pdf"&gt;Learning phrase representations using RNN encoder-decoder for statistical machine translation&lt;/a&gt;, &lt;i&gt;Kyunghyun Cho, Bart Van Merrienboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. EMNLP 2014.&lt;/i&gt;&lt;br /&gt;[3] &lt;a href="https://arxiv.org/pdf/1409.0473.pdf"&gt;Neural machine translation by jointly learning to align and translate&lt;/a&gt;, &lt;i&gt;Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. ICLR, 2015.  &lt;/i&gt;&lt;br /&gt;[4] &lt;a href="https://arxiv.org/pdf/1508.04025.pdf"&gt;Effective approaches to attention-based neural machine translation&lt;/a&gt;, &lt;i&gt;Minh-Thang Luong, Hieu Pham, and Christopher D Manning. EMNLP, 2015. &lt;/i&gt;&lt;br /&gt;[5] &lt;a href="http://arxiv.org/abs/1609.08144"&gt;Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation&lt;/a&gt;, &lt;i&gt;Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V. Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, Jeff Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Łukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil, Wei Wang, Cliff Young, Jason Smith, Jason Riesa, Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduff Hughes, Jeffrey Dean. Technical Report, 2016.&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=TwihukFCkVY:cZ1SE7JhT6Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/TwihukFCkVY" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/739210058672819577/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/building-your-own-neural-machine.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/739210058672819577" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/739210058672819577" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/TwihukFCkVY/building-your-own-neural-machine.html" title="Building Your Own Neural Machine Translation System in TensorFlow" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/building-your-own-neural-machine.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-8260901562262591501</id><published>2017-07-11T10:38:00.000-07:00</published><updated>2017-07-11T13:27:39.507-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="data science" /><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Neural Networks" /><title type="text">Revisiting the Unreasonable Effectiveness of Data</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;span class="byline-author"&gt;Posted by Abhinav Gupta, Faculty Advisor, Machine Perception&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There has been remarkable success in the field of computer vision over the past decade, much of which can be directly attributed to the application of &lt;a href="https://en.wikipedia.org/wiki/Deep_learning"&gt;deep learning&lt;/a&gt; models to this machine perception task. Furthermore, since 2012 there have been significant advances in representation capabilities of these systems due to (a) deeper models with high complexity, (b) increased computational power and (c) availability of large-scale labeled data. And while every year we get further increases in computational power and the model complexity (from 7-layer &lt;a href="http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf"&gt;AlexNet&lt;/a&gt; to 101-layer &lt;a href="https://arxiv.org/pdf/1512.03385.pdf"&gt;ResNet&lt;/a&gt;), available datasets have not scaled accordingly. A 101-layer ResNet with significantly more capacity than AlexNet is still trained with the same 1M images from &lt;a href="http://www.image-net.org/"&gt;ImageNet&lt;/a&gt; circa 2011. As researchers, we have always wondered: if we scale up the amount of training data 10x, will the accuracy double? How about 100x or maybe even 300x? Will the accuracy plateau or will we continue to see increasing gains with more and more data?&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-9jVHM1Pcsx8/WWUJxfwGTgI/AAAAAAAAB3k/-yLJh8EQQCUXqobeEfob49ekBBjLqQ0JgCLcBGAs/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="640" data-original-width="615" height="400" src="https://4.bp.blogspot.com/-9jVHM1Pcsx8/WWUJxfwGTgI/AAAAAAAAB3k/-yLJh8EQQCUXqobeEfob49ekBBjLqQ0JgCLcBGAs/s400/image1.png" width="383" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;While GPU computation power and model sizes have continued to increase over the last five years, the size of the largest training dataset has surprisingly remained constant.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In our paper, “&lt;a href="https://arxiv.org/abs/1707.02968"&gt;Revisiting Unreasonable Effectiveness of Data in Deep Learning Era&lt;/a&gt;”, we take the first steps towards clearing the clouds of mystery surrounding the relationship between `enormous data' and deep learning. Our goal was to explore: (a) if visual representations can be still improved by feeding more and more images with noisy labels to currently existing algorithms; (b) the nature of the relationship between data and performance on standard vision tasks such as classification, object detection and image segmentation; (c) state-of-the-art models for all the tasks in computer vision using large-scale learning.&lt;br /&gt;&lt;br /&gt;Of course, the elephant in the room is where can we obtain a dataset that is 300x larger than ImageNet? At Google, we have been continuously working on building such datasets automatically to improve computer vision algorithms. Specifically, we have built an internal dataset of 300M images that are labeled with 18291 categories, which we call JFT-300M. The images are labeled using an algorithm that uses complex mixture of raw web signals, connections between web-pages and user feedback. This results in over one billion labels for the 300M images (a single image can have multiple labels). Of the billion image labels, approximately 375M are selected via an algorithm that aims to maximize label precision of selected images. However, there is still considerable noise in the labels: approximately 20% of the labels for selected images are noisy. Since there is no exhaustive annotation, we have no way to estimate the recall of the labels.&lt;br /&gt;&lt;br /&gt;Our experimental results validate some of the hypotheses but also generate some unexpected surprises:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Better Representation Learning Helps.&lt;/b&gt;&amp;nbsp;Our first observation is that large-scale data helps in &lt;a href="https://en.wikipedia.org/wiki/Feature_learning"&gt;representation learning&lt;/a&gt; which in-turn improves the performance on each vision task we study. Our findings suggest that a collective effort to build a large-scale dataset for pretraining is important. It also suggests a bright future for unsupervised and semi-supervised representation learning approaches. It seems the scale of data continues to overpower noise in the label space.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Performance increases linearly with orders of magnitude of training data.&lt;/b&gt;&amp;nbsp; Perhaps the most surprising finding is the relationship between performance on vision tasks and the amount of training data (log-scale) used for representation learning. We find that this relationship is still linear! Even at 300M training images, we do not observe any plateauing effect for the tasks studied.&lt;/li&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-szaDUQXe_ak/WWUJ85ysh5I/AAAAAAAAB3o/joW-ItRpiCU6o_FyB-CMpCQ1XU4QFaI3QCEwYBhgL/s1600/image2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="602" data-original-width="610" height="393" src="https://3.bp.blogspot.com/-szaDUQXe_ak/WWUJ85ysh5I/AAAAAAAAB3o/joW-ItRpiCU6o_FyB-CMpCQ1XU4QFaI3QCEwYBhgL/s400/image2.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Object detection performance when pre-trained on different subsets of JFT-300M from scratch. x-axis is the dataset size in log-scale, y-axis is the detection performance in mAP@[.5,.95] on COCO-minival subset.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;&lt;b&gt;Capacity is Crucial.&lt;/b&gt; We also observe that to fully exploit 300M images, one needs higher capacity (deeper) models. For example, in case of ResNet-50 the gain on &lt;a href="http://mscoco.org/"&gt;COCO object detection benchmark&lt;/a&gt; is much smaller (1.87%) compared to (3%) when using ResNet-152.&lt;/li&gt;&lt;li&gt;&lt;b&gt;New state of the art results.&lt;/b&gt;  Our paper presents new state-of-the-art results on several benchmarks using the models learned from JFT-300M. For example, a single model (without any bells and whistles) can now achieve 37.4 &lt;a href="http://mscoco.org/dataset/#detections-eval"&gt;AP&lt;/a&gt; as compared to 34.3 AP on the COCO detection benchmark.&lt;/li&gt;&lt;/ul&gt;It is important to highlight that the training regime, learning schedules and parameters we used are based on our understanding of training ConvNets with 1M images from ImageNet. Since we do not search for the optimal set of hyper-parameters in this work (which would have required considerable computational effort), it is highly likely that these results are not the best ones you can obtain when using this scale of data. Therefore, we consider the quantitative performance reported to be an underestimate of the actual impact of data.&lt;br /&gt;&lt;br /&gt;This work does not focus on task-specific data, such as exploring if more bounding boxes affects model performance. We believe that, although challenging, obtaining large scale task-specific data should be the focus of future study. Furthermore, building a dataset of 300M images should not be a final goal -  as a community, we should explore if models continue to improve in the regime of even larger (1 billion+ image) datasets.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Core Contributors&lt;/b&gt;&lt;br /&gt;Chen Sun, Abhinav Shrivastava, Saurabh Singh, and Abhinav Gupta&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgments&lt;/b&gt;&lt;br /&gt;This work would not have been possible without the significant efforts of the Image Understanding and Expander teams at Google who built the massive JFT dataset. We would specifically like to thank Tom Duerig, Neil Alldrin, Howard Zhou, Lu Chen, David Cai, Gal Chechik, Zheyun Feng, Xiangxin Zhu and Rahul Sukthankar for their help. Also big thanks to the VALE team for APIs and specifically, Jonathan Huang, George Papandreou, Liang-Chieh Chen and Kevin Murphy for helpful discussions.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=E1-dxHhcCzQ:bifM4_fNsVg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/E1-dxHhcCzQ" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/8260901562262591501/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/revisiting-unreasonable-effectiveness.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8260901562262591501" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8260901562262591501" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/E1-dxHhcCzQ/revisiting-unreasonable-effectiveness.html" title="Revisiting the Unreasonable Effectiveness of Data" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-9jVHM1Pcsx8/WWUJxfwGTgI/AAAAAAAAB3k/-yLJh8EQQCUXqobeEfob49ekBBjLqQ0JgCLcBGAs/s72-c/image1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/revisiting-unreasonable-effectiveness.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-8824978585249703349</id><published>2017-07-10T11:00:00.000-07:00</published><updated>2017-07-20T14:45:29.041-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Publications" /><title type="text">The Google Brain Residency Program — One Year Later</title><content type="html">&lt;span class="byline-author"&gt;Posted by Luke Metz, Research Associate and Yun Liu, Software Engineer, 2016 Google Brain Resident Alumni&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;“Coming from a background in statistics, physics, and chemistry, the Google Brain Residency was my first exposure to both deep learning and serious programming. I enjoyed the autonomy that I was given to research diverse topics of my choosing: deep learning for computer vision and language, reinforcement learning, and theory. I originally intended to pursue a statistics PhD but my experience here spurred me to enroll in the Stanford CS program starting this fall!”&lt;/i&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;- Melody Guan, 2016 Google Brain Residency Alumna&lt;/div&gt;&lt;br /&gt;This month marks the end of an incredibly successful year for our first class of the &lt;a href="https://research.google.com/teams/brain/residency/"&gt;Google Brain Residency Program&lt;/a&gt;. This one-year program was created as an opportunity for individuals from diverse educational backgrounds and experiences to dive into research in machine learning and deep learning. &lt;a href="https://research.googleblog.com/2017/01/google-brain-residency-program-7-months_5.html"&gt;Over the past year&lt;/a&gt;, the Residents familiarized themselves with the literature, designed and implemented experiments at Google scale, and engaged in cutting edge research in a wide variety of subjects ranging from theory to robotics to music generation.&lt;br /&gt;&lt;br /&gt;To date, the inaugural class of Residents have &lt;a href="https://research.google.com/pubs/BrainResidency.html"&gt;published over 30 papers&lt;/a&gt; at leading machine learning publication venues such as &lt;a href="http://www.iclr.cc/doku.php?id=ICLR2017:main&amp;amp;redirect=1"&gt;ICLR&lt;/a&gt; (15), &lt;a href="https://2017.icml.cc/"&gt;ICML&lt;/a&gt; (11), &lt;a href="http://cvpr2017.thecvf.com/"&gt;CVPR&lt;/a&gt; (3), &lt;a href="http://emnlp2017.net/"&gt;EMNLP&lt;/a&gt; (2), &lt;a href="http://www.roboticsconference.org/"&gt;RSS&lt;/a&gt;, &lt;a href="http://gecco-2017.sigevo.org/index.html/HomePage"&gt;GECCO&lt;/a&gt;, &lt;a href="https://ismir2017.smcnus.org/"&gt;ISMIR&lt;/a&gt;, &lt;a href="https://www.iscb.org/ismbeccb2017"&gt;ISMB&lt;/a&gt; and &lt;a href="http://www.cosyne.org/c/index.php?title=Cosyne_17"&gt;Cosyne&lt;/a&gt;. An additional 18 papers are currently under review at &lt;a href="https://nips.cc/"&gt;NIPS&lt;/a&gt;, &lt;a href="http://iccv2017.thecvf.com/"&gt;ICCV&lt;/a&gt;, &lt;a href="https://bmvc2017.london/"&gt;BMVC&lt;/a&gt; and &lt;a href="http://www.nature.com/nmeth/index.html"&gt;Nature Methods&lt;/a&gt;. Two of the above papers were published in &lt;a href="http://distill.pub/"&gt;Distill&lt;/a&gt;, exploring how &lt;a href="http://distill.pub/2016/deconv-checkerboard/"&gt;deconvolution causes checkerboard artifacts&lt;/a&gt; and presenting ways of &lt;a href="http://distill.pub/2016/handwriting/"&gt;visualizing a generative model of handwriting&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-DDqkfP3lMjE/WWPAjEQFdSI/AAAAAAAAB28/0rO1G2tFXI0sJkJvxMdw-KRsvUC3XTkNwCLcBGAs/s1600/image4.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="428" data-original-width="600" height="456" src="https://4.bp.blogspot.com/-DDqkfP3lMjE/WWPAjEQFdSI/AAAAAAAAB28/0rO1G2tFXI0sJkJvxMdw-KRsvUC3XTkNwCLcBGAs/s640/image4.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A &lt;a href="http://distill.pub/2016/handwriting/"&gt;Distill article&lt;/a&gt; by residents interactively explores how a neural network generates handwriting.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-XqLC7ck9OOQ/WXEi6onZkOI/AAAAAAAAB7U/ajxUVPtFdZ05kEE3rYD-E2FODxkWr8jpACEwYBhgL/s1600/image1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="360" data-original-width="640" src="https://1.bp.blogspot.com/-XqLC7ck9OOQ/WXEi6onZkOI/AAAAAAAAB7U/ajxUVPtFdZ05kEE3rYD-E2FODxkWr8jpACEwYBhgL/s1600/image1.gif" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A system that explores how robots can learn to imitate human motion from observation. For more details, see “&lt;a href="https://sermanet.github.io/tcn/"&gt;Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation&lt;/a&gt;” (Co-authored by Resident Corey Lynch, along with P. Sermanet, , J. Hsu, S. Levine, accepted to CVPR Workshop 2017)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-ymGg59aHCz0/WWPBYn_eFwI/AAAAAAAAB3I/LiOrSOXzkxYauJ1tiw_m-3-2Ay8gleccwCLcBGAs/s1600/F3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="377" data-original-width="1242" height="194" src="https://3.bp.blogspot.com/-ymGg59aHCz0/WWPBYn_eFwI/AAAAAAAAB3I/LiOrSOXzkxYauJ1tiw_m-3-2Ay8gleccwCLcBGAs/s640/F3.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A model that uses reinforcement learning to train distributed deep learning networks at large scale by optimizing computations to hardware devices assignment. For more details, see “&lt;a href="https://arxiv.org/abs/1706.04972"&gt;Device Placement Optimization with Reinforcement Learning&lt;/a&gt;” (Co-authored by Residents Azalia Mirhoseini and Hieu Pham, along with Q. Le, B. Steiner, R. Larsen, Y. Zhou, N. Kumar, M. Norouzi, S. Bengio, J. Dean, submitted to ICML 2017).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-TY5FHLHsW3k/WWPCPji2DgI/AAAAAAAAB3U/gG3LojZtos0e2zOZUIgwA-XBMYDeP0OLACLcBGAs/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="563" data-original-width="1600" height="224" src="https://3.bp.blogspot.com/-TY5FHLHsW3k/WWPCPji2DgI/AAAAAAAAB3U/gG3LojZtos0e2zOZUIgwA-XBMYDeP0OLACLcBGAs/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;An approach to automate the process of discovering optimization methods, with a focus on deep learning architectures. Final version of the paper “&lt;a href="https://research.google.com/pubs/pub46114.html"&gt;Neural Optimizer Search with Reinforcement Learning&lt;/a&gt;” (Co-authored by Residents Irwan Bello and Barret Zoph, along with V. Vasudevan, Q. Le, submitted to ICML 2017) coming soon.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Residents have also made significant contributions to the open source community with &lt;a href="https://github.com/google/seq2seq"&gt;general-purpose sequence-to-sequence models&lt;/a&gt; (used for example in translation), &lt;a href="https://github.com/tensorflow/magenta/tree/master/magenta/models/nsynth/wavenet"&gt;music synthesis&lt;/a&gt;, &lt;a href="https://github.com/tensorflow/magenta/tree/master/magenta/models/sketch_rnn"&gt;mimicking human sketching&lt;/a&gt;, &lt;a href="https://github.com/craffel/subsampling_in_expectation"&gt;subsampling a sequence for model training,&lt;/a&gt; &lt;a href="https://github.com/craffel/mad"&gt;an efficient “attention” mechanism for models&lt;/a&gt;, and &lt;a href="https://github.com/tensorflow/models/tree/master/lfads"&gt;time series analysis&lt;/a&gt; (particularly for neuroscience).&lt;br /&gt;&lt;br /&gt;The end of the program year marks our Residents embarking on the next stages in their careers. Many are continuing their research careers on the Google Brain team as full time employees. Others have chosen to enter top machine learning Ph.D. programs at schools such as Stanford University, UC Berkeley, Cornell University, Oxford University and NYU, University of Toronto and CMU. We could not be more proud to see where their hard work and experiences will take them next!&lt;br /&gt;&lt;br /&gt;As we “graduate” our first class, this week we welcome our next class of 35 incredibly talented Residents who have joined us from a wide range of experience and education backgrounds. We can’t wait to see how they will build on the successes of our first class and continue to push the team in new and exciting directions. We look forward to another exciting year of research and innovation ahead of us! &lt;br /&gt;&lt;br /&gt;Applications to the 2018 Residency program will open in September 2017. To learn more about the program, visit &lt;a href="https://research.google.com/teams/brain/residency/"&gt;g.co/brainresidency&lt;/a&gt;. &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=3w617RrKmC8:i6O1pp9JR9o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/3w617RrKmC8" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/8824978585249703349/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/07/the-google-brain-residency-program-one.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8824978585249703349" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8824978585249703349" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/3w617RrKmC8/the-google-brain-residency-program-one.html" title="The Google Brain Residency Program — One Year Later" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-DDqkfP3lMjE/WWPAjEQFdSI/AAAAAAAAB28/0rO1G2tFXI0sJkJvxMdw-KRsvUC3XTkNwCLcBGAs/s72-c/image4.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/07/the-google-brain-residency-program-one.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-2630803594749953231</id><published>2017-06-21T06:00:00.000-07:00</published><updated>2017-06-21T10:18:18.993-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Natural Language Processing" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">MultiModel: Multi-Task Machine Learning Across Domains</title><content type="html">&lt;span class="byline-author"&gt;Posted by Łukasz Kaiser, Senior Research Scientist, Google Brain Team and Aidan N. Gomez, Researcher, Department of Computer Science Machine Learning Group, University of Toronto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over the last decade, the application and performance of Deep Learning has progressed at an astonishing rate. However, the current state of the field is that the neural network architectures are highly specialized to specific domains of application. An important question remains unanswered: Will a convergence between these domains facilitate a unified model capable of performing well across multiple domains?&lt;br /&gt;&lt;br /&gt;Today, we present &lt;a href="https://arxiv.org/abs/1706.05137"&gt;MultiModel&lt;/a&gt;, a neural network architecture that draws from the success of vision, language and audio networks to simultaneously solve a number of problems spanning multiple domains, including image recognition, translation and speech recognition. While strides have been made in this direction before, namely in &lt;a href="https://research.googleblog.com/2016/11/zero-shot-translation-with-googles.html"&gt;Google’s Multilingual Neural Machine Translation System&lt;/a&gt; used in Google Translate, MultiModel is a first step towards the convergence of vision, audio and language understanding into a single network.&lt;br /&gt;&lt;br /&gt;The inspiration for how MultiModel handles multiple domains comes from how the brain transforms sensory input from different modalities (such as sound, vision or taste), into a single shared representation and back out in the form of language or actions. As an analog to these modalities and the transformations they perform, MultiModel has a number of small modality-specific sub-networks for audio, images, or text, and a shared model consisting of an encoder, input/output mixer and decoder, as illustrated below.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-Xh_qqrpTLNg/WUm0gPKjXhI/AAAAAAAAB2c/caM8e8k6Rs8GEV_VwQQ8CNPZpEgPKn8uwCLcBGAs/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1010" data-original-width="1600" height="402" src="https://3.bp.blogspot.com/-Xh_qqrpTLNg/WUm0gPKjXhI/AAAAAAAAB2c/caM8e8k6Rs8GEV_VwQQ8CNPZpEgPKn8uwCLcBGAs/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;MultiModel architecture: small modality-specific sub-networks work with a shared encoder, I/O mixer and decoder. Each petal represents a modality, transforming to and from the internal representation.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We demonstrate that MultiModel is capable of learning eight different tasks simultaneously: it can detect objects in images, provide captions, recognize speech, translate between four pairs of languages, and do grammatical constituency parsing at the same time. The input is given to the model together with a very simple signal that determines which output we are requesting. Below we illustrate a few examples taken from a MultiModel trained jointly on these eight tasks&lt;a href="#1" name="top1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-zobHTOpsmHk/WUm5lLs5ktI/AAAAAAAAB2s/OQwgMm1VQNgUBHNbOMY4IV8YBW_yFdS3wCLcBGAs/s1600/image2.png" imageanchor="1"&gt;&lt;img border="0" data-original-height="664" data-original-width="1600" height="264" src="https://4.bp.blogspot.com/-zobHTOpsmHk/WUm5lLs5ktI/AAAAAAAAB2s/OQwgMm1VQNgUBHNbOMY4IV8YBW_yFdS3wCLcBGAs/s640/image2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;When designing MultiModel it became clear that certain elements from each domain of research (vision, language and audio) were integral to the model’s success in related tasks. We demonstrate that these computational primitives (such as convolutions, attention, or mixture-of-experts layers) clearly improve performance on their originally intended domain of application, while not hindering MultiModel’s performance on other tasks. It is not only possible to achieve good performance while training jointly on multiple tasks, but on tasks with limited quantities of data, the performance actually improves. To our surprise, this happens even if the tasks come from different domains that would appear to have little in common, e.g., an image recognition task can improve performance on a language task.&lt;br /&gt;&lt;br /&gt;It is important to note that while MultiModel does not establish new performance records, it does provide insight into the dynamics of multi-domain multi-task learning in neural networks, and the potential for improved learning on data-limited tasks by the introduction of auxiliary tasks. There is a longstanding saying in machine learning: “the best regularizer is more data”; in MultiModel, this data can be sourced across domains, and consequently can be obtained more easily than previously thought. MultiModel provides evidence that training in concert with other tasks can lead to good results and improve performance on data-limited tasks.&lt;br /&gt;&lt;br /&gt;Many questions about multi-domain machine learning remain to be studied, and we will continue to work on tuning Multimodel and improving its performance. To allow this research to progress quickly, we open-sourced MultiModel as part of the &lt;a href="https://github.com/tensorflow/tensor2tensor"&gt;Tensor2Tensor&lt;/a&gt; library. We believe that such synergetic models trained on data from multiple domains will be the next step in deep learning and will ultimately solve tasks beyond the reach of current narrowly trained networks.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;This work is a collaboration between Googlers Łukasz Kaiser, Noam Shazeer, Ashish Vaswani, Niki Parmar, Llion Jones and Jakob Uszkoreit, and Aidan N. Gomez from the University of Toronto. It was performed while Aidan was working with the &lt;a href="https://research.google.com/teams/brain/"&gt;Google Brain team&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;hr width="80%"&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;a name="1"&gt;&lt;b&gt;1 &lt;/b&gt;&lt;/a&gt;The 8 tasks were: (1) speech recognition (WSJ corpus), (2) image classification (ImageNet), (3) image captioning (MS COCO), (4) parsing (Penn Treebank), (5) English-German translation, (6) German-English translation, (7) English-French translation, (8) French-English translation (all using WMT data-sets).&lt;a href="#top1"&gt;&lt;sup&gt;↩&lt;/sup&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=s17gRN9XoVk:Xqb2pKoB_3E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/s17gRN9XoVk" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/2630803594749953231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/06/multimodel-multi-task-machine-learning.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/2630803594749953231" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/2630803594749953231" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/s17gRN9XoVk/multimodel-multi-task-machine-learning.html" title="MultiModel: Multi-Task Machine Learning Across Domains" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-Xh_qqrpTLNg/WUm0gPKjXhI/AAAAAAAAB2c/caM8e8k6Rs8GEV_VwQQ8CNPZpEgPKn8uwCLcBGAs/s72-c/image1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/06/multimodel-multi-task-machine-learning.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-4421974660575473449</id><published>2017-06-19T14:30:00.000-07:00</published><updated>2017-06-19T14:37:02.473-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Natural Language Processing" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><category scheme="http://www.blogger.com/atom/ns#" term="Translate" /><title type="text">Accelerating Deep Learning Research with the Tensor2Tensor Library</title><content type="html">&lt;span class="byline-author"&gt;Posted by Łukasz Kaiser, Senior Research Scientist, Google Brain Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Deep Learning (DL) has enabled the rapid advancement of many useful technologies, such as &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;machine translation&lt;/a&gt;, &lt;a href="https://research.googleblog.com/2012/08/speech-recognition-and-deep-learning.html"&gt;speech recognition&lt;/a&gt; and &lt;a href="https://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html"&gt;object detection&lt;/a&gt;. In the research community, one can find code open-sourced by the authors to help in replicating their results and further advancing deep learning.  However, most of these DL systems use unique setups that require significant engineering effort and may only work for a specific problem or architecture, making it hard to run new experiments and compare the results.&lt;br /&gt;&lt;br /&gt;Today, we are happy to release &lt;a href="https://github.com/tensorflow/tensor2tensor"&gt;Tensor2Tensor&lt;/a&gt; (T2T), an open-source system for training deep learning models in TensorFlow. T2T facilitates the creation of state-of-the art models for a wide variety of ML applications, such as translation, parsing, image captioning and more, enabling the exploration of various ideas much faster than previously possible. This release also includes a library of datasets and models, including the best models from a few recent papers (&lt;a href="https://arxiv.org/abs/1706.03762"&gt;&lt;i&gt;Attention Is All You Need&lt;/i&gt;&lt;/a&gt;, &lt;a href="https://arxiv.org/abs/1706.03059"&gt;&lt;i&gt;Depthwise Separable Convolutions for Neural Machine Translation&lt;/i&gt;&lt;/a&gt; and &lt;a href="https://arxiv.org/abs/1706.05137"&gt;&lt;i&gt;One Model to Learn Them All&lt;/i&gt;&lt;/a&gt;) to help kick-start your own DL research.&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="1" cellspacing="0" style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Translation Model&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Training time&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;BLEU (difference from baseline)&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://arxiv.org/abs/1706.03762"&gt;Transformer&lt;/a&gt; (T2T)&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;3 days on 8 GPU&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;28.4 (+7.8)&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://arxiv.org/abs/1706.03059"&gt;SliceNet&lt;/a&gt; (T2T)&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;6 days on 32 GPUs&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;26.1 (+5.5)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="text-align: left;"&gt;&lt;a href="https://arxiv.org/abs/1701.06538"&gt;GNMT + Mixture of Experts  &lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;1 day on 64 GPUs&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;26.0 (+5.4)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://arxiv.org/abs/1705.03122"&gt;ConvS2S&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;18 days on 1 GPU&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;25.1 (+4.5)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;GNMT&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;1 day on 96 GPUs&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;24.6 (+4.0)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="text-align: left;"&gt;&lt;a href="https://arxiv.org/abs/1610.10099"&gt;ByteNet&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;8 days on 32 GPUs&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;23.8 (+3.2)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://matrix.statmt.org/matrix/systems_list/1745"&gt;MOSES&lt;/a&gt; (phrase-based baseline)&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;N/A&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;20.6 (+0.0)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;BLEU scores (higher is better) on the standard WMT English-German translation task.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;As an example of the kind of improvements T2T can offer, we applied the library to machine translation. As you can see in the table above, two different T2T models, SliceNet and Transformer, outperform the previous state-of-the-art, &lt;a href="https://arxiv.org/abs/1701.06538"&gt;GNMT+MoE&lt;/a&gt;. Our best T2T model, Transformer, is 3.8 points better than the standard &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;GNMT&lt;/a&gt; model, which itself was 4 points above the baseline &lt;a href="https://en.wikipedia.org/wiki/Statistical_machine_translation#Phrase-based_translation"&gt;phrase-based translation&lt;/a&gt; system, MOSES. Notably, with T2T you can approach previous state-of-the-art results with a single GPU in one day: a small Transformer model (not shown above) gets 24.9 BLEU after 1 day of training on a single GPU. Now everyone with a GPU can tinker with great translation models on their own: our &lt;a href="https://github.com/tensorflow/tensor2tensor"&gt;github repo&lt;/a&gt;&amp;nbsp;has &lt;a href="https://github.com/tensorflow/tensor2tensor/blob/master/README.md"&gt;instructions&lt;/a&gt; on how to do that.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt; &lt;b&gt;Modular Multi-Task Training&lt;/b&gt;&lt;br /&gt;The T2T library is built with familiar TensorFlow tools and defines multiple pieces needed in a deep learning system: data-sets, model architectures, optimizers, learning rate decay schemes, hyperparameters, and so on. Crucially, it enforces a standard interface between all these parts and implements current ML best practices. So you can pick any data-set, model, optimizer and set of hyperparameters, and run the training to check how it performs. We made the architecture modular, so every piece between the input data and the predicted output is a tensor-to-tensor function. If you have a new idea for the model architecture, you don’t need to replace the whole setup. You can keep the embedding part and the loss and everything else, just replace the model body by your own function that takes a tensor as input and returns a tensor.  &lt;br /&gt;&lt;br /&gt;This means that T2T is flexible, with training no longer pinned to a specific model or dataset. It is so easy that even architectures like the famous &lt;a href="https://arxiv.org/abs/1409.3215"&gt;LSTM sequence-to-sequence model&lt;/a&gt; can be defined in a &lt;a href="https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/baseline.py#L48"&gt;few dozen lines of code&lt;/a&gt;. One can also train a single model on multiple tasks from different domains. Taken to the limit, you can even train a single model on all data-sets concurrently, and we are happy to report that our &lt;a href="https://arxiv.org/abs/1706.05137"&gt;MultiModel&lt;/a&gt;, trained like this and included in T2T, yields good results on many tasks even when training jointly on ImageNet (image classification), &lt;a href="http://mscoco.org/"&gt;MS COCO&lt;/a&gt; (image captioning), &lt;a href="https://catalog.ldc.upenn.edu/ldc94s13a"&gt;WSJ&lt;/a&gt; (speech recognition), &lt;a href="http://www.statmt.org/wmt16/translation-task.html"&gt;WMT&lt;/a&gt; (translation) and the &lt;a href="https://catalog.ldc.upenn.edu/ldc99t42"&gt;Penn Treebank&lt;/a&gt; parsing corpus. It is the first time a single model has been demonstrated to be able to perform all these tasks at once.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Built-in Best Practices&lt;/b&gt;&lt;br /&gt;With this initial release, we also provide scripts to generate a number of data-sets widely used in the research community&lt;a href="#1" name="top1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;, a handful of models&lt;a href="#2" name="top2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;, a number of hyperparameter configurations, and a well-performing implementation of other important tricks of the trade. While it is hard to list them all, if you decide to run your model with T2T you’ll get for free the correct padding of sequences and the corresponding cross-entropy loss, well-tuned parameters for the Adam optimizer, adaptive batching, synchronous distributed training, well-tuned data augmentation for images, label smoothing, and a number of hyper-parameter configurations that worked very well for us, including the ones mentioned above that achieve the state-of-the-art results on translation and may help you get good results too.&lt;br /&gt;&lt;br /&gt;As an example, consider the task of parsing English sentences into their grammatical constituency trees. This problem has been studied for decades and competitive methods were developed with a lot of effort. It can be presented as a &lt;a href="https://arxiv.org/abs/1412.7449"&gt;sequence-to-sequence problem&lt;/a&gt; and be solved with neural networks, but it used to require a lot of tuning. With T2T, it took us only a few days to add the &lt;a href="https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/data_generators/wsj_parsing.py"&gt;parsing data-set generator&lt;/a&gt; and adjust our attention transformer model to train on this problem. To our pleasant surprise, we got very good results in only a week:&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="4" cellspacing="0" style="text-align: left; width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Parsing Model&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;F1 score (higher is better)&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://arxiv.org/abs/1706.03762"&gt;Transformer&lt;/a&gt; (T2T)&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;91.3&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://arxiv.org/abs/1602.07776"&gt;Dyer et al.&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;91.7&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.aclweb.org/anthology/P13-1043.pdf"&gt;Zhu et al. &lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;90.4&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.aclweb.org/anthology/P13-1045"&gt;Socher et al.&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;90.4&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://vinyals%20%26%20kaiser%20et%20al./"&gt;Vinyals &amp;amp; Kaiser et al.&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;88.3&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Parsing F1 scores on the standard test set, section 23 of the WSJ. We only compare here models trained discriminatively on the Penn Treebank WSJ training set, see the &lt;a href="https://arxiv.org/abs/1706.03762"&gt;paper&lt;/a&gt; for more results.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Contribute to Tensor2Tensor&lt;/b&gt;&lt;br /&gt;In addition to exploring existing models and data-sets, you can easily define your own model and add your own data-sets to Tensor2Tensor. We believe the already included models will perform very well for many NLP tasks, so just adding your data-set might lead to interesting results. By making T2T modular, we also make it very easy to contribute your own model and see how it performs on various tasks. In this way the whole community can benefit from a library of baselines and deep learning research can accelerate. So head to our &lt;a href="https://github.com/tensorflow/tensor2tensor"&gt;github repository&lt;/a&gt;, try the new models, and contribute your own!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;The release of &lt;a href="https://github.com/tensorflow/tensor2tensor"&gt;Tensor2Tensor&lt;/a&gt; was only possible thanks to the widespread collaboration of many engineers and researchers. We want to acknowledge here the core team who contributed (in alphabetical order): &lt;i&gt;Samy Bengio, Eugene Brevdo, Francois Chollet, Aidan N. Gomez, Stephan Gouws, Llion Jones, Łukasz Kaiser, Nal Kalchbrenner, Niki Parmar, Ryan Sepassi, Noam Shazeer, Jakob Uszkoreit, Ashish Vaswani.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr width="80%"&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;a name="1"&gt;&lt;b&gt;1 &lt;/b&gt;&lt;/a&gt;We include a number of datasets for image classification (MNIST, CIFAR-10, CIFAR-100, ImageNet), image captioning (MS COCO), translation (WMT with multiple languages including English-German and English-French), language modelling (LM1B), parsing (Penn Treebank), natural language inference (SNLI), speech recognition (TIMIT), algorithmic problems (over a dozen tasks from reversing through addition and multiplication to algebra) and we will be adding more and welcome your data-sets too.&lt;a href="#top1"&gt;&lt;sup&gt;↩&lt;/sup&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="2"&gt;&lt;b&gt;2 &lt;/b&gt;&lt;/a&gt;Including LSTM sequence-to-sequence RNNs, convolutional networks also with separable convolutions (e.g., Xception), recently researched models like ByteNet or the Neural GPU, and our new state-of-the-art models mentioned in this post that we will be actively updating in the repository.&lt;a href="#top2"&gt;&lt;sup&gt;↩&lt;/sup&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=V_hUfpQaFy4:RW2arYhuQjs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/V_hUfpQaFy4" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/4421974660575473449/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/06/accelerating-deep-learning-research.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/4421974660575473449" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/4421974660575473449" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/V_hUfpQaFy4/accelerating-deep-learning-research.html" title="Accelerating Deep Learning Research with the Tensor2Tensor Library" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/06/accelerating-deep-learning-research.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-776695066333371847</id><published>2017-06-15T10:00:00.000-07:00</published><updated>2017-06-20T11:42:53.920-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Perception" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">Supercharge your Computer Vision models with the TensorFlow Object Detection API</title><content type="html">&lt;span class="byline-author"&gt;Posted by Jonathan Huang, Research Scientist and Vivek Rathod, Software Engineer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(Cross-posted on the &lt;a href="http://opensource.googleblog.com/2017/06/supercharge-your-computer-vision-models.html"&gt;Google Open Source Blog&lt;/a&gt;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;At Google, we develop flexible state-of-the-art machine learning (ML) systems for computer vision that not only can be used to improve our products and services, but also &lt;a href="https://research.googleblog.com/2016/08/improving-inception-and-image.html"&gt;spur progress in the research community&lt;/a&gt;. Creating accurate ML models capable of localizing and identifying multiple objects in a single image remains a core challenge in the field, and we invest a significant amount of time training and experimenting with these systems. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-MO3T6Hybpkg/WUG-QjHrHbI/AAAAAAAAB2M/tQKa2ljTkRwYgtok3o_3Y6F5KCbC7a-qQCLcBGAs/s1600/image1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="1067" data-original-width="1600" height="426" src="https://2.bp.blogspot.com/-MO3T6Hybpkg/WUG-QjHrHbI/AAAAAAAAB2M/tQKa2ljTkRwYgtok3o_3Y6F5KCbC7a-qQCLcBGAs/s640/image1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Detected objects in a sample image (from the &lt;a href="http://mscoco.org/"&gt;COCO&lt;/a&gt; dataset) made by one of our models. Image credit: &lt;a href="https://www.flickr.com/photos/mike_miley/"&gt;Michael Miley&lt;/a&gt;, &lt;a href="https://www.flickr.com/photos/mike_miley/4678754542/in/photolist-88rQHL-88oBVp-88oC2B-88rS6J-88rSqm-88oBLv-88oBC4"&gt;original image&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Last October, our in-house object detection system achieved new state-of-the-art results, and placed first in the &lt;a href="http://mscoco.org/dataset/#detections-leaderboard"&gt;COCO detection challenge&lt;/a&gt;. Since then, this system has generated results for a number of research publications&lt;sup&gt;1,2,3,4,5,6,7&lt;/sup&gt; and has been put to work in Google products such as &lt;a href="https://nest.com/nest-aware/"&gt;NestCam&lt;/a&gt;, the &lt;a href="https://www.blog.google/products/search/now-image-search-can-jump-start-your-search-style/"&gt;similar items and style ideas&lt;/a&gt; feature in Image Search and &lt;a href="https://research.googleblog.com/2017/05/updating-google-maps-with-deep-learning.html"&gt;street number and name detection&lt;/a&gt; in Street View.&lt;br /&gt;&lt;br /&gt;Today we are happy to make this system available to the broader research community via the &lt;a href="https://github.com/tensorflow/models/tree/master/object_detection"&gt;TensorFlow Object Detection API&lt;/a&gt;.  This codebase is an open-source framework built on top of &lt;a href="https://www.tensorflow.org/"&gt;TensorFlow&lt;/a&gt; that makes it easy to construct, train and deploy object detection models.  Our goals in designing this system was to support state-of-the-art models while allowing for rapid exploration and research.  Our first release contains the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A selection of trainable detection models, including:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1512.02325"&gt;Single Shot Multibox Detector&lt;/a&gt; (SSD) with &lt;a href="http://research.googleblog.com/2017/06/mobilenets-open-source-models-for.html"&gt;MobileNets&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SSD with &lt;a href="https://arxiv.org/abs/1512.00567"&gt;Inception V2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1605.06409"&gt;Region-Based Fully Convolutional Networks&lt;/a&gt; (R-FCN) with &lt;a href="https://arxiv.org/abs/1512.03385"&gt;Resnet 101&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1506.01497"&gt;Faster RCNN&lt;/a&gt; with Resnet 101&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1506.01497"&gt;Faster RCNN&lt;/a&gt; with &lt;a href="https://arxiv.org/abs/1602.07261"&gt;Inception Resnet v2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Frozen weights (trained on the &lt;a href="http://mscoco.org/"&gt;COCO dataset&lt;/a&gt;) for each of the above models to be used for out-of-the-box inference purposes.&lt;/li&gt;&lt;li&gt;A &lt;a href="https://github.com/tensorflow/models/tree/master/object_detection/object_detection_tutorial.ipynb"&gt;Jupyter notebook&lt;/a&gt; for performing out-of-the-box inference with one of our released models&lt;/li&gt;&lt;li&gt;Convenient local training scripts as well as distributed training and evaluation pipelines via Google Cloud&lt;/li&gt;&lt;/ul&gt;The SSD models that use MobileNet are lightweight, so that they can be comfortably run in real time on mobile devices. Our winning COCO submission in 2016 used an ensemble of the Faster RCNN models, which are more computationally intensive but significantly more accurate.  For more details on the performance of these models, see our &lt;a href="https://arxiv.org/abs/1611.10012"&gt;CVPR 2017 paper&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Are you ready to get started?&lt;/b&gt;&lt;br /&gt;We’ve certainly found this code to be useful for our computer vision needs, and we hope that you will as well.  Contributions to the codebase are welcome and please stay tuned for our own further updates to the framework. To get started, download the code &lt;a href="https://github.com/tensorflow/models/tree/master/object_detection"&gt;here&lt;/a&gt; and try detecting objects in some of your own images using the &lt;a href="https://github.com/tensorflow/models/tree/master/object_detection/object_detection_tutorial.ipynb"&gt;Jupyter notebook&lt;/a&gt;, or &lt;a href="https://cloud.google.com/blog/big-data/2017/06/training-an-object-detector-using-cloud-machine-learning-engine"&gt;training your own pet detector on Cloud ML engine&lt;/a&gt;!   &lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt; &lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;The release of the Tensorflow Object Detection API and the pre-trained model zoo has been the result of widespread collaboration among Google researchers with feedback and testing from product groups. In particular we want to highlight the contributions of the following individuals:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Core Contributors:&lt;/b&gt; &lt;i&gt;Derek Chow, Chen Sun, Menglong Zhu, Matthew Tang, Anoop Korattikara, Alireza Fathi, Ian Fischer, Zbigniew Wojna, Yang Song, Sergio Guadarrama, Jasper Uijlings, Viacheslav Kovalevskyi, Kevin Murphy&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Also special thanks to:&lt;/b&gt; &lt;i&gt;Andrew Howard, Rahul Sukthankar, Vittorio Ferrari, Tom Duerig, Chuck Rosenberg, Hartwig Adam, Jing Jing Long, Victor Gomes, George Papandreou, Tyler Zhu&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1611.10012"&gt;Speed/accuracy trade-offs for modern convolutional object detectors&lt;/a&gt;, &lt;i&gt;Huang et al., CVPR 2017 (paper describing this framework)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1701.01779"&gt;Towards Accurate Multi-person Pose Estimation in the Wild&lt;/a&gt;, &lt;i&gt;Papandreou et al., CVPR 2017&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1702.00824"&gt;YouTube-BoundingBoxes: A Large High-Precision Human-Annotated Data Set for Object Detection in Video&lt;/a&gt;, &lt;i&gt;Real et al., CVPR 2017 (see also our &lt;a href="https://research.googleblog.com/2017/02/advancing-research-on-video.html"&gt;blog post&lt;/a&gt;)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1612.06851"&gt;Beyond Skip Connections: Top-Down Modulation for Object Detection&lt;/a&gt;, &lt;i&gt;Shrivastava et al., arXiv preprint arXiv:1612.06851, 2016&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1612.02297"&gt;Spatially Adaptive Computation Time for Residual Networks&lt;/a&gt;, &lt;i&gt;Figurnov et al., CVPR 2017&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1705.08421"&gt;AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions&lt;/a&gt;, &lt;i&gt;Gu et al., arXiv preprint arXiv:1705.08421, 2017&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://arxiv.org/abs/1704.04861"&gt;MobileNets: Efficient convolutional neural networks for mobile vision applications&lt;/a&gt;, &lt;i&gt;Howard et al., arXiv preprint arXiv:1704.04861, 2017&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=jzLZSFviPok:OXC5NnMzlOQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/jzLZSFviPok" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/776695066333371847/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/776695066333371847" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/776695066333371847" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/jzLZSFviPok/supercharge-your-computer-vision-models.html" title="Supercharge your Computer Vision models with the TensorFlow Object Detection API" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-MO3T6Hybpkg/WUG-QjHrHbI/AAAAAAAAB2M/tQKa2ljTkRwYgtok3o_3Y6F5KCbC7a-qQCLcBGAs/s72-c/image1.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-49284620403683891</id><published>2017-06-14T10:00:00.000-07:00</published><updated>2017-06-19T17:14:36.088-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Perception" /><category scheme="http://www.blogger.com/atom/ns#" term="Neural Networks" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">MobileNets: Open-Source Models for Efficient On-Device Vision</title><content type="html">&lt;span class="byline-author"&gt;Posted by Andrew G. Howard, Senior Software Engineer and Menglong Zhu, Software Engineer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(Cross-posted on the &lt;a href="https://opensource.googleblog.com/2017/06/mobilenets-open-source-models-for.html"&gt;Google Open Source Blog&lt;/a&gt;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Deep learning has fueled tremendous progress in the field of computer vision in recent years, with neural networks repeatedly pushing the &lt;a href="https://research.googleblog.com/2016/08/improving-inception-and-image.html"&gt;frontier of visual recognition technology&lt;/a&gt;. While many of those technologies such as object, landmark, logo and text recognition are provided for internet-connected devices through the &lt;a href="https://cloud.google.com/vision"&gt;Cloud Vision API&lt;/a&gt;, we believe that the ever-increasing computational power of mobile devices can enable the delivery of these technologies into the hands of our users, anytime, anywhere, regardless of internet connection. However, visual recognition for on device and embedded applications poses many challenges — models must run quickly with high accuracy in a resource-constrained environment making use of limited computation, power and space. &lt;br /&gt;&lt;br /&gt;Today we are pleased to announce the release of &lt;a href="https://github.com/tensorflow/models/blob/master/slim/nets/mobilenet_v1.md"&gt;MobileNets&lt;/a&gt;, a family of &lt;i&gt;mobile-first&lt;/i&gt; computer vision models for &lt;a href="https://www.tensorflow.org/"&gt;TensorFlow&lt;/a&gt;, designed to effectively maximize accuracy while being mindful of the restricted resources for an on-device or embedded application. MobileNets are small, low-latency, low-power models parameterized to meet the resource constraints of a variety of use cases. They can be built upon for classification, detection, embeddings and segmentation similar to how other popular large scale models, such as &lt;a href="https://arxiv.org/pdf/1602.07261.pdf"&gt;Inception&lt;/a&gt;, are used. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-ujGePiv1gZ8/WUBjrgwrPmI/AAAAAAAAB14/zOw9URnrMnIbe7Vv8ftYT4PsnH7S-gJIQCLcBGAs/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="395" data-original-width="1024" height="246" src="https://3.bp.blogspot.com/-ujGePiv1gZ8/WUBjrgwrPmI/AAAAAAAAB14/zOw9URnrMnIbe7Vv8ftYT4PsnH7S-gJIQCLcBGAs/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example use cases include detection, fine-grain classification, attributes and geo-localization.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;This release contains the model definition for MobileNets in TensorFlow using &lt;a href="https://github.com/tensorflow/models/blob/master/inception/inception/slim/README.md"&gt;TF-Slim&lt;/a&gt;, as well as 16 pre-trained &lt;a href="http://www.image-net.org/challenges/LSVRC/"&gt;ImageNet&lt;/a&gt; classification checkpoints for use in mobile projects of all sizes. The models can be run efficiently on mobile devices with &lt;a href="https://www.tensorflow.org/mobile/"&gt;TensorFlow Mobile&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table border="1" cellpadding="1" cellspacing="0" style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: lightblue; text-align: center;"&gt;&lt;b&gt;Model Checkpoint&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="background-color: lightblue; text-align: center;"&gt;&lt;b&gt;Million MACs&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="background-color: lightblue; text-align: center;"&gt;&lt;b&gt;Million Parameters&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="background-color: lightblue; text-align: center;"&gt;&lt;b&gt;Top-1 Accuracy&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="background-color: lightblue; text-align: center;"&gt;&lt;b&gt;Top-5 Accuracy&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_1.0_224_2017_06_14.tar.gz"&gt;MobileNet_v1_1.0_224&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;569&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;4.24&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;70.7&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;89.5&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_1.0_192_2017_06_14.tar.gz"&gt;MobileNet_v1_1.0_192&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;418&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;4.24&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;69.3&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;88.9&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_1.0_160_2017_06_14.tar.gz"&gt;MobileNet_v1_1.0_160&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;291&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;4.24&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;67.2&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;87.5&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_1.0_128_2017_06_14.tar.gz"&gt;MobileNet_v1_1.0_128&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;186&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;4.24&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;64.1&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;85.3&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://http//download.tensorflow.org/models/mobilenet_v1_0.75_224_2017_06_14.tar.gz"&gt;MobileNet_v1_0.75_224&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;317&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;2.59&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;68.4&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;88.2&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.75_192_2017_06_14.tar.gz"&gt;MobileNet_v1_0.75_192&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;233&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;2.59&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;67.4&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;87.3&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.75_160_2017_06_14.tar.gz"&gt;MobileNet_v1_0.75_160&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;162&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;2.59&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;65.2&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;86.1&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.75_128_2017_06_14.tar.gz"&gt;MobileNet_v1_0.75_128&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;104&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;2.59&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;61.8&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;83.6&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.50_224_2017_06_14.tar.gz"&gt;MobileNet_v1_0.50_224&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;1.34&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;64.0&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;85.4&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.50_192_2017_06_14.tar.gz"&gt;MobileNet_v1_0.50_192&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;110&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;1.34&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;62.1&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;84.0&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.50_160_2017_06_14.tar.gz"&gt;MobileNet_v1_0.50_160&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;77&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;1.34&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;59.9&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;82.5&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.50_128_2017_06_14.tar.gz"&gt;MobileNet_v1_0.50_128&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;49&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;1.34&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;56.2&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;79.6&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.25_224_2017_06_14.tar.gz"&gt;MobileNet_v1_0.25_224&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;41&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;0.47&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;50.6&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;75.0&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.25_192_2017_06_14.tar.gz"&gt;MobileNet_v1_0.25_192&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;34&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;0.47&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;49.0&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;73.6&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.25_160_2017_06_14.tar.gz"&gt;MobileNet_v1_0.25_160&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;21&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;0.47&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;46.0&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;70.7&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="background-color: orange; text-align: center;"&gt;&lt;a href="http://download.tensorflow.org/models/mobilenet_v1_0.25_128_2017_06_14.tar.gz"&gt;MobileNet_v1_0.25_128&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;14&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;0.47&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;41.3&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;66.2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Choose the right MobileNet model to fit your latency and size budget. The size of the network in memory and on disk is proportional to the number of parameters. The latency and power usage of the network scales with the number of Multiply-Accumulates (MACs) which measures the number of fused Multiplication and Addition operations. Top-1 and Top-5 accuracies are measured on the &lt;a href="http://www.image-net.org/challenges/LSVRC/"&gt;ILSVRC dataset&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We are excited to share MobileNets with the open-source community. Information for getting started can be found at the &lt;a href="https://github.com/tensorflow/models/blob/master/slim/README.md"&gt;TensorFlow-Slim Image Classification Library&lt;/a&gt;. To learn how to run models on-device please go to &lt;a href="https://www.tensorflow.org/mobile/"&gt;TensorFlow Mobile&lt;/a&gt;. You can read more about the technical details of MobileNets in our paper, &lt;a href="https://arxiv.org/abs/1704.04861"&gt;MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;MobileNets were made possible with the hard work of many engineers and researchers throughout Google. Specifically we would like to thank:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Core Contributors:&lt;/b&gt; &lt;i&gt;Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, Hartwig Adam&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Special thanks to:&lt;/b&gt; &lt;i&gt;Benoit Jacob, Skirmantas Kligys, George Papandreou, Liang-Chieh Chen, Derek Chow, Sergio Guadarrama, Jonathan Huang, Andre Hentz, Pete Warden&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=U0VgnWN1kn4:9jLPOsIYGJU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/U0VgnWN1kn4" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/49284620403683891/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/06/mobilenets-open-source-models-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/49284620403683891" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/49284620403683891" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/U0VgnWN1kn4/mobilenets-open-source-models-for.html" title="MobileNets: Open-Source Models for Efficient On-Device Vision" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-ujGePiv1gZ8/WUBjrgwrPmI/AAAAAAAAB14/zOw9URnrMnIbe7Vv8ftYT4PsnH7S-gJIQCLcBGAs/s72-c/image1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/06/mobilenets-open-source-models-for.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-6559586486192368933</id><published>2017-05-24T11:00:00.000-07:00</published><updated>2017-05-24T13:52:26.564-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Gboard" /><category scheme="http://www.blogger.com/atom/ns#" term="Keyboard Input" /><category scheme="http://www.blogger.com/atom/ns#" term="Neural Networks" /><category scheme="http://www.blogger.com/atom/ns#" term="Speech Recognition" /><title type="text">The Machine Intelligence Behind Gboard</title><content type="html">&lt;span class="byline-author"&gt;Posted by Françoise Beaufays, Principal Scientist, Speech and Keyboard Team and Michael Riley, Principal Scientist, Speech and Languages Algorithms Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Most people spend a significant amount of time each day using mobile-device keyboards: composing emails, texting, engaging in social media, and more. Yet, mobile keyboards are still cumbersome to handle. The average user is roughly 35% slower typing on a mobile device than on a physical keyboard. To change that, we recently provided &lt;a href="https://blog.google/products/search/gboard-android-gets-new-languages-and-tools/"&gt;many exciting improvements&lt;/a&gt; to &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin"&gt;Gboard for Android&lt;/a&gt;, working towards our vision of creating an intelligent mechanism that enables faster input while offering suggestions and correcting mistakes, in any language you choose. &lt;br /&gt;&lt;br /&gt;With the realization that the way a mobile keyboard translates touch inputs into text is similar to how a speech recognition system translates voice inputs into text, we leveraged our experience in Speech Recognition to pursue our vision. First, we created robust spatial models that map fuzzy sequences of raw touch points to keys on the keyboard, just like acoustic models map sequences of sound bites to phonetic units. Second, we built a powerful core decoding engine based on &lt;a href="https://en.wikipedia.org/wiki/Finite-state_transducer"&gt;finite state transducers&lt;/a&gt; (FST) to determine the likeliest word sequence given an input touch sequence. With its mathematical formalism and broad success in speech applications, we knew that an FST decoder would offer the flexibility needed to support a variety of complex keyboard input behaviors as well as language features. In this post, we will detail what went into the development of both of these systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Neural Spatial Models&lt;/b&gt;&lt;br /&gt;Mobile keyboard input is subject to errors that are generally attributed to “fat finger typing” (or tracing spatially similar words in glide typing, as illustrated below) along with cognitive and motor errors (manifesting in misspellings, character insertions, deletions or swaps, etc). An intelligent keyboard needs to be able to account for these errors and predict the intended words rapidly and accurately. As such, we built a spatial model for Gboard that addresses these errors at the character level, mapping the touch points on the screen to actual keys.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-7htLmt4v5Yw/WSW8UsoXeKI/AAAAAAAAB1U/PsaG7sKYAtwUVaiTbU_qz-6xNwXzN3aOQCLcB/s1600/image2.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="432" data-original-width="576" height="480" src="https://4.bp.blogspot.com/-7htLmt4v5Yw/WSW8UsoXeKI/AAAAAAAAB1U/PsaG7sKYAtwUVaiTbU_qz-6xNwXzN3aOQCLcB/s640/image2.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Average glide trails for two spatially-similar words: “Vampire” and “Value”.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Up to recently, Gboard used a Gaussian model to quantify the probability of tapping neighboring keys and a rule-based model to represent cognitive and motor errors. These models were simple and intuitive, but they didn’t allow us to directly optimize metrics that correlate with better typing quality. Drawing on our experience with &lt;a href="https://research.googleblog.com/2015/09/google-voice-search-faster-and-more.html"&gt;Voice Search acoustic models&lt;/a&gt; we replaced both the Gaussian and rule-based models with a single, highly efficient &lt;a href="https://en.wikipedia.org/wiki/Long_short-term_memory"&gt;long short-term memory&lt;/a&gt; (LSTM) model trained with a &lt;a href="ftp://ftp.idsia.ch/pub/juergen/icml2006.pdf"&gt;connectionist temporal classification&lt;/a&gt; (CTC) criterion.&lt;br /&gt;&lt;br /&gt;However, training this model turned out to be a lot more complicated than we had anticipated. While acoustic models are trained from human-transcribed audio data, one cannot easily transcribe millions of touch point sequences and glide traces. So the team exploited user-interaction signals, e.g. reverted auto-corrections and suggestion picks as negative and positive semi-supervised learning signals, to form rich training and test sets. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-Q8bVYEwuTnw/WSW9PRtDRSI/AAAAAAAAB1c/vY4UfiCFETAAplzo1-QHW76PwkQUXvkXgCLcB/s1600/f2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="728" data-original-width="1533" height="302" src="https://2.bp.blogspot.com/-Q8bVYEwuTnw/WSW9PRtDRSI/AAAAAAAAB1c/vY4UfiCFETAAplzo1-QHW76PwkQUXvkXgCLcB/s640/f2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Raw data points corresponding to the word “could” (left), and normalized sampled trajectory with per-sample variances (right).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;A plethora of techniques from the speech recognition literature was used to iterate on the NSM models to make them small and fast enough to be run on any device. The &lt;a href="https://www.tensorflow.org/"&gt;TensorFlow&lt;/a&gt; infrastructure was used to train hundreds of models, optimizing various signals surfaced by the keyboard: completions, suggestions, gliding, etc. After more than a year of work, the resulting models were about 6 times faster and 10 times smaller than the initial versions, they also showed about 15% reduction in bad autocorrects and 10% reduction in wrongly decoded gestures on offline datasets.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Finite-State Transducers&lt;/b&gt;&lt;br /&gt;While the NSM uses spatial information to help determine what was tapped or swiped, there are additional constraints — &lt;i&gt;lexical&lt;/i&gt; and &lt;i&gt;grammatical&lt;/i&gt; — that can be brought to bear. A lexicon tells us what words occur in a language and a probabilistic grammar tells us what words are likely to follow other words. To encode this information we use finite-state transducers. FSTs have long been a key component of Google’s speech recognition and synthesis systems. They provide a principled way to represent various probabilistic models (lexicons, grammars, normalizers, etc) used in natural language processing together with the mathematical framework needed to manipulate, optimize, combine and search the models&lt;a href="#1" name="top1"&gt;&lt;sup&gt;*&lt;/sup&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;In Gboard, a key-to-word transducer compactly represents the keyboard lexicon as shown in the figure below.  It encodes the mapping from key sequences to words, allowing for alternative key sequences and optional spaces.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-J9yqtO7u-Nw/WSW9nXoRWiI/AAAAAAAAB1g/NLCjKa-0KSIVcQXtSTmuqdyO-xaNL0wHACLcB/s1600/image7.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="267" data-original-width="651" height="262" src="https://4.bp.blogspot.com/-J9yqtO7u-Nw/WSW9nXoRWiI/AAAAAAAAB1g/NLCjKa-0KSIVcQXtSTmuqdyO-xaNL0wHACLcB/s640/image7.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;This transducer encodes “I”, “I’ve”, “If” along paths from the start state (the bold circle 1) to final states (the double circle states 0 and 1). Each arc is labeled with an input key (before the “:”) and a corresponding output word (after the “:”) where ε encodes the empty symbol. The apostrophe in “I’ve” can be omitted. The user may skip the space bar sometimes. To account for that, the space key transition between words in the transducer is optional. The ε and space back arcs allow accepting more than one word.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;A probabilistic n-gram transducer is used to represent the language model for the keyboard. A state in the model represents an (up to) n-1 word context and an arc leaving that state is labeled with a successor word together with its probability of following that context (estimated from textual data). These, together with the spatial model that gives the likelihoods of sequences of key touches (discrete tap entries or continuous gestures in glide typing), are combined and explored with a&lt;a href="https://en.wikipedia.org/wiki/Beam_search"&gt; beam search&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Generic FST principles, such as streaming, support for dynamic models, etc took us a long way towards building a new keyboard decoder, but several new functionalities also had to be added. When you speak, you don’t need the decoder to complete your words or guess what you will say next to save you a few syllables; but when you type, you appreciate the help of word completions and predictions. Also, we wanted the keyboard to provide seamless multilingual support, as shown below.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-Oz-oMYfar8I/WSW90Jo866I/AAAAAAAAB1k/GO-9rpbpTcMhsfy3edD3lgcjXlLlTQjlwCLcB/s1600/image6.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="800" data-original-width="600" height="640" src="https://1.bp.blogspot.com/-Oz-oMYfar8I/WSW90Jo866I/AAAAAAAAB1k/GO-9rpbpTcMhsfy3edD3lgcjXlLlTQjlwCLcB/s640/image6.gif" width="480" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Trilingual input typing in Gboard.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;It was a complex effort to get our new decoder off the ground, but the principled nature of FSTs has many benefits. For example, supporting transliterations for languages like Hindi is just a simple extension of the generic decoder.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Transliteration Models&lt;/b&gt;&lt;br /&gt;In many languages with complex scripts, romanization systems have been developed to map characters into the Latin alphabet, often according to their phonetic pronunciations. For example, the Pinyin “xièxiè” corresponds to the Chinese characters “谢谢” (“thank you”). A Pinyin keyboard allows users to conveniently type words on a QWERTY layout and have them automatically “translated” into the target script. Likewise, a transliterated Hindi keyboard allows users to type “daanth” for “दांत” (teeth). Whereas Pinyin is an agreed-upon romanization system, Hindi transliterations are more fuzzy; for example “daant” would be a valid alternative for “दांत”.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-8CuSHDQtrd0/WSW9_xZDH3I/AAAAAAAAB1o/eDBYuZeA7okkwCBZ_8sZu0xBcQ8bbel_QCLcB/s1600/image5.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" data-original-height="461" data-original-width="576" height="512" src="https://2.bp.blogspot.com/-8CuSHDQtrd0/WSW9_xZDH3I/AAAAAAAAB1o/eDBYuZeA7okkwCBZ_8sZu0xBcQ8bbel_QCLcB/s640/image5.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Transliterated glide input for Hindi.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Just as we have a transducer mapping from letter sequences to words (a lexicon) and a weighted language model automaton providing probabilities for word sequences, we built weighted transducer mappings between Latin key sequences and target script symbol sequences for 22 Indic languages. Some languages have multiple writing systems (Bodo for example can be written in the Bengali or Devanagari scripts) so between transliterated and native layouts, we built 57 new input methods in just a few months.&lt;br /&gt;&lt;br /&gt;The general nature of the FST decoder let us leverage all the work we had done to support completions, predictions, glide typing and many UI features with no extra effort, allowing us to offer a rich experience to our Indian users right from the start.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A More Intelligent Keyboard&lt;/b&gt;&lt;br /&gt;All in all, our recent work cut the decoding latency by 50%, reduced the fraction of words users have to manually correct by more than 10%, allowed us to launch transliteration support for the 22 official languages of India, and enabled many new features you may have noticed. &lt;br /&gt;&lt;br /&gt;While we hope that these recent changes improve your typing experience, we recognize that on-device typing is by no means solved. Gboard can still make suggestions that seem nonintuitive or of low utility and gestures can still be decoded to words a human would never pick. However, our shift towards powerful machine intelligence algorithms has opened new spaces that we’re actively exploring to make more useful tools and products for our users worldwide. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgments&lt;/b&gt;&lt;br /&gt;This work was done by Cyril Allauzen, Ouais Alsharif, Lars Hellsten, Tom Ouyang, Brian Roark and David Rybach, with help from Speech Data Operation team. Special thanks go to Johan Schalkwyk and Corinna Cortes for their support.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;a name="1"&gt;&lt;b&gt;* &lt;/b&gt;&lt;/a&gt;The toolbox of relevant algorithms is available in the &lt;a href="http://www.openfst.org/"&gt;OpenFst&lt;/a&gt; open-source library.&lt;a href="#top1"&gt;&lt;sup&gt;↩&lt;/sup&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=GFnIEA0AMZI:xjlw7nEn2aY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/GFnIEA0AMZI" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/6559586486192368933/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/the-machine-intelligence-behind-gboard.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6559586486192368933" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6559586486192368933" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/GFnIEA0AMZI/the-machine-intelligence-behind-gboard.html" title="The Machine Intelligence Behind Gboard" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-7htLmt4v5Yw/WSW8UsoXeKI/AAAAAAAAB1U/PsaG7sKYAtwUVaiTbU_qz-6xNwXzN3aOQCLcB/s72-c/image2.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/the-machine-intelligence-behind-gboard.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-3118081168848036629</id><published>2017-05-17T11:30:00.000-07:00</published><updated>2017-05-17T11:54:21.814-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="distributed systems" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Research" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><category scheme="http://www.blogger.com/atom/ns#" term="TPU" /><title type="text">Introducing the TensorFlow Research Cloud</title><content type="html">&lt;span class="byline-author"&gt;Posted by Zak Stone, Product Manager for TensorFlow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Researchers require enormous computational resources to train the machine learning (ML) models that have delivered recent breakthroughs in &lt;a href="https://research.googleblog.com/2017/03/assisting-pathologists-in-detecting.html"&gt;medical imaging&lt;/a&gt;, &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;neural machine translation&lt;/a&gt;, &lt;a href="https://deepmind.com/research/alphago/"&gt;game playing&lt;/a&gt;, and many other domains. We believe that significantly larger amounts of computation will make it possible for researchers to invent new types of ML models that will be even more accurate and useful. &lt;br /&gt;&lt;br /&gt;To accelerate the pace of open machine-learning research, we are introducing the &lt;a href="https://www.tensorflow.org/tfrc"&gt;TensorFlow Research Cloud&lt;/a&gt; (TFRC), a cluster of 1,000 &lt;a href="https://cloud.google.com/tpu/"&gt;Cloud TPUs&lt;/a&gt; that will be made available free of charge to support a broad range of computationally-intensive research projects that might not be possible otherwise.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-xojf3dn8Ngc/WRubNXxUZJI/AAAAAAAAB1A/0W7o1hR_n20QcWyXHXDI1OTo7vXBR8f7QCLcB/s1600/image2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://2.bp.blogspot.com/-xojf3dn8Ngc/WRubNXxUZJI/AAAAAAAAB1A/0W7o1hR_n20QcWyXHXDI1OTo7vXBR8f7QCLcB/s400/image2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;The TensorFlow Research Cloud offers researchers the following benefits:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Access to Google’s all-new &lt;a href="https://cloud.google.com/tpu/"&gt;Cloud TPUs&lt;/a&gt; that accelerate both training &lt;i&gt;and&lt;/i&gt; inference&lt;/li&gt;&lt;li&gt;Up to 180 teraflops of floating-point performance per Cloud TPU&lt;/li&gt;&lt;li&gt;64 GB of ultra-high-bandwidth memory per Cloud TPU&lt;/li&gt;&lt;li&gt;Familiar TensorFlow programming interfaces&lt;/li&gt;&lt;/ul&gt;You can &lt;a href="https://services.google.com/fb/forms/tpusignup/"&gt;sign up here&lt;/a&gt; to request to be notified when the TensorFlow Research Cloud application process opens, and you can optionally share more information about your computational needs. We plan to evaluate applications on a rolling basis in search of the most creative and ambitious proposals.&lt;br /&gt;&lt;br /&gt;The TensorFlow Research Cloud program is not limited to academia — we recognize that people with a wide range of affiliations, roles, and expertise are making major machine learning research contributions, and we especially encourage those with non-traditional backgrounds to apply. Access will be granted to selected individuals for limited amounts of compute time, and researchers are welcome to apply multiple times with multiple projects.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-JUR4rwPNfLc/WRubZSqnXTI/AAAAAAAAB1E/UDYOeQEJYwA362ko7ZptX0ROSvLsloqUgCLcB/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="425" src="https://3.bp.blogspot.com/-JUR4rwPNfLc/WRubZSqnXTI/AAAAAAAAB1E/UDYOeQEJYwA362ko7ZptX0ROSvLsloqUgCLcB/s640/image1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Since the main goal of the TensorFlow Research Cloud is to benefit the open machine learning research community as a whole, successful applicants will be expected to do the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Share their TFRC-supported research with the world through peer-reviewed publications, open-source code, blog posts, or other open media&lt;/li&gt;&lt;li&gt;Share concrete, constructive feedback with Google to help us improve the TFRC program and the underlying Cloud TPU platform over time&lt;/li&gt;&lt;li&gt;Imagine a future in which ML acceleration is abundant and develop new kinds of machine learning models in anticipation of that future&lt;/li&gt;&lt;/ul&gt;For businesses interested in using Cloud TPUs for proprietary research and development, we will offer a parallel Cloud TPU Alpha program. You can &lt;a href="https://services.google.com/fb/forms/tpusignup/"&gt;sign up here&lt;/a&gt; to learn more about this program. We recommend participating in the Cloud TPU Alpha program if you are interested in any of the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Accelerating training of proprietary ML models; models that take weeks to train on other hardware can be trained in days or even hours on Cloud TPUs&lt;/li&gt;&lt;li&gt;Accelerating batch processing of industrial-scale datasets: images, videos, audio, unstructured text, structured data, etc.&lt;/li&gt;&lt;li&gt;Processing live requests in production using larger and more complex ML models than ever before&lt;/li&gt;&lt;/ul&gt;We hope the &lt;a href="https://www.tensorflow.org/tfrc"&gt;TensorFlow Research Cloud&lt;/a&gt; will allow as many researchers as possible to explore the frontier of machine learning research and extend it with new discoveries! We encourage you to &lt;a href="https://services.google.com/fb/forms/tpusignup"&gt;sign up today&lt;/a&gt; to be among the first to know as more information becomes available.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=x4guySNUTEU:f-UEUXiO_jU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/x4guySNUTEU" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/3118081168848036629/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/introducing-tensorflow-research-cloud.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/3118081168848036629" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/3118081168848036629" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/x4guySNUTEU/introducing-tensorflow-research-cloud.html" title="Introducing the TensorFlow Research Cloud" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-xojf3dn8Ngc/WRubNXxUZJI/AAAAAAAAB1A/0W7o1hR_n20QcWyXHXDI1OTo7vXBR8f7QCLcB/s72-c/image2.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/introducing-tensorflow-research-cloud.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-6067111607818350524</id><published>2017-05-17T10:00:00.001-07:00</published><updated>2017-05-17T10:40:59.829-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><title type="text">Using Machine Learning to Explore Neural Network Architecture</title><content type="html">&lt;span class="byline-author"&gt;Posted by Quoc Le &amp;amp; Barret Zoph, Research Scientists, Google Brain team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At Google, we have successfully applied deep learning models to many applications, from &lt;a href="https://research.googleblog.com/2014/09/building-deeper-understanding-of-images.html"&gt;image recognition&lt;/a&gt; to &lt;a href="https://research.googleblog.com/2012/08/speech-recognition-and-deep-learning.html"&gt;speech recognition&lt;/a&gt; to &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;machine translation&lt;/a&gt;. Typically, our machine learning models are painstakingly designed by a team of engineers and scientists. This process of manually designing machine learning models is difficult because the search space of all possible models can be combinatorially large — a typical 10-layer network can have ~10&lt;sup&gt;10&lt;/sup&gt; candidate networks! For this reason, the process of designing networks often takes a significant amount of time and experimentation by those with significant machine learning expertise. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-8Lsg0rnxl7k/WRtttN18MKI/AAAAAAAAB0o/KpHbFnYBmTYQ3dBjVLimPUkKphU_qLBfgCLcB/s1600/image2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="188" src="https://3.bp.blogspot.com/-8Lsg0rnxl7k/WRtttN18MKI/AAAAAAAAB0o/KpHbFnYBmTYQ3dBjVLimPUkKphU_qLBfgCLcB/s640/image2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Our &lt;a href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43022.pdf"&gt;GoogleNet&lt;/a&gt; architecture.  Design of this network required many years of careful experimentation and refinement from initial versions of convolutional architectures.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;To make this process of designing machine learning models much more accessible, we’ve been exploring ways to automate the design of machine learning models. Among many algorithms we’ve studied, &lt;a href="https://arxiv.org/abs/1703.01041"&gt;evolutionary algorithms&lt;/a&gt; [1] and &lt;a href="https://arxiv.org/abs/1611.01578"&gt;reinforcement learning algorithms&lt;/a&gt; [2] have shown great promise. But in this blog post, we’ll focus on our reinforcement learning approach and the early results we’ve gotten so far.&lt;br /&gt;&lt;br /&gt;In our approach (which we call "AutoML"), a controller neural net can propose a “child” model architecture, which can then be trained and evaluated for quality on a particular task. That feedback is then used to inform the controller how to improve its proposals for the next round. We repeat this process thousands of times — generating new architectures, testing them, and giving that feedback to the controller to learn from. Eventually the controller learns to assign high probability to areas of architecture space that achieve better accuracy on a held-out validation dataset, and low probability to areas of architecture space that score poorly. Here’s what the process looks like:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-0nzARW3QtkA/WRtuVsUJ02I/AAAAAAAAB0s/t6ncpAH6VfIzkr2tWW8CnE6U2Es2Bs1BgCLcB/s1600/image3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="https://1.bp.blogspot.com/-0nzARW3QtkA/WRtuVsUJ02I/AAAAAAAAB0s/t6ncpAH6VfIzkr2tWW8CnE6U2Es2Bs1BgCLcB/s640/image3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;We’ve applied this approach to two heavily benchmarked datasets in deep learning: image recognition with &lt;a href="https://www.cs.toronto.edu/~kriz/cifar.html"&gt;CIFAR-10&lt;/a&gt; and language modeling with &lt;a href="https://catalog.ldc.upenn.edu/ldc99t42"&gt;Penn Treebank&lt;/a&gt;. On both datasets, our approach can design models that achieve accuracies on par with state-of-art models designed by machine learning experts (including some on our own team!).&lt;br /&gt;&lt;br /&gt;So, what kind of neural nets does it produce? Let’s take one example: a recurrent architecture that’s trained to predict the next word on the Penn Treebank dataset. On the left here is a neural net designed by human experts. On the right is a recurrent architecture created by our method: &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-i_T7k1EMd9w/WRtucgbRx1I/AAAAAAAAB0w/ZKxPOsmZCt4hnqCT0nhhWyHRFdD-xssUgCLcB/s1600/image1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="https://3.bp.blogspot.com/-i_T7k1EMd9w/WRtucgbRx1I/AAAAAAAAB0w/ZKxPOsmZCt4hnqCT0nhhWyHRFdD-xssUgCLcB/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The machine-chosen architecture does share some common features with the human design, such as using addition to combine input and previous hidden states. However, there are some notable new elements — for example, the machine-chosen architecture incorporates a multiplicative combination (the left-most blue node on the right diagram labeled “&lt;i&gt;elem_mult&lt;/i&gt;”). This type of combination is not common for recurrent networks, perhaps because researchers see no obvious benefit for having it. Interestingly, a simpler form of this approach was &lt;a href="https://arxiv.org/pdf/1606.06630.pdf"&gt;recently suggested&lt;/a&gt; by human designers, who also argued that this multiplicative combination can actually alleviate gradient vanishing/exploding issues, suggesting that the machine-chosen architecture was able to discover a useful new neural net architecture.&lt;br /&gt;&lt;br /&gt;This approach may also teach us something about why certain types of neural nets work so well. The architecture on the right here has many channels so that the gradient can flow backwards, which may help explain why &lt;a href="https://en.wikipedia.org/wiki/Long_short-term_memory"&gt;LSTM RNNs&lt;/a&gt; work better than standard &lt;a href="https://en.wikipedia.org/wiki/Recurrent_neural_network"&gt;RNNs&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Going forward, we’ll work on careful analysis and testing of these machine-generated architectures to help refine our understanding of them. If we succeed, we think this can inspire new types of neural nets and make it possible for non-experts to create neural nets tailored to their particular needs, allowing machine learning to have a greater impact to everyone.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt; [1] &lt;a href="https://arxiv.org/abs/1703.01041"&gt;Large-Scale Evolution of Image Classifiers&lt;/a&gt;, &lt;i&gt;Esteban Real, Sherry Moore, Andrew Selle, Saurabh Saxena, Yutaka Leon Suematsu, Quoc Le, Alex Kurakin. International Conference on Machine Learning, 2017.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;[2] &lt;a href="https://arxiv.org/abs/1611.01578"&gt;Neural Architecture Search with Reinforcement Learning&lt;/a&gt;, &lt;i&gt;Barret Zoph, Quoc V. Le. International Conference on Learning Representations, 2017.&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=MpgtmrorI_g:ePTLM9-U4CQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/MpgtmrorI_g" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/6067111607818350524/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/using-machine-learning-to-explore.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6067111607818350524" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6067111607818350524" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/MpgtmrorI_g/using-machine-learning-to-explore.html" title="Using Machine Learning to Explore Neural Network Architecture" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-8Lsg0rnxl7k/WRtttN18MKI/AAAAAAAAB0o/KpHbFnYBmTYQ3dBjVLimPUkKphU_qLBfgCLcB/s72-c/image2.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/using-machine-learning-to-explore.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-3650479443015109456</id><published>2017-05-17T10:00:00.000-07:00</published><updated>2017-05-17T10:11:15.452-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Gmail" /><category scheme="http://www.blogger.com/atom/ns#" term="Natural Language Processing" /><category scheme="http://www.blogger.com/atom/ns#" term="Natural Language Understanding" /><title type="text">Efficient Smart Reply, now for Gmail</title><content type="html">&lt;span class="byline-author"&gt;Posted by Brian Strope, Research Scientist, and Ray Kurzweil, Engineering Director, Google Research&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last year we launched Smart Reply, a feature for &lt;a href="https://inbox.google.com/"&gt;Inbox by Gmail&lt;/a&gt; that uses &lt;a href="https://research.googleblog.com/2015/11/computer-respond-to-this-email.html"&gt;machine learning to suggest replies to email&lt;/a&gt;. Since the initial release, usage of Smart Reply has grown significantly, making up about 12% of replies in Inbox on mobile. Based on our examination of the use of Smart Reply in Inbox and our ideas about how humans learn and use language, we have created a new version of &lt;a href="https://blog.google/products/gmail/save-time-with-smart-reply-in-gmail"&gt;Smart Reply for Gmail&lt;/a&gt;. This version increases the percentage of usable suggestions and is more algorithmically efficient. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Novel thinking: hierarchy&lt;/b&gt;&lt;br /&gt;Inspired by how humans understand languages and concepts, we turned to hierarchical models of language, an approach that uses &lt;a href="https://en.wikipedia.org/wiki/How_to_Create_a_Mind"&gt;hierarchies of modules, each of which can learn, remember, and recognize a sequential pattern&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The content of language is deeply hierarchical, reflected in the structure of language itself, going from letters to words to phrases to sentences to paragraphs to sections to chapters to books to authors to libraries, etc. Consider the message, "That interesting person at the cafe we like gave me a glance."  The hierarchical chunks in this sentence are highly variable. The subject of the sentence is "That interesting person at the cafe we like." The modifier "interesting" tells us something about the writer's past experiences with the person. We are told that the location of an incident involving both the writer and the person is "at the cafe." We are also told that "we," meaning the writer and the person being written to, like the cafe. Additionally, each word is itself part of a hierarchy, sometimes more than one. A cafe is a type of restaurant which is a type of store which is a type of establishment, and so on.  &lt;br /&gt;&lt;br /&gt;In proposing an appropriate response to this message we might consider the meaning of the word "glance," which is potentially ambiguous. Was it a positive gesture? In that case, we might respond, "Cool!" Or was it a negative gesture? If so, does the subject say anything about how the writer felt about the negative exchange? A lot of information about the world, and an ability to make reasoned judgments, are needed to make subtle distinctions.&lt;br /&gt;&lt;br /&gt;Given enough examples of language, a machine learning approach can discover many of these subtle distinctions. Moreover, a hierarchical approach to learning is well suited to the hierarchical nature of language. We have found that this approach works well for suggesting possible responses to emails. We use a hierarchy of modules, each of which considers features that correspond to sequences at different temporal scales, similar to how we understand speech and language. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-sOv8w9Ckt0Y/WRoYwN8tbEI/AAAAAAAAB0E/08ZM17H6UTogyteGE8e-ImRUwYJZvJLiwCLcB/s1600/image1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="351" src="https://4.bp.blogspot.com/-sOv8w9Ckt0Y/WRoYwN8tbEI/AAAAAAAAB0E/08ZM17H6UTogyteGE8e-ImRUwYJZvJLiwCLcB/s400/image1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Each module processes inputs and provides transformed representations of those inputs on its outputs (which are, in turn, available for the next level). In the Smart Reply system, and the figure above, the repeated structure has two layers of hierarchy. The first makes each feature useful as a predictor of the final result, and the second combines these features. By definition, the second works at a more abstract representation and considers a wider timescale.&lt;br /&gt;&lt;br /&gt;By comparison, the initial release of Smart Reply encoded input emails word-by-word with a &lt;a href="https://en.wikipedia.org/wiki/Long_short-term_memory"&gt;long-short-term-memory&lt;/a&gt; (LSTM) recurrent neural network, and then decoded potential replies with yet another word-level LSTM. While this type of modeling is very effective in many contexts, even with Google infrastructure, it’s an approach that requires substantial computation resources. Instead of working word-by-word, we found an effective and highly efficient path by processing the problem more all-at-once, by comparing a simple hierarchy of vector representations of multiple features corresponding to longer time spans.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Semantics&lt;/b&gt;&lt;br /&gt;We have also considered whether the mathematical space of these vector representations is implicitly semantic. Do the hierarchical network representations reflect a coarse “understanding” of the actual meaning of the inputs and the responses in order to determine which go together, or do they reflect more consistent syntactical patterns? Given many real examples of which pairs go together and, perhaps more importantly which do not, we found that our networks are surprisingly effective and efficient at deriving representations that meet the training requirements. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-Lz7F4VVP8iM/WRoYVJ9YxfI/AAAAAAAAB0A/PpvcXHmVVBw71VKK5GUKXh8RUEkBKkNSwCLcB/s1600/Side-By-Side-v2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="600" src="https://1.bp.blogspot.com/-Lz7F4VVP8iM/WRoYVJ9YxfI/AAAAAAAAB0A/PpvcXHmVVBw71VKK5GUKXh8RUEkBKkNSwCLcB/s640/Side-By-Side-v2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;So far we see that the system can find responses that are on point, without an overlap of keywords or even synonyms of keywords.More directly, we’re delighted when the system suggests results that show understanding and are helpful.&lt;br /&gt;&lt;br /&gt;The key to this work is the confidence and trust people give us when they use the Smart Reply feature. As always, thank you for showing us the ways that work (and the ways that don’t!). With your help, we’ll do our best to keep learning.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=iy2P2GkAo5o:0oc46H1vEhs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/iy2P2GkAo5o" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/3650479443015109456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/efficient-smart-reply-now-for-gmail.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/3650479443015109456" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/3650479443015109456" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/iy2P2GkAo5o/efficient-smart-reply-now-for-gmail.html" title="Efficient Smart Reply, now for Gmail" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-sOv8w9Ckt0Y/WRoYwN8tbEI/AAAAAAAAB0E/08ZM17H6UTogyteGE8e-ImRUwYJZvJLiwCLcB/s72-c/image1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/efficient-smart-reply-now-for-gmail.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-6281556223724387023</id><published>2017-05-16T11:00:00.000-07:00</published><updated>2017-05-16T11:00:24.864-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="datasets" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Natural Language Processing" /><category scheme="http://www.blogger.com/atom/ns#" term="Publications" /><category scheme="http://www.blogger.com/atom/ns#" term="Research" /><category scheme="http://www.blogger.com/atom/ns#" term="Social Networks" /><title type="text">Coarse Discourse: A Dataset for Understanding Online Discussions</title><content type="html">&lt;span class="byline-author"&gt;Posted by Praveen Paritosh, Senior Research Scientist, Ka Wong, Senior Data Scientist&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Every day, participants of online communities form and share their opinions, experiences, advice and social support, most of which is expressed freely and without much constraint. These online discussions are often a key resource of information for many important topics, such as parenting, fitness, travel and more. However, these discussions also are intermixed with a clutter of disagreements, humor, flame wars and trolling, requiring readers to filter the content before getting the information they are looking for. And while the field of &lt;a href="https://en.wikipedia.org/wiki/Information_retrieval"&gt;Information Retrieval&lt;/a&gt; actively explores ways to allow users to more efficiently find, navigate and consume this content, there is a lack of shared datasets on forum discussions to aid in understanding these discussions a bit better.  &lt;br /&gt;&lt;br /&gt;To aid researchers in this space, we are releasing the &lt;a href="https://github.com/google-research-datasets/coarse-discourse"&gt;Coarse Discourse dataset&lt;/a&gt;, the largest dataset of annotated online discussions to date. The Coarse Discourse contains over half a million human annotations of publicly available online discussions on a random sample of over 9,000 threads from 130 communities from &lt;a href="http://www.reddit.com/"&gt;reddit.com&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;To create this dataset, we developed the Coarse Discourse taxonomy of forum comments by going through a small set of forum threads, reading every comment, and deciding what role the comments played in the discussion. We then repeated and revised this exercise with crowdsourced human editors to validate the reproducibility of the taxonomy's discourse types, which include: announcement, question, answer, agreement, disagreement, appreciation, negative reaction, elaboration, and humor.  From this data, over 100,000 comments were independently annotated by the crowdsourced editors for discourse type and relation. Along with the raw annotations from crowdsourced editors, we also provide the &lt;a href="https://github.com/google-research-datasets/coarse-discourse/blob/master/rating_guidelines.pdf"&gt;Coarse Discourse annotation task guidelines&lt;/a&gt; used by the editors to help with collecting data for other forums and refining the task further.  &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-Pc7dQZFAgO0/WRsz6MuGpCI/AAAAAAAAB0Y/pDheu9Y8mQ4hGGOp7cA5lIvdeBTBjFKJwCLcB/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="https://2.bp.blogspot.com/-Pc7dQZFAgO0/WRsz6MuGpCI/AAAAAAAAB0Y/pDheu9Y8mQ4hGGOp7cA5lIvdeBTBjFKJwCLcB/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;An example thread annotated with discourse types and relations. &lt;a href="https://research.google.com/pubs/pub46055.html"&gt;Early findings&lt;/a&gt; suggest that question answering is a prominent use case in most communities, while some communities are more converationally focused, with back-and-forth interactions. &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;For machine learning and natural language processing researchers trying to characterize the nature of online discussions, we hope that this dataset is a useful resource. Visit our &lt;a href="https://github.com/google-research-datasets/coarse-discourse"&gt;GitHub repository&lt;/a&gt; to download the data. For more details, check out our &lt;a href="http://www.icwsm.org/2017/index.php"&gt;ICWSM&lt;/a&gt; paper, “&lt;a href="https://research.google.com/pubs/pub46055.html"&gt;Characterizing Online Discussion Using Coarse Discourse Sequences&lt;/a&gt;.”&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgments&lt;/b&gt;&lt;br /&gt;This work was done by Amy Zhang during her internship at Google. We would also like to thank Bryan Culbertson, Olivia Rhinehart, Eric Altendorf, David Huynh, Nancy Chang, Chris Welty and our crowdsourced editors. &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=DxG6qAck2OM:wRJtGAvCBGo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/DxG6qAck2OM" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/6281556223724387023/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/coarse-discourse-dataset-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6281556223724387023" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6281556223724387023" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/DxG6qAck2OM/coarse-discourse-dataset-for.html" title="Coarse Discourse: A Dataset for Understanding Online Discussions" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-Pc7dQZFAgO0/WRsz6MuGpCI/AAAAAAAAB0Y/pDheu9Y8mQ4hGGOp7cA5lIvdeBTBjFKJwCLcB/s72-c/image1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/coarse-discourse-dataset-for.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-827399624362227391</id><published>2017-05-11T06:00:00.000-07:00</published><updated>2017-05-11T09:28:35.532-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Art" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="Supervised Learning" /><title type="text">Neural Network-Generated Illustrations in Allo</title><content type="html">&lt;span class="byline-author"&gt;Posted by Jennifer Daniel, Expressions Creative Director, Allo &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Taking, sharing, and viewing selfies has become a daily habit for many — the car selfie, the cute-outfit selfie, the travel selfie, the I-woke-up-like-this selfie. Apart from a social capacity, self-portraiture has long served as a means for self and identity exploration. For some, it’s about figuring out who they are. For others it’s about projecting how they want to be perceived. Sometimes it’s both.&lt;br /&gt;&lt;br /&gt;Photography in the form of a selfie is a very direct form of expression. It comes with a set of rules bounded by reality. Illustration, on the other hand, empowers people to define themselves - it’s warmer and less fraught than reality. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-v__QEAtAZM4/WROVRpJzWuI/AAAAAAAABzU/iPfpKEFbs4MG7JYEhalqQtkBfDsvUz_WACLcB/s1600/image3.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="https://3.bp.blogspot.com/-v__QEAtAZM4/WROVRpJzWuI/AAAAAAAABzU/iPfpKEFbs4MG7JYEhalqQtkBfDsvUz_WACLcB/s640/image3.gif" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Today, Google is introducing a feature in &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.apps.fireball&amp;amp;hl=en"&gt;Allo&lt;/a&gt; that uses a combination of neural networks and the work of artists to turn your selfie into a personalized sticker pack. &lt;a href="https://support.google.com/allo/answer/7126107"&gt;Simply snap a selfie&lt;/a&gt;, and it’ll return an automatically generated illustrated version of you, on the fly, with customization options to help you personalize the stickers even further.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-AD4KlSCL-2E/WROV2QtjHSI/AAAAAAAABzc/G_f1w3s_RdgOXDx02RcdD1LvSBoOwBrPgCLcB/s1600/image2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://3.bp.blogspot.com/-AD4KlSCL-2E/WROV2QtjHSI/AAAAAAAABzc/G_f1w3s_RdgOXDx02RcdD1LvSBoOwBrPgCLcB/s640/image2.gif" width="348" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;What makes you, &lt;i&gt;you&lt;/i&gt;?&lt;/b&gt;&lt;br /&gt;The traditional computer vision approach to mapping selfies to art would be to analyze the pixels of an image and algorithmically determine attribute values by looking at pixel values to measure color, shape, or texture. However, people today take selfies in all types of lighting conditions and poses. And while people can easily pick out and recognize qualitative features, like eye color, regardless of the lighting condition, this is a very complex task for computers. When people look at eye color, they don’t just interpret the pixel values of blue or green, but take into account the &lt;a href="https://www.buzzfeed.com/catesish/help-am-i-going-insane-its-definitely-blue?utm_term=.wbeyaDe9Jb#.tv77n1N0z8"&gt;surrounding visual context&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In order to account for this, we explored how we could enable an algorithm to pick out qualitative features in a manner similar to the way people do, rather than the traditional approach of hand coding how to interpret every permutation of lighting condition, eye color, etc. While we could have trained a large convolutional neural network from scratch to attempt to accomplish this, we wondered if there was a more efficient way to get results, since we expected that learning to interpret a face into an illustration would be a very iterative process. &lt;br /&gt;&lt;br /&gt;That led us to run some experiments, similar to &lt;a href="https://en.wikipedia.org/wiki/DeepDream"&gt;DeepDream&lt;/a&gt;, on some of Google's existing more general-purpose computer vision neural networks. We discovered that a few neurons among the millions in these networks were good at focusing on things they weren’t explicitly trained to look at that seemed useful for creating personalized stickers. Additionally, by virtue of being large general-purpose neural networks they had already figured out how to abstract away things they didn’t need. All that was left to do was to provide a much smaller number of human labeled examples to teach the classifiers to isolate out the qualities that the neural network already knew about the image.&lt;br /&gt;&lt;br /&gt;To create an illustration of you that captures the qualities that would make it recognizable to your friends, we worked alongside an artistic team to create illustrations that represented a wide variety of features. Artists initially designed a set of hairstyles, for example, that they thought would be representative, and with the help of human raters we used these hairstyles to train the network to match the right illustration to the right selfie. We then asked human raters to judge the sticker output against the input image to see how well it did. In some instances, they determined that some styles were not well represented, so the artists created more that the neural network could learn to identify as well.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-lISskYaU9Oo/WROWA5GrCyI/AAAAAAAABzg/Zm3RpvTcs_4xKNry1pGh3ConxADdmT1VQCLcB/s1600/image5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="284" src="https://3.bp.blogspot.com/-lISskYaU9Oo/WROWA5GrCyI/AAAAAAAABzg/Zm3RpvTcs_4xKNry1pGh3ConxADdmT1VQCLcB/s640/image5.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Raters were asked to classify hairstyles that the icon on the left resembled closest. Then, once consensus was reached, resident artist &lt;a href="https://twitter.com/neo_rama"&gt;Lamar Abrams&lt;/a&gt; drew a representation of what they had in common.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Avoiding the uncanny valley&lt;/b&gt;&lt;br /&gt;In the study of aesthetics, a well-known problem is the &lt;a href="https://en.wikipedia.org/wiki/Uncanny_valley"&gt;uncanny valley&lt;/a&gt; - the hypothesis that human replicas which appear almost, but not exactly, like real human beings can feel repulsive. In machine learning, this could be compounded if were confronted by a computer’s perception of you, versus how you may think of yourself, which can be at odds.&lt;br /&gt;&lt;br /&gt;Rather than aim to replicate a person’s appearance exactly, pursuing a lower resolution model, like emojis and stickers, allows the team to explore expressive representation by returning an image that is less about reproducing reality and more about breaking the rules of representation. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-Db9OdgOr4u8/WROXwQoBrdI/AAAAAAAABzs/mhNVO20sdYAekUGqTZrc73uxHJiImxWvgCLcB/s1600/image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="460" src="https://4.bp.blogspot.com/-Db9OdgOr4u8/WROXwQoBrdI/AAAAAAAABzs/mhNVO20sdYAekUGqTZrc73uxHJiImxWvgCLcB/s640/image1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The team worked with artist &lt;a href="https://twitter.com/neo_rama"&gt;Lamar Abrams&lt;/a&gt; to design the features that make up more than 563 quadrillion combinations.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Translating pixels to artistic illustrations&lt;/b&gt;&lt;br /&gt;Reconciling how the computer perceives you with how you perceive yourself and what you want to project is truly an artistic exercise. This makes a customization feature that includes different hairstyles, skin tones, and nose shapes, essential. After all, illustration by its very nature can be subjective. Aesthetics are defined by race, culture, and class which can lead to creating zones of exclusion without consciously trying. As such, we strove to create a space for a range of race, age, masculinity, femininity, and/or androgyny. Our teams continue to evaluate the research results to help prevent against incorporating biases while training the system.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-ChsVmG28OKk/WROYJV-ImhI/AAAAAAAABzw/PwkMgCNUxe0oK9CHz7Sfr1DGWkJRhBvNgCLcB/s1600/image4.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://4.bp.blogspot.com/-ChsVmG28OKk/WROYJV-ImhI/AAAAAAAABzw/PwkMgCNUxe0oK9CHz7Sfr1DGWkJRhBvNgCLcB/s640/image4.gif" width="350" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Creating a broad palette for identity and sentiment&lt;/b&gt;&lt;br /&gt;There is no such thing as a ‘universal aesthetic’ or ‘a singular you’. The way people talk to their parents is different than how they talk to their friends which is different than how they talk to their colleagues. It’s not enough to make an avatar that is a literal representation of yourself when there are many versions of you. To address that, the Allo team is working with a range of artistic voices to help others extend their own voice. This first style that launched today speaks to your sarcastic side but the next pack might be more cute for those sincere moments. Then after that, maybe they’ll turn you into a dog. If emojis broadened the world of communication it’s not hard to imagine how this technology and language evolves. What will be most exciting is listening to what people say with it.&lt;br /&gt;&lt;br /&gt;This feature is starting to roll out in &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.apps.fireball&amp;amp;hl=en"&gt;Allo today for Android&lt;/a&gt;, and will come soon to Allo on iOS. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;This work was made possible through a collaboration of the Allo Team and &lt;a href="https://research.google.com/pubs/MachinePerception.html"&gt;Machine Perception&lt;/a&gt; researchers at Google. We additionally thank Lamar Abrams, Koji Ashida, Forrester Cole, Jennifer Daniel, Shiraz Fuman, Dilip Krishnan, Inbar Mosseri, Aaron Sarna, Aaron Maschinot and Bhavik Singh.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=XqIFBtFOr40:CUlGdmRUssk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/XqIFBtFOr40" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/827399624362227391/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/neural-network-generated-illustrations.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/827399624362227391" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/827399624362227391" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/XqIFBtFOr40/neural-network-generated-illustrations.html" title="Neural Network-Generated Illustrations in Allo" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-v__QEAtAZM4/WROVRpJzWuI/AAAAAAAABzU/iPfpKEFbs4MG7JYEhalqQtkBfDsvUz_WACLcB/s72-c/image3.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/neural-network-generated-illustrations.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-6551648794507159411</id><published>2017-05-03T11:00:00.000-07:00</published><updated>2017-05-03T17:50:12.813-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Optical Character Recognition" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">Updating Google Maps with Deep Learning and Street View</title><content type="html">&lt;span class="byline-author"&gt;Posted by Julian Ibarz, Staff Software Engineer, Google Brain Team and Sujoy Banerjee, Product Manager, Ground Truth Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Every day, Google Maps provides useful directions, real-time traffic information and information on businesses to millions of people. In order to provide the best experience for our users, this information has to constantly mirror an ever-changing world. While Street View cars collect millions of images daily, it is impossible to manually analyze more than 80 billion high resolution images collected to date in order to find new, or updated, information for Google Maps. One of the goals of the Google’s Ground Truth team is to enable the automatic extraction of information from our geo-located imagery to improve Google Maps.&lt;br /&gt;&lt;br /&gt;In “&lt;a href="https://arxiv.org/abs/1704.03549"&gt;Attention-based Extraction of Structured Information from Street View Imagery&lt;/a&gt;”, we describe our approach to accurately read street names out of very challenging Street View images in many countries, automatically, using a deep neural network. Our algorithm achieves 84.2% accuracy on the challenging &lt;a href="https://github.com/tensorflow/models/blob/master/street/README.md"&gt;French Street Name Signs&lt;/a&gt; (FSNS) dataset, significantly outperforming the previous state-of-the-art systems. Importantly, our system is easily extensible to extract other types of information out of Street View images as well, and now helps us automatically extract business names from store fronts. We are excited to announce that this model is now &lt;a href="https://github.com/tensorflow/models/tree/master/attention_ocr"&gt;publicly available&lt;/a&gt;!&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-MVn24olbp3o/WQoVkm8OEYI/AAAAAAAABy0/hdhF4Ad79KIKA6V0Hv0tZ2w3h8_Yi4v6gCLcB/s1600/fig1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="188" src="https://3.bp.blogspot.com/-MVn24olbp3o/WQoVkm8OEYI/AAAAAAAABy0/hdhF4Ad79KIKA6V0Hv0tZ2w3h8_Yi4v6gCLcB/s640/fig1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example of street name from the FSNS dataset correctly transcribed by our system. Up to four views of the same sign are provided.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Text recognition in a natural environment is a challenging computer vision and machine learning problem. While traditional &lt;a href="https://en.wikipedia.org/wiki/Optical_character_recognition"&gt;Optical Character Recognition &lt;/a&gt;(OCR) systems mainly focus on extracting text from scanned documents, text acquired from natural scenes is more challenging due to visual artifacts, such as distortion, occlusions, directional blur, cluttered background or different viewpoints. Our efforts to solve this research challenge first began in 2008, when we used &lt;a href="https://research.google.com/pubs/pub35481.html"&gt;neural networks to blur faces and license plates&lt;/a&gt; in Street View images to protect the privacy of our users. From this initial research, we realized that with enough labeled data, we could additionally use machine learning not only to protect the privacy of our users, but also to automatically improve Google Maps with relevant up-to-date information.&lt;br /&gt;&lt;br /&gt;In 2014, Google’s Ground Truth team published a state-of-the-art method for &lt;a href="https://security.googleblog.com/2014/04/street-view-and-recaptcha-technology.html"&gt;reading street numbers&lt;/a&gt; on the &lt;a href="http://ufldl.stanford.edu/housenumbers/"&gt;Street View House Numbers&lt;/a&gt; (SVHN) dataset, implemented by then summer intern (now Googler) &lt;a href="https://research.google.com/pubs/105214.html"&gt;Ian Goodfellow&lt;/a&gt;. This work was not only of academic interest but was critical in making Google Maps more accurate. Today, over one-third of addresses globally have had their location improved thanks to this system. In some countries, such as Brazil, this algorithm has improved more than 90% of the addresses in Google Maps today, greatly improving the usability of our maps.&lt;br /&gt;&lt;br /&gt;The next logical step was to extend these techniques to street names. To solve this problem, we created and &lt;a href="https://github.com/tensorflow/models/blob/master/street/README.md"&gt;released French Street Name Signs&lt;/a&gt; (FSNS), a large training dataset of more than 1 million street names. The FSNS dataset was a multi-year effort designed to allow anyone to improve their OCR models on a challenging and real use case. FSNS dataset is much larger and more challenging than SVHN in that accurate recognition of street signs may require combining information from many different images.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-ZYdBFgbis3M/WQoVxc8aPRI/AAAAAAAABy4/QeCwCnH0l_ULx3Prb50FdgxmfVzyS49LwCLcB/s1600/Fig2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="338" src="https://1.bp.blogspot.com/-ZYdBFgbis3M/WQoVxc8aPRI/AAAAAAAABy4/QeCwCnH0l_ULx3Prb50FdgxmfVzyS49LwCLcB/s640/Fig2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;These are examples of challenging signs that are properly transcribed by our system by selecting or combining understanding across images. The second example is extremely challenging by itself, but the model learned a language model prior that enables it to remove ambiguity and correctly read the street name. Note that in the FSNS dataset, random noise is used in the case where less than four independent views are available of the same physical sign.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;With this training set, Google intern Zbigniew Wojna spent the summer of 2016 developing a deep learning model architecture to automatically label new Street View imagery. One of the interesting strengths of our new model is that it can normalize the text to be consistent with our naming conventions, as well as ignore extraneous text, directly from the data itself.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-L4XeR28uk_E/WQoV8wigUnI/AAAAAAAABy8/UWMSthqTsTM3NWvOgBGn83K4L53v_-fyACLcB/s1600/fig3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="186" src="https://2.bp.blogspot.com/-L4XeR28uk_E/WQoV8wigUnI/AAAAAAAABy8/UWMSthqTsTM3NWvOgBGn83K4L53v_-fyACLcB/s640/fig3.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example of text normalization learned from data in Brazil. Here it changes “AV.” into “Avenida” and “Pres.” into “Presidente” which is what we desire.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-KQ3UJyKHaSE/WQoWO_yZo8I/AAAAAAAABzA/MRgZPw5xZN0j5YfWFlvW1aP49eJ9bzQiACLcB/s1600/fig4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="148" src="https://4.bp.blogspot.com/-KQ3UJyKHaSE/WQoWO_yZo8I/AAAAAAAABzA/MRgZPw5xZN0j5YfWFlvW1aP49eJ9bzQiACLcB/s640/fig4.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;In this example, the model is not confused from the fact that there is two street names, properly normalizes “Av” into “Avenue” as well as correctly ignores the number “1600”.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;While this model is accurate, it did show a sequence error rate of 15.8%. However, after analyzing failure cases, we found that 48% of them were due to ground truth errors, highlighting the fact that this model is on par with the label quality (a full analysis our error rate can be found in &lt;a href="https://arxiv.org/abs/1704.03549"&gt;our paper&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;This new system, combined with the one extracting street numbers, allows us to create new addresses directly from imagery, where we previously didn’t know the name of the street, or the location of the addresses. Now, whenever a Street View car drives on a newly built road, our system can analyze the tens of thousands of images that would be captured, extract the street names and numbers, and properly create and locate the new addresses, automatically, on Google Maps.&lt;br /&gt;&lt;br /&gt;But automatically creating addresses for Google Maps is not enough -- additionally we want to be able to provide navigation to businesses by name. In 2015, we published “&lt;a href="https://arxiv.org/abs/1512.05430"&gt;Large Scale Business Discovery from Street View Imagery&lt;/a&gt;”, which proposed an approach to accurately detect business store-front signs in Street View images. However, once a store front is detected, one still needs to accurately extract its name for it to be useful -- the model must figure out which text is the business name, and which text is not relevant. We call this extracting “structured text” information out of imagery. It is not just text, it is text with semantic meaning attached to it. &lt;br /&gt;&lt;br /&gt;Using different training data, the same model architecture that we used to read street names can also be used to accurately extract business names out of business facades. In this particular case, we are able to only extract the business name which enables us to verify if we already know about this business in Google Maps, allowing us to have more accurate and up-to-date business listings.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-qfh-IuJQlxU/WQoWr_KWPtI/AAAAAAAABzE/wHjU2imEKHUsmhUTFbxy2r1pHmz6pmb_QCLcB/s1600/image4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="636" src="https://3.bp.blogspot.com/-qfh-IuJQlxU/WQoWr_KWPtI/AAAAAAAABzE/wHjU2imEKHUsmhUTFbxy2r1pHmz6pmb_QCLcB/s640/image4.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The system is correctly able to predict the business name ‘Zelina Pneus’, despite not receiving any data about the true location of the name in the image. Model is not confused by the tire brands that the sign indicates are available at the store.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Applying these large models across our more than 80 billion Street View images requires a lot of computing power. This is why the Ground Truth team was the first user of Google's TPUs, which were &lt;a href="https://cloudplatform.googleblog.com/2017/04/quantifying-the-performance-of-the-TPU-our-first-machine-learning-chip.html"&gt;publicly announced earlier this year&lt;/a&gt;, to drastically reduce the computational cost of the inferences of our pipeline.&lt;br /&gt;&lt;br /&gt;People rely on the accuracy of Google Maps in order to assist them. While keeping Google Maps up-to-date with the ever-changing landscape of cities, roads and businesses presents a technical challenge that is far from solved, it is the goal of the Ground Truth team to drive cutting-edge innovation in machine learning to create a better experience for over one billion Google Maps users.&lt;br /&gt;&lt;br /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=UanQlzl060Q:9KRLezog8VA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/UanQlzl060Q" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/6551648794507159411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/05/updating-google-maps-with-deep-learning.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6551648794507159411" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/6551648794507159411" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/UanQlzl060Q/updating-google-maps-with-deep-learning.html" title="Updating Google Maps with Deep Learning and Street View" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-MVn24olbp3o/WQoVkm8OEYI/AAAAAAAABy0/hdhF4Ad79KIKA6V0Hv0tZ2w3h8_Yi4v6gCLcB/s72-c/fig1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/05/updating-google-maps-with-deep-learning.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-98421893308618512</id><published>2017-04-25T09:00:00.000-07:00</published><updated>2017-04-25T09:00:00.153-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computational Photography" /><category scheme="http://www.blogger.com/atom/ns#" term="Image Processing" /><category scheme="http://www.blogger.com/atom/ns#" term="Low-Light Photography" /><category scheme="http://www.blogger.com/atom/ns#" term="Nexus" /><category scheme="http://www.blogger.com/atom/ns#" term="Pixel" /><title type="text">Experimental Nighttime Photography with Nexus and Pixel</title><content type="html">&lt;span class="byline-author"&gt;Posted by Florian Kainz, Software Engineer, Google Daydream&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On a full moon night last year I carried a professional DSLR camera, a heavy lens and a tripod up to a hilltop in the &lt;a href="https://en.wikipedia.org/wiki/Marin_Headlands"&gt;Marin Headlands&lt;/a&gt; just north of San Francisco to take a picture of the Golden Gate Bridge and the lights of the city behind it. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-JJORxMmYFuw/WPkESrozTuI/AAAAAAAAByU/pkjoul07knIfKWyvM-xmlaCzvODG28FJQCLcB/s1600/image5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-JJORxMmYFuw/WPkESrozTuI/AAAAAAAAByU/pkjoul07knIfKWyvM-xmlaCzvODG28FJQCLcB/s1600/image5.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A view of the Golden Gate Bridge from the Marin Headlands, taken with a DSLR camera (Canon 1DX, Zeiss Otus 28mm f/1.4 ZE). Click &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8dE53b1ZYVm0tM1E"&gt;here&lt;/a&gt; for the full resolution image.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;I thought the photo of the moonlit landscape came out well so I showed it to my (then) teammates in &lt;a href="https://blog.x.company/meet-gcam-the-x-graduate-that-gave-us-a-whole-new-point-of-view-3ee86657d6c9"&gt;Gcam&lt;/a&gt;, a Google Research team that focuses on &lt;a href="https://en.wikipedia.org/wiki/Computational_photography"&gt;computational photography&lt;/a&gt; - developing algorithms that assist in taking pictures, usually with smartphones and similar small cameras. Seeing my nighttime photo, one of the Gcam team members challenged me to re-take it, but with a phone camera instead of a DSLR. Even though cameras on cellphones have come a long way, I wasn’t sure whether it would be possible to come close to the DSLR shot.&lt;br /&gt;&lt;br /&gt;Probably the most successful Gcam project to date is &lt;a href="https://research.googleblog.com/2014/10/hdr-low-light-and-high-dynamic-range.html"&gt;the image processing pipeline that enables the HDR+ mode&lt;/a&gt; in the camera app on Nexus and Pixel phones. HDR+ allows you to take photos at low-light levels by rapidly shooting a burst of up to ten short exposures and averaging them them into a single image, reducing blur due to camera shake while collecting enough total light to yield &lt;a href="https://plus.google.com/photos/105100397789364595413/albums/6071336333050111233"&gt;surprisingly good pictures&lt;/a&gt;. Of course there are limits to what HDR+ can do. Once it gets dark enough the camera just cannot gather enough light and challenging shots like nighttime landscapes are still beyond reach. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Challenges&lt;/b&gt;&lt;br /&gt;To learn what was possible with a cellphone camera in extremely low-light conditions, I looked to the experimental &lt;a href="https://www.youtube.com/watch?v=S7lbnMd56Ys"&gt;SeeInTheDark&lt;/a&gt; app, written by Marc Levoy and presented at the &lt;a href="http://extremeimaging.csail.mit.edu/"&gt;ICCV 2015 Extreme Imaging Workshop&lt;/a&gt;, which can produce pictures with even less light than HDR+. It does this by accumulating more exposures, and merging them under the assumption that the scene is static and any differences between successive exposures must be due to camera motion or sensor noise. The app reduces noise further by dropping image resolution to about 1 MPixel. With SeeInTheDark it is just possible to take pictures, albeit fairly grainy ones, by the light of the full moon.&lt;br /&gt;&lt;br /&gt;However, in order to keep motion blur due to camera shake and moving objects in the scene at acceptable levels, both HDR+ and SeeInTheDark must keep the exposure times for individual frames below roughly one tenth of a second. Since the user can’t hold the camera perfectly still for extended periods, it doesn’t make sense to attempt to merge a large number of frames into a single picture. Therefore, HDR+ merges at most ten frames, while SeeInTheDark progressively discounts older frames as new ones are captured. This limits how much light the camera can gather and thus affects the quality of the final pictures at very low light levels.&lt;br /&gt;&lt;br /&gt;Of course, if we want to take high-quality pictures of low-light scenes (such as a landscape illuminated only by the moon), increasing the exposure time to more than one second and mounting the phone on a tripod or placing it on some other solid support makes the task a lot easier. Google’s Nexus 6P and Pixel phones support exposure times of 4 and 2 seconds respectively. As long as the scene is static, we should be able to record and merge dozens of frames to produce a single final image, even if shooting those frames takes several minutes.&lt;br /&gt;&lt;br /&gt;Even with the use of a tripod, a sharp picture requires the camera’s lens to be focused on the subject, and this can be tricky in scenes with very low light levels. The two autofocus mechanisms employed by cellphone cameras — &lt;a href="https://en.wikipedia.org/wiki/Autofocus#Contrast_detection"&gt;contrast detection&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Autofocus#Phase_detection"&gt;phase detection&lt;/a&gt; — fail when it’s dark enough that the camera's image sensor returns mostly noise. Fortunately, the interesting parts of outdoor scenes tend to be far enough away that simply setting the focus distance to infinity produces sharp images.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Experiments &amp;amp; Results&lt;/b&gt;&lt;br /&gt;Taking all this into account, I wrote a simple Android camera app with manual control over exposure time, ISO and focus distance. When the shutter button is pressed the app waits a few seconds and then records up to 64 frames with the selected settings. The app saves the raw frames captured from the sensor as &lt;a href="https://en.wikipedia.org/wiki/Digital_Negative"&gt;DNG&lt;/a&gt; files, which can later be downloaded onto a PC for processing.&lt;br /&gt;&lt;br /&gt;To test my app, I visited the &lt;a href="https://www.nps.gov/pore/learn/historyculture/people_maritime_lighthouse.htm"&gt;Point Reyes lighthouse&lt;/a&gt; on the California coast some thirty miles northwest of San Francisco on a full moon night. I pointed a Nexus 6P phone at the building and shot a burst of 32 four-second frames at ISO 1600. After covering the camera lens with opaque adhesive tape I shot an additional 32 black frames. Back at the office I loaded the raw files into Photoshop. The individual frames were very grainy, as one would expect given the tiny sensor in a cellphone camera, but computing the mean of all 32 frames cleaned up most of the grain, and subtracting the mean of the 32 black frames removed faint grid-like patterns caused by local variations in the sensor's black level. The resulting image, shown below, looks surprisingly good.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-cPw2kFKkOoU/WPkERgagOjI/AAAAAAAAByk/jiKvOPtbbP839LEBffR2ISpUDpud7Lp_wCEw/s1600/image10.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-cPw2kFKkOoU/WPkERgagOjI/AAAAAAAAByk/jiKvOPtbbP839LEBffR2ISpUDpud7Lp_wCEw/s1600/image10.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Point Reyes lighthouse at night, photographed with Google Nexus 6P (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8LUh0eHdJVmhpcUk"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The lantern in the lighthouse is overexposed, but the rest of the scene is sharp, not too grainy, and has pleasing, natural looking colors. For comparison, a hand-held HDR+ shot of the same scene looks like this:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-VnXHLDk9Q2o/WPkESPnc-aI/AAAAAAAAByk/u5gXv-GKU5YqI2hR8rRBYysbuePiObf_wCEw/s1600/image3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://2.bp.blogspot.com/-VnXHLDk9Q2o/WPkESPnc-aI/AAAAAAAAByk/u5gXv-GKU5YqI2hR8rRBYysbuePiObf_wCEw/s1600/image3.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Point Reyes Lighthouse at night, hand-held HDR+ shot (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8UWotTlY2OFdVNzQ"&gt;here&lt;/a&gt;). The inset rectangle has been brightened in Photoshop to roughly match the previous picture.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Satisfied with these results, I wanted to see if I could capture a nighttime landscape as well as the stars in the clear sky above it, all in one picture. When I took the photo of the lighthouse a thin layer of clouds conspired with the bright moonlight to make the stars nearly invisible, but on a clear night a two or four second exposure can easily capture the brighter stars. The stars are not stationary, though; &lt;a href="https://en.wikipedia.org/wiki/Pole_star"&gt;they appear to rotate around the celestial poles&lt;/a&gt;, completing a full turn every 24 hours. The motion is slow enough to be invisible in exposures of only a few seconds, but over the minutes it takes to record a few dozen frames the stars move enough to turn into streaks when the frames are merged. Here is an example:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-gYWccAfZOpQ/WPkETK0qp-I/AAAAAAAAByk/0qMjxR-Mvzwwz9ReqHzcPFNA6uIbJFJ2wCEw/s1600/image9.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://3.bp.blogspot.com/-gYWccAfZOpQ/WPkETK0qp-I/AAAAAAAAByk/0qMjxR-Mvzwwz9ReqHzcPFNA6uIbJFJ2wCEw/s1600/image9.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The North Star above Mount Burdell, single 2-second exposure. (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8em5tajZjSFB0b1E"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-vRDfsctVbcA/WPkEShKZMLI/AAAAAAAAByk/wB7q748vrCY6yKfNSukUGrbL0lK4aES2gCEw/s1600/image6.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-vRDfsctVbcA/WPkEShKZMLI/AAAAAAAAByk/wB7q748vrCY6yKfNSukUGrbL0lK4aES2gCEw/s1600/image6.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Mean of 32 2-second exposures (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8aXZwUC10b09QZ00"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Seeing streaks instead of pinpoint stars in the sky can be avoided by shifting and rotating the original frames such that the stars align. Merging the aligned frames produces an image with a clean-looking sky, and many faint stars that were hidden by noise in the individual frames become visible. Of course, the ground is now motion-blurred as if the camera had followed the rotation of the sky.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-WPcQB1VtBA0/WPkESzcZEFI/AAAAAAAAByk/OCUFMe-MkWsaXKCU2hOQU2Lcnn7ZAUFlwCEw/s1600/image7.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://2.bp.blogspot.com/-WPcQB1VtBA0/WPkESzcZEFI/AAAAAAAAByk/OCUFMe-MkWsaXKCU2hOQU2Lcnn7ZAUFlwCEw/s1600/image7.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Mean of 32 2-second exposures, stars aligned (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8V0RGZUZYOE9zdzg"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We now have two images; one where the ground is sharp, and one where the sky is sharp, and we can combine them into a single picture that is sharp everywhere. In Photoshop the easiest way to do that is with a hand-painted layer mask. After adjusting brightness and colors to taste, slight cropping, and removing an ugly "No Trespassing" sign we get a presentable picture:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-w5LA9zAqZQk/WPkESFAvKgI/AAAAAAAAByk/2UsxK3l5k1UJQ1wf0Hkt4Zi0jdtp6of7gCEw/s1600/image2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://3.bp.blogspot.com/-w5LA9zAqZQk/WPkESFAvKgI/AAAAAAAAByk/2UsxK3l5k1UJQ1wf0Hkt4Zi0jdtp6of7gCEw/s1600/image2.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The North Star above Mount Burdell, shot with Google Pixel, final image (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8eWtMZ00tblhvdGM"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Using Even Less Light&lt;/b&gt;&lt;br /&gt;The pictures I've shown so far were shot on nights with a full moon, when it was bright enough that one could easily walk outside without a lantern or a flashlight. I wanted to find out if it was possible to take cellphone photos in even less light. Using a Pixel phone, I tried a scene illuminated by a three-quarter moon low in the sky, and another one with no moon at all. Anticipating more noise in the individual exposures, I shot 64-frame bursts. The processed final images still look fine:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-R0SPBSFHgsM/WPkERhEsrZI/AAAAAAAAByk/cWnGPkdSKB4sp51SeZ9YPySU6U2AMtxPwCEw/s1600/image1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-R0SPBSFHgsM/WPkERhEsrZI/AAAAAAAAByk/cWnGPkdSKB4sp51SeZ9YPySU6U2AMtxPwCEw/s1600/image1.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Wrecked fishing boat in Inverness and the Big Dipper, 64 2-second exposures, shot with Google Pixel (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8TlZhTzdwazVhNG8"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-g2oeHIFx908/WPkESY6QzsI/AAAAAAAAByk/6OgqSRwoG2IhYJLzrTOV5azLo0aZ1FmtQCEw/s1600/image4.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://3.bp.blogspot.com/-g2oeHIFx908/WPkESY6QzsI/AAAAAAAAByk/6OgqSRwoG2IhYJLzrTOV5azLo0aZ1FmtQCEw/s1600/image4.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Stars above Pierce Point Ranch, 64 2-second exposures, shot with Google Pixel (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8aVl2WEs0T3doNms"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In the second image the distant lights of the cities around the San Francisco Bay caused the sky near the horizon to glow, but without moonlight the night was still dark enough to make the Milky Way visible. The picture looks noticeably grainier than my earlier moonlight shots, but it's not too bad.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pushing the Limits&lt;/b&gt;&lt;br /&gt;How far can we go? Can we take a cellphone photo with only starlight - no moon, no artificial light sources nearby, and no background glow from a distant city?&lt;br /&gt;&lt;br /&gt;To test this I drove to a point on the California coast a little north of the mouth of the &lt;a href="https://en.wikipedia.org/wiki/Russian_River_(California)"&gt;Russian River&lt;/a&gt;, where nights can get really dark, and pointed my Pixel phone at the summer sky above the ocean. Combining 64 two-second exposures taken at ISO 12800, and 64 corresponding black black frames did produce a recognizable image of the Milky Way. The constellations &lt;a href="https://en.wikipedia.org/wiki/Scorpius"&gt;Scorpius&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Sagittarius_(constellation)"&gt;Sagittarius&lt;/a&gt; are clearly visible, and squinting hard enough one can just barely make out the horizon and one or two rocks in the ocean, but overall, this is not a picture you'd want to print out and frame. Still, this may be the lowest-light cellphone photo ever taken.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-2SAtZ4kFLJY/WPkESBFiKTI/AAAAAAAAByk/fswFdIgEhqs8r5qtooaIt2fD8c2cXlApgCEw/s1600/image12.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://2.bp.blogspot.com/-2SAtZ4kFLJY/WPkESBFiKTI/AAAAAAAAByk/fswFdIgEhqs8r5qtooaIt2fD8c2cXlApgCEw/s1600/image12.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Only starlight, shot with Google Pixel (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8UkdjQ0hjcGdoT1k"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Here we are approaching the limits of what the Pixel camera can do. The camera cannot handle exposure times longer than two seconds. If this restriction was removed we could expose individual frames for eight to ten seconds, and the stars still would not show noticeable motion blur. With longer exposures we could lower the ISO setting, which would significantly reduce noise in the individual frames, and we would get a correspondingly cleaner and more detailed final picture.&lt;br /&gt;&lt;br /&gt;Getting back to the original challenge - using a cellphone to reproduce a night-time DSLR shot of the Golden Gate - I did that. Here is what I got:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-yo9hRd3xLLg/WPkERdbOs7I/AAAAAAAAByk/UDE_MAh3bXszzir_Grxs672mpiKY82DlACEw/s1600/image11.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-yo9hRd3xLLg/WPkERdbOs7I/AAAAAAAAByk/UDE_MAh3bXszzir_Grxs672mpiKY82DlACEw/s1600/image11.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Golden Gate Bridge at night, shot with Google Nexus 6P (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8OVdjTFZvWmVuTVU"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-d7AUDMCZGvY/WPkES2Ava6I/AAAAAAAAByk/_NHAY42k5KAHoueJscA8DZKjdFd2mAAmgCEw/s1600/image8.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-d7AUDMCZGvY/WPkES2Ava6I/AAAAAAAAByk/_NHAY42k5KAHoueJscA8DZKjdFd2mAAmgCEw/s1600/image8.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The Moon above San Francisco, shot with Google Nexus 6P (full resolution image &lt;a href="https://drive.google.com/open?id=0B0i7HeK_sTi8bnZJdHBTQ0tmb1U"&gt;here&lt;/a&gt;).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;At 9 to 10 MPixels the resolution of these pictures is not as high as what a DSLR camera might produce, but otherwise image quality is surprisingly good: the photos are sharp all the way into the corners, there is not much visible noise, the captured dynamic range is sufficient to avoid saturating all but the brightest highlights, and the colors are pleasing.&lt;br /&gt;&lt;br /&gt;Trying to find out if phone cameras might be suitable for outdoor nighttime photography was a fun experiment, and clearly the result is yes, they are. However, arriving at the final images required a lot of careful post-processing on a desktop computer, and the procedure is too cumbersome for all but the most dedicated cellphone photographers. However, with the right software a phone should be able to process the images internally, and if steps such as painting layer masks by hand can be eliminated, it might be possible to do point-and-shoot photography in very low light conditions. Almost - the cellphone would still have to rest on the ground or be mounted on a tripod.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://goo.gl/photos/cMm7mb7ASr84HkTy5"&gt;Here’s a Google Photos album&lt;/a&gt; with more examples of photos that were created with the technique described above. &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=-VTaimOXtas:XbTFZyzDD5M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/-VTaimOXtas" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/98421893308618512/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/04/experimental-nighttime-photography-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/98421893308618512" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/98421893308618512" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/-VTaimOXtas/experimental-nighttime-photography-with.html" title="Experimental Nighttime Photography with Nexus and Pixel" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-JJORxMmYFuw/WPkESrozTuI/AAAAAAAAByU/pkjoul07knIfKWyvM-xmlaCzvODG28FJQCLcB/s72-c/image5.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/04/experimental-nighttime-photography-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-8614643642628792169</id><published>2017-04-24T00:00:00.000-07:00</published><updated>2017-07-05T15:21:00.628-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="conference" /><category scheme="http://www.blogger.com/atom/ns#" term="conferences" /><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="ICLR" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Publications" /><category scheme="http://www.blogger.com/atom/ns#" term="Research" /><title type="text">Research at Google and ICLR 2017</title><content type="html">&lt;span class="byline-author"&gt;Posted by Ian Goodfellow, Staff Research Scientist, Google Brain Team&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;This week, Toulon, France hosts the &lt;a href="http://www.iclr.cc/doku.php?id=ICLR2017:main&amp;amp;redirect=1"&gt;5th International Conference on Learning Representations&lt;/a&gt; (ICLR 2017), a conference focused on how one can learn meaningful and useful representations of data for &lt;a href="https://en.wikipedia.org/wiki/Machine_learning"&gt;Machine Learning&lt;/a&gt;. ICLR includes conference and workshop tracks, with invited talks along with oral and poster presentations of some of the latest research on deep learning, metric learning, kernel learning, compositional models, non-linear structured prediction, and issues regarding non-convex optimization.&lt;br /&gt;&lt;br /&gt;At the forefront of innovation in cutting-edge technology in &lt;a href="https://en.wikipedia.org/wiki/Artificial_neural_network"&gt;Neural Networks&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Deep_learning"&gt;Deep Learning&lt;/a&gt;, Google focuses on both theory and application, developing learning approaches to understand and generalize. As Platinum Sponsor of ICLR 2017, Google will have a strong presence with over 50 researchers attending (many from the &lt;a href="https://research.google.com/teams/brain/"&gt;Google Brain team&lt;/a&gt; and &lt;a href="https://research.google.com/teams/gre/"&gt;Google Research Europe&lt;/a&gt;), contributing to and learning from the broader academic research community by presenting papers and posters, in addition to participating on organizing committees and in workshops.&lt;br /&gt;&lt;br /&gt;If you are attending ICLR 2017, we hope you'll stop by our booth and chat with our researchers about the projects and opportunities at Google that go into solving interesting problems for billions of people. You can also learn more about our research being presented at ICLR 2017 in the list below (Googlers highlighted in &lt;span style="color: #3d85c6;"&gt;blue&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Area Chairs include:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;George Dahl&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Slav Petrov&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Vikas Sindhwani&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Program Chairs include:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Hugo Larochelle&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Tara Sainath&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Contributed Talks&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=Sy8gdB9xx&amp;amp;noteId=Sy8gdB9xx"&gt;Understanding Deep Learning Requires Rethinking Generalization&lt;/a&gt; &lt;strong&gt;&lt;i&gt;(Best Paper Award)&lt;/i&gt;&lt;/strong&gt;&lt;br /&gt;&lt;i&gt;Chiyuan Zhang*, &lt;span style="color: #3d85c6;"&gt;Samy Bengio&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Moritz Hardt&lt;/span&gt;, Benjamin Recht*, Oriol Vinyals&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=HkwoSDPgg&amp;amp;noteId=HkwoSDPgg"&gt;Semi-Supervised Knowledge Transfer for Deep Learning from Private Training Data&lt;/a&gt;&amp;nbsp;&lt;strong&gt;&lt;i&gt;(Best Paper Award)&lt;/i&gt;&lt;/strong&gt;&lt;br /&gt;&lt;i&gt;Nicolas Papernot*, &lt;span style="color: #3d85c6;"&gt;Martín Abadi&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Úlfar Erlingsson&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Ian Goodfellow&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Kunal&lt;br /&gt;Talwar&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=SJ3rcZcxl&amp;amp;noteId=SJ3rcZcxl"&gt;Q-Prop: Sample-Efficient Policy Gradient with An Off-Policy Critic&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Shixiang (Shane) Gu*, Timothy Lillicrap, Zoubin Ghahramani, Richard E.&lt;br /&gt;Turner, &lt;span style="color: #3d85c6;"&gt;Sergey Levine&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=r1Ue8Hcxg&amp;amp;noteId=r1Ue8Hcxg"&gt;Neural Architecture Search with Reinforcement Learning&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #45818e;"&gt;Barret Zoph&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #45818e;"&gt;&amp;nbsp;Quoc Le&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Posters&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=BJm4T4Kgx&amp;amp;noteId=BJm4T4Kgx"&gt;Adversarial Machine Learning at Scale&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Alexey Kurakin&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Ian J. Goodfellow&lt;/span&gt;&lt;sup&gt;†&lt;/sup&gt;, &lt;span style="color: #3d85c6;"&gt;Samy Bengio&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=BydARw9ex&amp;amp;noteId=BydARw9ex"&gt;Capacity and Trainability in Recurrent Neural Networks&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Jasmine Collins&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Jascha Sohl-Dickstein&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;David Sussillo&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=ryT4pvqll&amp;amp;noteId=ryT4pvqll"&gt;Improving Policy Gradient by Exploring Under-Appreciated Rewards&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Ofir Nachum&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Mohammad Norouzi&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Dale Schuurmans&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=B1ckMDqlg&amp;amp;noteId=B1ckMDqlg"&gt;Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Noam Shazeer&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Azalia Mirhoseini&lt;/span&gt;, Krzysztof Maziarz,&lt;span style="color: #3d85c6;"&gt; Andy Davis&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Quoc Le&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&amp;nbsp;&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Geoffrey Hinton&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Jeff Dean&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=BydrOIcle&amp;amp;noteId=BydrOIcle"&gt;Unrolled Generative Adversarial Networks&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Luke Metz&lt;/span&gt;, Ben Poole*, David Pfau, &lt;span style="color: #3d85c6;"&gt;Jascha Sohl-Dickstein&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=rkE3y85ee&amp;amp;noteId=rkE3y85ee"&gt;Categorical Reparameterization with Gumbel-Softmax&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Eric Jang&lt;/span&gt;, Shixiang (Shane) Gu*, Ben Poole*&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=rkEFLFqee&amp;amp;noteId=rkEFLFqee"&gt;Decomposing Motion and Content for Natural Video Sequence Prediction&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Ruben Villegas, Jimei Yang, Seunghoon Hong, Xunyu Lin, &lt;span style="color: #3d85c6;"&gt;Honglak Lee&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=HkpbnH9lx&amp;amp;noteId=HkpbnH9lx"&gt;Density Estimation Using Real NVP&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Laurent Dinh*, &lt;span style="color: #3d85c6;"&gt;Jascha Sohl-Dickstein&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Samy Bengio&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=SyQq185lg&amp;amp;noteId=SyQq185lg"&gt;Latent Sequence Decompositions&lt;/a&gt;&lt;br /&gt;&lt;i&gt;William Chan*, Yu Zhang*, &lt;span style="color: #3d85c6;"&gt;Quoc Le&lt;/span&gt;, Navdeep Jaitly*&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=ry2YOrcge&amp;amp;noteId=ry2YOrcge"&gt;Learning a Natural Language Interface with Neural Programmer&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Arvind Neelakantan*, &lt;span style="color: #3d85c6;"&gt;Quoc V. Le&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Martín Abadi&lt;/span&gt;, Andrew McCallum*, Dario&lt;/i&gt;&lt;br /&gt;&lt;i&gt; Amodei*&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=H1W1UN9gg&amp;amp;noteId=H1W1UN9gg"&gt;Deep Information Propagation&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Samuel Schoenholz&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Justin Gilmer&lt;/span&gt;, Surya Ganguli, &lt;span style="color: #3d85c6;"&gt;Jascha Sohl-Dickstein&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=ryxB0Rtxx&amp;amp;noteId=ryxB0Rtxx"&gt;Identity Matters in Deep Learning&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Moritz Hardt&lt;/span&gt;, Tengyu Ma&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=BJO-BuT1g&amp;amp;noteId=BJO-BuT1g"&gt;A Learned Representation For Artistic Style&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Vincent Dumoulin*, &lt;span style="color: #3d85c6;"&gt;Jonathon Shlens&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Manjunath Kudlur&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=r1X3g2_xl&amp;amp;noteId=r1X3g2_xl"&gt;Adversarial Training Methods for Semi-Supervised Text Classification&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Takeru Miyato&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Andrew M. Dai&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Ian Goodfellow&lt;/span&gt;&lt;sup&gt;†&lt;/sup&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=rkpACe1lx&amp;amp;noteId=rkpACe1lx"&gt;HyperNetworks&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;David Ha&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Andrew Dai&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Quoc V. Le&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=SJTQLdqlg&amp;amp;noteId=SJTQLdqlg"&gt;Learning to Remember Rare Events&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #3d85c6;"&gt;Lukasz Kaiser&lt;/span&gt;&lt;/i&gt;&lt;i&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6; font-style: italic;"&gt;&amp;nbsp;Ofir Nachum, &lt;/span&gt;&lt;i style="font-style: italic;"&gt;Aurko Roy*,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Samy Bengio&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=ryrGawqex&amp;amp;noteId=ryrGawqex"&gt;Deep Learning with Dynamic Computation Graphs&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Moshe Looks&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Marcello Herreshof&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;DeLesley Hutchins&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Peter Norvig&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=ryuxYmvel&amp;amp;noteId=ryuxYmvel"&gt;HolStep: A Machine Learning Dataset for Higher-order Logic Theorem Proving&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Cezary Kaliszyk, &lt;span style="color: #3d85c6;"&gt;François Chollet&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;Christian Szegedy&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/pdf?id=ry18Ww5ee"&gt;Hyperband: Bandit-based Configuration Evaluation for Hyperparameter Optimization&lt;/a&gt;&lt;br /&gt;&lt;i&gt; Lisha Li, Kevin Jamieson, Giulia DeSalvo, &lt;/i&gt;&lt;span style="color: #3d85c6; font-style: italic;"&gt;Afshin Rostamizadeh&lt;/span&gt;&lt;i&gt;, Ameet Talwalkar&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Workshop Track Abstracts&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=BJyBKyHKg&amp;amp;noteId=BJyBKyHKg"&gt;Particle Value Functions&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Chris J. Maddison, &lt;span style="color: #3d85c6;"&gt;Dieterich Lawson&lt;/span&gt;, &lt;span style="color: #3d85c6;"&gt;George Tucker&lt;/span&gt;, Nicolas Heess, Arnaud Doucet, Andriy Mnih, Yee Whye Teh&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=rJY3vK9eg&amp;amp;noteId=rJY3vK9eg"&gt;Neural Combinatorial Optimization with Reinforcement Learning&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Irwan Bello&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Hieu Pham&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Quoc V. Le&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Mohammad Norouzi&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Samy Bengio&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=r1br_2Kge&amp;amp;noteId=r1br_2Kge"&gt;Short and Deep: Sketching and Neural Networks&lt;/a&gt;&lt;br /&gt;&lt;span style="color: #3d85c6; font-style: italic;"&gt;Amit Daniely&lt;/span&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6; font-style: italic;"&gt;&amp;nbsp;Nevena Lazic&lt;/span&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6; font-style: italic;"&gt;&amp;nbsp;Yoram Singer&lt;/span&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;span style="color: #3d85c6; font-style: italic;"&gt;&amp;nbsp;Kunal Talwar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/pdf?id=HkXKUTVFl"&gt;Explaining the Learning Dynamics of Direct Feedback Alignment&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Justin Gilmer&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Colin Raffel&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Samuel S. Schoenholz&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Maithra Raghu&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Jascha Sohl-Dickstein&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://arxiv.org/abs/1702.06914"&gt;Training a Subsampling Mechanism in Expectation&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Colin Raffel&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Dieterich Lawson&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=BJ8fyHceg&amp;amp;noteId=BJ8fyHceg"&gt;Tuning Recurrent Neural Networks with Reinforcement Learning&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;Natasha Jaques&lt;/i&gt;&lt;i style="font-style: italic;"&gt;*, Shixiang (Shane) Gu*, Richard E. Turner, &lt;span style="color: #3d85c6;"&gt;Douglas Eck&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/pdf?id=ryBDyehOl"&gt;REBAR: Low-Variance, Unbiased Gradient Estimates for Discrete Latent Variable Models&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;George Tucker&lt;/span&gt;, Andriy Mnih, Chris J. Maddison, &lt;span style="color: #3d85c6;"&gt;Jascha Sohl-Dickstein&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=S1OufnIlx&amp;amp;noteId=S1OufnIlx"&gt;Adversarial Examples in the Physical World&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Alexey Kurakin&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Ian Goodfellow&lt;/span&gt;&lt;sup&gt;†&lt;/sup&gt;, &lt;span style="color: #3d85c6;"&gt;Samy Bengio&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=HkCjNI5ex&amp;amp;noteId=HkCjNI5ex"&gt;Regularizing Neural Networks by Penalizing Confident Output Distributions&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Gabriel Pereyra&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;George Tucker&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Jan Chorowski&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Lukasz Kaiser&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Geoffrey Hinton&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://openreview.net/forum?id=Bkul3t9ee&amp;amp;noteId=Bkul3t9ee"&gt;Unsupervised Perceptual Rewards for Imitation Learning&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Pierre Sermanet&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Kelvin Xu&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Sergey Levine&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://arxiv.org/abs/1702.07780"&gt;Changing Model Behavior at Test-time Using Reinforcement Learning&lt;/a&gt;&lt;br /&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;Augustus Odena&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Dieterich Lawson&lt;/span&gt;&lt;/i&gt;&lt;i style="font-style: italic;"&gt;,&lt;/i&gt;&lt;i style="font-style: italic;"&gt;&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;Christopher Olah&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt; * Work performed while at Google&lt;/i&gt;&lt;br /&gt;&lt;i&gt; † Work performed while at OpenAI&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=-S4Nyf5tIyY:uiw4EgQqloQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/-S4Nyf5tIyY" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/8614643642628792169/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/04/research-at-google-and-iclr-2017.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8614643642628792169" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8614643642628792169" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/-S4Nyf5tIyY/research-at-google-and-iclr-2017.html" title="Research at Google and ICLR 2017" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/04/research-at-google-and-iclr-2017.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-4543747413734193468</id><published>2017-04-20T10:00:00.000-07:00</published><updated>2017-04-20T10:42:50.233-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computational Photography" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Photos" /><category scheme="http://www.blogger.com/atom/ns#" term="PhotoScan" /><title type="text">PhotoScan: Taking Glare-Free Pictures of Pictures</title><content type="html">&lt;span class="byline-author"&gt;Posted by Ce Liu, Michael Rubinstein, Mike Krainin and Bill Freeman, Research Scientists&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yesterday, we released an &lt;a href="https://blog.google/products/photos/scan-your-printed-photos-just-one-tap/"&gt;update to PhotoScan&lt;/a&gt;, an app for &lt;a href="https://itunes.apple.com/app/apple-store/id1165525994?pt=9008&amp;amp;ct=ogb&amp;amp;mt=8"&gt;iOS&lt;/a&gt; and &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.apps.photos.scanner&amp;amp;referrer=utm_source%3Dogb"&gt;Android&lt;/a&gt; that allows you to digitize photo prints with just a smartphone.  One of the key features of PhotoScan is the ability to remove glare from prints, which are often glossy and reflective, as are the plastic album pages or glass-covered picture frames that host them. To create this feature, we developed a unique blend of computer vision and image processing techniques that can carefully align and combine several slightly different pictures of a print to separate the glare from the image underneath.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-NRMc4h_25y0/WPfVg7YLn7I/AAAAAAAABvU/IQE9IVz6yeAQbrg50Qryn0-i97MePc-1wCLcB/s1600/Fig.1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="438" src="https://1.bp.blogspot.com/-NRMc4h_25y0/WPfVg7YLn7I/AAAAAAAABvU/IQE9IVz6yeAQbrg50Qryn0-i97MePc-1wCLcB/s640/Fig.1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Left:&lt;/b&gt; A regular digital picture of a physical print.  &lt;b&gt;Right:&lt;/b&gt; Glare-free digital output from PhotoScan&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;When taking a single picture of a photo, determining which regions of the picture are the actual photo and which regions are glare is challenging to do automatically. Moreover, the glare may often saturate regions in the picture, rendering it impossible to see or recover the parts of the photo underneath it. But if we take several pictures of the photo while moving the camera, the position of the glare tends to change, covering different regions of the photo. In most cases we found that every pixel of the photo is likely not to be covered by glare in at least one of the pictures. While no single view may be glare-free, we can combine multiple pictures of the printed photo taken at different angles to remove the glare. The challenge is that the images need to be aligned very accurately in order to combine them properly, and this processing needs to run very quickly on the phone to provide a near instant experience. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-6GF9Zk-KZwM/WPfWJkAqRTI/AAAAAAAABvY/7sx1tcHJvOU0QVjBA2ju3UNKKwogEjX_QCLcB/s1600/image24.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="396" src="https://2.bp.blogspot.com/-6GF9Zk-KZwM/WPfWJkAqRTI/AAAAAAAABvY/7sx1tcHJvOU0QVjBA2ju3UNKKwogEjX_QCLcB/s640/image24.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Left:&lt;/b&gt; The captured, input images (5 in total). &lt;b&gt;Right:&lt;/b&gt; If we stabilize the images on the photo, we can see just the glare moving, covering different parts of the photo. Notice no single image is glare-free.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Our technique is inspired by our earlier work published at &lt;a href="http://s2015.siggraph.org/"&gt;SIGGRAPH 2015&lt;/a&gt;, which we dubbed “&lt;a href="https://sites.google.com/site/obstructionfreephotography/"&gt;obstruction-free photography&lt;/a&gt;”. It uses similar principles to remove various types of obstructions from the field of view. However, the algorithm we originally proposed was based on a generative model where the motion and appearance of both the main scene and the obstruction layer are estimated. While that model is quite powerful and can remove a variety of obstructions, it is too computationally expensive to be run on smartphones.  We therefore developed a simpler model that treats glare as an outlier, and only attempts to register the underlying, glare-free photo. While this model is simpler, the task is still quite challenging as the registration needs to be highly accurate and robust.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How it Works&lt;/b&gt;&lt;br /&gt;We start from a series of pictures of the print taken by the user while moving the camera. The first picture - the “reference frame” - defines the desired output viewpoint. The user is then instructed to take four additional frames. In each additional frame, we detect &lt;a href="https://en.wikipedia.org/wiki/Feature_detection_(computer_vision)"&gt;sparse feature points&lt;/a&gt;  (we compute &lt;a href="http://www.willowgarage.com/sites/default/files/orb_final.pdf"&gt;ORB features&lt;/a&gt; on &lt;a href="https://en.wikipedia.org/wiki/Corner_detection"&gt;Harris corners&lt;/a&gt;) and use them to establish &lt;a href="https://en.wikipedia.org/wiki/Homography_(computer_vision)"&gt;homographies&lt;/a&gt; mapping each frame to the reference frame.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-Y5HVN6R4RXI/WPfYQ6LUq6I/AAAAAAAABv0/5Ms1GdyJLMw-1oCULAo6NT-oLclsqrVCgCLcB/s1600/image1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="https://3.bp.blogspot.com/-Y5HVN6R4RXI/WPfYQ6LUq6I/AAAAAAAABv0/5Ms1GdyJLMw-1oCULAo6NT-oLclsqrVCgCLcB/s640/image1.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Left: Detected feature matches between the reference frame and each other frame (left), and the warped frames according to the estimated homographies (right).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;While the technique may sound straightforward, there is a catch - homographies are only able to align flat images. But printed photos are often not entirely flat (as is the case with the example shown above). Therefore, we use &lt;a href="https://en.wikipedia.org/wiki/Optical_flow"&gt;optical flow&lt;/a&gt; — a fundamental, computer vision representation for motion, which establishes pixel-wise mapping between two images — to correct the non-planarities. We start from the homography-aligned frames, and compute “flow fields” to warp the images and further refine the registration. In the example below, notice how the corners of the photo on the left slightly “move” after registering the frames using only homographies. The right hand side shows how the photo is better aligned after refining the registration using optical flow.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-diqjle2sxtE/WPfZAD_D7bI/AAAAAAAABv8/OjXhzF7iwE094ko_kZOp1qL_6LuzniOjQCLcB/s1600/image13.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="396" src="https://1.bp.blogspot.com/-diqjle2sxtE/WPfZAD_D7bI/AAAAAAAABv8/OjXhzF7iwE094ko_kZOp1qL_6LuzniOjQCLcB/s640/image13.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Comparison between the warped frames using homographies (left) and after the additional warp refinement using optical flow (right).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The difference in the registration is subtle, but has a big impact on the end result. Notice how small misalignments manifest themselves as duplicated image structures in the result, and how these artifacts are alleviated with the additional flow refinement.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-Bio4tf8MoPM/WPfZ_IZUZ4I/AAAAAAAABwE/w1QCvmCCooM_OMYyW6HARJYNQfkR6FAKACLcB/s1600/image36.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="228" src="https://4.bp.blogspot.com/-Bio4tf8MoPM/WPfZ_IZUZ4I/AAAAAAAABwE/w1QCvmCCooM_OMYyW6HARJYNQfkR6FAKACLcB/s640/image36.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Comparison between the glare removal result with (right) and without (left) optical flow refinement. In the result using homographies only (left), notice artifacts around the eye, nose and teeth of the person, and duplicated stems and flower petals on the fabric.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Here too, the challenge was to make optical flow, a naturally slow algorithm, work very quickly on the phone. Instead of computing optical flow at each pixel as done traditionally (the number of flow vectors computed is equal to the number of input pixels), we represent a flow field by a smaller number of control points, and express the motion at each pixel in the image as a function of the motion at the control points. Specifically, we divide each image into tiled, non-overlapping cells to form a coarse grid, and represent the flow of a pixel in a cell as the &lt;a href="https://en.wikipedia.org/wiki/Bilinear_interpolation"&gt;bilinear combination&lt;/a&gt; of the flow at the four corners of the cell that contains it.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-2BGs2hD11Gc/WPfaf1EFLfI/AAAAAAAABwM/4oowfe_O0zkAxTInqRasClj0rLUA3NP1wCLcB/s1600/image15.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="252" src="https://1.bp.blogspot.com/-2BGs2hD11Gc/WPfaf1EFLfI/AAAAAAAABwM/4oowfe_O0zkAxTInqRasClj0rLUA3NP1wCLcB/s640/image15.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The grid setup for grid optical flow. A point p is represented as the &lt;a href="https://en.wikipedia.org/wiki/Bilinear_interpolation"&gt;bilinear interpolation&lt;/a&gt; of the four corner points of the cell that encapsulates it.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-1ByxAzXYXxQ/WPfaX27TXPI/AAAAAAAABwI/di3WahqYU44ku1LTr4qgDGf1D9TqLNPywCEw/s1600/image16.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="440" src="https://1.bp.blogspot.com/-1ByxAzXYXxQ/WPfaX27TXPI/AAAAAAAABwI/di3WahqYU44ku1LTr4qgDGf1D9TqLNPywCEw/s640/image16.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Left:&lt;/b&gt; Illustration of the computed flow field on one of the frames. &lt;b&gt;Right:&lt;/b&gt; The flow color coding: orientation and magnitude represented by hue and saturation, respectively.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;This results in a much smaller problem to solve, since the number of flow vectors to compute now equals the number of grid points, which is typically much smaller than the number of pixels. This process is similar in nature to the spline-based image registration described in &lt;a href="https://pdfs.semanticscholar.org/8f57/f2e7cd7ee8042a5600b4d5b5638a10f06fe2.pdf"&gt;Szeliski and Coughlan (1997)&lt;/a&gt;. With this algorithm, we were able to reduce the optical flow computation time by a factor of ~40 on a Pixel phone!&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-Q5bnNur88ME/WPfbie00jGI/AAAAAAAABwU/46YVBXgKuGoW5dtsu2tyFp6Gwt8MS78WQCLcB/s1600/image30.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="492" src="https://4.bp.blogspot.com/-Q5bnNur88ME/WPfbie00jGI/AAAAAAAABwU/46YVBXgKuGoW5dtsu2tyFp6Gwt8MS78WQCLcB/s640/image30.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Flipping between the homography-registered frame and the flow-refined warped frame (using the above flow field), superimposed on the (clean) reference frame, shows how the computed flow field “snaps” image parts to their corresponding parts in the reference frame, improving the registration.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Finally, in order to compose the glare-free output, for any given location in the registered frames, we examine the pixel values, and use a soft minimum algorithm to obtain the darkest observed value. More specifically, we compute the expectation of the minimum brightness over the registered frames, assigning less weight to pixels close to the (warped) image boundaries. We use this method rather than computing the minimum directly across the frames due to the fact that corresponding pixels at each frame may have slightly different brightness. Therefore, per-pixel minimum can produce visible seams due to sudden intensity changes at boundaries between overlaid images.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-Cqdgdu3SvFY/WPfb0q4nFFI/AAAAAAAABwY/3GYnLUGGDTwUKOTRCaeZLPKp_VTE8dyAQCLcB/s1600/image20.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="https://1.bp.blogspot.com/-Cqdgdu3SvFY/WPfb0q4nFFI/AAAAAAAABwY/3GYnLUGGDTwUKOTRCaeZLPKp_VTE8dyAQCLcB/s640/image20.png" width="628" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Regular minimum (left) versus soft minimum (right) over the registered frames.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The algorithm can support a variety of scanning conditions — matte and gloss prints, photos inside or outside albums, magazine covers.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="text-align: center;"&gt;&lt;span id="docs-internal-guid-01f4804a-885a-6bd2-c1c9-d80fb7fb89e0"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Input&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;                             &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Registered&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;                 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;            &lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Glare-free&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;div style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-fKAEe3-A8Us/WPjx_IqGqNI/AAAAAAAABxY/FWqYMA_2kiUf_TYa2bX1oVr5tVrjjfpbgCLcB/s1600/album.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="156" src="https://2.bp.blogspot.com/-fKAEe3-A8Us/WPjx_IqGqNI/AAAAAAAABxY/FWqYMA_2kiUf_TYa2bX1oVr5tVrjjfpbgCLcB/s640/album.gif" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://1.bp.blogspot.com/-bMXYqQndqAc/WPjyCV-GZtI/AAAAAAAABxc/yMcwOYxbMCUieygGl6m3UaD-tVEC_GGRQCLcB/s1600/156.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="https://1.bp.blogspot.com/-bMXYqQndqAc/WPjyCV-GZtI/AAAAAAAABxc/yMcwOYxbMCUieygGl6m3UaD-tVEC_GGRQCLcB/s640/156.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="https://1.bp.blogspot.com/-YqCLhUEc8gw/WPjyFdQMSNI/AAAAAAAABxg/pke73LmNmzgJs-XaPYwzgpXelQCoDW98gCLcB/s1600/photo2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="https://1.bp.blogspot.com/-YqCLhUEc8gw/WPjyFdQMSNI/AAAAAAAABxg/pke73LmNmzgJs-XaPYwzgpXelQCoDW98gCLcB/s640/photo2.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;To get the final result, the Photos team has developed a method that automatically detects and crops the photo area, and rectifies it to a frontal view. Because of perspective distortion, the scanned rectangular photo usually appears to be a quadrangle on the image. The method analyzes image signals, like color and edges, to figure out the exact boundary of the original photo on the scanned image, then applies a geometric transformation to rectify the quadrangle area back to its original rectangular shape yielding high-quality, glare-free digital version of the photo.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-BBtJ_YvtR0o/WPfcipl1qiI/AAAAAAAABwg/wlYhAYSkY2cKIbV349H9_ZCJjtowdcvZgCLcB/s1600/image17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://1.bp.blogspot.com/-BBtJ_YvtR0o/WPfcipl1qiI/AAAAAAAABwg/wlYhAYSkY2cKIbV349H9_ZCJjtowdcvZgCLcB/s640/image17.png" width="426" /&gt;&lt;/a&gt;&lt;/div&gt;So overall, quite a lot going on under the hood, and all done almost instantaneously on your phone! To give PhotoScan a try, download the app on &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.apps.photos.scanner&amp;amp;referrer=utm_source%3Dogb"&gt;Android&lt;/a&gt; or &lt;a href="https://itunes.apple.com/app/apple-store/id1165525994?pt=9008&amp;amp;ct=ogb&amp;amp;mt=8"&gt;iOS&lt;/a&gt;.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=RBJhlm7R83w:vOvOvyCdQL8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/RBJhlm7R83w" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/4543747413734193468/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/04/photoscan-taking-glare-free-pictures-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/4543747413734193468" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/4543747413734193468" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/RBJhlm7R83w/photoscan-taking-glare-free-pictures-of.html" title="PhotoScan: Taking Glare-Free Pictures of Pictures" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-NRMc4h_25y0/WPfVg7YLn7I/AAAAAAAABvU/IQE9IVz6yeAQbrg50Qryn0-i97MePc-1wCLcB/s72-c/Fig.1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/04/photoscan-taking-glare-free-pictures-of.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-8410495058131747007</id><published>2017-04-13T10:00:00.000-07:00</published><updated>2017-04-13T16:37:04.126-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Magenta" /><title type="text">Teaching Machines to Draw</title><content type="html">&lt;span class="byline-author"&gt;Posted by David Ha, Google Brain Resident&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Abstract visual communication is a key part of how people convey ideas to one another. From a young age, children develop the ability to depict objects, and arguably even emotions, with only a few pen strokes. These simple drawings may not resemble reality as captured by a photograph, but they do tell us something about how people represent and reconstruct images of the world around them.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-X0o-v6SQXtI/WO6R8X22wlI/AAAAAAAABts/Qbvu5QoVwZIfKB-zEV7Po_Juh9AqEb28gCLcB/s1600/twitter_cover.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-X0o-v6SQXtI/WO6R8X22wlI/AAAAAAAABts/Qbvu5QoVwZIfKB-zEV7Po_Juh9AqEb28gCLcB/s1600/twitter_cover.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Vector drawings produced by sketch-rnn.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In our recent paper, “&lt;a href="https://arxiv.org/abs/1704.03477"&gt;A Neural Representation of Sketch Drawings&lt;/a&gt;”, we present a generative &lt;a href="https://en.wikipedia.org/wiki/Recurrent_neural_network"&gt;recurrent neural network&lt;/a&gt; capable of producing sketches of common objects, with the goal of training a machine to draw and generalize abstract concepts in a manner similar to humans. We train our model on a dataset of hand-drawn sketches, each represented as a sequence of motor actions controlling a pen: which direction to move, when to lift the pen up, and when to stop drawing. In doing so, we created a model that potentially has many applications, from assisting the creative process of an artist, to helping teach students how to draw.&lt;br /&gt;&lt;br /&gt;While there is a already a large body of existing work on generative modelling of images using neural networks, most of the work focuses on modelling &lt;a href="https://en.wikipedia.org/wiki/Raster_graphics"&gt;raster images&lt;/a&gt; represented as a 2D grid of pixels. While these models are currently able to generate realistic images, due to the high dimensionality of a 2D grid of pixels, a key challenge for them is to generate images with coherent structure. For example, these models sometimes produce amusing images of cats with three or more eyes, or dogs with multiple heads.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-6s_kqOJ291M/WO6TjERWCdI/AAAAAAAABtw/AJqbZKwFDN0Grrji1DVypTy2G0b8O2XmgCLcB/s1600/image02.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="384" src="https://2.bp.blogspot.com/-6s_kqOJ291M/WO6TjERWCdI/AAAAAAAABtw/AJqbZKwFDN0Grrji1DVypTy2G0b8O2XmgCLcB/s640/image02.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Examples of animals generated with the wrong number of body parts, produced using previous GAN models trained on 128x128 ImageNet dataset. The image above is Figure 29 of&lt;br /&gt;&lt;a href="https://arxiv.org/abs/1701.00160"&gt;Generative Adversarial Networks&lt;/a&gt;, Ian Goodfellow, NIPS 2016 Tutorial.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In this work, we investigate a lower-dimensional vector-based representation inspired by how people draw. Our model, sketch-rnn, is based on the &lt;a href="https://research.google.com/pubs/pub43155.html"&gt;sequence-to-sequence&lt;/a&gt; (seq2seq) autoencoder framework. It incorporates &lt;a href="https://research.googleblog.com/2014/12/advances-in-variational-inference.html"&gt;variational inference&lt;/a&gt; and utilizes &lt;a href="https://research.google.com/pubs/pub45823.html"&gt;hypernetworks&lt;/a&gt; as recurrent neural network cells. The goal of a seq2seq autoencoder is to train a network to encode an input sequence into a vector of floating point numbers, called a &lt;i&gt;latent&lt;/i&gt; vector, and from this latent vector reconstruct an output sequence using a decoder that replicates the input sequence as closely as possible.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-iuML0km0cv0/WO6U0ukCaYI/AAAAAAAABt0/wsBg174LgtQslJgG2Q6jKeOTFP1EH3o3ACLcB/s1600/sketch_rnn.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-iuML0km0cv0/WO6U0ukCaYI/AAAAAAAABt0/wsBg174LgtQslJgG2Q6jKeOTFP1EH3o3ACLcB/s1600/sketch_rnn.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Schematic of sketch-rnn.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In our model, we deliberately add noise to the latent vector. In our paper, we show that by inducing noise into the communication channel between the encoder and the decoder, the model is no longer be able to reproduce the input sketch exactly, but instead must learn to capture the essence of the sketch as a noisy latent vector. Our decoder takes this latent vector and produces a sequence of motor actions used to construct a new sketch. In the figure below, we feed several actual sketches of cats into the encoder to produce reconstructed sketches using the decoder.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-oAPlGiBet6s/WO6VOPRPzkI/AAAAAAAABt4/vXkP4Yy8-0guIDU6AhKfP0VdnAJBx5ssgCLcB/s1600/image11.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="224" src="https://4.bp.blogspot.com/-oAPlGiBet6s/WO6VOPRPzkI/AAAAAAAABt4/vXkP4Yy8-0guIDU6AhKfP0VdnAJBx5ssgCLcB/s640/image11.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Reconstructions from a model trained on cat sketches.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;It is important to emphasize that the reconstructed cat sketches are &lt;i&gt;not&lt;/i&gt; copies of the input sketches, but are instead &lt;i&gt;new&lt;/i&gt; sketches of cats with similar characteristics as the inputs. To demonstrate that the model is not simply copying from the input sequence, and that it actually learned something about the way people draw cats, we can try to feed in non-standard sketches into the encoder:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-0T75JKlZl7s/WO6Vp1ZIrZI/AAAAAAAABt8/0GUe3SVcEIMntEtSJ2oNTRb4tIvYTGkHQCLcB/s1600/image13.png" imageanchor="1"&gt;&lt;img border="0" height="361" src="https://1.bp.blogspot.com/-0T75JKlZl7s/WO6Vp1ZIrZI/AAAAAAAABt8/0GUe3SVcEIMntEtSJ2oNTRb4tIvYTGkHQCLcB/s640/image13.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;When we feed in a sketch of a three-eyed cat, the model generates a similar looking cat that has two eyes instead, suggesting that our model has learned that cats usually only have two eyes. To show that our model is not simply choosing the closest normal-looking cat from a large collection of memorized cat-sketches, we can try to input something totally different, like a sketch of a toothbrush. We see that the network generates a cat-like figure with long whiskers that mimics the features and orientation of the toothbrush. This suggests that the network has learned to encode an input sketch into a set of abstract cat-concepts embedded into the latent vector, and is also able to reconstruct an entirely new sketch based on this latent vector.&lt;br /&gt;&lt;br /&gt;Not convinced? We repeat the experiment again on a model trained on pig sketches and arrive at similar conclusions. When presented with an eight-legged pig, the model generates a similar pig with only four legs. If we feed a truck into the pig-drawing model, we get a pig that looks a bit like the truck.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-5LztXFr0lE8/WO6V6ym5VOI/AAAAAAAABuA/b5XkHbZtSc4gkE1r_SgDOtKcMjZcJe_BQCLcB/s1600/image10.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="202" src="https://3.bp.blogspot.com/-5LztXFr0lE8/WO6V6ym5VOI/AAAAAAAABuA/b5XkHbZtSc4gkE1r_SgDOtKcMjZcJe_BQCLcB/s640/image10.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Reconstructions from a model trained on pig sketches.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;To investigate how these latent vectors encode conceptual animal features, in the figure below, we first obtain two latent vectors encoded from two very different pigs, in this case a pig head (in the green box) and a full pig (in the orange box).  We want to get a sense of how our model learned to represent pigs, and one way to do this is to interpolate between the two different latent vectors, and visualize each generated sketch from each interpolated latent vector.  In the figure below, we visualize how the sketch of the pig head slowly morphs into the sketch of the full pig, and in the process show how the model organizes the concepts of pig sketches.  We see that the latent vector controls the relatively position and size of the nose relative to the head, and also the existence of the body and legs in the sketch.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-tTBaBZUBnD0/WO6WlYrMwTI/AAAAAAAABuE/CTutYj42bW8lBDm3U2-SGg3HKtMrC84BQCLcB/s1600/image04.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://3.bp.blogspot.com/-tTBaBZUBnD0/WO6WlYrMwTI/AAAAAAAABuE/CTutYj42bW8lBDm3U2-SGg3HKtMrC84BQCLcB/s1600/image04.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Latent space interpolations generated from a model trained on pig sketches.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We would also like to know if our model can learn representations of multiple animals, and if so, what would they look like? In the figure below, we generate sketches from interpolating latent vectors between a cat head and a full pig. We see how the representation slowly transitions from a cat head, to a cat with a tail, to a cat with a fat body, and finally into a full pig. Like a child learning to draw animals, our model learns to construct animals by attaching a head, feet, and a tail to its body. We see that the model is also able to draw cat heads that are distinct from pig heads.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-gou3INIvWG4/WO6XBiwE20I/AAAAAAAABuI/QJWHeUGjBNwG5zRHknw2Rcq1hzY868LGgCLcB/s1600/image12.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="156" src="https://1.bp.blogspot.com/-gou3INIvWG4/WO6XBiwE20I/AAAAAAAABuI/QJWHeUGjBNwG5zRHknw2Rcq1hzY868LGgCLcB/s640/image12.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Latent Space Interpolations from a model trained on sketches of both cats and pigs.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;These interpolation examples suggest that the latent vectors indeed encode conceptual features of a sketch. But can we use these features to augment other sketches without such features - for example, adding a body to a cat's head?&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-yK7t-68XTzA/WO6XNTIb66I/AAAAAAAABuM/PqB64rz_YgMYM3EkP2BEJojnCLHsAMXqgCLcB/s1600/image05.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="190" src="https://4.bp.blogspot.com/-yK7t-68XTzA/WO6XNTIb66I/AAAAAAAABuM/PqB64rz_YgMYM3EkP2BEJojnCLHsAMXqgCLcB/s640/image05.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Learned relationships between abstract concepts, explored using latent vector arithmetic.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Indeed, we find that sketch drawing analogies are possible for our model trained on both cat and pig sketches. For example, we can subtract the latent vector of an encoded pig head from the latent vector of a full pig, to arrive at a vector that represents the concept of a body.  Adding this difference to the latent vector of a cat head results in a full cat (i.e. cat head + body = full cat). These drawing analogies allow us to explore how the model organizes its latent space to represent different concepts in the manifold of generated sketches.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Creative Applications&lt;/b&gt;&lt;br /&gt;In addition to the research component of this work, we are also super excited about potential creative applications of sketch-rnn. For instance, even in the simplest use case, pattern designers can apply sketch-rnn to generate a large number of similar, but unique designs for textile or wallpaper prints.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-JKzxGG1pusY/WO6YNlzvfFI/AAAAAAAABuQ/_diVcKJWHHEecMeixOHCSnG8v4rHDt3cwCLcB/s1600/multi_cat_examples.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-JKzxGG1pusY/WO6YNlzvfFI/AAAAAAAABuQ/_diVcKJWHHEecMeixOHCSnG8v4rHDt3cwCLcB/s1600/multi_cat_examples.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Similar, but unique cats, generated from a single input sketch (green and yellow boxes).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;As we saw earlier, a model trained to draw pigs can be made to draw pig-like trucks if given an input sketch of a truck. We can extend this result to applications that might help creative designers come up with abstract designs that can resonate more with their target audience.&lt;br /&gt;&lt;br /&gt;For instance, in the figure below, we feed sketches of four different chairs into our cat-drawing model to produce four chair-like cats. We can go further and incorporate the interpolation methodology described earlier to explore the latent space of chair-like cats, and produce a large grid of generated designs to select from. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-XSXUQnJGAiU/WO6ZBUTS4GI/AAAAAAAABuU/IXrSlolMzpoSZPrHX797htnP65uvRHwCQCLcB/s1600/image03.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="430" src="https://2.bp.blogspot.com/-XSXUQnJGAiU/WO6ZBUTS4GI/AAAAAAAABuU/IXrSlolMzpoSZPrHX797htnP65uvRHwCQCLcB/s640/image03.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Exploring the latent space of generated chair-cats.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Exploring the latent space between different objects can potentially enable creative designers to find interesting intersections and relationships between different drawings.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-F1C-Zcwb_xI/WO6ZPv3A7sI/AAAAAAAABuY/LiLxxRW-KlY2T0aFDhJq2kUgmjyJQoQAgCLcB/s1600/multiple_interpolations.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://2.bp.blogspot.com/-F1C-Zcwb_xI/WO6ZPv3A7sI/AAAAAAAABuY/LiLxxRW-KlY2T0aFDhJq2kUgmjyJQoQAgCLcB/s1600/multiple_interpolations.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Exploring the latent space of generated sketches of everyday objects.&lt;br /&gt;Latent space interpolation from left to right, and then top to bottom.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We can also use the decoder module of sketch-rnn as a standalone model and train it to predict different possible endings of incomplete sketches. This technique can lead to applications where the model assists the creative process of an artist by suggesting alternative ways to finish an incomplete sketch. In the figure below, we draw different incomplete sketches (in red), and have the model come up with different possible ways to complete the drawings.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-Tpppe68EuSw/WO6ZgdENDVI/AAAAAAAABuc/3VHMomdZ1lITXqM65s4JS1xvqoPyyaHzACLcB/s1600/full_predictions.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://3.bp.blogspot.com/-Tpppe68EuSw/WO6ZgdENDVI/AAAAAAAABuc/3VHMomdZ1lITXqM65s4JS1xvqoPyyaHzACLcB/s1600/full_predictions.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The model can start with incomplete sketches (the red partial sketches to the left of the vertical line) and automatically generate different completions.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We can take this concept even further, and have different models complete the same incomplete sketch. In the figures below, we see how to make the same circle and square figures become a part of various ants, flamingos, helicopters, owls, couches and even paint brushes. By using a diverse set of models trained to draw various objects, designers can explore creative ways to communicate meaningful visual messages to their audience.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-5l1FYHe6O20/WO6ZwaMIf2I/AAAAAAAABug/EEcoxzlb9mgCMNJaUhHPwFTuFChrZhm3ACLcB/s1600/multi_prediction.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-5l1FYHe6O20/WO6ZwaMIf2I/AAAAAAAABug/EEcoxzlb9mgCMNJaUhHPwFTuFChrZhm3ACLcB/s1600/multi_prediction.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Predicting the endings of the same circle and square figures (center) using various sketch-rnn models trained to draw different objects.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We are very excited about the future possibilities of generative vector image modelling. These models will enable many exciting new creative applications in a variety of different directions. They can also serve as a tool to help us improve our understanding of our own creative thought processes. Learn more about sketch-rnn by reading our paper, “&lt;a href="https://arxiv.org/abs/1704.03477"&gt;A Neural Representation of Sketch Drawings&lt;/a&gt;”.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements&lt;/b&gt;&lt;br /&gt;We thank Ian Johnson, Jonas Jongejan, Martin Wattenberg, Mike Schuster, Ben Poole, Kyle Kastner, Junyoung Chung, Kyle McDonald for their help with this project. This work was done as part of the &lt;a href="http://g.co/brainresidency"&gt;Google Brain Residency&lt;/a&gt; program.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=vwpFovXgCf0:_b-8nFRF-bo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/vwpFovXgCf0" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/8410495058131747007/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/04/teaching-machines-to-draw.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8410495058131747007" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8410495058131747007" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/vwpFovXgCf0/teaching-machines-to-draw.html" title="Teaching Machines to Draw" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-X0o-v6SQXtI/WO6R8X22wlI/AAAAAAAABts/Qbvu5QoVwZIfKB-zEV7Po_Juh9AqEb28gCLcB/s72-c/twitter_cover.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/04/teaching-machines-to-draw.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-21224994.post-8615799087445291746</id><published>2017-04-11T11:00:00.000-07:00</published><updated>2017-04-11T13:12:30.769-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Deep Learning" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Brain" /><category scheme="http://www.blogger.com/atom/ns#" term="Machine Translation" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">Introducing tf-seq2seq: An Open Source Sequence-to-Sequence Framework in TensorFlow</title><content type="html">&lt;span class="byline-author"&gt;Posted by Anna Goldie and Denny Britz, Research Software Engineer and Google Brain Resident, Google Brain Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(Crossposted on the &lt;a href="http://opensource.googleblog.com/2017/04/tf-seq2seq-sequence-to-sequence-framework-in-tensorflow.html"&gt;Google Open Source Blog&lt;/a&gt;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Last year, we announced &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;Google Neural Machine Translation&lt;/a&gt; (GNMT), a sequence-to-sequence (“&lt;a href="https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf"&gt;seq2seq&lt;/a&gt;”) model which is now used in Google Translate production systems. While GNMT achieved huge improvements in translation quality, its impact was limited by the fact that the framework for training these models was unavailable to external researchers.&lt;br /&gt;&lt;br /&gt;Today, we are excited to introduce &lt;a href="https://google.github.io/seq2seq/"&gt;tf-seq2seq&lt;/a&gt;, an open source seq2seq framework in TensorFlow that makes it easy to experiment with seq2seq models and achieve state-of-the-art results. To that end, we made the tf-seq2seq codebase clean and modular, maintaining full test coverage and documenting all of its functionality.&lt;br /&gt;&lt;br /&gt;Our framework supports various configurations of the standard seq2seq model, such as depth of the encoder/decoder, attention mechanism, RNN cell type, or beam size. This versatility allowed us to discover optimal hyperparameters and outperform other frameworks, as described in our paper, “&lt;a href="https://arxiv.org/pdf/1703.03906.pdf"&gt;Massive Exploration of Neural Machine Translation Architectures&lt;/a&gt;.”&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-6DALk3-hPtA/WO04i5GgXLI/AAAAAAAABtc/2t9mYz4nQDg9jLoHdTkywDUfxIOFJfC_gCLcB/s1600/Seq2SeqDiagram.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="382" src="https://4.bp.blogspot.com/-6DALk3-hPtA/WO04i5GgXLI/AAAAAAAABtc/2t9mYz4nQDg9jLoHdTkywDUfxIOFJfC_gCLcB/s640/Seq2SeqDiagram.gif" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A seq2seq model translating from Mandarin to English. At each time step, the encoder takes in one Chinese character and its own previous state (black arrow), and produces an output vector (blue arrow). The decoder then generates an English translation word-by-word, at each time step taking in the last word, the previous state, and a weighted combination of all the outputs of the encoder (aka attention [3], depicted in blue) and then producing the next English word. Please note that in our implementation we use wordpieces [4] to handle rare words.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In addition to machine translation, tf-seq2seq can also be applied to any other sequence-to-sequence task (i.e. learning to produce an output sequence given an input sequence), including machine summarization, image captioning, speech recognition, and conversational modeling. We carefully designed our framework to maintain this level of generality and provide tutorials, preprocessed data, and other utilities for &lt;a href="https://google.github.io/seq2seq/nmt/"&gt;machine translation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We hope that you will use tf-seq2seq to accelerate (or kick off) your own deep learning research. We also welcome your contributions to our &lt;a href="https://github.com/google/seq2seq"&gt;GitHub repository&lt;/a&gt;, where we have a variety of open issues that we would love to have your help with!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgments:&lt;/b&gt;&lt;br /&gt;We’d like to thank Eugene Brevdo, Melody Guan, Lukasz Kaiser, Quoc V. Le, Thang Luong, and Chris Olah for all their help. For a deeper dive into how seq2seq models work, please see the resources below. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;[1] &lt;a href="https://arxiv.org/pdf/1703.03906.pdf"&gt;Massive Exploration of Neural Machine Translation Architectures&lt;/a&gt;, &lt;i&gt;Denny Britz, Anna Goldie, Minh-Thang Luong, Quoc Le&lt;/i&gt;&lt;br /&gt;[2] &lt;a href="https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf"&gt;Sequence to Sequence Learning with Neural Networks&lt;/a&gt;, &lt;i&gt;Ilya Sutskever, Oriol Vinyals, Quoc V. Le. NIPS, 2014&lt;/i&gt;&lt;br /&gt;[3] &lt;a href="https://arxiv.org/abs/1409.0473"&gt;Neural Machine Translation by Jointly Learning to Align and Translate&lt;/a&gt;, &lt;i&gt;Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio. ICLR, 2015&lt;/i&gt;&lt;br /&gt;[4] &lt;a href="https://arxiv.org/abs/1609.08144"&gt;Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation&lt;/a&gt;, &lt;i&gt;Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V. Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, Jeff Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Łukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil, Wei Wang, Cliff Young, Jason Smith, Jason Riesa, Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduff Hughes, Jeffrey Dean. Technical Report, 2016&lt;/i&gt;&lt;br /&gt;[5] &lt;a href="http://distill.pub/2016/augmented-rnns/"&gt;Attention and Augmented Recurrent Neural Networks&lt;/a&gt;, &lt;i&gt;Chris Olah, Shan Carter. Distill, 2016&lt;/i&gt;&lt;br /&gt;[6] &lt;a href="https://arxiv.org/abs/1703.01619"&gt;Neural Machine Translation and Sequence-to-sequence Models: A Tutorial&lt;/a&gt;, &lt;i&gt;Graham Neubig&lt;/i&gt;&lt;br /&gt;[7] &lt;a href="https://www.tensorflow.org/tutorials/seq2seq"&gt;Sequence-to-Sequence Models&lt;/a&gt;, &lt;i&gt;TensorFlow.org&lt;/i&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/gJZg?a=LZ4x4YzhLQ8:YmKPsCyKlHQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/gJZg?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gJZg/~4/LZ4x4YzhLQ8" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://research.googleblog.com/feeds/8615799087445291746/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://research.googleblog.com/2017/04/introducing-tf-seq2seq-open-source.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8615799087445291746" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21224994/posts/default/8615799087445291746" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/gJZg/~3/LZ4x4YzhLQ8/introducing-tf-seq2seq-open-source.html" title="Introducing tf-seq2seq: An Open Source Sequence-to-Sequence Framework in TensorFlow" /><author><name>Research Blog</name><uri>https://plus.google.com/101673966767287570260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-GXTJ2sdBxaM/AAAAAAAAAAI/AAAAAAAAA14/2q3ThT_9JIY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-6DALk3-hPtA/WO04i5GgXLI/AAAAAAAABtc/2t9mYz4nQDg9jLoHdTkywDUfxIOFJfC_gCLcB/s72-c/Seq2SeqDiagram.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://research.googleblog.com/2017/04/introducing-tf-seq2seq-open-source.html</feedburner:origLink></entry></feed>
