<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2017.00067</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Segmenting Continuous Motions with Hidden Semi-markov Models and Gaussian Processes</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Nakamura</surname> <given-names>Tomoaki</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="author-notes" rid="fn001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/441192/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Nagai</surname> <given-names>Takayuki</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/381312/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Mochihashi</surname> <given-names>Daichi</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/508357/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Kobayashi</surname> <given-names>Ichiro</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Asoh</surname> <given-names>Hideki</given-names></name>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Kaneko</surname> <given-names>Masahide</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Department of Mechanical Engineering and Intelligent Systems, The University of Electro-Communications</institution>, <addr-line>Chofu-shi</addr-line>, <country>Japan</country></aff>
<aff id="aff2"><sup>2</sup><institution>Department of Mathematical Analysis and Statistical Inference, Institute of Statistical Mathematics</institution>, <addr-line>Tachikawa</addr-line>, <country>Japan</country></aff>
<aff id="aff3"><sup>3</sup><institution>Department of Information Sciences, Faculty of Sciences, Ochanomizu University</institution>, <addr-line>Bunkyo-ku</addr-line>, <country>Japan</country></aff>
<aff id="aff4"><sup>4</sup><institution>Artificial Intelligence Research Center, National Institute of Advanced Industrial Science and Technology</institution>, <addr-line>Tsukuba</addr-line>, <country>Japan</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Ganesh R. Naik, Western Sydney University, Australia</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Douglas Scott Blank, Bryn Mawr College, United States; Suparerk Janjarasjitt, Ubon Ratchathani University, Thailand; Marc De Kamps, University of Leeds, United Kingdom</p></fn>
<fn fn-type="corresp" id="fn001"><p>&#x0002A;Correspondence: Tomoaki Nakamura <email>tnakmaura&#x00040;uec.ac.jp</email></p></fn>
</author-notes>
<pub-date pub-type="epub">
<day>21</day>
<month>12</month>
<year>2017</year>
</pub-date>
<pub-date pub-type="collection">
<year>2017</year>
</pub-date>
<volume>11</volume>
<elocation-id>67</elocation-id>
<history>
<date date-type="received">
<day>22</day>
<month>05</month>
<year>2017</year>
</date>
<date date-type="accepted">
<day>29</day>
<month>11</month>
<year>2017</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2017 Nakamura, Nagai, Mochihashi, Kobayashi, Asoh and Kaneko.</copyright-statement>
<copyright-year>2017</copyright-year>
<copyright-holder>Nakamura, Nagai, Mochihashi, Kobayashi, Asoh and Kaneko</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) or licensor are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p>Humans divide perceived continuous information into segments to facilitate recognition. For example, humans can segment speech waves into recognizable morphemes. Analogously, continuous motions are segmented into recognizable unit actions. People can divide continuous information into segments without using explicit segment points. This capacity for unsupervised segmentation is also useful for robots, because it enables them to flexibly learn languages, gestures, and actions. In this paper, we propose a Gaussian process-hidden semi-Markov model (GP-HSMM) that can divide continuous time series data into segments in an unsupervised manner. Our proposed method consists of a generative model based on the hidden semi-Markov model (HSMM), the emission distributions of which are Gaussian processes (GPs). Continuous time series data is generated by connecting segments generated by the GP. Segmentation can be achieved by using forward filtering-backward sampling to estimate the model&#x00027;s parameters, including the lengths and classes of the segments. In an experiment using the CMU motion capture dataset, we tested GP-HSMM with motion capture data containing simple exercise motions; the results of this experiment showed that the proposed GP-HSMM was comparable with other methods. We also conducted an experiment using karate motion capture data, which is more complex than exercise motion capture data; in this experiment, the segmentation accuracy of GP-HSMM was 0.92, which outperformed other methods.</p></abstract>
<kwd-group>
<kwd>motion segmentation</kwd>
<kwd>Gaussian process</kwd>
<kwd>hidden semi-Markov model</kwd>
<kwd>motion capture data</kwd>
</kwd-group>
<counts>
<fig-count count="13"/>
<table-count count="5"/>
<equation-count count="14"/>
<ref-count count="21"/>
<page-count count="11"/>
<word-count count="5848"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Human beings typically divide perceived continuous information into segments to enable recognition. For example, humans can segment speech waves into recognizable morphemes. Similarly, continuous motions are segmented into recognizable unit actions. In particular, motions are divided into smaller components called motion primitives, which are used for imitation learning and motion generation (Argall et al., <xref ref-type="bibr" rid="B1">2009</xref>; Lin et al., <xref ref-type="bibr" rid="B9">2016</xref>). It is possible for us to divide continuous information into segments without using explicit segment points. This capacity for unsupervised segmentation is also useful for robots, because it enables them to flexibly learn languages, gestures, and actions.</p>
<p>However, segmentation of time series data is a difficult task. When time series data is segmented, the data points in the sequence must be classified, and each segment&#x00027;s start and end points must be determined. Moreover, each segment affects other segments because of the nature of time series data. Hence, segmentation of time series data requires the exploration of all possible segment lengths and classes. However, this exploration process is difficult; in many studies, the lengths are not estimated explicitly or heuristics are used to reduce computational complexity. Furthermore, in the case of motions, the sequences vary because of dynamic characteristics, even though the same movements are performed. For segmentation of actual human motions, we must address such variations.</p>
<p>In this paper, we propose GP-HSMM (Gaussian process&#x02013;hidden semi-Markov model), a novel method to divide time series motion data into unit actions by using a stochastic model to estimate their lengths and classes. The proposed method involves a hidden semi-Markov model (HSMM) with a Gaussian process (GP) emission distribution, where each state represents a unit action. Figure <xref ref-type="fig" rid="F1">1</xref> shows an overview of the proposed GP-HSMM. The observed time series data is generated by connecting segments generated by each class. The segment points and segment classes are estimated by learning the parameters of the model in an unsupervised manner. Forward filtering-backward sampling (Uchiumi et al., <xref ref-type="bibr" rid="B20">2015</xref>) is used for the learning process; the segment lengths and segment classes are determined by sampling them simultaneously.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Overview of the proposed GP-HSMM.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0001.tif"/>
</fig>
</sec>
<sec id="s2">
<title>2. Related work</title>
<p>Various studies have focused on learning motion primitives from manually segmented motions (Gr&#x000E4;ve and Behnke, <xref ref-type="bibr" rid="B8">2012</xref>; Manschitz et al., <xref ref-type="bibr" rid="B12">2015</xref>). Manschitz et al. proposed a method to generate sequential skills by using motion primitives that are learned in a supervised manner. Gr&#x000E4;ve et al. proposed segmenting motions using motion primitives that are learned by a supervised hidden Markov model. In these studies, the motions are segmented and labeled in advance. However, we consider that it is difficult to segment and label all possible motion primitives.</p>
<p>Additionally, some studies have proposed unsupervised motion segmentation. However, these studies rely on heuristics. For instance, W&#x000E4;chter et al. have proposed a method to segment human manipulation motions based on contact relations between the end-effectors and objects in a scene (Wachter and Asfour, <xref ref-type="bibr" rid="B21">2015</xref>); in their method, the points at which the end-effectors make contact with an object are determined as boundaries of motions. We believe this method works well in limited scenes; however, there are many motions, such as gestures and dances, in which objects are not manipulated. Lioutikov et al. proposed unsupervised segmentation; however, to reduce computational costs, this technique requires the possible boundary candidates between motion primitives to be specified in advance (Lioutikov et al., <xref ref-type="bibr" rid="B11">2015</xref>). Therefore, the segmentation depends on those candidates, and motions cannot be segmented correctly if the correct candidates are not selected. In contrast, our proposed method does not require such candidates; all possible cutting points are considered by use of forward filtering-backward sampling, which uses the principles of dynamic programming. In some methods (Fod et al., <xref ref-type="bibr" rid="B4">2002</xref>; Shiratori et al., <xref ref-type="bibr" rid="B17">2004</xref>; Lin and Kuli&#x00107;, <xref ref-type="bibr" rid="B10">2012</xref>), motion features (such as the zero velocity of joint angles) are used for motion segmentation. However, these features cannot be applied to all motions. Takano et al. use the error between actual movements and predicted movements as the criteria for specifying boundaries (Takano and Nakamura, <xref ref-type="bibr" rid="B18">2016</xref>). However, the threshold must be manually tuned according to the motions to be segmented. Moreover, they used an HMM that is a stochastic model. We consider such an assumption to be unnatural from the viewpoint of stochastic models, and boundaries should be determined based on a stochastic model. In our proposed method, we do not use such heuristics and assumptions, and instead formulate the segmentation based on a stochastic model.</p>
<p>Fox et al. have proposed unsupervised segmentation for the discovery of a set of latent, shared dynamical behaviors in multiple time series data (Fox et al., <xref ref-type="bibr" rid="B6">2011</xref>). They introduce a beta process, which represents a share of motion primitives in multiple motions, into autoregressive HMM. They formulate the segmentation using a stochastic model, and no heuristics are used in their proposed model. However, in their proposed method, continuous data points that are classified into the same states are extracted as segments, and the lengths of the segments are not estimated. The states can be changed in the short term, and therefore shorter segments are estimated. They reported that some true segments were split into two or more categories, and that those shorter segments were bridged in their experiment. On the other hand, our proposed method classifies data points into states, and uses HSMM to estimate segment lengths. Hence, our proposed method can prevent states from being changed in the short term.</p>
<p>Matsubara et al. proposed an unsupervised segmentation method called AutoPlait (Matsubara et al., <xref ref-type="bibr" rid="B13">2014</xref>). This method uses multiple HMMs, each of which represents a fixed pattern; moreover, transitions between the HMMs are allowed. Therefore, time series data is segmented at points at which the state is changed to another HMM&#x00027;s state. However, we believe that HMMs are too simple to represent complicated sequences such as motions. Figure <xref ref-type="fig" rid="F2">2</xref> illustrates an example of representation of time series data by HMM. The graph on the right in Figure <xref ref-type="fig" rid="F2">2</xref> represents the mean and standard deviation learned by HMM from data points shown in the graph on the left. HMM represents time series data using only the mean and standard deviation; therefore, details of time series data can be lost. Therefore, we use Gaussian processes, which are non-parametric methods that can represent complex time series data.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Example of representation of time series data by HMM. <bold>Left:</bold> Data points for learning HMM. <bold>Right:</bold> Mean and standard deviation learned by HMM.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0002.tif"/>
</fig>
<p>The field of natural language processing has also produced literature related to sequence data segmentation. For example, unsupervised morphological analysis has been proposed for segmenting sequence data (Goldwater, <xref ref-type="bibr" rid="B7">2006</xref>; Mochihashi et al., <xref ref-type="bibr" rid="B14">2009</xref>; Uchiumi et al., <xref ref-type="bibr" rid="B20">2015</xref>). Goldwater et al. proposed a method to divide sentences into words by estimating the parameters of a 2-gram language model based on a hierarchical Dirichlet process. The parameters are estimated in an unsupervised manner by Gibbs sampling (Goldwater, <xref ref-type="bibr" rid="B7">2006</xref>). Mochihashi et al. proposed a nested Pitman-Yor language model (NPYLM) (Mochihashi et al., <xref ref-type="bibr" rid="B14">2009</xref>). In this method, parameters of an <italic>n</italic>-gram language model based on the hierarchical Pitman-Yor process are estimated via the forward filtering-backward sampling algorithm. NPYLM can thus divide sentences into words more quickly and accurately than the method proposed in (Goldwater, <xref ref-type="bibr" rid="B7">2006</xref>). Moreover, Uchiumi et al. extended the NPYLM to a Pitman-Yor hidden semi-Markov model (PY-HSMM) (Uchiumi et al., <xref ref-type="bibr" rid="B20">2015</xref>) that can divide sentences into words and estimate the parts of speech (POS) of the words by sampling not only words, but also POS in the sampling phase of the forward filtering-backward sampling algorithm. However, these relevant studies aimed to divide symbolized sequences (such as sentences) into segments, and did not consider analogous divisions in continuous sequence data, such as that obtained by analyzing human motion.</p>
<p>Taniguchi et al. proposed a method to divide continuous sequences into segments by utilizing NPYLM (Taniguchi and Nagasaka, <xref ref-type="bibr" rid="B19">2011</xref>). In their method, continuous sequences are discretized and converted into discrete-valued sequences using the infinite hidden Markov model (Fox et al., <xref ref-type="bibr" rid="B5">2007</xref>). The discrete-valued sequences are then divided into segments by using NPYLM. In this method, motions can be recognized by the learned model, but cannot be generated naively because they are discretized. Moreover, segmentation based on NPYLM does not work well if errors occur in the discretization step.</p>
<p>Therefore, we propose a method to divide a continuous sequence into segments without using discretization. This method divides continuous motions into unit actions. Our proposed method is based on HSMM, the emission distribution of which is GP, which represents continuous unit actions. To learn the model parameters, we use forward filtering-backward sampling, and segment points and classes are sampled simultaneously. However, our proposed method also has limitations. One limitation is that the method requires the number of motion classes to be specified in advance. It is estimated automatically in methods such as (Fox et al., <xref ref-type="bibr" rid="B6">2011</xref>) and (Matsubara et al., <xref ref-type="bibr" rid="B13">2014</xref>). Another limitation is that computational costs are very high, owing to the numerous recursive calculations. We discuss these limitations in the experiments.</p>
</sec>
<sec id="s3">
<title>3. Gaussian process-hidden semi-markov model</title>
<p>Figure <xref ref-type="fig" rid="F3">3</xref> shows a graphical representation of the proposed GP-HSMM. In this figure, <italic>c</italic><sub><italic>j</italic></sub>(<italic>j</italic> &#x0003D; 1, 2, &#x000B7; &#x000B7; &#x000B7;, <italic>J</italic>) denotes classes of segments, and each segment <italic><bold>x</bold></italic><sub><italic>j</italic></sub> is generated by a Gaussian process, with parameters denoted by <italic><bold>X</bold></italic><sub><italic>c</italic></sub> and given by the following generative process:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>&#x0007E;</mml:mo></mml:mtd><mml:mtd><mml:mi>P</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E2"><label>(2)</label><mml:math id="M2"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>&#x0007E;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="-tex-caligraphic">G</mml:mi><mml:mi mathvariant="-tex-caligraphic">P</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic><bold>X</bold></italic><sub><italic>c</italic></sub> represents a set of segments classified into class <italic>c</italic>. Segments are generated by this generative process, and the observed time-series data <italic><bold>s</bold></italic> is generated by connecting the segments.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Graphical representation of the proposed GP-HSMM.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0003.tif"/>
</fig>
<sec>
<title>3.1. Gaussian process</title>
<p>In this study, we utilize Gaussian process regression, which learns emission <italic>x</italic><sub><italic>i</italic></sub> of time step <italic>i</italic> in a segment. This makes it possible to represent each unit action as part of a continuous trajectory. If we obtain pairs (<italic><bold>i</bold></italic>, <italic><bold>X</bold></italic><sub><italic>c</italic></sub>) of emissions <italic>x</italic><sub><italic>i</italic></sub> of time step <italic>i</italic> of segments belonging to the same class <italic>c</italic>, a predictive distribution whereby the emission of time step <italic>i</italic> becomes <italic>x</italic> follows a Gaussian distribution.</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M3"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold"><mml:mi>i</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0221D;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>k</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>C</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant="bold"><mml:mi>i</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>k</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>C</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant="bold"><mml:mi>k</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>k</italic>(&#x000B7;, &#x000B7;) represents the kernel function and <italic><bold>C</bold></italic> is a matrix whose elements are</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M4"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>&#x003B2; is a hyperparameter that represents noise in the observation. In Equation (3), <italic><bold>k</bold></italic> is a vector containing the elements <italic>k</italic>(<italic>i</italic><sub><italic>p</italic></sub>, <italic>i</italic>), and <italic>c</italic> is a scalar value <italic>k</italic>(<italic>i, i</italic>). Using the kernel function, GP can learn a time-series sequence that contains complex changes. We use the following Gaussian kernel, which is generally used for Gaussian process regression:</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>k</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo stretchy="false">|</mml:mo><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B8;<sub>&#x0002A;</sub> represents parameters of the kernel. Figure <xref ref-type="fig" rid="F4">4</xref> shows examples of Gaussian processes. The left graph in each pair of graphs represents learning data points (<italic><bold>i</bold></italic>, <italic><bold>X</bold></italic><sub><italic>c</italic></sub>), and the right graph shows the learned probabilistic distribution <italic>p</italic>(<italic>x</italic>|<italic>i</italic>, <italic><bold>X</bold></italic><sub><italic>c</italic></sub>, <italic><bold>i</bold></italic>). One can see that the standard deviation decreases with an increase in the number of learning data points. If the emission of time step <italic>i</italic> is multidimensional vector <italic><bold>x</bold></italic> &#x0003D; (<italic>x</italic><sub>0</sub>, <italic>x</italic><sub>1</sub>, &#x000B7; &#x000B7; &#x000B7;), we assume that each dimension is generated independently, and a predictive distribution <inline-formula><mml:math id="M6"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">G</mml:mi><mml:mi mathvariant="-tex-caligraphic">P</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is computed as follows:</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M7"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="-tex-caligraphic">G</mml:mi><mml:mi mathvariant="-tex-caligraphic">P</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>=</mml:mo></mml:mtd><mml:mtd><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>i</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>i</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>i</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x000B7; &#x000B7; &#x000B7;</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Examples of Gaussian processes. Left graph in each pair of graphs represents learning data points (<italic><bold>i</bold></italic>, <italic><bold>X</bold></italic><sub><italic>c</italic></sub>). Right graph shows the learned probabilistic distribution <italic>p</italic>(<italic>x</italic>|<italic>i</italic>, <italic><bold>X</bold></italic><sub><italic>c</italic></sub>, <italic><bold>i</bold></italic>); the solid line represents the mean, and the blue region represents the range of standard deviation.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0004.tif"/>
</fig>
<p>Based on this probability, similar segments can be classified into the same class.</p>
</sec>
<sec>
<title>3.2. Learning of GP-HSMM</title>
<sec>
<title>3.2.1. Blocked gibbs sampler</title>
<p>Segments and classes of segments in the observed sequences are estimated based on dynamic programming and sampling. For efficient sampling, we use the blocked Gibbs sampler, which samples segments and their classes in an observed sequence. In the initialization phase, all observed sequences are first randomly divided into segments. Segments <italic><bold>x</bold></italic><sub><italic>nj</italic></sub>(<italic>j</italic> &#x0003D; 1, 2, &#x000B7; &#x000B7; &#x000B7;, <italic>J</italic><sub><italic>n</italic></sub>) in observed sequence <italic><bold>s</bold></italic><sub><italic>n</italic></sub> are then removed from the learning data, and parameter <italic><bold>X</bold></italic><sub><italic>c</italic></sub> of the Gaussian process and transition probability <italic>P</italic>(<italic>c</italic>|<italic>c</italic>&#x02032;) of HSMM are updated. Segments <italic><bold>x</bold></italic><sub><italic>nj</italic></sub>(<italic>j</italic> &#x0003D; 1, 2, &#x000B7; &#x000B7; &#x000B7;, <italic>J</italic><sub><italic>n</italic></sub>) and their classes <italic>c</italic><sub><italic>nj</italic></sub>(<italic>j</italic> &#x0003D; 1, 2, &#x000B7; &#x000B7; &#x000B7;, <italic>J</italic><sub><italic>n</italic></sub>) are then estimated as follows:</p>
<disp-formula id="E8"><label>(7)</label><mml:math id="M9"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x000B7; &#x000B7; &#x000B7;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:msub><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x000B7; &#x000B7; &#x000B7;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:msub><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0007E;</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>c</mml:mtext></mml:mstyle><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>s</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic><bold>X</bold></italic> is a set of segments into which <italic><bold>s</bold></italic><sub><italic>n</italic></sub> is divided, and <italic><bold>c</bold></italic> denotes classes of the segments. To carry out this sampling efficiently, the probability of all possible segments <italic><bold>X</bold></italic> and classes <italic><bold>c</bold></italic> must be computed; however, these probabilities are difficult to compute simply because the number of potential combinations is very large. Thus, we utilize forward filtering-backward sampling, which we presently explain. After sampling <italic><bold>x</bold></italic><sub><italic>nj</italic></sub> and <italic>c</italic><sub><italic>nj</italic></sub>, parameter <italic><bold>X</bold></italic><sub><italic>c</italic></sub> of the Gaussian process and transition probability <italic>P</italic>(<italic>c</italic>|<italic>c</italic>&#x02032;) of HSMM are updated by adding them to the learning data. The segments and parameters of Gaussian processes are optimized alternately by iteratively performing the above procedure. Algorithm <xref ref-type="table" rid="T4">1</xref> shows the pseudocode of the blocked Gibbs sampler. <italic>N</italic><sub><italic>c</italic><sub><italic>nj</italic></sub></sub> and <italic>N</italic><sub><italic>c</italic><sub><italic>nj</italic></sub>, <italic>c</italic><sub><italic>n, j</italic>&#x0002B;1</sub></sub> represent parameters for computing the transition probability in Equation (10).</p>
<table-wrap position="float" id="T4">
<caption><p><bold>Algorithm 1</bold> Blocked Gibbs Sampler</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;1:&#x000A0;&#x000A0;// Iterate the following procedure until convergence</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;2:&#x000A0;&#x000A0;<bold>for</bold>&#x000A0;<italic>n</italic> &#x0003D; 1 to <italic>N</italic>&#x000A0;<bold>do</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;3:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold>&#x000A0;<italic>j</italic> &#x0003D; 1 to <italic>J</italic><sub><italic>n</italic></sub>&#x000A0;<bold>do</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;4:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>N</italic><sub><italic>c</italic><sub><italic>nj</italic></sub></sub>&#x02212; &#x0003D; 1</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;5:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>N</italic><sub><italic>c</italic><sub><italic>nj</italic></sub>, <italic>c</italic><sub><italic>n, j</italic>&#x0002B;1</sub></sub>&#x02212; &#x0003D; 1</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;6:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold>&#x000A0;<italic>j</italic> &#x02260; 0 <bold>then</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;7:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;Delete segments <italic><bold>x</bold></italic><sub><italic>nj</italic></sub> from <italic><bold>X</bold></italic><sub><italic>c</italic><sub><italic>nj</italic></sub></sub>&#x000A0;</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;8:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end if</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;9:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
<tr><td align="left" valign="top">10:</td></tr>
<tr><td align="left" valign="top">11:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;// Sample segments and their classes</td></tr>
<tr><td align="left" valign="top">12:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;(<italic><bold>x</bold></italic><sub><italic>n</italic>1</sub>, &#x000B7; &#x000B7; &#x000B7;, <italic><bold>x</bold></italic><sub><italic>nJ</italic><sub><italic>n</italic></sub></sub>), (<italic>c</italic><sub><italic>n</italic>1</sub>, &#x000B7; &#x000B7; &#x000B7;, <italic>c</italic><sub><italic>nJ</italic><sub><italic>n</italic></sub></sub>) &#x0007E; <italic>P</italic>(<italic><bold>X</bold></italic>, <italic><bold>c</bold></italic>|<italic><bold>s</bold></italic><sub><italic>n</italic></sub>)</td></tr>
<tr><td align="left" valign="top">13:</td></tr>
<tr><td align="left" valign="top">14:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold>&#x000A0;<italic>j</italic> &#x0003D; 1 to <italic>J</italic><sub><italic>n</italic></sub>&#x000A0;<bold>do</bold></td></tr>
<tr><td align="left" valign="top">15:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>N</italic><sub><italic>c</italic><sub><italic>nj</italic></sub></sub>&#x0002B;&#x0002B;</td></tr>
<tr><td align="left" valign="top">16:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>N</italic><sub><italic>c</italic><sub><italic>nj</italic></sub>, <italic>c</italic><sub><italic>n, j</italic>&#x0002B;1</sub></sub>&#x0002B;&#x0002B;</td></tr>
<tr><td align="left" valign="top">17:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold>&#x000A0;<italic>j</italic> &#x02260; <bold>then</bold></td></tr>
<tr><td align="left" valign="top">18:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;Add segments <italic><bold>x</bold></italic><sub><italic>nj</italic></sub> into <italic><bold>X</bold></italic><sub><italic>c</italic><sub><italic>nj</italic></sub></sub></td></tr>
<tr><td align="left" valign="top">19:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end if</bold></td></tr>
<tr><td align="left" valign="top">20:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
<tr><td align="left" valign="top">21:&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>3.2.2. Forward filtering-backward sampling</title>
<p>In this study, we regard segments and their classes as latent variables that are sampled by forward filtering-backward sampling (Algorithm <xref ref-type="table" rid="T5">2</xref>). In forward filtering, as shown in Figure <xref ref-type="fig" rid="F5">5</xref>, the probability that <italic>k</italic> samples <italic><bold>s</bold></italic><sub><italic>t</italic>&#x02212;<italic>k</italic> : <italic>t</italic></sub> prior to time step <italic>t</italic> in observed sequence <italic><bold>s</bold></italic> form a segment, and that the resulting segment belongs to class <italic>c</italic>, is computed as follows:</p>
<disp-formula id="E9"><label>(8)</label><mml:math id="M10"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>=</mml:mo></mml:mtd><mml:mtd><mml:mi>P</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>s</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>k</mml:mi><mml:mo>:</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>C</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>C</italic> and <italic>K</italic> denote the number of classes and the maximum length of segments, respectively. <italic>P</italic>(<italic><bold>s</bold></italic><sub><italic>t</italic>&#x02212;<italic>k</italic> : <italic>t</italic></sub>|<italic><bold>X</bold></italic><sub><italic>c</italic></sub>) represents the probability that <italic><bold>s</bold></italic><sub><italic>t</italic>&#x02212;<italic>k</italic> : <italic>t</italic></sub> is generated from a class <italic>c</italic>; this is computed as follows:</p>
<disp-formula id="E11"><label>(9)</label><mml:math id="M12"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>P</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>s</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>k</mml:mi><mml:mo>:</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">G</mml:mi><mml:mi mathvariant="-tex-caligraphic">P</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>s</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>k</mml:mi><mml:mo>:</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:mi>&#x003BB;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>P</italic><sub><italic>len</italic></sub>(<italic>k</italic>|&#x003BB;) represents a Poisson distribution with a mean parameter &#x003BB;; this corresponds to the distribution of the segment lengths. <italic>p</italic>(<italic>c</italic>|<italic>c</italic>&#x02032;) in Equation (8) represents a transition probability computed as follows:</p>
<disp-formula id="E12"><label>(10)</label><mml:math id="M13"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>C</mml:mi><mml:mi>&#x003B1;</mml:mi></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M14"><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M15"><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> denote the number of segments whose classes are <italic>c</italic>&#x02032; and the number of transitions from <italic>c</italic>&#x02032; to <italic>c</italic>, respectively, and <italic>k</italic>&#x02032; and <italic>c</italic>&#x02032; respectively denote the length and class of the segment preceding <italic><bold>s</bold></italic><sub><italic>t</italic>&#x02212;<italic>k</italic> : <italic>t</italic></sub>; these are marginalized out in Equation (8). Moreover, &#x003B1;[<italic>t</italic>][<italic>k</italic>][&#x0002A;] &#x0003D; 0 if <italic>t</italic> &#x02212; <italic>k</italic> &#x0003C; 0, and &#x003B1;[0][0][&#x0002A;] &#x0003D; 1.0. All elements of &#x003B1;[&#x0002A;][&#x0002A;][&#x0002A;] in Equation (8) can be recursively computed from &#x003B1;[1][1][&#x0002A;] by dynamic programming. Figure <xref ref-type="fig" rid="F6">6</xref> depicts the computation of a three-dimensional array &#x003B1;[<italic>t</italic>][<italic>k</italic>][<italic>c</italic>]. In this example, the probability that two samples before time step <italic>t</italic> become a segment is computed; the resulting segment would be assigned to class two. Hence, samples at <italic>t</italic> &#x02212; 1 and <italic>t</italic> become a segment, and all the segments whose end point is <italic>t</italic> &#x02212; 2 can potentially transit to this segment. &#x003B1;[<italic>t</italic>][2][2] can be computed by marginalizing out these possibilities.</p>
<table-wrap position="float" id="T5">
<caption><p><bold>Algorithm 2</bold> Forward filtering-backward sampling</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;1:&#x000A0;&#x000A0;// Forward filtering</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;2:&#x000A0;&#x000A0;<bold>for</bold>&#x000A0;<italic>t</italic> &#x0003D; 1 to <italic>T</italic>&#x000A0;<bold>do</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;3:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold>&#x000A0;<italic>k</italic> &#x0003D; 1 to <italic>K</italic>&#x000A0;<bold>do</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;4:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold>&#x000A0;<italic>c</italic> &#x0003D; 1 to <italic>C</italic>&#x000A0;<bold>do</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;5:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;Compute &#x003B1;[<italic>t</italic>][<italic>k</italic>][<italic>c</italic>]</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;6:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;7:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;8:&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;9:</td></tr>
<tr><td align="left" valign="top">10:&#x000A0;&#x000A0;// Backward sampling</td></tr>
<tr><td align="left" valign="top">11:&#x000A0;&#x000A0;<italic>t</italic> &#x0003D; <italic>T, j</italic> &#x0003D; 1</td></tr>
<tr><td align="left" valign="top">12:&#x000A0;&#x000A0;<bold>while</bold>&#x000A0;<italic>t</italic> &#x0003E; 0 <bold>do</bold></td></tr>
<tr><td align="left" valign="top">13:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>k, c</italic> &#x0007E; &#x003B1;[<italic>t</italic>][<italic>k</italic>][<italic>c</italic>]</td></tr>
<tr><td align="left" valign="top">14:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic><bold>x</bold></italic><sub><italic>j</italic></sub> &#x0003D; <italic><bold>s</bold></italic><sub><italic>t</italic>&#x02212;<italic>k</italic> :&#x000A0;&#x000A0;<italic>t</italic></sub></td></tr>
<tr><td align="left" valign="top">15:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>c</italic><sub><italic>j</italic></sub> &#x0003D; <italic>c</italic></td></tr>
<tr><td align="left" valign="top">16:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>t</italic> &#x0003D; <italic>t</italic> &#x02212; <italic>k</italic></td></tr>
<tr><td align="left" valign="top">17:&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>j</italic> &#x0003D; <italic>j</italic> &#x0002B; 1</td></tr>
<tr><td align="left" valign="top">18:&#x000A0;&#x000A0;<bold>end while</bold></td></tr>
<tr><td align="left" valign="top">19:&#x000A0;&#x000A0;return (<italic><bold>x</bold></italic><sub><italic>J</italic><sub><italic>n</italic></sub></sub>, <italic><bold>x</bold></italic><sub><italic>J</italic><sub><italic>n</italic></sub>&#x02212;1</sub>, &#x000B7; &#x000B7; &#x000B7;, <italic><bold>x</bold></italic><sub>1</sub>), (<italic>c</italic><sub><italic>J</italic><sub><italic>n</italic></sub></sub>, <italic>c</italic><sub><italic>J</italic><sub><italic>n</italic></sub>&#x02212;1</sub>, &#x000B7; &#x000B7; &#x000B7;, <italic>c</italic><sub>1</sub>)</td></tr>
</tbody>
</table>
</table-wrap>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>A segment whose probability is computed during forward filtering.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0005.tif"/>
</fig>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Recursive computation in forward filtering.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0006.tif"/>
</fig>
<p>Finally, segment <italic><bold>x</bold></italic><sub><italic>j</italic></sub> and its class are determined by backward sampling length <italic>k</italic> and class <italic>c</italic> of the segment, based on forward probabilities in &#x003B1;. From <italic>t</italic> &#x0003D; <italic>T</italic>, length <italic>k</italic><sub>1</sub> and class <italic>c</italic><sub>1</sub> are determined according to <italic>k</italic><sub>1</sub>, <italic>c</italic><sub>1</sub> &#x0007E; &#x003B1;[<italic>T</italic>][<italic>k</italic>][<italic>c</italic>], and <italic><bold>s</bold></italic><sub><italic>T</italic>&#x02212;<italic>k</italic><sub>1</sub> : <italic>T</italic></sub> becomes a segment whose class is <italic>c</italic><sub>1</sub>. Then, length <italic>k</italic><sub>2</sub> and class <italic>c</italic><sub>2</sub> of the next segment are determined according to <italic>k</italic><sub>2</sub>, <italic>c</italic><sub>2</sub> &#x0007E; &#x003B1;[<italic>T</italic> &#x02212; <italic>k</italic><sub>1</sub>][<italic>k</italic>][<italic>c</italic>]. By iterating this procedure until <italic>t</italic> &#x0003D; 0, the observed sequence can be divided into segments and their classes can be determined.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4. Experiments</title>
<p>We conducted experiments to confirm the validity of the proposed method. We used two types of motion capture data: (1) data from the CMU motion capture dataset (CMU, <xref ref-type="bibr" rid="B3">2009</xref>), and (2) data containing karate motions.</p>
<sec>
<title>4.1. Segmentation of exercise motions</title>
<p>We first applied our proposed method to CMU motion capture data containing several exercise routines. The CMU motion capture data was captured using a Vicon motion capture system, and positions and angles of 31 body parts are available. The dataset contains 2605 trials in six categories and 23 subcategories, and motions in each subcategory were performed by one or a few subjects. In this experiment, three sequences from subject 14 in the general exercise and stretching category were used, and include running, jumping, squats, knee raises, reach out stretches, side stretches, body twists, up and down movements, and toe touches. To reduce computational cost, we downsampled from 120 frames per second to 4 frames per second. Figure <xref ref-type="fig" rid="F7">7</xref> shows the coordinate system of motion capture data used in this experiment; two-dimensional frontal views of the left hand (<italic>x</italic><sub><italic>lh</italic></sub>, <italic>y</italic><sub><italic>lh</italic></sub>), right hand (<italic>x</italic><sub><italic>rh</italic></sub>, <italic>y</italic><sub><italic>rh</italic></sub>), left foot(<italic>x</italic><sub><italic>lf</italic></sub>, <italic>y</italic><sub><italic>lf</italic></sub>), and right foot (<italic>x</italic><sub><italic>rf</italic></sub>, <italic>y</italic><sub><italic>rf</italic></sub>) were used. Therefore, each frame was represented by eight dimensional vectors: (<italic>x</italic><sub><italic>lh</italic></sub>, <italic>y</italic><sub><italic>lh</italic></sub>, <italic>x</italic><sub><italic>rh</italic></sub>, <italic>y</italic><sub><italic>rh</italic></sub>, <italic>x</italic><sub><italic>lf</italic></sub>, <italic>y</italic><sub><italic>lf</italic></sub>, <italic>x</italic><sub><italic>rf</italic></sub>, <italic>y</italic><sub><italic>rf</italic></sub>). Because GP-HSMM requires the number of classes to be specified in advance, we set it to eight.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Coordinate system used in the experiments.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0007.tif"/>
</fig>
<p>Figure <xref ref-type="fig" rid="F8">8</xref> shows the results of the segmentation. The horizontal axis represents the frame number, and the colors represent motion classes into which each segment was classified. The segments were classified into seven classes out of eight. Table <xref ref-type="table" rid="T1">1</xref> shows the accuracy of the segmentation. We computed the following normalized Hamming distance between the unsupervised segmentation and the ground truth:</p>
<disp-formula id="E13"><label>(11)</label><mml:math id="M16"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic><bold>c</bold></italic> and <inline-formula><mml:math id="M17"><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> represent sequences of estimated motion classes and true motion classes, <inline-formula><mml:math id="M18"><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is the Hamming distance between two sequences, and <inline-formula><mml:math id="M19"><mml:mo stretchy="false">|</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo stretchy="false">|</mml:mo></mml:math></inline-formula> represents the length of the sequence. Therefore, the normalized Hamming distance ranges from 0 to 1; lower Hamming distances indicate more accurate segmentation. In this experiment, the Hamming distance was 0.33, which is comparable with the BP-HMM reported in (Fox et al., <xref ref-type="bibr" rid="B6">2011</xref>). However, they also reported that some segments were split into two or more categories, and that those shorter segments were bridged. In contrast, we performed no such modifications, and Figure <xref ref-type="fig" rid="F8">8</xref> shows that there are no shorter segments. We also computed the precision, recall, and F-measure of the segmentation. To compute them, estimated boundaries of segments are evaluated as true positive (TP), true negative (TN), false positive (FP), or false negative (FN). Figure <xref ref-type="fig" rid="F9">9</xref> shows an example of segmentation evaluation. We considered the estimated boundary to be TP if it was within true boundary &#x000B1; four frames, as shown in Figure <xref ref-type="fig" rid="F9">9</xref>(2). If the ground truth boundary has no corresponding estimated boundary as shown in Figure <xref ref-type="fig" rid="F9">9</xref>(6), it was considered as FN. Conversely, if the estimated boundary has no corresponding ground truth boundary as shown in Figure <xref ref-type="fig" rid="F9">9</xref>(11), it was considered as FP. From these evaluations, the precision, recall, and F-measure of the segmentation are computed as follows:</p>
<disp-formula id="E14"><label>(12)</label><mml:math id="M20"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>P</mml:mi></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>F</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E15"><label>(13)</label><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>R</mml:mi></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>F</mml:mi><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E16"><label>(14)</label><mml:math id="M22"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>F</mml:mi></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:mi>P</mml:mi><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>N</italic><sub><italic>TP</italic></sub>, <italic>N</italic><sub><italic>FP</italic></sub>, and <italic>N</italic><sub><italic>TN</italic></sub> represent the number of points assessed as TP, FP, and FN. The F-measure of the segmentation was 0.81, and this fact indicates that GP-HSMM can estimate boundaries reasonably. This is because GP-HSMM estimates the length of segments as well as the classes of segments.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Segmentation results of CMU motion capture data.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0008.tif"/>
</fig>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Segmentation accuracy of CMU motion capture data.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Hamming distance</bold></th>
<th valign="top" align="center"><bold>Precision</bold></th>
<th valign="top" align="center"><bold>Recall</bold></th>
<th valign="top" align="center"><bold>F-measure</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">0.33</td>
<td valign="top" align="center">0.81</td>
<td valign="top" align="center">0.81</td>
<td valign="top" align="center">0.81</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Example of segmentation evaluation. Estimated boundaries are evaluated as true positive (TP), true negative (TN), false positive (FP), or false negative (FN).</p></caption>
<graphic xlink:href="fnbot-11-00067-g0009.tif"/>
</fig>
<p>Moreover, Figure <xref ref-type="fig" rid="F8">8</xref> shows that most false segmentations are in sequence 3. This is because &#x0201C;up and down&#x0201D; and &#x0201C;toe touch&#x0201D; motions are included only in sequence 3, and GP-HSMM was not able to extract patterns that occur infrequently. However, this problem is not limited to GP-HSMM, and it is generally difficult for any learning method to extract infrequent patterns. The Hamming distance, which was computed only from sequence 1 and sequence 2, was 0.15. This result shows that GP-HSMM can accurately estimate segments that appear multiple times in a sequence.</p>
</sec>
<sec>
<title>4.2. Segmentation of karate motion</title>
<p>We then applied our proposed method to more complex motion capture data, which consisted of the basic motions of karate (called kata in Japanese)<xref ref-type="fn" rid="fn0001"><sup>1</sup></xref> as shown in Figure <xref ref-type="fig" rid="F10">10</xref> from the motion capture library <ext-link ext-link-type="uri" xlink:href="http://www.Mocapdata.com">Mocapdata.com</ext-link><xref ref-type="fn" rid="fn0002"><sup>2</sup></xref>. There are fixed motion patterns (punches or guards) in kata, and it is easy to form a ground truth for the segmentation. However, there might be shorter motion patterns, and GP-HSMM might be able to find those motion patterns if the number of classes is set to a larger number. Moreover, it is possible for GP-HSMM to discover patterns that cannot be labeled by humans, and GP-HSMM has the potential to analyze unlabeled time series data. However, in this experiment, we must evaluate the proposed method quantitatively, and fixed motion patterns (punches or guards) labeled by a human expert are used as ground truth. The type of kata we used was called heian 1, which is the most basic form of kata consisting of punches, lower guard, and upper guard (Tsuki, Gedanbarai, and Joudanuke in Japanese). Figure <xref ref-type="fig" rid="F11">11</xref> shows the basic movements used in heian 1. We divided this motion sequence into four parts, for use as four motion sequences to apply the blocked Gibbs sampler. Each motion sequence consisted of the following actions:
<list list-type="order">
<list-item><p>Left lower guard, right punch, right lower guard, and left punch.</p></list-item>
<list-item><p>Left lower guard, right upper guard, left upper guard, and right upper guard.</p></list-item>
<list-item><p>Left lower guard, right punch, right lower guard, and left punch.</p></list-item>
<list-item><p>Left lower guard, right punch, left punch, and right punch</p></list-item>
</list></p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Motion capture data of karate motions.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0010.tif"/>
</fig>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Basic motions in Kata: <bold>(A)</bold> Left punch. <bold>(B)</bold> Left lower guard. <bold>(C)</bold> Right upper guard.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0011.tif"/>
</fig>
<p>By way of its preprocessing, as shown in Figure <xref ref-type="fig" rid="F7">7</xref>, the motion capture data was converted into motions with the body facing forward with a center of (0,0,0). To reduce computational cost, we downsampled the motion capture data from 30 frames per second to 15 frames per second, and used two-dimensional left-hand positions (<italic>x</italic><sub><italic>lh</italic></sub>, <italic>y</italic><sub><italic>lh</italic></sub>) and right-hand positions (<italic>x</italic><sub><italic>rh</italic></sub>, <italic>y</italic><sub><italic>rh</italic></sub>) in the frontal view, as shown in Figure <xref ref-type="fig" rid="F7">7</xref>. To compare our method with others, we used segmentation based on HDP-HMM (Beal et al., <xref ref-type="bibr" rid="B2">2001</xref>) and segmentation based on NPYLM and HDP-HMM (Taniguchi and Nagasaka, <xref ref-type="bibr" rid="B19">2011</xref>), where NPYLM (Mochihashi et al., <xref ref-type="bibr" rid="B14">2009</xref>) divides sequences discretized by HDP-HMM. In addition, we compared our method with BP-HMM (Fox et al., <xref ref-type="bibr" rid="B6">2011</xref>) and AutoPlait (Matsubara et al., <xref ref-type="bibr" rid="B13">2014</xref>).</p>
<p>Figure <xref ref-type="fig" rid="F12">12</xref> shows the segmentation results. The horizontal axis represents the frame number, and the colors represent motion classes into which each segment was classified. The figure shows that HDP-HMM estimated shorter segments than the ground truth. This occurred because the emission distribution of HDP-HMM is a Gaussian distribution, which cannot represent continuous trajectories. Moreover, the result produced by segmentation, in which NPYLM divided sequences discretized by HDP-HMM, yielded longer segments. Moreover, NPYLM cannot extract fixed patterns of sequences. This is because the sequences discretized by HDP-HMM included noise and, therefore, NPYLM was unable to find a pattern in them. It was also difficult for BP-HMM to estimate correct segments, and some shorter segments were present. Further, AutoPlait could not find any segments in the karate motion sequences. We believe this occurred because HMMs are too simple to model complex motions. On the contrary, we use Gaussian processes that make it possible to model complex sequences. Table <xref ref-type="table" rid="T2">2</xref> shows the segmentation accuracy of each method. We considered the estimated boundary to be correct if it was within true boundary &#x000B1; five frames. The F-measure of the proposed method was 0.92, which indicates that GP-HSMM can estimate boundaries accurately. The results show that GP-HSMM outperforms the other methods. Figure <xref ref-type="fig" rid="F13">13</xref> shows the learned Gaussian process. <italic>y</italic><sub><italic>rh</italic></sub> in Figure <xref ref-type="fig" rid="F13">13A</xref>, which represents the height of the left hand, is decreased, which indicates the motion where the left hand is dropped for the lower guard. In contrast, <italic>y</italic><sub><italic>rh</italic></sub> in Figure <xref ref-type="fig" rid="F13">13B</xref> is increased, which indicates the motion where the left hand is raised for the upper guard. Conversely, <italic>y</italic><sub><italic>lh</italic></sub> in Figure <xref ref-type="fig" rid="F13">13C</xref> is increased for the right upper guard. From this result, we can see that characteristics of motions can be learned by Gaussian processes.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>Results of segmentation and classification for each method.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0012.tif"/>
</fig>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Segmentation accuracy of karate motions.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th/>
<th valign="top" align="center"><bold>Hamming distance</bold></th>
<th valign="top" align="center"><bold>Precision</bold></th>
<th valign="top" align="center"><bold>Recall</bold></th>
<th valign="top" align="center"><bold>F-measure</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">GP-HSMM</td>
<td valign="top" align="center">0.21</td>
<td valign="top" align="center">0.92</td>
<td valign="top" align="center">0.92</td>
<td valign="top" align="center">0.92</td>
</tr>
<tr>
<td valign="top" align="left">HDP-HMM</td>
<td valign="top" align="center">0.47</td>
<td valign="top" align="center">0.12</td>
<td valign="top" align="center">0.54</td>
<td valign="top" align="center">0.19</td>
</tr>
<tr>
<td valign="top" align="left">HDP-HMM &#x0002B; NPYLM</td>
<td valign="top" align="center">0.61</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">0.00</td>
</tr>
<tr>
<td valign="top" align="left">BP-HMM</td>
<td valign="top" align="center">0.49</td>
<td valign="top" align="center">0.13</td>
<td valign="top" align="center">0.23</td>
<td valign="top" align="center">0.16</td>
</tr>
<tr>
<td valign="top" align="left">AutoPlait</td>
<td valign="top" align="center">0.76</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">0.00</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>Learned Gaussian processes for left lower guard, left upper guard, and right upper guard.</p></caption>
<graphic xlink:href="fnbot-11-00067-g0013.tif"/>
</fig>
<p>Moreover, the motions were classified into seven classes, although we set the number of classes to eight. This result indicates that the number of classes can be estimated to a certain extent, if a number closer to the correct number is given. However, a smaller number leads to under-segmentation and misclassification, and a much larger number leads to over-segmentation. This is a limitation of the current GP-HSMM, and we believe it can be solved by introducing a non-parametric Bayesian model.</p>
<p>Computational cost is another limitation of GP-HSMM. Table <xref ref-type="table" rid="T3">3</xref> shows the computational time required to segment karate motion. HMM-based methods such as HDP-HMM, BP-HMM, and AutoPlait are relatively faster. In particular, AutoPlait is the fastest because it uses a single scan algorithm proposed in (Matsubara et al., <xref ref-type="bibr" rid="B13">2014</xref>) to find boundaries, and it has been demonstrated that AutoPlait can detect meaningful patterns from large datasets. In contrast, our proposed GP-HSMM is much slower than other methods, and cannot process such large datasets. This is another limitation of the proposed method.</p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Computational time of each method.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th/>
<th valign="top" align="center"><bold>Time (s)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">GP-HSMM</td>
<td valign="top" align="center">248</td>
</tr>
<tr>
<td valign="top" align="left">HDP-HMM</td>
<td valign="top" align="center">1.99</td>
</tr>
<tr>
<td valign="top" align="left">HDP-HMM &#x0002B; NPYLM</td>
<td valign="top" align="center">18.2</td>
</tr>
<tr>
<td valign="top" align="left">BP-HMM</td>
<td valign="top" align="center">3.37</td>
</tr>
<tr>
<td valign="top" align="left">AutoPlait</td>
<td valign="top" align="center">0.31</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec sec-type="conclusions" id="s5">
<title>5. Conclusion</title>
<p>In this paper, we proposed a method for motion segmentation based on a hidden semi-Markov model (HSMM) with a Gaussian process (GP) emission distribution. By employing HSMM, segment classes and their lengths can be estimated. Moreover, a forward filtering-backward sampling algorithm is used to estimate the parameters of GP-HSMM; this makes it possible to efficiently search for all possible segment lengths and classes. The experimental results showed that the proposed method can accurately segment motion capture data. Although motions that occurred in the sequences a single time were difficult to segment correctly, motions that occurred a few times could be segmented with higher accuracy.</p>
<p>However, some issues remain in the current GP-HSMM. The most significant problem is that GP-HSMM requires the number of classes to be specified in advance. We believe this value can be estimated by utilizing a non-parametric Bayesian model. We are planning to introduce a stick-breaking process as a prior distribution of the transition matrix, and beam sampling for parameter estimation; these techniques are utilized in Beal et al. (<xref ref-type="bibr" rid="B2">2001</xref>). Another problem is computational cost. The computational cost to learn a Gaussian process is <italic>O</italic>(<italic>n</italic><sup>3</sup>), where <italic>n</italic> denotes the number of data points classified in the GP. To overcome this problem, efficient computation methods have been proposed (Nguyen-Tuong et al., <xref ref-type="bibr" rid="B15">2009</xref>; Okadome et al., <xref ref-type="bibr" rid="B16">2014</xref>), and we will consider introducing these methods into GP-HSMM.</p>
</sec>
<sec id="s6">
<title>Author contributions</title>
<p>ToN, TaN, DM, IK, and HA conceived of the presented idea. ToN, TaN, and DM developed the theory and performed the computations. IK and HA verified the theory and the analytical methods. ToN wrote the manuscript with support from TaN and MK. IK and HA supervised the project. All authors discussed the results and contributed to the final manuscript.</p>
<sec>
<title>Conflict of interest statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
</sec>
</body>
<back>
<ack><p>This work was supported by JST CREST Grant Number JPMJCR15E3 and JSPS KAKENHI Grant Number JP17K12758.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Argall</surname> <given-names>B. D.</given-names></name> <name><surname>Chernova</surname> <given-names>S.</given-names></name> <name><surname>Veloso</surname> <given-names>M.</given-names></name> <name><surname>Browning</surname> <given-names>B.</given-names></name></person-group> (<year>2009</year>). <article-title>A survey of robot learning from demonstration</article-title>. <source>Robot. Auton. Sys.</source> <volume>57</volume>, <fpage>469</fpage>&#x02013;<lpage>483</lpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2008.10.024</pub-id></citation></ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Beal</surname> <given-names>M. J.</given-names></name> <name><surname>Ghahramani</surname> <given-names>Z.</given-names></name> <name><surname>Rasmussen</surname> <given-names>C. E.</given-names></name></person-group> (<year>2001</year>). <article-title>The infinite hidden markov model</article-title>, in <source>Advances in Neural Information Processing Systems</source> (<publisher-loc>Vancouver, BC</publisher-loc>), <fpage>577</fpage>&#x02013;<lpage>584</lpage>.</citation></ref>
<ref id="B3">
<citation citation-type="web"><person-group person-group-type="author"><collab>CMU</collab></person-group> (<year>2009</year>). <source>CMU Graphics Lab Motion Capture Database.</source> Available online at: <ext-link ext-link-type="uri" xlink:href="http://mocap.cs.cmu.edu/">http://mocap.cs.cmu.edu/</ext-link></citation></ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fod</surname> <given-names>A.</given-names></name> <name><surname>Matari&#x00107;</surname> <given-names>M. J.</given-names></name> <name><surname>Jenkins</surname> <given-names>O. C.</given-names></name></person-group> (<year>2002</year>). <article-title>Automated derivation of primitives for movement classification</article-title>. <source>Auton. Rob.</source> <volume>12</volume>, <fpage>39</fpage>&#x02013;<lpage>54</lpage>. <pub-id pub-id-type="doi">10.1023/A:1013254724861</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Fox</surname> <given-names>E. B.</given-names></name> <name><surname>Sudderth</surname> <given-names>E. B.</given-names></name> <name><surname>Jordan</surname> <given-names>M. I.</given-names></name> <name><surname>Willsky</surname> <given-names>A. S.</given-names></name></person-group> (<year>2007</year>). <source>The Sticky hdp-hmm: Bayesian Nonparametric Hidden Markov Models with Persistent States.</source> Technical Report, <publisher-name>MIT Laboratory for Information and Decision Systems</publisher-name>.</citation></ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fox</surname> <given-names>E. B.</given-names></name> <name><surname>Sudderth</surname> <given-names>E. B.</given-names></name> <name><surname>Jordan</surname> <given-names>M. I.</given-names></name> <name><surname>Willsky</surname> <given-names>A. S.</given-names></name></person-group> (<year>2011</year>). <article-title>Joint modeling of multiple related time series via the beta process</article-title>. <source>arXiv preprint arXiv:1111.4226</source>.</citation></ref>
<ref id="B7">
<citation citation-type="thesis"><person-group person-group-type="author"><name><surname>Goldwater</surname> <given-names>S.</given-names></name></person-group> (<year>2006</year>). <source>Nonparametric Bayesian Models of Lexical Acquisition</source>. Ph.D. thesis: <publisher-name>Brown University</publisher-name>, <publisher-loc>Providence, RI</publisher-loc>.</citation></ref>
<ref id="B8">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gr&#x000E4;ve</surname> <given-names>K.</given-names></name> <name><surname>Behnke</surname> <given-names>S.</given-names></name></person-group> (<year>2012</year>). <article-title>Incremental action recognition and generalizing motion generation based on goal-directed features</article-title>, in <source>IEEE/RSJ International Conference on Intelligent Robots and Systems</source> (<publisher-loc>Vilamoura</publisher-loc>), <fpage>751</fpage>&#x02013;<lpage>757</lpage>.</citation></ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lin</surname> <given-names>J. F.-S.</given-names></name> <name><surname>Karg</surname> <given-names>M.</given-names></name> <name><surname>Kuli&#x00107;</surname> <given-names>D.</given-names></name></person-group> (<year>2016</year>). <article-title>Movement primitive segmentation for human motion modeling: A framework for analysis</article-title>. <source>IEEE Trans. Hum. Mach. Sys.</source> <volume>46</volume>, <fpage>325</fpage>&#x02013;<lpage>339</lpage>. <pub-id pub-id-type="doi">10.1109/THMS.2015.2493536</pub-id></citation></ref>
<ref id="B10">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lin</surname> <given-names>J. F.-S.</given-names></name> <name><surname>Kuli&#x00107;</surname> <given-names>D.</given-names></name></person-group> (<year>2012</year>). <article-title>Segmenting human motion for automated rehabilitation exercise analysis</article-title>, in <source>Annual International Conference of the IEEE Engineering in Medicine and Biology Society</source> (<publisher-loc>San Diego, CA</publisher-loc>), <fpage>2881</fpage>&#x02013;<lpage>2884</lpage>.</citation></ref>
<ref id="B11">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lioutikov</surname> <given-names>R.</given-names></name> <name><surname>Neumann</surname> <given-names>G.</given-names></name> <name><surname>Maeda</surname> <given-names>G.</given-names></name> <name><surname>Peters</surname> <given-names>J.</given-names></name></person-group> (<year>2015</year>). <article-title>Probabilistic segmentation applied to an assembly task</article-title>, in <source>IEEE-RAS International Conference on Humanoid Robots</source> (<publisher-loc>Seoul</publisher-loc>), <fpage>533</fpage>&#x02013;<lpage>540</lpage>.</citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Manschitz</surname> <given-names>S.</given-names></name> <name><surname>Kober</surname> <given-names>J.</given-names></name> <name><surname>Gienger</surname> <given-names>M.</given-names></name> <name><surname>Peters</surname> <given-names>J.</given-names></name></person-group> (<year>2015</year>). <article-title>Learning movement primitive attractor goals and sequential skills from kinesthetic demonstrations</article-title>. <source>Robot. Auton. Sys.</source> <volume>74</volume>, <fpage>97</fpage>&#x02013;<lpage>107</lpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2015.07.005</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Matsubara</surname> <given-names>Y.</given-names></name> <name><surname>Sakurai</surname> <given-names>Y.</given-names></name> <name><surname>Faloutsos</surname> <given-names>C.</given-names></name></person-group> (<year>2014</year>). <article-title>Autoplait: utomatic mining of co-evolving time sequences</article-title>, in <source>ACM SIGMOD International Conference on Management of Data</source> (<publisher-loc>Snowbird, UT</publisher-loc>), <fpage>193</fpage>&#x02013;<lpage>204</lpage>.</citation></ref>
<ref id="B14">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mochihashi</surname> <given-names>D.</given-names></name> <name><surname>Yamada</surname> <given-names>T.</given-names></name> <name><surname>Ueda</surname> <given-names>N.</given-names></name></person-group> (<year>2009</year>). <article-title>Bayesian Unsupervised Word Segmentation with Nested Pitman-Yor Language Modeling</article-title>, in <source>Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing Vol. 1</source> (<publisher-loc>Singapore</publisher-loc>), <fpage>100</fpage>&#x02013;<lpage>108</lpage>.</citation></ref>
<ref id="B15">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nguyen-Tuong</surname> <given-names>D.</given-names></name> <name><surname>Peters</surname> <given-names>J. R.</given-names></name> <name><surname>Seeger</surname> <given-names>M.</given-names></name></person-group> (<year>2009</year>). <article-title>Local gaussian process regression for real time online model learning</article-title>, in <source>Advances in Neural Information Processing Systems</source> (<publisher-loc>Vancouver, BC</publisher-loc>), <fpage>1193</fpage>&#x02013;<lpage>1200</lpage>.</citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Okadome</surname> <given-names>Y.</given-names></name> <name><surname>Urai</surname> <given-names>K.</given-names></name> <name><surname>Nakamura</surname> <given-names>Y.</given-names></name> <name><surname>Yomo</surname> <given-names>T.</given-names></name> <name><surname>Ishiguro</surname> <given-names>H.</given-names></name></person-group> (<year>2014</year>). <article-title>Adaptive lsh based on the particle swarm method with the attractor selection model for fast approximation of gaussian process regression</article-title>. <source>Art. Life Robot.</source> <volume>19</volume>, <fpage>220</fpage>&#x02013;<lpage>226</lpage>. <pub-id pub-id-type="doi">10.1007/s10015-014-0161-1</pub-id></citation></ref>
<ref id="B17">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shiratori</surname> <given-names>T.</given-names></name> <name><surname>Nakazawa</surname> <given-names>A.</given-names></name> <name><surname>Ikeuchi</surname> <given-names>K.</given-names></name></person-group> (<year>2004</year>). <article-title>Detecting dance motion structure through music analysis</article-title>, in <source>IEEE International Conference on Automatic Face and Gesture Recognition</source> (<publisher-loc>Seoul</publisher-loc>), <fpage>857</fpage>&#x02013;<lpage>862</lpage>.</citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Takano</surname> <given-names>W.</given-names></name> <name><surname>Nakamura</surname> <given-names>Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Real-time unsupervised segmentation of human whole-body motion and its application to humanoid robot acquisition of motion symbols</article-title>. <source>Robot. Auton. Sys.</source> <volume>75</volume>, <fpage>260</fpage>&#x02013;<lpage>272</lpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2015.09.021</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Taniguchi</surname> <given-names>T.</given-names></name> <name><surname>Nagasaka</surname> <given-names>S.</given-names></name></person-group> (<year>2011</year>). <article-title>Double articulation analyzer for unsegmented human motion using pitman-yor language model and infinite hidden markov model</article-title>, in <source>IEEE/SICE International Symposium on System Integration</source> (<publisher-loc>Kyoto</publisher-loc>), <fpage>250</fpage>&#x02013;<lpage>255</lpage>.</citation></ref>
<ref id="B20">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Uchiumi</surname> <given-names>K.</given-names></name> <name><surname>Hiroshi</surname> <given-names>T.</given-names></name> <name><surname>Mochihashi</surname> <given-names>D.</given-names></name></person-group> (<year>2015</year>). <article-title>Inducing Word and Part-of-Speech with Pitman-Yor Hidden Semi-Markov Models</article-title>, in <source>Joint Conference of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing</source> (<publisher-loc>Beijing</publisher-loc>), <fpage>1774</fpage>&#x02013;<lpage>1782</lpage>.</citation></ref>
<ref id="B21">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Wachter</surname> <given-names>M.</given-names></name> <name><surname>Asfour</surname> <given-names>T.</given-names></name></person-group> (<year>2015</year>). <article-title>Hierarchical segmentation of manipulation actions based on object relations and motion characteristics</article-title>, in <source>International Conference on Advanced Robotics</source> (<publisher-loc>Istanbul</publisher-loc>), <fpage>549</fpage>&#x02013;<lpage>556</lpage>.</citation></ref>
</ref-list>
<fn-group>
<fn id="fn0001"><p><sup>1</sup><ext-link ext-link-type="uri" xlink:href="https://mocapdata.blob.core.windows.net/freemotions/karate.zip">https://mocapdata.blob.core.windows.net/freemotions/karate.zip</ext-link></p></fn>
<fn id="fn0002"><p><sup>2</sup><ext-link ext-link-type="uri" xlink:href="http://www.mocapdata.com/">http://www.mocapdata.com/</ext-link></p></fn>
</fn-group>
</back>
</article>
