Answers.Body: <p>The following figure [<strong><a href="https://numenta.com/blog/2019/10/24/machine-learning-guide-to-htm" rel="nofollow noreferrer">1</a></strong>] is inspiring:</p>
  
  <p><a href="https://i.sstatic.net/pGyiq.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/pGyiq.png" alt="enter image description here"></a></p>
  
  <p>It means HTM can be used as a memory unit in different neural networks such as RNN. In the same reference, we can find the following advantages and applications of HTM:</p>
  
  <blockquote>
    <ol>
    <li><strong>Sequence learning:</strong>
    Being able to model temporally correlated patterns represents a key property of intelligence, as it gives both biological and artificial systems the essential ability to predict the future. It answers the basic question “what will happen next?” based on what it has seen before. Every machine learning algorithm should be able to provide valuable predictions not just based on static spatial information but also grounding it in time.</li>
    <li><strong>High-order predictions:</strong>
    Real-world sequences contain contextual dependencies that span multiple time steps, hence the ability to make high-order predictions becomes fundamental. The term “order” refers to Markov's order, specifically the minimum number of previous time steps the algorithm needs to consider in order to make accurate predictions. An ideal algorithm should learn the order automatically and efficiently.</li>
    <li><strong>Multiple simultaneous predictions:</strong>
    For a given temporal context, there could be multiple possible future outcomes. With real-world data, it is often insufficient to only consider the single best prediction when information is ambiguous. A good sequence learning algorithm should be able to make multiple predictions simultaneously and evaluate the likelihood of each prediction online. This requires the algorithm to output a distribution of possible future outcomes.</li>
    <li><strong>Continual Learning:</strong>
    Continuous data streams often have changing statistics. As a result, the algorithm needs to continuously learn from the data streams and rapidly adapt to changes. This property is important for processing continuous real-time perceptual streams, but has not been well studied in machine learning, especially without storing and reprocessing previously encountered data.</li>
    <li><strong>Online learning:</strong>
    For real-time data streams, it is much more valuable if the algorithm can predict and learn new patterns on-the-fly without the need to store entire sequences or batch several sequences together as it normally happens when training gradient-based recurrent neural networks. The ideal sequence learning algorithm should be able to learn from one pattern at a time to improve efficiency and response time as the natural stream unfolds.</li>
    <li><strong>Noise robustness and fault tolerance:</strong>
    Real world sequence learning deals with noisy data sources where sensor noise, data transmission errors and inherent device limitations frequently result in inaccurate or missing data. A good sequence learning algorithm should exhibit robustness to noise in the inputs.</li>
    <li><strong>No hyperparameter tuning:</strong>
    Learning in the cortex is extremely robust for a wide range of problems. In contrast, most machine-learning algorithms require optimizing a set of hyperparameters for each task. It typically involves searching through a manually specified subset of the hyperparameter space, guided by performance metrics on a cross-validation dataset. Hyperparameter tuning presents a major challenge for applications that require a high degree of automation, like data stream mining. An ideal algorithm should have acceptable performance on a wide range of problems without any task-specific hyperparameter tuning.</li>
    </ol>
  </blockquote>
  
  <p>One of the applications of HTM is in <strong>Anomaly detection</strong>. See, for example, this paper <a href="https://www.sciencedirect.com/science/article/pii/S0925231217309864" rel="nofollow noreferrer">Unsupervised real-time anomaly detection for streaming data</a> (2017) which used from a network of HTMs to solve this problem in streaming data.</p>
  
  <p><a href="https://github.com/numenta/nupic" rel="nofollow noreferrer">The implementation of HTM</a> (<a href="http://nupic.docs.numenta.org/stable/quick-start/index.html#" rel="nofollow noreferrer">NuPIC</a>) can help to see more applications of HTM in ML.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-01T19:25:55.810Z
Answers.Text: I would like to note that HTM has evolved over the years. Also, note that, even though you're quoting an article by Numenta's visiting researcher, it's not true that HTM doesn't require hyper-parameter tuning. There are many parameters in Numenta's models. I think it would be nice to also provide an example of where HTM has been used in another traditional neural network, as the picture suggests. Apart from that, I think the content in the quote is correct or, at least, this is what Numenta wants to achieve (but I am not sure if they have already achieved that).
Answers.UserDisplayName: nbro
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-01T19:58:20.940Z
Answers.Text: @nbro, thanks for your comments. Your second comment has been resolved.
Answers.UserDisplayName: OmG
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-01T19:03:22.820Z
Answers.LastActivityDate: 2020-06-02T17:52:01.623Z
Answers.LastEditDate: 2020-06-02T17:52:01.623Z
Answers.UserDisplayName: OmG
Body: <p>What are the real applications of <a href="https://en.wikipedia.org/wiki/Hierarchical_temporal_memory" rel="nofollow noreferrer">hierarchical temporal memory</a> (HTM) in machine learning (ML) these days?</p>
  
