# 入門說明
## 大綱
0. 任務說明
1. 入門流程
2. 文件說明
3. 模型說明
### 任務說明
---
- 模型可靠度相關
- [x] 第一篇論文的模型(without attention)在不同資料集(Teens & Mature)上測試的結果
- 詳見模型說明(1)
- [x] 第三篇論文的模型(with attention)在不同資料集(Teens & Mature)上測試的結果
- 詳見模型說明(2)
- 老師們的好奇心
- [ ] Fusion為什麼可以提高Accuracy
- [ ] LSTM+Attention的新技術
- [x] 第三篇論文切分資料的方式
- 詳見模型說明(3)
- 後端層面
- [ ] 虛擬心理師的語音是多語言的(不要有大陸調調)
- 不同模態之測試結果
- 4-modal (詳見模型說明(4))
- [x] Remove - Text
- [x] Remove - Audio
- [x] Remove - HRV
- [x] Remove - Eye movement
- [x] 後續模型修改 - early fusion測試(陳老師)
- [x] 後續模型修改 - 加入attention
- 3-modal
- [ ] Remove HRV, Eye movement
### 入門流程
---
#### 1. 閱讀論文
>Location:Google Drive/ Document/ Paper
- 第一篇論文
- 最終版本:/1 / ( 投稿修改版 ) Mobile_Virtual_Psychologist_for_Multi_Modal_Depression_Level_Assessment.pdf
- 概述:不分年齡的五分類憂鬱症評估模型
- 第二篇論文
- 最終版本:/2 / ( 投稿修改版 ) Virtual Psychologist for Dimensional Psychological Quality Analysis with Multi-Modal Feature Fusion_manuscript.pdf
- 概述:心理素質診斷(支線)
- 對應資料夾:mental_analysis
- 第三篇論文
- 最終版本:/3 / Attention-Based Multi-Modal Depression Assessment with DSM-V Factors 第一版.pdf
- 概述:第一篇論文加上Attention-Based
- 對應資料夾:MatureDepressionAssessment[(資料夾說明)](https://hackmd.io/s9DQ4DNfQS6FCIKzXBhlBg)
- 第四篇論文
- 最終版本:/4 / Age-Specific Depression Symptoms Severity Assessment.pdf
- 對應資料夾:symptom_analysis[(資料夾說明)](https://hackmd.io/8stQHPBAREWfKViKhuUksQ)
## 文件說明
### Google Drive
---
##### Document
- Adults
- AudioRefv2.xlsx:在語音資料裡,各個向量所對應到的問題。
- Conversation Content Expert Questionnaire.docx:對話內容專家問卷,英文版。
- Depression_Label.xlsx:心理醫師的診斷結果。(有lable, 只有少數病例)
- Qv2Codes.xlsx:(看沒有)各項text資料的對應向量。
- 對話內容專家問卷_20220817_成年人版.docx
- 對話內容專家問卷_20230124.docx
- 收案紀錄(正式版).xlsx:成年人個案的基本資料。
- Paper
目前這個模型產出的四篇論文,點進去後的資料夾基本上是都是學長姐投的論文稿,有興趣可以自己研究,這裡只針對其他不同的文件做說明。
- 1
- 2
- 3
- Project Introduction.pdf:專案的粗略介紹。
- Virtual Depression Detective.pptx:學長口試的PPT。
- 4
- Teenagers
- AudioRefv1.xlsx:在語音資料裡,各個向量所對應到的問題。
- factors_teens.xlsx:青少年憂鬱中,各項因素的影響程度。
- Psychological Quality Analysis.xlsx:不同的機器學習模型在多模態情感分類任務上的表現(含比較decision-level和feature-level Fusion的差異)。
- 虛擬心理師對話內容之相關文件:各個問題對模型(或計分)所造成的影響和流程。
- 收案文件
關於收案說明及流程等相關文檔
- Feature.xlsx
- dataset的dimension, 針對「第四篇論文」的特徵、症狀評估等資料統計。
- Example:
sheet_name:<Teens_Symptom EYE>
- 表示不同程度(Severity, Mild)的抑鬱症狀之下,青少年個體眼動行為之間的差異。
- 一般情況而言,p value < 0.05 即代表有明顯差異
- Experiment Result.xlsx
第四篇論文針對不同深度學習模型進行炫鍊後得到的Accuracy結果統計。
- 虛擬心理師 - 專案計畫書.docx
##### A2FExport
這個資料夾裡放的應該是跟interface和實際操作的3D物件有關係,就虛擬心理師分男女版本的一些物件,但我也沒打開過,所以我也不確定ㄏ。
- Refv1
- Refv2
##### Demo
各種demo的影片,如眼動、虛擬心理師的實操影片等。
##### Feature
- output.json:部分個體的數據輸出。
##### Full Demo
學長們實際操作的全過程錄影。
##### Model
美術相關的檔案。
##### Model+Animation
美術相關的檔案。
##### Resource
很雜,什麼都有,包括Unity的一些prefab, unity的package等等。
##### Voice
根據不同題目切分完音檔的片段資料。
### HackMD
---
#### Virtual Therapist虛擬心理師 人物動畫
動畫相關技術以及設計流程。(新版計畫書)
#### Train Model
train虛擬心理師model的流程。
#### Virtual Therapist 後端
***待補
#### Virtual Therapist 開發工作
***待補
#### Virtual Therapist 前端
***待補
#### 虛擬心理師整體說明
初版說明文件
#### getFactorAPI
***待補
#### APP上傳TestFlight
***待補
#### 虛擬心理師(雲端架設)
#### 多模態特徵
各個模態(Text, Audio, Face, HRV)的擷取方式和詳細擷取內容及意義。
#### Depression Analysis
各個資料夾所對應到的論文。
#### Automated Assessment of Age-Specific Depression Symptoms Severity
第四篇論文的實作過程以及資料紀錄。
#### Attention-Based Multi-Modal Depression Assessment with DSM-V Diagnostic Criteria
第三篇論文的實作過程以及資料紀錄。
#### Virtual Therapist 資源連結
一些轉換資料的教學連結。
#### Gitlab SSH
gitlab: a DEvOps platform based on the website
實驗室gitlab的連結和登入說明。
### Server 68
---
#### MatureDepressionAssessment
---
##### Experiments
- 這個資料夾裡訓練出來的結果都會被存在這個資料夾裡面。
- Ex: 2024_10_07_0362203_old_factor_teens_5分類__FiveFusionModel2_Att_epochs=40_
- 2024/10/7 訓練
- 使用「old_questionaire」做為訓練的dataset(168筆青少年)
- 輸出結果是5分類(健康、輕度、中度、重度憂鬱、躁鬱症)
- 採用FiveFusionModel(五個模態)
- Att: 有使用到Attention layer
- epochs=40回合
- 2024_10_07_03_e40_uniformed.png:epoch=40時,未標準化過的confusion matrix
- 2024_10_07_0362203_old_factor_teens_5分類__FiveFusionModel2_Att_epochs=40__train.txt:model在訓練的細節、每回合的metrics紀錄和loss value
- 其他圖如Accuracy, Test accuracy, loss 和 test loss per epoch等圖可以做參考。
- model.pkl:model本人。
##### json_data
- new factor
- old_factor_questionaire_teens_depressed
#### mental_analysis
---
##### 概述
1. 對應論文: 第二篇心理素質評估模型
2. 試跑模型:
(1) 可以先跑 preprocess.py 把 raw data 轉換成 可以丟入模型的 json 檔案( json檔會存在 preprocess 資料夾裡面 )
(2) 可以選擇要跑心理素質因子的模型或者是認知心理維度的模型,前者跑 feature_level_factor.py,後者為 feature_level_dimension.py
(3) 跑完就可以看到訓練成果,再根據所需去自行調整。
##### 資料夾說明
- data
- 22normal(csv/json):成年人的資料,共43筆(ID, start and end time)。
- 22normal_format.json:成年人的五模態向量。
- all.csv:上海資料,共193筆(ID, start and end time)
- features_154.json:
- questionaire_data.xlsx:Raw Data,共182筆。
- factor.xlsx:同questionaire,但只有factor的資料,共182筆。
- feature_level_dimension:4模態輸入的訓練結果
- ex:2022_06_21_06_41_43_face_audio_text_hrv_softmax
- anxiety(在anxiety這個dimension中的訓練結果)
- depression
- family
- mania
- feature_level_dimension_5model:5模態輸入的訓練結果
- feature_level_factor
- feature_level_factor_5model
- img
- feature_level_fusion.png:feature-level的架構圖
- keras_model:資料同best_model裡的keras_model
- kmeans_model:針對所有factor和dimension訓練之後儲存下來的model。
- model : 單模態的模型(感覺是一些訓練中間的模型,蠻雜的)
- preprocess : 存放pre-train完之後的data
- evaluate.py : recall, precision和F1 score計算的函數
- feature_level_dimension.py : 針對四個認知心理維度的訓練模型。
- feature_level_factor.py : 針對七個心理素質因子的訓練模型。
- preprocess.py : 去data/questionaire_data.xlsx裡抓取raw data去pre train,結果會存放在preprocessing。
- style.py : 模型用到的顏色標記。
- test.py : 無關model,單純test
- Best_model/ keras_model : 3個模態和5個模態最好的model。
- clustering : 存放每一個心理認知維度和心理素質因子使用Elbow去尋找最佳K的折線圖。
### 模型說明
---
#### 1. FiveModalFusion_Att(3) runs on old_questionaire_teens(1)
1. 模型路徑:/MatureDepressionAssessment_3/train_task1.py
2. 參數設定:
(1) dataset_version = OLD_DATASET_TEENS
(2) binary_classification = false
three_classification = false
four_classification = false
(3) LR = 0.0001 (最佳結果之初始值)
(4) optimizerName = Adam_LRsche (最佳結果之optimizer)
(5) model = FiveFusionModel2_Att
3. 訓練說明:除了以上的3、4點以外,其他參數設定好照理來說就可以跑了。
4. 測試說明:若不更改原來的LR和optimizerName,Training Accuracy最高只可到6成(epoch=100),因此後續有加入Adam_LRsche動態調整Learning Rate,可以用更少的回合達到更高的準確率,關於各實驗過程說明請見資料夾裡 README.md。
5. 實驗相關結果 : (path = /MatureDepressionAssessment_3/__ Experiments __)
(1) 2024_11_05_0862203_old_factor_teens_5分類__FiveFusionModel2_Att_epochs=100
(2) 2024_11_06_0862203_old_factor_teens_5分類__FiveFusionModel2_Att_epochs=105_
(3) 2024_11_06_1162203_old_factor_teens_5分類__FiveFusionModel2_Att_epochs=44_
#### 2. FiveModalFusion2_(1) runs on new_questionaire(mature)(3)
1. 模型路徑:/MatureDepressionAssessment_3/train_task2.py
2. 參數設定:
(1) dataset_version = NEW_DATA_TRIPLE
(2) binary_classification = false
three_classification = false
four_classification = false
(3) LR = 0.0001 (最佳結果之初始值)
(4) optimizerName = Adam_LRsche (最佳結果之optimizer)
(5) model = FiveFusionModel / FiveFusionModel2
3. 訓練說明:一開始用的是FiveFusionModel,但訓練結果蠻差的,所以有先更改四分類的label對應方式(從method2改為method1),最後經過測試使用的模型是FiveFusionModel2,也有經過學習率的調整
4. 實驗相關結果:(path = /MatureDepressionAssessment_3/__ Experiments __ )
(1) 2024_11_14_0962203_new_factor_triple_3分類__FiveFusionModel_epochs=20_
(2) 2024_11_14_1062203_new_factor_triple_3分類__FiveFusionModel2_epochs=20_
(3) 2024_11_14_1062203_new_factor_triple_3分類__FiveFusionModel2_epochs=35_
(4) 2024_11_14_1062203_new_factor_triple_3分類__FiveFusionModel2_epochs=45_
(5) 2024_11_17_0162203_new_factor_triple_3分類__FiveFusionModel2_Att_epochs=35_
(6) 2024_11_17_0162203_new_factor_triple_3分類__FiveFusionModel2_epochs=35_
#### 3. 第三篇論文的資料切分方式
- 說明:加入SID之後改變random_seed的值訓練同一個model(FiveFusionModel2),資料處理的方式是QuestionDataset()
- 實驗相關結果路徑:/MatureDepressionAssessment_3/__ Experiment __ / 2024_11_14_1162203_new_factor_triple_3分類__FiveFusionModel2_epochs=45_
- 實驗結果

#### 4. 多模態的組合測試結果
- 說明:老師想要知道第一篇論文的模型在跑各種不同模態之下的測試結果,去和**加上attention**之後的模型去跑相同模態組合的結果,是否可以有一個準確率上的穩定,預期達到的願景就是加入attention可以讓更少的模態去跑出差不多高的準確率。
- 實驗相關路徑:/yang/depression_level_assessment/four_modal_five_class/
- 去掉text: 2024_11_28_02_20_58_text
- 去掉audion: 2024_11_28_09_35_03_audio
- 去掉face: 2024_11_30_05_21_08_face
- 去掉HRV: 2024_11_30_08_02_51_HRV
- 實驗結果1: 第一篇論文模型四模態之測試結果如下:
- 去掉Text

- 去掉audio

- 去掉face

- 去掉HRV

- 去掉Eye movement

- 後續模型修改 - Early Fusion(陳老師的建議)
- 說明:基本上概念與decision-level-fusion一樣,但論文一已經有做過並且有相關數據,因此不多做測試。
- 結論:沒有比較好
- 後續模型修改 - 加入attention
- 說明:直接拿第三篇論文中加入attention機制的模型進行訓練(試跑在青少年資料上)
- 模型路徑:yang/ MatrueDepression/
- train_test_text.py
- train_test_audio.py
- train_test_hrv.py
- train_test_face.py
- train_test_eye.py
- 實驗結果路徑:yang/MatureDepression/
- 2024_12_06_0962203_old_factor_teens_5分類_removeText___epochs=100_
- 2024_12_06_0962203_old_factor_teens_5分類_removeAudio___epochs=100_
- 2024_12_06_0962203_old_factor_teens_5分類_removeFace___part1__epochs=100_ 和 2024_12_06_0962203_old_factor_teens_5分類_removeFace___part2__epochs=100_
- 2024_12_06_0962203_old_factor_teens_5分類_removeHRV___epochs=100_
- 2024_12_06_0962203_old_factor_teens_5分類_removeEye___epochs=100_
- 測試結果:(皆取epoch=100之結果,未必為最好結果)
- 去掉text:

- 去掉audio:

- 去掉Face:

- 去掉HRV:

- 去掉Eye_movement:
- 實驗結果2: 第一篇論文模型三模態之測試結果