在时间数据中创建批次和时间步以训练RNN(LSTM)的建议

时间:2018-12-17 13:13:30

标签: time lstm rnn temporal

假设以下数据

样品#

table {
  border-collapse: collapse;
  
}

table, th, td {
  border: 1px solid black;
  padding:5px;
  text-align:center;
}
<table>
  <thead>
    
    <th>Sample Number</th>
    <th>Time</th>
    <th>Feature 1</th>
    <th>Feature 2</th>
    <th>...</th>
    <th>Feature F</th>
    <th>y(t)</th>
    <th>Target<br/>y(t+1)</th>
  </thead>
  <tbody>
    <tr>
      <td rowspan="6">Sample 1</td>
      <td>1</td>	<td>0.19</td>	<td>0.21</td>	<td>...</td>	<td>0.55</td>	<td>3</td>	<td>1</td>
    </tr>
    <tr><td>2</td>	<td>0.14</td>	<td>0.14</td>	<td>...</td>	<td>0.14</td>	<td>1</td>	<td>5</td></tr>
<tr><td>3</td>	<td>0.65</td>	<td>0.11</td>	<td>...</td>	<td>0.63</td>	<td>5</td>	<td>3</td></tr>
<tr><td>4</td>	<td>0.1</td>	<td>0.09</td>	<td>...</td>	<td>0.17</td>	<td>3</td>	<td>1</td></tr>
<tr><td>5</td>	<td>0.93</td>	<td>0.08</td>	<td>...</td>	<td>0.91</td>	<td>1</td>	<td>2</td></tr>
<tr><td>6</td>	<td>0.12</td>	<td>0.74</td>	<td>...</td>	<td>0.61</td>	<td>2</td>	<td>3</td></tr>
  <tr>
      <td rowspan="6">Sample 2</td>
      <td>1</td>	<td>0.89</td>	<td>0.91</td>	<td>...</td>	<td>0.05</td>	<td>1</td>	<td>1</td></tr>
      <tr><td>2</td>	<td>0.78</td>	<td>0.24</td>	<td>...</td>	<td>0.21</td>	<td>1</td>	<td>4</td></tr>
<tr><td>3</td>	<td>0.31</td>	<td>0.22</td>	<td>...</td>	<td>0.9</td>	<td>4</td>	<td>1</td></tr>
<tr><td>4</td>	<td>0.25</td>	<td>0.23</td>	<td>...</td>	<td>0.45</td>	<td>1</td>	<td>5</td></tr>
<tr><td>5</td>	<td>0.59</td>	<td>0.35</td>	<td>...</td>	<td>0.5</td>	<td>5</td>	<td>2</td></tr>
<tr><td>6</td>	<td>0.9</td>	<td>0.55</td>	<td>...</td>	<td>0.46</td>	<td>2</td>	<td>1</td></tr>

 <tr>
      <td rowspan="6">Sample S</td>
      <td>1</td>	<td>0.97</td>	<td>0.59</td>	<td>...</td>	<td>0.4</td>	<td>5</td>	<td>4</td></tr>
      
<tr><td>2</td>	<td>0.59</td>	<td>0.67</td>	<td>...</td>	<td>0.16</td>	<td>4</td>	<td>4</td></tr>
<tr><td>3</td>	<td>0.75</td>	<td>0.28</td>	<td>...</td>	<td>0.83</td>	<td>4</td>	<td>4</td></tr>
<tr><td>4</td>	<td>0.86</td>	<td>0.27</td>	<td>...</td>	<td>0.02</td>	<td>4</td>	<td>5</td></tr>
<tr><td>5</td>	<td>0.72</td>	<td>0.96</td>	<td>...</td>	<td>0.75</td>	<td>5</td>	<td>4</td></tr>
<tr><td>6</td>	<td>0.83</td>	<td>0.44</td>	<td>...</td>	<td>0.15</td>	<td>4</td>	<td>1</td></tr>




    
  <tbody>
</table>

要训练LSTM,我们必须提供(batch_size,number_features,time_steps)

batch_size:最大为S number_features:F time_steps:最多6

当我们使用LSTM训练RNN时,我们可以选择批次大小,例如每批次3个样本,然后,为了完成1次迭代,我们需要为S / 3(完成一个时期所需的批次数量)。

我想和你们一起检查几件事。

1)在batch_size为3的示例中,在每个时期中,我必须从训练数据中随机地手动选择这3个样本,并将其拟合为模型正确吗?或者当我给张量流形状(3,F,3)时,它已经正确断裂了吗?在这种情况下,所有数据都应排序?

2)关于时间步长(时间)。 由于我不知道合理预测y(t + 1)需要多少时间,该怎么办?按照时间2、3到6进行训练,看看哪一个更好?

谢谢

0 个答案:

没有答案