Tags: <neural-networks><machine-learning><applications><research><htm>
Title: What are the real applications of hierarchical temporal memory?
UserDisplayName: OmG
ThreadText: # What are the real applications of hierarchical temporal memory?
  
  (Asked by: username_0 on 2020-06-01)
  
  What are the real applications of [hierarchical temporal memory](https://en.wikipedia.org/wiki/Hierarchical_temporal_memory) (HTM) in machine learning (ML) these days?
  
  **Tags:** neural-networks, machine-learning, applications, research, htm
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2020-06-01. Score: 1
  
  The following figure [**[1](https://numenta.com/blog/2019/10/24/machine-learning-guide-to-htm)**] is inspiring:
  
  [![enter image description here](https://i.sstatic.net/pGyiq.png)](https://i.sstatic.net/pGyiq.png)
  
  It means HTM can be used as a memory unit in different neural networks such as RNN. In the same reference, we can find the following advantages and applications of HTM:
  
  > 1. **Sequence learning:**
  >    Being able to model temporally correlated patterns represents a key property of intelligence, as it gives both biological and artificial systems the essential ability to predict the future. It answers the basic question “what will happen next?” based on what it has seen before. Every machine learning algorithm should be able to provide valuable predictions not just based on static spatial information but also grounding it in time.
  > 2. **High-order predictions:**
  >    Real-world sequences contain contextual dependencies that span multiple time steps, hence the ability to make high-order predictions becomes fundamental. The term “order” refers to Markov's order, specifically the minimum number of previous time steps the algorithm needs to consider in order to make accurate predictions. An ideal algorithm should learn the order automatically and efficiently.
  > 3. **Multiple simultaneous predictions:**
  >    For a given temporal context, there could be multiple possible future outcomes. With real-world data, it is often insufficient to only consider the single best prediction when information is ambiguous. A good sequence learning algorithm should be able to make multiple predictions simultaneously and evaluate the likelihood of each prediction online. This requires the algorithm to output a distribution of possible future outcomes.
  > 4. **Continual Learning:**
  >    Continuous data streams often have changing statistics. As a result, the algorithm needs to continuously learn from the data streams and rapidly adapt to changes. This property is important for processing continuous real-time perceptual streams, but has not been well studied in machine learning, especially without storing and reprocessing previously encountered data.
  > 5. **Online learning:**
  >    For real-time data streams, it is much more valuable if the algorithm can predict and learn new patterns on-the-fly without the need to store entire sequences or batch several sequences together as it normally happens when training gradient-based recurrent neural networks. The ideal sequence learning algorithm should be able to learn from one pattern at a time to improve efficiency and response time as the natural stream unfolds.
  > 6. **Noise robustness and fault tolerance:**
  >    Real world sequence learning deals with noisy data sources where sensor noise, data transmission errors and inherent device limitations frequently result in inaccurate or missing data. A good sequence learning algorithm should exhibit robustness to noise in the inputs.
  > 7. **No hyperparameter tuning:**
  >    Learning in the cortex is extremely robust for a wide range of problems. In contrast, most machine-learning algorithms require optimizing a set of hyperparameters for each task. It typically involves searching through a manually specified subset of the hyperparameter space, guided by performance metrics on a cross-validation dataset. Hyperparameter tuning presents a major challenge for applications that require a high degree of automation, like data stream mining. An ideal algorithm should have acceptable performance on a wide range of problems without any task-specific hyperparameter tuning.
  
  One of the applications of HTM is in **Anomaly detection**. See, for example, this paper [Unsupervised real-time anomaly detection for streaming data](https://www.sciencedirect.com/science/article/pii/S0925231217309864) (2017) which used from a network of HTMs to solve this problem in streaming data.
  
  [The implementation of HTM](https://github.com/numenta/nupic) ([NuPIC](http://nupic.docs.numenta.org/stable/quick-start/index.html#)) can help to see more applications of HTM in ML.
  
  > **Comments:**
  > **username_1**: I would like to note that HTM has evolved over the years. Also, note that, even though you're quoting an article by Numenta's visiting researcher, it's not true that HTM doesn't require hyper-parameter tuning. There are many parameters in Numenta's models. I think it would be nice to also provide an example of where HTM has been used in another traditional neural network, as the picture suggests. Apart from that, I think the content in the quote is correct or, at least, this is what Numenta wants to achieve (but I am not sure if they have already achieved that).  
  > **username_0**: @username_1, thanks for your comments. Your second comment has been resolved.  
  
  ---
  
  