# 入門說明 ## 大綱 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_ - 實驗結果 ![image](https://hackmd.io/_uploads/r1udJr_Mkl.png =400x) #### 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 ![image](https://hackmd.io/_uploads/rk7JVAF7yx.png =300x) - 去掉audio ![image](https://hackmd.io/_uploads/HkaSNRtX1g.png =300x) - 去掉face ![image](https://hackmd.io/_uploads/Hyau40t7Jl.png =300x) - 去掉HRV ![image](https://hackmd.io/_uploads/Sk-i4RYXJe.png =300x) - 去掉Eye movement ![image](https://hackmd.io/_uploads/rJy0Jknmkl.png =300x) - 後續模型修改 - 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: ![image](https://hackmd.io/_uploads/S1hJ5k4Nkg.png =300x) - 去掉audio: ![image](https://hackmd.io/_uploads/r1LQipe4Jx.png =300x) - 去掉Face: ![image](https://hackmd.io/_uploads/Bkh99JVNyg.png =300x) - 去掉HRV: ![image](https://hackmd.io/_uploads/rkW62yN4Je.png =300x) - 去掉Eye_movement: - 實驗結果2: 第一篇論文模型三模態之測試結果