The technology disclosed relates to artificial intelligence type computers and digital data processing systems and corresponding data processing methods and products for emulation of intelligence (i.e., knowledge based systems, reasoning systems, and knowledge acquisition systems); and including systems for reasoning with uncertainty (e.g., fuzzy logic systems), adaptive systems, machine learning systems, and artificial neural networks. The technology disclosed generally relates to a novel visual attention-based encoder-decoder image captioning model. One aspect of the technology disclosed relates to a novel spatial attention model for extracting spatial image features during image captioning. The spatial attention model uses current hidden state information of a decoder long short-term memory (LSTM) to guide attention, rather than using a previous hidden state or a previously emitted word. Another aspect of the technology disclosed relates to a novel adaptive attention model for image captioning that mixes visual information from a convolutional neural network (CNN) and linguistic information from an LSTM. At each timestep, the adaptive attention model automatically decides how heavily to rely on the image, as opposed to the linguistic model, to emit the next caption word. Yet another aspect of the technology disclosed relates to adding a new auxiliary sentinel gate to an LSTM architecture and producing a sentinel LSTM (Sn-LSTM). The sentinel gate produces a visual sentinel at each timestep, which is an additional representation, derived from the LSTM's memory, of long and short term visual and linguistic information.
The subject matter discussed in this section should not be assumed to be prior art merely as a result of its mention in this section. Similarly, a problem mentioned in this section or associated with the subject matter provided as background should not be assumed to have been previously recognized in the prior art. The subject matter in this section merely represents different approaches, which in and of themselves can also correspond to implementations of the claimed technology.
Image captioning is drawing increasing interest in computer vision and machine learning. Basically, it requires machines to automatically describe the content of an image using a natural language sentence. While this task seems obvious for human-beings, it is complicated for machines since it requires the language model to capture various semantic features within an image, such as objects' motions and actions. Another challenge for image captioning, especially for generative models, is that the generated output should be human-like natural sentences.
Recent successes of deep neural networks in machine translation have catalyzed the adoption of neural networks in solving image captioning problems. The idea originates from the encoder-decoder architecture in neural machine translation, where a convolutional neural network (CNN) is adopted to encode the input image into feature vectors, and a sequence modeling approach (e.g., long short-term memory (LSTM)) decodes the feature vectors into a sequence of words.
Most recent work in image captioning relies on this structure, and leverages image guidance, attributes, region attention, or text attention as the attention guide. FIG. 2A shows an attention leading decoder that uses previous hidden state information to guide attention and generate an image caption (prior art).
Therefore, an opportunity arises to improve the performance of attention-based image captioning models.
Automatically generating captions for images has emerged as a prominent interdisciplinary research problem in both academia and industry. It can aid visually impaired users, and make it easy for users to organize and navigate through large amounts of typically unstructured visual data. In order to generate high quality captions, an image captioning model needs to incorporate fine-grained visual clues from the image. Recently, visual attention-based neural encoder-decoder models have been explored, where the attention mechanism typically produces a spatial map highlighting image regions relevant to each generated word.
Most attention models for image captioning and visual question answering attend to the image at every timestep, irrespective of which word is going to be emitted next. However, not all words in the caption have corresponding visual signals. Consider the example in
Therefore, an opportunity arises to determine the importance that should be given to the target image during caption generation by an attention-based visual neural encoder-decoder model.
Deep neural networks (DNNs) have been successfully applied to many areas, including speech and vision. On natural language processing tasks, recurrent neural networks (RNNs) are widely used because of their ability to memorize long-term dependency. A problem of training deep networks, including RNNs, is gradient diminishing and explosion. This problem is apparent when training an RNN. A long short-term memory (LSTM) neural network is an extension of an RNN that solves this problem. In LSTM, a memory cell has linear dependence of its current activity and its past activity. A forget gate is used to modulate the information flow between the past and the current activities. LSTMs also have input and output gates to modulate its input and output.
The generation of an output word in an LSTM depends on the input at the current timestep and the previous hidden state. However, LSTMs have been configured to condition their output on auxiliary inputs, in addition to the current input and the previous hidden state. For example, in image captioning models, LSTMs incorporate external visual information provided by image features to influence linguistic choices at different stages. As image caption generators, LSTMs take as input not only the most recently emitted caption word and the previous hidden state, but also regional features of the image being captioned (usually derived from the activation values of a hidden layer in a convolutional neural network (CNN)). The LSTMs are then trained to vectorize the image-caption mixture in such a way that this vector can be used to predict the next caption word.
Other image captioning models use external semantic information extracted from the image as an auxiliary input to each LSTM gate. Yet other text summarization and question answering models exist in which a textual encoding of a document or a question produced by a first LSTM is provided as an auxiliary input to a second LSTM.
The auxiliary input carries auxiliary information, which can be visual or textual. It can be generated externally by another LSTM, or derived externally from a hidden state of another LSTM. It can also be provided by an external source such as a CNN, a multilayer perceptron, an attention network, or another LSTM. The auxiliary information can be fed to the LSTM just once at the initial timestep or fed successively at each timestep.
However, feeding uncontrolled auxiliary information to the LSTM can yield inferior results because the LSTM can exploit noise from the auxiliary information and overfit more easily. To address this problem, we introduce an additional control gate into the LSTM that gates and guides the use of auxiliary information for next output generation.
Therefore, an opportunity arises to extend the LSTM architecture to include an auxiliary sentinel gate that determines the importance that should be given to auxiliary information stored in the LSTM for next output generation.
The patent or application file of the U.S. priority application contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the U.S. Patent and Trademark Office upon request and payment of the necessary fee. The color drawings are incorporated by reference herein.
In the drawings, like reference characters generally refer to like parts throughout the different views. Also, the drawings are not necessarily to scale, with an emphasis instead generally being placed upon illustrating the principles of the technology disclosed. In the following description, various implementations of the technology disclosed are described with reference to the following drawings, in which:
The following discussion is presented to enable any person skilled in the art to make and use the technology disclosed, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed implementations will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the technology disclosed. Thus, the technology disclosed is not intended to be limited to the implementations shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
What follows is a discussion of the neural encoder-decoder framework for image captioning, followed by the disclosed attention-based image captioning models.
Attention-based visual neural encoder-decoder models use a convolutional neural network (CNN) to encode an input image into feature vectors and a long short-term memory network (LSTM) to decode the feature vectors into a sequence of words. The LSTM relies on an attention mechanism that produces a spatial map that highlights image regions relevant to for generating words. Attention-based models leverage either previous hidden state information of the LSTM or previously emitted caption word(s) as input to the attention mechanism.
Given an image and the corresponding caption, the encoder-decoder model directly maximizes the following objective:
In the above equation (1), θ are the parameters of the model, I is the image, and y={y1, . . . yt} is the corresponding caption. Using the chain rule, the log likelihood of the joint probability distribution can be decomposed into the following ordered conditionals:
As evident by the above equation (2), the dependency on model parameters is dropped for convenience.
In an encoder-decoder framework that uses a recurrent neural network (RNN) as the decoder, each conditional probability is modeled as:
log p(yt|y1, . . . ,yt-1,I)=f(ht,{tilde over (c)}t)
In the above equation (3), f is a nonlinear function that outputs the probability of yt. {tilde over (c)}t is the visual context vector at time t extracted from image I. ht is the current hidden state of the RNN at time t.
In one implementation, the technology disclosed uses a long short-term memory network (LSTM) as the RNN. LSTMs are gated variants of a vanilla RNN and have demonstrated state-of-the-art performance on a variety of sequence modeling tasks. Current hidden state ht of the LSTM is modeled as:
h
t=LSTM(xt,ht-1,mt-1)
In the above equation (4), xt is the current input at time t and mt-1 is the previous memory cell state at time t−1.
Context vector {tilde over (c)}t is an important factor in the neural encoder-decoder framework because it provides visual evidence for caption generation. Different ways of modeling the context vector fall into two categories: vanilla encoder-decoder and attention-based encoder-decoder frameworks. First, in the vanilla framework, context vector {tilde over (c)}t is only dependent on a convolutional neural network (CNN) that serves as the encoder. The input image I is fed into the CNN, which extracts the last fully connected layer as a global image feature. Across generated words, the context vector {tilde over (c)}t keeps constant, and does not depend on the hidden state of the decoder.
Second, in the attention-based framework, context vector {tilde over (c)}t is dependent on both the encoder and the decoder. At time t, based on the hidden state, the decoder attends to specific regions of the image and determines context vector {tilde over (c)}t using the spatial image features from a convolution layer of a CNN. Attention models can significantly improve the performance of image captioning.
We disclose a novel spatial attention model for image captioning that is different from previous work in at least two aspects. First, our model uses the current hidden state information of the decoder LSTM to guide attention, instead of using the previous hidden state or a previously emitted word. Second, our model supplies the LSTM with a time-invariant global image representation, instead of a progression by timestep of attention-variant image representations.
The attention mechanism of our model uses current instead of prior hidden state information to guide attention, which requires a different structure and different processing steps. The current hidden state information is used to guide attention to image regions and generate, in a timestep, an attention-variant image representation. The current hidden state information is computed at each timestep by the decoder LSTM, using a current input and previous hidden state information. Information from the LSTM, the current hidden state, is fed to the attention mechanism, instead of output of the attention mechanism being fed to the LSTM.
The current input combines word(s) previously emitted with a time-invariant global image representation, which is determined from the encoder CNN's image features. The first current input word fed to decoder LSTM is a special start (<start>) token. The global image representation can be fed to the LSTM once, in a first timestep, or repeatedly at successive timesteps.
The spatial attention model determines context vector ct that is defined as:
c
t
=g(V,ht)
In the above equation (5), g is the attention function which is embodied in and implemented by the attender of
Given the image features V∈d×k produced by the CNN encoder and current hidden state ht|d of the LSTM decoder, the disclosed spatial attention model feeds them through a comparator (
z
t
=w
h
T tan h(WvV+(Wght)1T)
αt=softmax(zt)
In the above equations (6) and (7), 1∈k is a unity vector with all elements set to 1. Wv, Wg∈k×d, and Wh k are parameters that are learnt. α∈k is the attention weight over image features v1, . . . vk in V and αt denotes an attention map that comprises the attention weights (also referred to herein as the attention probability masses). As shown in
Based on the attention distribution, the context vector ct is obtained by a convex combination accumulator as:
In the above equation (8), ct and ht are combined to predict next word yt as in equation (3) using an emitter.
As shown in
Encoder-CNN
Attention Lagging Decoder-LSTM
Different from
Global Image Feature Generator
In the above equation (9), ag is the preliminary global image feature that is determined by averaging the image features produced by the CNN encoder. For modeling convenience, the global image feature generator uses a single layer perceptron with rectifier activation function to transform the image feature vectors into new vectors with dimension z d:
v
i=ReLU(Waai)
v
g=ReLU(Wbag)
In the above equations (10) and (11), Wa and Wb are the weight parameters. vg is the global image feature. Global image feature vg is time-invariant because it is not sequentially or recurrently produced, but instead determined from non-recurrent, convolved image features. The transformed spatial image features vi form the image features V=[v1, . . . vk], vi∈d. Transformation of the image features is embodied in and implemented by the image feature rectifier of the global image feature generator, according to one implementation. Transformation of the preliminary global image feature is embodied in and implemented by the global image feature rectifier of the global image feature generator, according to one implementation.
Word Embedder
Input Preparer
A long short-term memory (LSTM) is a cell in a neural network that is repeatedly exercised in timesteps to produce sequential outputs from sequential inputs. The output is often referred to as a hidden state, which should not be confused with the cell's memory. Inputs are a hidden state and memory from a prior timestep and a current input. The cell has an input activation function, memory, and gates. The input activation function maps the input into a range, such as −1 to 1 for a tan h activation function. The gates determine weights applied to updating the memory and generating a hidden state output result from the memory. The gates are a forget gate, an input gate, and an output gate. The forget gate attenuates the memory. The input gate mixes activated inputs with the attenuated memory. The output gate controls hidden state output from the memory. The hidden state output can directly label an input or it can be processed by another component to emit a word or other label or generate a probability distribution over labels.
An auxiliary input can be added to the LSTM that introduces a different kind of information than the current input, in a sense orthogonal to current input. Adding such a different kind of auxiliary input can lead to overfitting and other training artifacts. The technology disclosed adds a new gate to the LSTM cell architecture that produces a second sentinel state output from the memory, in addition to the hidden state output. This sentinel state output is used to control mixing between different neural network processing models in a post-LSTM component. A visual sentinel, for instance, controls mixing between analysis of visual features from a CNN and of word sequences from a predictive language model. The new gate that produces the sentinel state output is called “auxiliary sentinel gate”.
The auxiliary input contributes to both accumulated auxiliary information in the LSTM memory and to the sentinel output. The sentinel state output encodes parts of the accumulated auxiliary information that are most useful for next output prediction. The sentinel gate conditions current input, including the previous hidden state and the auxiliary information, and combines the conditioned input with the updated memory, to produce the sentinel state output. An LSTM that includes the auxiliary sentinel gate is referred to herein as a “sentinel LSTM (Sn-LSTM)”.
Also, prior to being accumulated in the Sn-LSTM, the auxiliary information is often subjected to a “tan h” (hyperbolic tangent) function that produces output in the range of −1 and 1 (e.g., tan h function following the fully-connected layer of a CNN). To be consistent with the output ranges of the auxiliary information, the auxiliary sentinel gate gates the pointwise tan h of the Sn-LSTM's memory cell. Thus, tan h is selected as the non-linearity function applied to the Sn-LSTM's memory cell because it matches the form of the stored auxiliary information.
In some implementations, the auxiliary input at is not separately provided, but instead encoded as auxiliary information in the previous hidden state ht-1 and/or the input xt (such as the global image feature vg).
The auxiliary input at can be visual input comprising image data and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input at can be a text encoding from another long short-term memory network (abbreviated LSTM) of an input document and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input at can be a hidden state vector from another LSTM that encodes sequential data and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input at can be a prediction derived from a hidden state vector from another LSTM that encodes sequential data and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input at can be an output of a convolutional neural network (abbreviated CNN). The auxiliary input at can be an output of an attention network.
The Sn-LSTM generates outputs at each of the plurality of timesteps by processing the inputs through a plurality of gates. The gates include at least an input gate, a forget gate, an output gate, and an auxiliary sentinel gate. Each of the gates can run on at least one of the numerous parallel processors.
The input gate controls how much of the current input xt and the previous hidden state ht-1 will enter the current memory cell state mt and is represented as:
i
t=σ(Wxixt+Whiht-1+bi)
=σ(linearxi(xt)+linearhi(ht-1))
The forget gate operates on the current memory cell state mt and the previous memory cell state mt-1 and decides whether to erase (set to zero) or keep individual components of the memory cell and is represented as:
f
t=σ(Wxfxt+Whfht-1+bf)
The output gate scales the output from the memory cell and is represented as:
o
t=σ(Wxoxt+Whoht-1+bo)
The Sn-LSTM can also include an activation gate (also referred to as cell update gate or input transformation gate) that transforms the current input xt and previous hidden state ht-1 to be taken into account into the current memory cell state mt and is represented as:
g
t=tan h(Wxgxt+Whght-1+bg)
The Sn-LSTM can also include a current hidden state producer that outputs the current hidden state ht scaled by a tan h (squashed) transformation of the current memory cell state mt and is represented as:
h
t
=o
t⊙ tan h(mt)
In the above equation, ⊙ represents the element-wise product.
A memory cell updater (
m
t
=f
t
⊙m
t-1
+i
t
⊙g
t
As discussed above, the auxiliary sentinel gate produces a sentinel state or visual sentinel which is a latent representation of what the Sn-LSTM decoder already knows. The Sn-LSTM decoder's memory stores both long and short term visual and linguistic information. The adaptive attention model learns to extract a new component from the Sn-LSTM that the model can fall back on when it chooses to not attend to the image. This new component is called the visual sentinel. And the gate that decides whether to attend to the image or to the visual sentinel is the auxiliary sentinel gate.
The visual and linguistic contextual information is stored in the Sn-LSTM decoder's memory cell. We use the visual sentinel vector st to modulate this information by:
auxt=σ(Wxauxxt+Whauxht-1+baux)
s
t=auxt⊙ tan h(mt)
In the above equations, Wx and Wh are weight parameters that are learned, xt is the input to the Sn-LSTM at timestep t, and auxt is the auxiliary sentinel gate applied to the current memory cell state mt. ⊙ represents the element-wise product and σ is the logistic sigmoid activation.
In an attention-based encoder-decoder text summarization model, the Sn-LSTM can be used as a decoder that receives auxiliary information from another encoder LSTM. The encoder LSTM can process an input document to produce a document encoding. The document encoding or an alternative representation of the document encoding can be fed to the Sn-LSTM as auxiliary information. Sn-LSTM can use its auxiliary sentinel gate to determine which parts of the document encoding (or its alternative representation) are most important at a current timestep, considering a previously generated summary word and a previous hidden state. The important parts of the document encoding (or its alternative representation) can then be encoded into the sentinel state. The sentinel state can be used to generate the next summary word.
In an attention-based encoder-decoder question answering model, the Sn-LSTM can be used as a decoder that receives auxiliary information from another encoder LSTM. The encoder LSTM can process an input question to produce a question encoding. The question encoding or an alternative representation of the question encoding can be fed to the Sn-LSTM as auxiliary information. Sn-LSTM can use its auxiliary sentinel gate to determine which parts of the question encoding (or its alternative representation) are most important at a current timestep, considering a previously generated answer word and a previous hidden state. The important parts of the question encoding (or its alternative representation) can then be encoded into the sentinel state. The sentinel state can be used to generate the next answer word.
In an attention-based encoder-decoder machine translation model, the Sn-LSTM can be used as a decoder that receives auxiliary information from another encoder LSTM. The encoder LSTM can process a source language sequence to produce a source encoding. The source encoding or an alternative representation of the source encoding can be fed to the Sn-LSTM as auxiliary information. Sn-LSTM can use its auxiliary sentinel gate to determine which parts of the source encoding (or its alternative representation) are most important at a current timestep, considering a previously generated translated word and a previous hidden state. The important parts of the source encoding (or its alternative representation) can then be encoded into the sentinel state. The sentinel state can be used to generate the next translated word.
In an attention-based encoder-decoder video captioning model, the Sn-LSTM can be used as a decoder that receives auxiliary information from an encoder comprising a CNN and an LSTM. The encoder can process video frames of a video to produce a video encoding. The video encoding or an alternative representation of the video encoding can be fed to the Sn-LSTM as auxiliary information. Sn-LSTM can use its auxiliary sentinel gate to determine which parts of the video encoding (or its alternative representation) are most important at a current timestep, considering a previously generated caption word and a previous hidden state. The important parts of the video encoding (or its alternative representation) can then be encoded into the sentinel state. The sentinel state can be used to generate the next caption word.
In an attention-based encoder-decoder image captioning model, the Sn-LSTM can be used as a decoder that receives auxiliary information from an encoder CNN. The encoder can process an input image to produce an image encoding. The image encoding or an alternative representation of the image encoding can be fed to the Sn-LSTM as auxiliary information. Sn-LSTM can use its auxiliary sentinel gate to determine which parts of the image encoding (or its alternative representation) are most important at a current timestep, considering a previously generated caption word and a previous hidden state. The important parts of the image encoding (or its alternative representation) can then be encoded into the sentinel state. The sentinel state can be used to generate the next caption word.
As discussed above, a long short-term memory (LSTM) decoder can be extended to generate image captions by attending to regions or features of a target image and conditioning word predictions on the attended image features. However, attending to the image is only half of the story; knowing when to look is the other half. That is, not all caption words correspond to visual signals; some words, such as stop words and linguistically correlated words, can be better inferred from textual context.
Existing attention-based visual neural encoder-decoder models force visual attention to be active for every generated word. However, the decoder likely requires little to no visual information from the image to predict non-visual words such as “the” and “of”. Other words that seem visual can often be predicted reliably by the linguistic model, e.g., “sign” after “behind a red stop” or “phone” following “talking on a cell”. If the decoder needs to generate the compound word “stop sign” as caption, then only “stop” requires access to the image and “sign” can be deduced linguistically. Our technology guides use of visual and linguistic information.
To overcome the above limitations, we disclose a novel adaptive attention model for image captioning that mixes visual information from a convolutional neural network (CNN) and linguistic information from an LSTM. At each timestep, our adaptive attention encoder-decoder framework can automatically decide how heavily to rely on the image, as opposed to the linguistic model, to emit the next caption word.
As discussed above, our model adds a new auxiliary sentinel gate to the LSTM architecture. The sentinel gate produces a so-called visual sentinel/sentinel state st at each timestep, which is an additional representation, derived from the Sn-LSTM's memory, of long and short term visual and linguistic information. The visual sentinel st encodes information that can be relied on by the linguistic model without reference to the visual information from the CNN. The visual sentinel st is used, in combination with the current hidden state from the Sn-LSTM, to generate a sentinel gate mass/gate probability mass βt that controls mixing of image and linguistic context.
For example, as illustrated in
The technology disclosed also provides a system and method of evaluating performance of an image captioning model. The technology disclosed generates a spatial attention map of attention values for mixing image region vectors of an image using a convolutional neural network (abbreviated CNN) encoder and a long-short term memory (LSTM) decoder and produces a caption word output based on the spatial attention map. Then, the technology disclosed segments regions of the image above a threshold attention value into a segmentation map. Then, the technology disclosed projects a bounding box over the image that covers a largest connected image component in the segmentation map. Then, the technology disclosed determines an intersection over union (abbreviated IOU) of the projected bounding box and a ground truth bounding box. Then, the technology disclosed determines a localization accuracy of the spatial attention map based on the calculated IOU.
The technology disclosed achieves state-of-the-art performance across standard benchmarks on the COCO dataset and the Flickr30k dataset.
We describe a system and various implementations of a visual attention-based encoder-decoder image captioning model. One or more features of an implementation can be combined with the base implementation. Implementations that are not mutually exclusive are taught to be combinable. One or more features of an implementation can be combined with other implementations. This disclosure periodically reminds the user of these options. Omission from some implementations of recitations that repeat these options should not be taken as limiting the combinations taught in the preceding sections —these recitations are hereby incorporated forward by reference into each of the following implementations.
In one implementation, the technology disclosed presents a system. The system includes numerous parallel processors coupled to memory. The memory is loaded with computer instructions to generate a natural language caption for an image. The instructions, when executed on the parallel processors, implement the following actions.
Processing an image through an encoder to produce image feature vectors for regions of the image and determining a global image feature vector from the image feature vectors. The encoder can be a convolutional neural network (abbreviated CNN).
Processing words through a decoder by beginning at an initial timestep with a start-of-caption token <start> and the global image feature vector and continuing in successive timesteps using a most recently emitted caption word wt-1 and the global image feature vector as input to the decoder. The decoder can be a long short-term memory network (abbreviated LSTM).
At each timestep, using at least a current hidden state of the decoder to determine unnormalized attention values for the image feature vectors and exponentially normalizing the attention values to produce attention probability masses.
Applying the attention probability masses to the image feature vectors to accumulate in an image context vector a weighted sum of the image feature vectors.
Submitting the image context vector and the current hidden state of the decoder to a feed-forward neural network and causing the feed-forward neural network to emit a next caption word. The feed-forward neural network can be a multilayer perceptron (abbreviated MLP).
Repeating the processing of words through the decoder, the using, the applying, and the submitting until the caption word emitted is an end-of-caption token <end>. The iterations are performed by a controller, shown in
This system implementation and other systems disclosed optionally include one or more of the following features. System can also include features described in connection with methods disclosed. In the interest of conciseness, alternative combinations of system features are not individually enumerated. Features applicable to systems, methods, and articles of manufacture are not repeated for each statutory class set of base features. The reader will understand how features identified in this section can readily be combined with base features in other statutory classes.
The system can be a computer-implemented system. The system can be a neural network-based system.
The current hidden state of the decoder can be determined based on a current input to the decoder and a previous hidden state of the decoder.
The image context vector can be a dynamic vector that determines at each timestep an amount of spatial attention allocated to each image region, conditioned on the current hidden state of the decoder.
The system can use weakly-supervised localization to evaluate the allocated spatial attention.
The attention values for the image feature vectors can be determined by processing the image feature vectors and the current hidden state of the decoder through a single layer neural network.
The system can cause the feed-forward neural network to emit the next caption word at each timestep. In such an implementation, the feed-forward neural network can produce an output based on the image context vector and the current hidden state of the decoder and use the output to determine a normalized distribution of vocabulary probability masses over words in a vocabulary that represent a respective likelihood that a vocabulary word is the next caption word.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In another implementation, the technology disclosed presents a system. The system includes numerous parallel processors coupled to memory. The memory is loaded with computer instructions to generate a natural language caption for an image. The instructions, when executed on the parallel processors, implement the following actions.
Using current hidden state information of an attention lagging decoder to generate an attention map for image feature vectors produced by an encoder from an image and generating an output caption word based on a weighted sum of the image feature vectors, with the weights determined from the attention map.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The system can be a computer-implemented system. The system can be a neural network-based system.
The current hidden state information can be determined based on a current input to the decoder and previous hidden state information.
The system can use weakly-supervised localization to evaluate the attention map.
The encoder can be a convolutional neural network (abbreviated CNN) and the image feature vectors can be produced by a last convolutional layer of the CNN.
The attention lagging decoder can be a long short-term memory network (abbreviated LSTM).
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In yet another implementation, the technology disclosed presents a system. The system includes numerous parallel processors coupled to memory. The memory is loaded with computer instructions to generate a natural language caption for an image. The instructions, when executed on the parallel processors, implement the following actions.
Processing an image through an encoder to produce image feature vectors for regions of the image. The encoder can be a convolutional neural network (abbreviated CNN).
Processing words through a decoder by beginning at an initial timestep with a start-of-caption token <start> and continuing in successive timesteps using a most recently emitted caption word wt-1 as input to the decoder. The decoder can be a long short-term memory network (abbreviated LSTM).
At each timestep, using at least a current hidden state of the decoder to determine, from the image feature vectors, an image context vector that determines an amount of attention allocated to regions of the image conditioned on the current hidden state of the decoder.
Not supplying the image context vector to the decoder.
Submitting the image context vector and the current hidden state of the decoder to a feed-forward neural network and causing the feed-forward neural network to emit a caption word.
Repeating the processing of words through the decoder, the using, the not supplying, and the submitting until the caption word emitted is an end-of-caption token <end>. The iterations are performed by a controller, shown in
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The system can be a computer-implemented system. The system can be a neural network-based system.
The system does not supply the global image feature vector to the decoder and processes words through the decoder by beginning at the initial timestep with the start-of-caption token <start> and continuing in successive timesteps using the most recently emitted caption word wt-1 as input to the decoder.
The system does not supply the image feature vectors to the decoder, in some implementations.
In yet further implementation, the technology disclosed presents a system for machine generation of a natural language caption for an image. The system runs on numerous parallel processors. The system can be a computer-implemented system. The system can be a neural network-based system.
The system comprises an attention lagging decoder. The attention lagging decoder can run on at least one of the numerous parallel processors.
The attention lagging decoder uses at least current hidden state information to generate an attention map for image feature vectors produced by an encoder from an image. The encoder can be a convolutional neural network (abbreviated CNN) and the image feature vectors can be produced by a last convolutional layer of the CNN. The attention lagging decoder can be a long short-term memory network (abbreviated LSTM).
The attention lagging decoder causes generation of an output caption word based on a weighted sum of the image feature vectors, with the weights determined from the attention map.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
The system comprises an encoder (
The system comprises a global image feature generator (
The system comprises an input preparer (
The system comprises the decoder (
The system comprises an attender (
The system comprises a feed-forward neural network (also referred to herein as multilayer perceptron (MLP)) (
The system comprises a controller (
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The system can be a computer-implemented system. The system can be a neural network-based system.
The attender can further comprise an attender softmax (
The attender can further comprise a comparator (
The decoder can further comprise at least an input gate, a forget gate, and an output gate for determining at each decoder timestep the current decoder hidden state based on a current decoder input and a previous decoder hidden state. The input gate, the forget gate, and the output gate can each run on at least one of the numerous parallel processors.
The attender can further comprise a convex combination accumulator (
The system can further comprise a localizer (
The system can further comprise the feed-forward neural network (
The system can further comprise a vocabulary softmax (
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
The method includes processing an image I through an encoder (
The method includes processing words through a decoder (
The method includes, at each timestep, using at least a current hidden state of the decoder ht to determine unnormalized attention values zt=[λ1, . . . λk] for the image feature vectors V=[v1, . . . vk], vi∈d and exponentially normalizing the attention values to produce attention probability masses αt=[α1, . . . αk] that add to unity (1) (also referred to herein as the attention weights). αt denotes an attention map that comprises the attention probability masses [α1, . . . αk].
The method includes applying the attention probability masses [α1, . . . αk] to the image feature vectors V=[v1, . . . vk], vi∈d to accumulate in an image context vector ct a weighted sum Σ of the image feature vectors V=[v1, . . . vk], vi∈d.
The method includes submitting the image context vector ct and the current hidden state of the decoder ht to a feed-forward neural network and causing the feed-forward neural network to emit a next caption word wt. The feed-forward neural network can be a multilayer perceptron (abbreviated MLP).
The method includes repeating the processing of words through the decoder, the using, the applying, and the submitting until the caption word emitted is end-of-caption token <end>. The iterations are performed by a controller, shown in
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this method implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium (CRM) storing instructions executable by a processor to perform the method described above. Yet another implementation may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform the method described above.
In another implementation, the technology disclosed presents a method of machine generation of a natural language caption for an image. The method can be a computer-implemented method. The method can be a neural network-based method.
As shown in
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this method implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium (CRM) storing instructions executable by a processor to perform the method described above. Yet another implementation may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform the method described above.
In yet another implementation, the technology disclosed presents a method of machine generation of a natural language caption for an image. This method uses a visually hermetic LSTM. The method can be a computer-implemented method. The method can be a neural network-based method.
The method includes processing an image through an encoder (
The method includes processing words through a decoder by beginning at an initial timestep with a start-of-caption token <start> and continuing in successive timesteps using a most recently emitted caption word wt-1 as input to the decoder. The decoder can be a visually hermetic long short-term memory network (abbreviated LSTM), shown in
The method includes, at each timestep, using at least a current hidden state k of the decoder to determine, from the image feature vectors V=[v1, . . . vk], vi∈d, an image context vector ct that determines an amount of attention allocated to regions of the image conditioned on the current hidden state ht of the decoder.
The method includes not supplying the image context vector ct to the decoder.
The method includes submitting the image context vector ct and the current hidden state of the decoder ht to a feed-forward neural network and causing the feed-forward neural network to emit a caption word.
The method includes repeating the processing of words through the decoder, the using, the not supplying, and the submitting until the caption word emitted is an end-of-caption.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this method implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium (CRM) storing instructions executable by a processor to perform the method described above. Yet another implementation may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform the method described above.
In one implementation, the technology disclosed presents a system that performs the image captioning of
Mixing Σ results of an image encoder (
Determining the results of the image encoder by processing the image I through the image encoder to produce image feature vectors V=[v1, . . . vk], vi∈d for k regions of the image I and computing a global image feature vector vg from the image feature vectors V=[v1, . . . vk], vi∈d.
Determining the results of the language decoder by processing words through the language decoder. This includes—(1) beginning at an initial timestep with a start-of-caption token <start> and the global image feature vector vg, (2) continuing in successive timesteps using a most recently emitted caption word wt-1 and the global image feature vector vg as input to the language decoder, and (3) at each timestep, generating a visual sentinel vector st that combines the most recently emitted caption word wt-1, the global image feature vector vg, a previous hidden state vector of the language decoder ht-1, and memory contents mt of the language decoder.
At each timestep, using at least a current hidden state vector ht of the language decoder to determine unnormalized attention values [λ1, . . . λk] for the image feature vectors V=[v1, . . . vk], vi∈d, a and an unnormalized gate value [ηt] for the visual sentinel vector st.
Concatenating the unnormalized attention values [λ1, . . . λk] and the unnormalized gate value [ηt] and exponentially normalizing the concatenated attention and gate values to produce a vector of attention probability masses [α1, . . . αk] and the gate probability mass/sentinel gate mass βt.
Applying the attention probability masses [α1, . . . αk] to the image feature vectors V=[v1, . . . vk], vi∈d to accumulate in an image context vector ct a weighted sum Σ of the image feature vectors V=[v1, . . . vk], vi∈d. The generation of context vector ct is embodied in and implemented by the spatial attender of the adaptive attender, shown in
Determining an adaptive context vector ĉt as a mix of the image context vector ct and the visual sentinel vector st according to the gate probability mass/sentinel gate mass βt. The generation of adaptive context vector ĉt is embodied in and implemented by the mixer of the adaptive attender, shown in
Submitting the adaptive context vector and the current hidden state of the language decoder to a feed-forward neural network and causing the feed-forward neural network to emit a next caption word. The feed-forward neural network is embodied in and implemented by the emitter, as shown in
Repeating the processing of words through the language decoder, the using, the concatenating, the applying, the determining, and the submitting until the next caption word emitted is an end-of-caption token <end>. The iterations are performed by a controller, shown in
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The system can be a computer-implemented system. The system can be a neural network-based system.
The adaptive context vector ĉt at timestep t can be determined as ĉt=βtst+(1−βt) ct, where ĉt denotes the adaptive context vector, ct denotes the image context vector, st denotes the visual sentinel vector, βt denotes the gate probability mass/sentinel gate mass, and (1−βt) denotes visual grounding probability of the next caption word.
The visual sentinel vector st can encode visual sentinel information that includes visual context determined from the global image feature vector vg and textual context determined from previously emitted caption words.
The gate probability mass/sentinel gate mass/sentinel gate mass βt being unity can result in the adaptive context vector ĉt being equal to the visual sentinel vector st. In such an implementation, the next caption word wt is emitted only in dependence upon the visual sentinel information.
The image context vector ct can encode spatial image information conditioned on the current hidden state vector ht of the language decoder.
The gate probability mass/sentinel gate mass βt being zero can result in the adaptive context vector ĉt being equal to the image context vector ct. In such an implementation, the next caption word wt is emitted only in dependence upon the spatial image information.
The gate probability mass/sentinel gate mass βt can be a scalar value between unity and zero that enhances when the next caption word wt is a visual word and diminishes when the next caption word wt is a non-visual word or linguistically correlated to the previously emitted caption word wt-1.
The system can further comprise a trainer (
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In one implementation, the technology disclosed presents a method of automatic image captioning. The method can be a computer-implemented method. The method can be a neural network-based method.
The method includes mixing Σ results of an image encoder (
The method includes determining the results of the image encoder by processing the image through the image encoder to produce image feature vectors for regions of the image and computing a global image feature vector from the image feature vectors.
The method includes determining the results of the language decoder by processing words through the language decoder. This includes—(1) beginning at an initial timestep with a start-of-caption token <start> and the global image feature vector, (2) continuing in successive timesteps using a most recently emitted caption word wt-1 and the global image feature vector as input to the language decoder, and (3) at each timestep, generating a visual sentinel vector that combines the most recently emitted caption word wt-1, the global image feature vector, a previous hidden state vector of the language decoder, and memory contents of the language decoder.
The method includes, at each timestep, using at least a current hidden state vector of the language decoder to determine unnormalized attention values for the image feature vectors and an unnormalized gate value for the visual sentinel vector.
The method includes concatenating the unnormalized attention values and the unnormalized gate value and exponentially normalizing the concatenated attention and gate values to produce a vector of attention probability masses and the gate probability mass/sentinel gate mass.
The method includes applying the attention probability masses to the image feature vectors to accumulate in an image context vector ct a weighted sum of the image feature vectors.
The method includes determining an adaptive context vector ĉt as a mix of the image context vector and the visual sentinel vector st according to the gate probability mass/sentinel gate mass βt.
The method includes submitting the adaptive context vector ĉt and the current hidden state of the language decoder ht to a feed-forward neural network (MLP) and causing the feed-forward neural network to emit a next caption word wt.
The method includes repeating the processing of words through the language decoder, the using, the concatenating, the applying, the determining, and the submitting until the next caption word emitted is an end-of-caption token <end>. The iterations are performed by a controller, shown in
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this method implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium (CRM) storing instructions executable by a processor to perform the method described above. Yet another implementation may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform the method described above.
In another implementation, the technology disclosed presents an automated image captioning system. The system runs on numerous parallel processors.
The system comprises a convolutional neural network (abbreviated CNN) encoder (
The system comprises a sentinel long short-term memory network (abbreviated Sn-LSTM) decoder (
The system comprises an adaptive attender (
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The system can be a computer-implemented system. The system can be a neural network-based system.
The adaptive attender (
The system can further comprise a trainer, which in turn further comprises a preventer. The preventer prevents, during training, backpropagation of gradients from the Sn-LSTM decoder to the CNN encoder when a next caption word is a non-visual word or linguistically correlated to the previously emitted caption word. The trainer and the preventer can each run on at least one of the numerous parallel processors.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In yet another implementation, the technology disclosed presents an automated image captioning system. The system runs on numerous parallel processors. The system can be a computer-implemented system. The system can be a neural network-based system.
The system comprises an image encoder (
The system comprises a language decoder (
The system comprises an adaptive attender (
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In yet further implementation, the technology disclosed presents an automated image captioning system. The system runs on numerous parallel processors. The system can be a computer-implemented system. The system can be a neural network-based system.
The system comprises an image encoder (
The system comprises a language decoder (
The system comprises a sentinel gate mass/gate probability mass βt. The sentinel gate mass can run on at least one of the numerous parallel processors. The sentinel gate mass controls accumulation of the image representation and memory contents of the language decoder for next caption word emittance. The sentinel gate mass is determined from a visual sentinel of the language decoder and a current hidden state of the language decoder.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In one further implementation, the technology disclosed presents a system that automates a task. The system runs on numerous parallel processors. The system can be a computer-implemented system. The system can be a neural network-based system.
The system comprises an encoder. The encoder can run on at least one of the numerous parallel processors. The encoder processes an input through at least one neural network to generate an encoded representation.
The system comprises a decoder. The decoder can run on at least one of the numerous parallel processors. The decoder processes a previously emitted output combined with the encoded representation through at least one neural network to emit a sequence of outputs.
The system comprises an adaptive attender. The adaptive attender can run on at least one of the numerous parallel processors. The adaptive attender uses a sentinel gate mass to mix the encoded representation and memory contents of the decoder for emitting a next output. The sentinel gate mass is determined from the memory contents of the decoder and a current hidden state of the decoder. The sentinel gate mass can run on at least one of the numerous parallel processors.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
In one implementation, when the task is text summarization, the system comprises a first recurrent neural network (abbreviated RNN) as the encoder that processes an input document to generate a document encoding and a second RNN as the decoder that uses the document encoding to emit a sequence of summary words.
In one other implementation, when the task is question answering, the system comprises a first RNN as the encoder that processes an input question to generate a question encoding and a second RNN as the decoder that uses the question encoding to emit a sequence of answer words.
In another implementation, when the task is machine translation, the system comprises a first RNN as the encoder that processes a source language sequence to generate a source encoding and a second RNN as the decoder that uses the source encoding to emit a target language sequence of translated words.
In yet another implementation, when the task is video captioning, the system comprises a combination of a convolutional neural network (abbreviated CNN) and a first RNN as the encoder that process video frames to generate a video encoding and a second RNN as the decoder that uses the video encoding to emit a sequence of caption words.
In yet further implementation, when the task is image captioning, the system comprises a CNN as the encoder that process an input image to generate an image encoding and a RNN as the decoder that uses the image encoding to emit a sequence of caption words.
The system can determine an alternative representation of the input from the encoded representation. The system can then use the alternative representation, instead of the encoded representation, for processing by the decoder and mixing by the adaptive attender.
The alternative representation can be a weighted summary of the encoded representation conditioned on the current hidden state of the decoder.
The alternative representation can be an averaged summary of the encoded representation.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In one other implementation, the technology disclosed presents a system for machine generation of a natural language caption for an input image I. The system runs on numerous parallel processors. The system can be a computer-implemented system. The system can be a neural network-based system.
The system comprises a convolutional neural network (abbreviated CNN) encoder (
The system comprises a sentinel long short-term memory network (abbreviated Sn-LSTM) decoder (
The system comprises an adaptive attender, shown in
The system comprises an emitter (
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The Sn-LSTM decoder can further comprise an auxiliary sentinel gate (
The adaptive attender can further comprise a sentinel gate mass softmax (
The adaptive sequence {circumflex over (α)}t can be determined as:
{circumflex over (α)}t=softmax([zt;whT tan h(Wsst+(Wght))])
In the equation above, [;] denotes concatenation, Ws and Wg are weight parameters. Wg can be the same weight parameter as in equation (6). {circumflex over (α)}t∈k+1 is the attention distribution over both the spatial image features V=[v1, . . . vk], vi∈d as well as the visual sentinel vector st. In one implementation, the last element of the adaptive sequence is the sentinel gate mass βt=αt [k+1].
The probability over a vocabulary of possible words at time t can be determined by the vocabulary softmax of the emitter (
p
t=softmax(Wp(ĉt+ht))
In the above equation, Wp is the weight parameter that is learnt.
The adaptive attender can further comprise a sentinel gate mass determiner (
The spatial attender can further comprise an adaptive comparator (
The spatial attender can further comprise an adaptive attender softmax (
The spatial attender can further comprise an adaptive convex combination accumulator (also referred to herein as mixer or adaptive context producer or adaptive context vector producter) (
The system can further comprise a trainer (
The adaptive attender further comprises the sentinel gate mass/gate probability mass βt for enhancing attention directed to the image context when a next caption word is a visual word. The adaptive attender further comprises the sentinel gate mass/gate probability mass βt for enhancing attention directed to the visual sentinel when a next caption word is a non-visual word or linguistically correlated to the previously emitted caption word. The sentinel gate mass can run on at least one of the numerous parallel processors.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In one implementation, the technology disclosed presents a recurrent neural network system (abbreviated RNN). The RNN runs on numerous parallel processors. The RNN can be a computer-implemented system.
The RNN comprises a sentinel long short-term memory network (abbreviated Sn-LSTM) that receives inputs at each of a plurality of timesteps. The inputs include at least an input for a current timestep, a hidden state from a previous timestep, and an auxiliary input for the current timestep. The Sn-LSTM can run on at least one of the numerous parallel processors.
The RNN generates outputs at each of the plurality of timesteps by processing the inputs through gates of the Sn-LSTM. The gates include at least an input gate, a forget gate, an output gate, and an auxiliary sentinel gate. Each of the gates can run on at least one of the numerous parallel processors.
The RNN stores in a memory cell of the Sn-LSTM auxiliary information accumulated over time from (1) processing of the inputs by the input gate, the forget gate, and the output gate and (2) updating of the memory cell with gate outputs produced by the input gate, the forget gate, and the output gate. The memory cell can be maintained and persisted in a database (
The auxiliary sentinel gate modulates the stored auxiliary information from the memory cell for next prediction. The modulation is conditioned on the input for the current timestep, the hidden state from the previous timestep, and the auxiliary input for the current timestep.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The auxiliary input can be visual input comprising image data and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input can be a text encoding from another long short-term memory network (abbreviated LSTM) of an input document and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input can be a hidden state vector from another LSTM that encodes sequential data and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input can be a prediction derived from a hidden state vector from another LSTM that encodes sequential data and the input can be a text embedding of a most recently emitted word and/or character. The auxiliary input can be an output of a convolutional neural network (abbreviated CNN). The auxiliary input can be an output of an attention network.
The prediction can be a classification label embedding.
The Sn-LSTM can be further configured to receive multiple auxiliary inputs at a timestep, with at least one auxiliary input comprising concatenated vectors.
The auxiliary input can be received only at an initial timestep.
The auxiliary sentinel gate can produce a sentinel state at each timestep as an indicator of the modulated auxiliary information.
The outputs can comprise at least a hidden state for the current timestep and a sentinel state for the current timestep.
The RNN can be further configured to use at least the hidden state for the current timestep and the sentinel state for the current timestep for making the next prediction.
The inputs can further include a bias input and a previous state of the memory cell.
The Sn-LSTM can further include an input activation function.
The auxiliary sentinel gate can gate a pointwise hyperbolic tangent (abbreviated tan h) of the memory cell.
The auxiliary sentinel gate at the current timestep t can be defined as auxt=σ(Wxxt+Whht-1), where Wx and Wh are weight parameters to be learned, xt is the input for the current timestep, auxt is the auxiliary sentinel gate applied on the memory cell mt, ⊙ represents element-wise product, and σ denotes logistic sigmoid activation.
The sentinel state/visual sentinel at the current timestep t is defined as St=auxt ⊙ tan h(mt), where st is the sentinel state, auxt is the auxiliary sentinel gate applied on the memory cell mt, ⊙ represents element-wise product, and tan h denotes hyperbolic tangent activation.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In another implementation, the technology disclosed presents a sentinel long short-term memory network (abbreviated Sn-LSTM) that processes auxiliary input combined with input and previous hidden state. The Sn-LSTM runs on numerous parallel processors. The Sn-LSTM can be a computer-implemented system.
The Sn-LSTM comprises an auxiliary sentinel gate that applies on a memory cell of the Sn-LSTM and modulates use of auxiliary information during next prediction. The auxiliary information is accumulated over time in the memory cell at least from the processing of the auxiliary input combined with the input and the previous hidden state. The auxiliary sentinel gate can run on at least one of the numerous parallel processors. The memory cell can be maintained and persisted in a database (
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The auxiliary sentinel gate can produce a sentinel state at each timestep as an indicator of the modulated auxiliary information, conditioned on an input for a current timestep, a hidden state from a previous timestep, and an auxiliary input for the current timestep.
The auxiliary sentinel gate can gate a pointwise hyperbolic tangent (abbreviated tan h) of the memory cell.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
In yet another implementation, the technology disclosed presents a method of extending a long short-term memory network (abbreviated LSTM). The method can be a computer-implemented method. The method can be a neural network-based method.
The method includes extending a long short-term memory network (abbreviated LSTM) to include an auxiliary sentinel gate. The auxiliary sentinel gate applies on a memory cell of the LSTM and modulates use of auxiliary information during next prediction. The auxiliary information is accumulated over time in the memory cell at least from the processing of auxiliary input combined with current input and previous hidden state.
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this method implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The auxiliary sentinel gate can produce a sentinel state at each timestep as an indicator of the modulated auxiliary information, conditioned on an input for a current timestep, a hidden state from a previous timestep, and an auxiliary input for the current timestep.
The auxiliary sentinel gate can gate a pointwise hyperbolic tangent (abbreviated tan h) of the memory cell.
Other implementations may include a non-transitory computer readable storage medium (CRM) storing instructions executable by a processor to perform the method described above. Yet another implementation may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform the method described above.
In one further implementation, the technology disclosed presents a recurrent neural network system (abbreviated RNN) for machine generation of a natural language caption for an image. The RNN runs on numerous parallel processors. The RNN can be a computer-implemented system.
The RNN comprises an input provider (
The RNN comprises a gate processor (
The RNN comprises a memory cell (
The RNN comprises a memory cell updater (
The RNN comprises the auxiliary sentinel gate (
The RNN comprises an emitter (
Each of the features discussed in this particular implementation section for other system and method implementations apply equally to this system implementation. As indicated above, all the other features are not repeated here and should be considered repeated by reference.
The auxiliary sentinel gate can further comprise an auxiliary nonlinearity layer (
The Sn-LSTM can further comprise a memory nonlinearity layer (
The Sn-LSTM can further comprise a sentinel state producer (
The input provider (
The input provider (
The Sn-LSTM can further comprise an activation gate (
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform actions of the system described above.
This application uses the phrases “visual sentinel”, “sentinel state”, “visual sentinel vector”, and “sentinel state vector” interchangeable. A visual sentinel vector can represent, identify, and/or embody a visual sentinel. A sentinel state vector can represent, identify, and/or embody a sentinel state. This application uses the phrases “sentinel gate” and “auxiliary sentinel gate” interchangeable.
This application uses the phrases “hidden state”, “hidden state vector”, and “hidden state information” interchangeable. A hidden state vector can represent, identify, and/or embody a hidden state. A hidden state vector can represent, identify, and/or embody hidden state information.
This application uses the word “input”, the phrase “current input”, and the phrase “input vector” interchangeable. An input vector can represent, identify, and/or embody an input. An input vector can represent, identify, and/or embody a current input.
This application uses the words “time” and “timestep” interchangeably.
This application uses the phrases “memory cell state”, “memory cell vector”, and “memory cell state vector” interchangeably. A memory cell vector can represent, identify, and/or embody a memory cell state. A memory cell state vector can represent, identify, and/or embody a memory cell state.
This application uses the phrases “image features”, “spatial image features”, and “image feature vectors” interchangeably. An image feature vector can represent, identify, and/or embody an image feature. An image feature vector can represent, identify, and/or embody a spatial image feature.
This application uses the phrases “spatial attention map”, “image attention map”, and “attention map” interchangeably.
This application uses the phrases “global image feature” and “global image feature vector” interchangeably. A global image feature vector can represent, identify, and/or embody a global image feature.
This application uses the phrases “word embedding” and “word embedding vector” interchangeably. A word embedding vector can represent, identify, and/or embody a word embedding.
This application uses the phrases “image context”, “image context vector”, and “context vector” interchangeably. An image context vector can represent, identify, and/or embody an image context. A context vector can represent, identify, and/or embody an image context.
This application uses the phrases “adaptive image context”, “adaptive image context vector”, and “adaptive context vector” interchangeably. An adaptive image context vector can represent, identify, and/or embody an adaptive image context. An adaptive context vector can represent, identify, and/or embody an adaptive image context.
This application uses the phrases “gate probability mass” and “sentinel gate mass” interchangeably.
We compare our model to state-of-the-art system on the COCO evaluation server as shown in a leaderboard of the published state-of-the-art in
In one implementation, at least the spatial attention model, the controller, the localizer (
User interface input devices can include a keyboard; pointing devices such as a mouse, trackball, touchpad, or graphics tablet; a scanner; a touch screen incorporated into the display; audio input devices such as voice recognition systems and microphones; and other types of input devices. In general, use of the term “input device” is intended to include all possible types of devices and ways to input information into computer system.
User interface output devices can include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices. The display subsystem can include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem can also provide a non-visual display such as audio output devices. In general, use of the term “output device” is intended to include all possible types of devices and ways to output information from computer system to the user or to another machine or computer system.
Storage subsystem stores programming and data constructs that provide the functionality of some or all of the modules and methods described herein. These software modules are generally executed by deep learning processors.
Deep learning processors can be graphics processing units (GPUs) or field-programmable gate arrays (FPGAs). Deep learning processors can be hosted by a deep learning cloud platform such as Google Cloud Platform™, Xilinx™, and Cirrascale™. Examples of deep learning processors include Google's Tensor Processing Unit (TPU)™, rackmount solutions like GX4 Rackmount Series™, GX8 Rackmount Series™, NVIDIA DGX-1™, Microsoft’ Stratix V FPGA™, Graphcore's Intelligent Processor Unit (IPU)™, Qualcomm's Zeroth Platform™ with Snapdragon Processors™, NVIDIA's Volta™, NVIDIA's DRIVE PX™, NVIDIA's JETSON TX1/TX2 MODULE™, Intel's Nirvana™, Movidius VPU™, Fujitsu DPI™, ARM's DynamicIQ™, IBM TrueNorth™, and others.
Memory subsystem used in the storage subsystem can include a number of memories including a main random access memory (RAM) for storage of instructions and data during program execution and a read only memory (ROM) in which fixed instructions are stored. A file storage subsystem can provide persistent storage for program and data files, and can include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges. The modules implementing the functionality of certain implementations can be stored by file storage subsystem in the storage subsystem, or in other machines accessible by the processor.
Bus subsystem provides a mechanism for letting the various components and subsystems of computer system communicate with each other as intended. Although bus subsystem is shown schematically as a single bus, alternative implementations of the bus subsystem can use multiple busses.
Computer system itself can be of varying types including a personal computer, a portable computer, a workstation, a computer terminal, a network computer, a television, a mainframe, a server farm, a widely-distributed set of loosely networked computers, or any other data processing system or user device. Due to the ever-changing nature of computers and networks, the description of computer system depicted in
The preceding description is presented to enable the making and use of the technology disclosed. Various modifications to the disclosed implementations will be apparent, and the general principles defined herein may be applied to other implementations and applications without departing from the spirit and scope of the technology disclosed. Thus, the technology disclosed is not intended to be limited to the implementations shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. The scope of the technology disclosed is defined by the appended claims.
The preceding description is presented to enable the making and use of the technology disclosed. Various modifications to the disclosed implementations will be apparent, and the general principles defined herein may be applied to other implementations and applications without departing from the spirit and scope of the technology disclosed. Thus, the technology disclosed is not intended to be limited to the implementations shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. The scope of the technology disclosed is defined by the appended claims.
This application is a Divisional Application of U.S. patent application Ser. No. 15/817,153, filed on Nov. 17, 2017, which claims the benefit of U.S. Provisional Patent Application No. 62/424,353, filed on Nov. 18, 2016, each of which is incorporated herein by reference in its entirety. This application incorporates by reference U.S. patent application Ser. No. 15/817,161 filed Nov. 17, 2017; U.S. patent application Ser. No. 15/817,165, filed Nov. 17, 2017; U.S. patent application Ser. No. 15/421,016, filed on Jan. 31, 2017; U.S. Provisional Patent Application No. 62/417,334, filed on Nov. 4, 2016; U.S. patent application Ser. No. 15/420,710, filed on Jan. 31, 2017; and U.S. Provisional Patent Application No. 62/418,075, filed on Nov. 4, 2016, each of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62424353 | Nov 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15817153 | Nov 2017 | US |
Child | 16661869 | US |