2025/7/4の輪読会で発表する内容を考える
#inbox
* 構成や資料を作る際に気をつけること
メリハリをつける
特に重要な箇所とそうでない箇所に割く時間を変える
説明する量や質などで,特に聞いて欲しい箇所を強調しよう
聴衆が聞きやすいよう山場を作るイメージ
前提を共有する
認識をすり合わせる
僕と聴衆の意識をある程度整理する
丁寧に段階を踏んで説明し,理解してもらう
アウトライン
初めに
これまでに大まかな道筋は立った
これからは実現可能性などを詰めたい
まず改めて研究の目的を共有
その後以下を共有:
研究計画の具体化のためどう行動するか
現時点の進捗
最後に今後の展望を述べる
研究背景
これまで
少子高齢化で介護負担増
安価で手軽な見守りシステムを導入
迅速な対応 + 監視の負担軽減
これまでに足りない要素
施設での運用を前提にしているが,それで本当に負担は減る?
安価+手軽だけで差別化できるか?
他のセンサに比べて本当に手軽?
音を選ぶ理由が必要
なぜ機械学習するのか
HARはより古典的で,範囲は狭いが確実な方法がある
これから
Ambient Assisted Livingの流れを汲む
積極生活支援
ICT技術で自立した生活を支援
行動認識で実現
少子高齢化で介護/医療負担が増大
在宅での介護/医療が重要
高齢者の自立した生活のため,施設ではなくその場が良い
異常行動から早期に病気などを発見,対応
介護/医療負担の軽減
音独特の異常行動兆候を探す
呼吸音,咳き込みなど
機械学習をする理由
サーベイ中
HARでは環境の変動に適応する必要がある
従来の閾値での判断より,機械学習の方が柔軟に対応できる
要調査: 従来法でも適応的に閾値を操作する手法がある
特定の環境だけでなく,他の環境に適応させるのに機械学習を使う
特に連合学習
ローカルで稼働させてデータを収集
そのデータでモデルを学習...できると理想的
在宅を視野に入れた見守りだと,説明できるかも
高齢者の中でも支援によって自立した生活が可能な方向けに使用
支援自体を効率化するため,柔軟に異常行動を検知できるシステムが欲しい
単一の目的に沿うより,色々拾える方が望ましい
これらを追加のサーベイでより明確にする
全体ロードマップ
研究計画書から大まかな予定を考える
今後2週間でもう少し見当をつけたい
7: 基礎を準備
背景サーベイ
マルチラベル音響イベント検出モデルを段階的に実装
異常イベントの音響データを収集
8: 必要な施策を実行
データ不均衡の対応
簡単なFL適用
Federated Semi-Supervised Learning
シミュレーションの方法を調査/検討
9: 異常検知層を追加
方法を検討
異常検知を実装/実験
10: FLの実装/実験
集約法を工夫?
今後の実験評価計画 : メタ実験評価計画
この計画の実現可能性が微妙
やること
モデル実装
データ収集
データ不均衡対策
半教師あり連合学習
異常検知モデルの構築
シミュレーションの検討
現在の進捗
メタ実験評価計画が起点になる
実装
最低限のマルチラベル音響検知モデルを実装
最初はCNNの簡単なモデル
現在は先輩の実装を参考に,Transformerベースのモデル
何をしたか > マルチラベル実装のPoCを作る
CNNによる最低限のマルチラベルモデルを作成
マルチラベルデータ生成
現在,ESC-50のうち以下のラベルのみ使用
code: label.py
allowed_categories = [
"rain","door_wood_knock", "door_wood_creaks", "glass_breaking", "sneezing", "breathing", "coughing",
"footsteps", "laughing", "brushing teeth", "snoring", "drinking_sipping", "pouring_water", "toilet_flush"
]
音二つの組み合わせを全パターン作成し,csv化
この時点で12000くらい
! 後でcsvを確認
csvからランダムに,かつラベル組が均衡になるようデータを取得
この時点で現在は9048データ使用
! 後でテストデータも作るよう修正
モデル定義の説明はslack
! モデル定義の意味を理解する
モデル定義
code: mermaid
graph TD
Input"Input (B, freq, time)"
BatchNorm"BatchNorm1d (freq)"
Permute1"Permute (B, time, freq)"
Linear"Linear (freq → embed_dim)"
Encoder"Encoder (PositionalEncoding + N×EncoderBlock)"
Permute2"Permute (B, embed_dim, time)"
GlobalAvgPool"AdaptiveAvgPool1d (1)"
Classifier"Linear (embed_dim → n_classes)"
Sigmoid"Sigmoid (multi-label output)"
Input --> BatchNorm
BatchNorm --> Permute1
Permute1 --> Linear
Linear --> Encoder
Encoder --> Permute2
Permute2 --> GlobalAvgPool
GlobalAvgPool --> Classifier
Classifier --> Sigmoid
subgraph EncoderBlock
MHA"MultiHeadAttention"
AddNorm1"Add & LayerNorm"
FFN"FeedForward"
AddNorm2"Add & LayerNorm"
MHA --> AddNorm1
AddNorm1 --> FFN
FFN --> AddNorm2
end
Encoder -. contains N×EncoderBlock .-> EncoderBlock
学習
作成したモデルを訓練
事前に選定した9048データで学習
code: hyper.py
model = MelSpectrogramTransformer(
input_dim=n_mels,
embed_dim=128, # 埋め込み次元
nhead=4, # Attenstionのヘッド数
nhid=256, # FFNの隠れ層
nlayers=2, # エンコーダ層数,ブロック数
n_classes=num_classes,
max_len=X.shape2 # 時系列長
).to(device)
code: train
python train.py \
--data ./dataset/esc50_multilabel.npz \
--batch 32 \
--epochs 20 \
--lr 1e-3 \
--val-split 0.1 \
--device cuda \
--save-model ./checkpoints/esc50_cnn.pth
評価
間違えて訓練時と同じデータを読み込んでいる
現在は各クラス10データ貰っている
! 評価時にどのくらいデータを用いれば良い?
ひとまず936データ選定し,そこからさらに選択する形
後ほど修正する
x 評価時に読み込むデータを修正
一応修正したが未検証
! 評価データを検証
code: eval
python eval.py \
--data ./dataset/esc50_multilabel.npz \
--model ./checkpoints/esc50_cnn.pth \
--batch 64 \
--device mps \
--threshold 0.5
研究目的を再考/サーベイ
研究目的の深掘りのため調査中
院試用研究計画書の背景を再考する
技術ありきで話を進めていた
研究意義の説明が不足
現在,関連論文を読んで確認中
後で再考するのパラグラフを要約し,いい感じの説明を作る
卒論の研究意義再考のため調査する
一応サーベイ論文を3本くらいざっとみている
サーベイ論文からいくつか論文を選んで読む予定
データの収集 > 異常イベントの音響データを収集
音特有の異常に関してデータを集めたい
呼吸
咳き込み
悲鳴
など
データセットを捜索中
現在見つけたのが微妙なため
確認した
! Deeply Nonverbal Vocalization Dataset
作者に連絡を取る必要があるみたい
咳や呼吸
Respiratory Sound Database
デジタル聴診器で取った音もあるらしい
それは行動認識に使えないかも
AKG C417L Microphone (AKGC417L)の音だけ使えそう
ライセンスがない
異常な呼吸音や咳
未確認
SAFE
転倒音
TAME Pain Dataset
Chronic Pain Audio Dataset
痛みに関連
Sound-Dr Dataset
データの中身がよくわからない
多分呼吸音
F2LCough
咳分類
まず咳や呼吸で捜索中
他の音をAALサーベイ中に検討
今後のステップと課題
各種対応を簡単に試す
目的: 何をすればいいか,どのくらい時間がかかるかを把握する
データ不均衡の対応
損失関数を変えるだけと思われる
実施せずとも良いかも
Focal lossとその拡張を採用する
Federated Semi-Supervised Learning
半教師あり連合学習
異常検知モデルの構築
シミュレーション
AALサーベイ
見守りの方向に変わりはない
施設自体の方向性もひとまず維持
AAL自体がそういった研究分野だった
今一度関連論文を漁り,類似研究がないか探す
探しながら研究目的を考える
データ収集
各種データセットを分析/確認
データセット探すため,音ならではの異常の兆候を考える
懸念: 自作データセットの検証はどう行う?
仮にデータセットを構築したとする
どうやってそれで学習したモデルを評価するのか?
どうすれば実用に耐えうるモデルと示せる?
評価の方法を考える必要がある
現実的な想定のデータが見つかればそもそもそれを使う
あるいはデータセットの論文を見て確認
現実的なラベルの組み合わせを考え,時間をかけてデータを構築すれば問題ない?
データセット構築段階が鍵になりそう
補足
目的意識
行動が難しいレベルの人に適用するかは不明
担当の方が見守る中でしか歩くのが許されていない方など
骨粗鬆症とか
以前まではなんとなく施設を対象に考えていた
AALの研究目的を踏まえると,施設だけでなく,普遍的に使えそう
在宅介護,医療を目的にできるかも
センサについて
カメラではなくマイクを使う理由
安価
生活への干渉が低い,受容されやすそう
他のセンサではなくマイクを使う理由
マイクの設置や導入が手軽
これは理由にならないセンサがあるかも
音特有の異常行動の兆候を検出できる
こちらがメインの理由
咳き込みや呼吸音など
目的意識の追求に関する経緯 > 2025/6/29_LT会のメモ
これまでは技術的な部分ばかり見ていた
論文の最初の方はあまり真面目に読んでいなかった
この研究をなぜ行うのか問うた時,答えられない問題がある
なぜ音による見守りシステムが必要なのか
既存の単純なシステムではいけないのか
AALの理解が足りないと気づいた
分野で共有されている目的意識の認識が足りない
僕の場合,基礎となるAALが該当
AALのサーベイが必要!
研究計画など,説得力を増すために目的意識を理解する