# 巧恩的進度小周記
[TOC]
# 3/8
用mnist跑RNN和LSTM如下圖
| train data | RNN | LSTM |
| -------- | -------- | -------- |
| 1000 |  |  |
| 2000 |  |  |
| 3000 |  |  |
用我們的原始資料跑RNN和LSTM如下圖
| 次數 | RNN | LSTM |
| -------- | -------- | -------- |
| 1 |  |  |
| 2 |  |  |
| 3 |  |  |
* 註: train和test尚未分開
# 3/13
By 巧恩:
這禮拜在做之前都有按照詠晴說的方式整理資料,因此正確率都上升了不少(10%~20%)
但是我的動作怪怪的,label = [\"down\", \"up\", \"walk\", \"raise\", \"mix\"]
詠晴和冠傑label是[\"down\", \"up\", \"walk\", \"raise\", \"run\"] (順序不一定正確)
### CNN + Bidirectional
version 5_1
version5_record
分開(arm.leg.all)

0.913232104121475
predict 0 1 2 3 4
label
0 0.939759 0.000000 0.060241 0.000000 0.000000
1 0.000000 0.978448 0.021552 0.000000 0.000000
2 0.002481 0.009926 0.957816 0.000000 0.029777
3 0.000000 0.352941 0.000000 0.647059 0.000000
4 0.000000 0.071429 0.357143 0.000000 0.571429
---
合併(all)

0.9023861171366594
predict 0 1 2 3 4
label
0 0.993976 0.000000 0.006024 0.000000 0.000000
1 0.000000 0.991379 0.008621 0.000000 0.000000
2 0.002481 0.029777 0.930521 0.000000 0.037221
3 0.000000 0.411765 0.000000 0.588235 0.000000
4 0.000000 0.057143 0.342857 0.142857 0.457143
---
部位(arm.leg)

0.903470715835141
predict 0 1 2 3 4
label
0 0.939759 0.000000 0.060241 0.000000 0.000000
1 0.000000 0.982759 0.017241 0.000000 0.000000
2 0.004963 0.007444 0.937965 0.000000 0.049628
3 0.000000 0.294118 0.058824 0.549020 0.098039
4 0.000000 0.100000 0.271429 0.014286 0.614286
---
只有腿(leg)
0.8731019522776573
predict 0 1 2 3 4
label
0 0.969880 0.000000 0.030120 0.000000 0.000000
1 0.000000 0.961207 0.038793 0.000000 0.000000
2 0.004963 0.012407 0.895782 0.032258 0.054591
3 0.000000 0.274510 0.098039 0.509804 0.117647
4 0.000000 0.114286 0.400000 0.000000 0.485714
### Dense + Bidirectional
version_8
version8_record
分開(arm.leg.all)

0.8655097613882863
predict 0 1 2 3 4
label
0 0.975904 0.000000 0.024096 0.000000 0.000000
1 0.000000 0.905172 0.030172 0.000000 0.064655
2 0.002481 0.009926 0.890819 0.000000 0.096774
3 0.000000 0.392157 0.000000 0.470588 0.137255
4 0.000000 0.042857 0.342857 0.000000 0.614286
---
合併(all)

0.8839479392624728
predict 0 1 2 3 4
label
0 0.927711 0.000000 0.072289 0.000000 0.000000
1 0.000000 0.965517 0.017241 0.000000 0.017241
2 0.000000 0.019851 0.928040 0.000000 0.052109
3 0.000000 0.411765 0.000000 0.470588 0.117647
4 0.000000 0.057143 0.385714 0.000000 0.557143
### Decision Tree
version_1
record
整理資料之前:
0.6778741865509761
predict 0 1 2 3 4
label
0 0.614458 0.000000 0.361446 0.000000 0.024096
1 0.000000 0.724138 0.254310 0.000000 0.021552
2 0.200993 0.032258 0.699752 0.000000 0.066998
3 0.000000 0.000000 0.333333 0.627451 0.039216
4 0.000000 0.000000 0.171429 0.242857 0.585714
---
整理資料之後:
0.8101952277657267
predict 0 1 2 3 4
label
0 0.843373 0.000000 0.150602 0.000000 0.006024
1 0.000000 0.767241 0.232759 0.000000 0.000000
2 0.002481 0.000000 0.955335 0.000000 0.042184
3 0.000000 0.196078 0.000000 0.411765 0.392157
4 0.000000 0.000000 0.671429 0.000000 0.328571
### Random Forest
version_1
record
整理資料之前:
0.720173535791757
predict 0 1 2 3 4
label
0 0.620482 0.000000 0.379518 0.000000 0.000000
1 0.004310 0.771552 0.224138 0.000000 0.000000
2 0.213400 0.000000 0.786600 0.000000 0.000000
3 0.117647 0.000000 0.313725 0.568627 0.000000
4 0.442857 0.042857 0.000000 0.000000 0.514286
---
整理資料之後:
0.8991323210412148
predict 0 1 2 3 4
label
0 0.963855 0.000000 0.036145 0.000000 0.000000
1 0.043103 0.948276 0.008621 0.000000 0.000000
2 0.017370 0.002481 0.977667 0.000000 0.002481
3 0.156863 0.254902 0.000000 0.411765 0.176471
4 0.285714 0.042857 0.185714 0.000000 0.485714
### Mail
當程式跑完,會傳送email
* 出現error:

* 成功跑出結果:

### 短期目標
* ML: gaussian mixture model、svm
* 人物辨識
# 5/5
用LSTM和Bidirectional的LSTM跑了一下4/25的數據
每個都有跑三次,下表為test的平均值,有錯幾乎都是label為0和2(bear and haha)互相搞錯
忘記把曲線存取下來了QQ
下圖為用5/2所做出來的,人的辨認正確率(testing acc)
| train / test | offset,v,a | offset,v | offset,a | v,a |
| -------- | -------- | -------- | -------- | -------- |
| walk / walk | 0.82 | 0.96 |0.8 |0.81 |
| run / run | 0.94 | 0.99 |0.95 |0.92 |
| bi(walk / walk) | 0.85 | 0.98 |0.87 |0.82 |
| bi(run / run) | 0.95 | 0.99 |0.96 |0.95 |
| walk / run | 0.43 | 0.39 |0.46 |0.4 |
| run / walk | 0.45 | 0.37 |0.43 |0.39 |
| bi(walk / run) | 0.38 | 0.39 |0.43 |0.44 |
| bi(run / walk) | 0.45 | 0.37 |0.43 |0.42 |
## 嘗試的前處理
### 手臂與腿的部位比例
大腿與小腿的比例: 左、右
肱二頭與手臂的比例: 左、右
只放這四個資料進去,結果發現爆炸了QQ
0.29030186255619783
predict 0
label
0 1.0
1 1.0
2 1.0
### 手臂與腿的部位比例加上三點的offset
大腿與小腿的比例: 左、右
肱二頭與手臂的比例: 左、右
只放這四個資料進去,結果發現爆炸了QQ
0.29030186255619783
predict 0
label
0 1.0
1 1.0
2 1.0
## meeting
* 想辦法 visualize LSTM
* 想辦法找 feature select
* sckit-learn裡面好像有
* 要找到如何判斷這個feature是否有用
* 從上面的數據可以證明出來bidirectional是有用(正確率可以增加)的
* 因為影片倒著看也是有時序性的,所以現在的資料可以使用bidirectional
* offset 不是一個好的變數名稱
* 沒有shuffle會不好的原因是因為只會抽取到最後檔案拿來當testing => 可能後面類別的東西根本沒有被train過
* 因為我們的資料train/test的npy是直接分開來,所以沒有差別
* 新的特徵(preprocess做出來的)要加在舊的資料,不能直接取代
* 不然會像上面一樣爆炸
* representation LSTM
* 目前可進行方向
* 自己想辦法增加一些只有身分的特徵(preprocess) => 較困難
* 去掉主要特徵 (可以加上GAN或是Encoder或是VGG16)-(distangling)
* [書法風格判斷與轉換](https://hackmd.io/FDyy4zJpTpKECF8PhGUQeA?view#C-%E5%AD%97%E8%B7%A1%E7%94%9F%E6%88%90--%E9%A2%A8%E6%A0%BC%E8%BD%89%E6%8F%9B)
* 學長的畢業論文
# 5/12
## 這個禮拜想做的事
## 三次實驗得出的testing acccuracy平均值
| train / test | displacement | v | a | displacement,v,a | displacement,v | displacement,a | v,a |
| -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| walk / walk | 0.75 | 0.76 |0.56 |0.56 | 0.76 | 0.56 |0.53 |
| bi(walk / walk) | 0.75 | 0.77 |0.57 |0.58 | 0.76 | 0.61 |0.57 |
| run / run | 0.95 | 0.98 |0.82 |0.84 | 0.98 | 0.84 |0.85 |
| bi(run / run) | 0.95 | 0.97 | 0.84 |0.87 | 0.99 | 0.87 |0.86 |
## 三次實驗得出的testing acccuracy變異量
| train / test | displacement | v | a | displacement,v,a | displacement,v | displacement,a | v,a |
| -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| walk / walk | 0.75 | 0.76 |0.56 |0.56 | 0.76 | 0.56 |0.53 |
| bi(walk / walk) | 0.75 | 0.77 |0.57 |0.58 | 0.76 | 0.61 |0.57 |
| run / run | 0.95 | 0.98 |0.82 |0.84 | 0.98 | 0.84 |0.85 |
| bi(run / run) | 0.95 | 0.97 | 0.84 |0.87 | 0.99 | 0.87 |0.86 |
## 從表格得出的結論
* 之後想要都用bidirection lstm穩定的都比lstm還要好 => varience降低
* 當train跟test都用相同動作集時正確率很高(特徵空間的距離較近),但是當兩者使用不同動作集時正確率會明顯下降(特徵空間中距離較遠) => 結論run和walk兩種不同動作其實在特徵空間中有較遠的距離
* 加速度
## 其他的想法
* 將Dense改成其他機器學習模型
* 測試一下速度與加速度乘以30是否會影響model的weight => 目前是覺得不會有差
# 9/26
分成純cnn和disentangling的測試,連結分別如下
* [disentangling](/z21S2PA7TKCzQm-BE-vRIQ)
* [純cnn](/olvlvlJxSsmbBGmlOSulGQ)