\chapter{行動識別}

\vspace*{3cm}

\section{行動識別}

携帯電話やウェアラブルデバイスを用いて，ユーザーが今何を行っているかという行動をデータとして取得することを行動認識や行動識別という．本研究では，行動識別と呼ぶことにする．

既存研究には，ライフログデータを取得するため，携帯電話の加速度センサやGPSを用いて走行や歩行しているなどの行動を取得する研究\cite{syaka}や，ウェアラブルデバイスの加速度センサやGPSを利用する事で人の行うさまざまな行動を識別し取得する\cite{terada}研究がある．しかし，本を読んでいることであったり，料理をしていることなどの細かい動作を取得することは難しい．机上に設置したKinect(図\ref{kine})を用いて行動を認識する研究が行われているが，机上に限っているため屋外や机上以外のの行動は認識できない\cite{貴志一樹2014}．なお，Kinectは2017年10月25日に生産終了が公表されている．

\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=100mm]{k1.eps}}
\end{center}
\caption{Kinect}
\label{kine}
\end{figure} 

本研究ではGPSやKinectを使用せず，細かい行動を識別する手法として，視界情報の画像認識を行う．ユーザーの視界情報を取得・行動識別を行うと，どこで何をしているのか，誰とあっているのかなど必要以上のライフログデータを取得するため，GPSを使用していないがユーザーのプライバシーを侵害してしまう．さらに，視界情報を画像で蓄積するとデータ量が多くなるという問題が生じる．この問題に対し，ウェアラブルデバイスのカメラ画像を取得し，減色処理を施しデータの蓄積・解析を行う研究が行われている\cite{weko_69138_1}．本研究では画像認識によりカメラ画像をテキストに変換することで，データ量を削減，かつプライバシーに配慮した行動識別を行うことを検討する．

\section{分析手法}
%
本研究ではいくつかの解析手法を用いて，一定時間内の取得データを視覚的に表す．そのために，自己組織化マップ，階層的クラスター分析，多次元尺度構成法，対応分析，共起ネットワークを用いる．取得したライフログデータ（図\ref{time0}）を例に解析手法の概要を説明する．取得したデータの時系列は最初の一分を1として置き換え，順に数字をあてはめ，その時行っている行動を文章とタグ5個で構成している（表\ref{h3}）．

%キャプションとconfidenceの高い順にタグを5個をデータとして取得した（表\ref{h3}）．
%開発したアプリケーションをスマートフォンを用いて，2018年1月6日にライフログデータを取得した．開発したアプリケーションについては第4章で説明を行う．また使用したスマートフォンはSamsung Galaxy S8であり，データ取得日は常に片手がふさがる状態であった．

\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=140mm]{time0.eps}}
\end{center}
\caption{ライフログデータ}
\label{time0}
\end{figure} 

\begin{table}[h]
\centering
\caption{取得データの一部}
\label{h3}
\resizebox{\textwidth}{!}{%
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
時間番号 & タグ1      & タグ2      & タグ3    & タグ4     & タグ5      & キャプション                                    \\ \hline
1    & keyboard & computer & indoor & table   & desk     & a desk with a computer mouse and keyboard \\ \hline
2    & indoor   & computer & desk   & table   & keyboard & a desktop computer sitting on a desk      \\ \hline
3    & indoor   & computer & desk   & monitor & table    & a desk with a computer monitor            \\ \hline
\end{tabular}%
}
\end{table}

多変量解析を行うツールとしてKH coder\footnotemark[7]を使用する．KH Coderとは，テキスト型データの計量的な内容分析，もしくはテキストマイニングのためのフリーソフトウェアである\cite{higuti}．無償でウェブサイトから入手でき、すべての機能をマウス操作で利用できる．また，どんな言葉が多く出現していたのかを頻度表から見ることができたり，自己組織化マップ，共起ネットワークなどの解析を行ったりできる\cite{nani}．KH Coderを用いて行われた研究としては，アンケートの自由回答項目・新聞記事・インタビューデータなどさまざまなデータを分析した事例がある\cite{ichiran}．
\footnotetext[7]{http://khc.sourceforge.net/}

KH coderを使用した多変量解析には，まず対象のテキストファイル（もしくはエクセルファイル）を読み込ませ，前処理ボタンおすと，POS Tagger\footnotemark[8]を使用して自然言語処理を行う．この時，多変量解析の作成には，各文書に，それぞれの語が何度出現していたのかという集計表である「文書×抽出語」表\cite{二宮隆次2016}(図\ref{fig16})を使用している．
\footnotetext[8]{https://nlp.stanford.edu/software/tagger.html}

\begin{figure}[htbp]
\begin{center}
\fbox{\includegraphics[width=120mm]{fig16.eps}}
\end{center}
\caption{文書×抽出語表の例}
\label{fig16}
\end{figure} 

まず，ライフログデータの内容解析のため，階層的クラスター分析，多次元尺度構成法（MDS），対応分析，共起ネットワークを行う．最後に，ライフログデータの時系列を自己組織化マップ(SOM)を用いて解析を行う．この時テキストデータは，抽出語の中でも，2回以上出現する抽出語を用いて，解析に使用する品詞は名詞と形容詞に絞る．理由として，動詞は取得したデータ内のキャプションに現れるが，コンピューターが置いてある，という状態をコンピューターが座っている，などのように画像認識APIが捉えるため，本研究では座っている，という状態がノイズになってしまう．そのため品詞を絞ることとした．

階層的クラスター分析は，抽出語の最も似ている組み合わせから順番にクラスターにしていく方法であり，デンドログラムを表示する\cite{classtt}．指定されたクラスター数に全体を分割し，その結果を色分けによって表示する．なお，KH Coderでは，デフォルトのAutoでは，抽出語数の平方根を四捨五入したも
のを用いている\cite{classttta}．1つのクラスターには互いに関連性が高い語が集まっており、クラスターごとにどういう語が集まっているか調べることで，テキストデータ全体における1つの傾向や特徴を読み取られる．
作成方法は，まず抽出語としてA,B,C,D,Eがあったとする．この時抽出語の中で最も距離の近い組み合わせとしてAとBとし，AとBをくくる．次にこの2点の代表点を求める．ABの重心，C，D，Eの4点で，最も距離の近い組み合わせを見つける．このときCとDが最も近いとすると，CとDをくくる．このように繰り返していくことで，デンドログラムを作成する．

クラスター間の距離測定方法として，KH Coderではウォード法を使用している．2つのクラスターP,Qを結合したと仮定したとき，それにより移動したクラスターの重心とクラスター内の各サンプルとの距離の2乗和,L(P∪Q)と，もともとの2つのクラスター内での重心とそれぞれのサンプルとの距離の2乗和,L(P),L(Q)の差(式\ref{classt})が最小となるようなクラスターどうしを結合する手法である．ウォード法は，計算量は多いが分類感度がいいため用いられることが多い．また，ウォード法は一つのクラスターに抽出語が順に吸収され類似するクラスターが形成される鏡効果が起こりにくいという強みがある\cite{aki}\cite{heba}．
\begin{equation}
\label{classt}
Δ= L(P∪Q)‐L(P)‐L(Q)
\end{equation}

取得したデータを使用して出力したクラスター分析が図\ref{class0106}になる．この時クラスター数をAutoにしたためクラスター数は6となる．併合標準（図\ref{classh0106}）からクラスター数が6であると，クラスターが多いと感じたため，次に妥当だと考えられる4に指定した．クラスター分析からコンピュータ関係が非常に多く，それ以外の行動を表すものは少ないことが確認できる．また，コンピュータ関係以外の行動の中にはキッチンやリビングを連想させるものが多いことがわかる．

\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=100mm]{クラスター分析01062.eps}}
\end{center}
\caption{データから作成したクラスター分析}
\label{class0106}
\end{figure} 

\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=100mm]{併合標準0106.eps}}
\end{center}
\caption{クラスター分析の併合標準}
\label{classh0106}
\end{figure} 

多次元尺度法は，抽出語間の関連性や類似性の強さをマップ上の点と点の距離に置き換えて，相対的な関係性を視覚化する手法である\cite{mdss}．MDSの結果は，相対的な位置関係だけを表わしているため軸の方向性に意味はない．

取得したデータを使用して出力した多次元尺度法が図\ref{syakudo0106}になる．クラスター分析を参考にし，クラスター数は6に設定した．この結果，目立つものはクラスター01,02,03であることがわかる．また，クラスター01が最も大きく，02,03に差異はない．距離の相関から，02と03は近い関係であり，01はどのクラスターからも遠く，このデータ内の代表的なクラスターであることがわかる．

\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=100mm]{多次元尺度法01063.eps}}
\end{center}
\caption{データから作成した多次元尺度法}
\label{syakudo0106}
\end{figure} 

対応分析は，単純な２次元表や多重表の行と列間
の対応する測定値を分析する探索的データ解析の
手法であり，
分析結果として，2次元のマップが表示される\cite{taiouu}．このマップで近くに位置しているものは，相対的に関連が強いということを示し，遠くに位置しているものは関連が弱いということになる．また，また対応分析では，これといって特徴のない語が原点付近に密集することが多い．
%基本の考え方は，行列において，項目と列項目の相関が最大になるように，行と列の双方を並び替えることである．

取得したデータを使用して出力した対応分析が図\ref{taiou0106}になる．キッチンやリビングを表す抽出語は原点より遠く，コンピューター関連の単語が原点に近いことから，コンピューターが視界にある行動というのは特徴的ではないことがわかる．
\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=100mm]{対応分析01062.eps}}
\end{center}
\caption{データから作成した対応分析}
\label{taiou0106}
\end{figure} 

共起ネットワークはある語が語られる状況の断面を多角的に把握するのに強力なツールであり，線がつながっている語が共起関係にあり，その繋がりにのみ着目する\cite{tanakak}．
抽出語の中で出現パターンの似通ったものを線で結ぶ，すなわち共起関係を線で表したネットワークである．多次元尺度法と異なっている点は，プロットされた位置ではなく線で結ばれているかどうかということに意味がある点である．

また，KH Coderでは，共起ネットワーク図の表し方として複数用意されており，それらの中から選択できる．まず，中心性に基づいて色分けが行われており，それぞれの語がネットワーク構造の中でどの程度中心的な役割を果たしているかを表す方法である．次に比較的強くお互いに結びついている部分を自動的に検出してグループ分けを
行い，その結果を色分けによって示すサブグラフ検出方法\cite{横田尚己2017}である．この方法は，共起関係の媒介性，random walksおよびmodularityに基づいた方法の中から選べられる．
本研究では，媒介サブグラフを使用する．媒介サブグラフは，辺の媒介中心性を用いた
コミュニティにおけるサブグラフの抽出法である．比較的強くお互いに結びついている部分であるコミュニティを，KH Coder
上での表記は暫定的にサブグラフ検出としている．その中でも，媒介中心性の算出方法
を辺に適用したもので，媒介中心性の高い辺はそれだ
け多くの頂点をつなぐ働きをしているといえる．
%媒介サブグラフは，他の頂点どうしの間にあり，それらをつなぐ働きをする頂点を目立たせる方法である．この頂点どうしをつなぐ最短距離上に位置する頂点は，頂点間の仲介や情報のコントロールが可能な点で有力であり，より多くの頂点間の最短距離上にあるほど影響力が大きいと考えられる．
%単に近くに布置されているだけで線で結ばれていなければ，共起の程度が強いことを意味はしない．また，色も自動のため関係はない．共起関係の種類は，本研究では,語と語がどのように結びついているのかを探るため，「語‐語」を説明する．共起関係をすべて線として描くと画面が線で埋まってしまうことが多いため，描画する共起関係を一部の比較的強いものに絞らなければならない．

取得したデータを使用して出力した共起ネットワークが図\ref{kyouki0106}になる．この時，Jaccard係数が0.2以上の共起関係を描画している．Jaccard係数とは二文章間の類似度である，小さいほど類似度は低く，大きいと類似度が大きいものしか描画されないため状況に応じて検討すべきである．今までの解析手法と同じく，コンピューター関連，キッチンやリビングを表す抽出語どうしは線で結ばれているため，共起関係があることがわかる．そのほかの共起関係は弱いことも視覚的に理解しやすくなっている．
\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=100mm]{共起01063.eps}}
\end{center}
\caption{データから作成した共起ネットワーク}
\label{kyouki0106}
\end{figure} 

SOMは、ヘルシンキ大学のコホーネン教授により1981年頃に発表された，教師なし学習を行なうニューラルネットワークの代表例と言える解析手法である\cite{koho}．ニューラルネットワークとは、脳機能に見られるいくつかの特性を計算機上のシミュレーションによって表現することを目指した数学モデルである．つまり，人間が無意識にやっていることを機械にやらせるということである．

\begin{figure}[htbp]
\begin{center}
\fbox{\includegraphics[width=100mm]{fig15.eps}}
\end{center}
\caption{入力層と出力層}
\label{fig15}
\end{figure} 

SOMは図\ref{fig15}に示すように入力層と競合層の2つに分かれて競合学習を行う\cite{somwether}\cite{somsom}.
今，入力層から競合層への入力を$x$と定義する．$x$は入力データベクトルと呼ばれ，1以上の次元を持つ．図\ref{fig15}には，入力層のニューロンが複数個あるが，各々のニューロンがそれぞれの次元に対応した出力を行っていると考える．

また，競合層のニューロンと入力層のそれぞれのニューロンとの結合強度は総称して参照ベクトルと呼ばれ，$m_i$で表される．添え字である$i$は，競合層のニューロンの番号である．ここで，入力ベクトルと各ニューロンの参照ベクトルとのユークリッド距離で競合層のニューロンを競合させる．勝者ニューロンを$c$とすると，式\ref{shosya}で表される．argminf(x)はf(x)を最小にするxの集合であり，下側に変数がとる値の範囲を書くことが多い．
 
\begin{equation}
\label{shosya}
c = \arg \min_i \{\vert\vert x-m_i\vert\vert\} \\
\end{equation}

勝者ニューロンは自らの参照ベクトルと入力ベクトルを近づける学習を行う．また，勝者ニューロンに近いニューロンについても，同じ入力から何かを学習しようと活性化するため，参照ベクトルを同様に更新させる(式\ref{kousin})．
\begin{equation}
\label{kousin}
m_i(t+1)=m_i(t)+h_{ci}(t) \cdot \{x(t)-m_i(t)\}
\end{equation}

また，$h_{ci}$は勝者ニューロンとの距離によりガウス関数で減衰する係数であり，式\ref{kinbo}で定義される． 
\begin{equation}
\label{kinbo}
h_{ci}=\alpha (t) \cdot \exp{\frac{-\vert\vert r_c - r_i\vert\vert^2}{2 \sigma ^2 (t)}}
\end{equation}

ここで，$r_i$は$i$番目のニューロンの競合層上での位置，$r_c$は勝者ニューロンの競合層上での位置を示す．また，$\alpha (t)$は学習率係数，$\sigma ^2 (t)$は学習半径という．ともに学習を収束させるため学習回数$t$で減衰する係数である．このようなアルゴリズムでSOMは作成される．
また，SOM作成過程ではユークリッド距離を利用している．また，文書の長さのばらつきに左右されない形で計算を行うために，文書中における語の出現回数をそのまま使うのではなく，1,000語あたりの出現回数に調整したものを計算に使用する．さらに，実行時に距離が0となる語の組み合わせがあった場合，自動的にそのうち片方の語が分析から除外される．

自己組織化マップの学習は，大まかな順序づけを行う段階と，
微調整を行う収束段階の2 段階で行われる．KH Coderでは，
1段階目が1,000，2段階目が「全体のノード数を500倍した数値」となっている．
また，各ノードがもつベクトルをウォード法で分類してクラスター化する，クラスター数は任意に決定できる．

本研究ではこのKHoderはデータの前処理段階に使用し，実際のSOM作成には，データ解析・グラフィックス環境を備えたオープンソースのソフトウェアであるRを使用する．取得したデータを使用して出力したSOMが図\ref{som0106}になる．学習回数は1段階目が1,000，2段階目が200,000となっている．また，時系列に線を結び，クラスター数は4とした．

図\ref{som0106}より赤の範囲が大きく，ほとんどこのライフログデータ時間内は同じ行動をしていることがわかる．赤の範囲の時間を抽出語表で確認すると，コンピューター関係の単語が多い時間であり，また緑の範囲も同じくコンピューター関係の単語であったがコンピューター関係のテキストが多いことから多少の差異も大きく示されたと考えた．また，青の範囲の時間は食事を表す単語が多い時間である．140から160前後は青の範囲に含まれることから，この30分間は食事にあてていることがわかる．また紫の範囲は130台と170台で構成されており，ライフログデータ上に二回出現した行動であることがわかる．赤の範囲，緑の範囲の数字が，ある一定の数だけではないことから，このデータ取得日はほとんどコンピューターをみていることがわかる．

\begin{figure}[ht]
\begin{center}
\fbox{\includegraphics[width=110mm]{無題2.eps}}
\end{center}
\caption{データから作成したSOM}
\label{som0106}
\end{figure} 

%
\section{類似性・イベント性}
%
KHoderとRを用いてテキストデータの多変量解析を行い，解析結果の読み取り・比較を行うことで一定時間内の行動のライフログデータの類似性やイベント性を検出できる．
本研究では，ライフログデータの類似性は～～～であり，～～～～にいかす．
自己組織化マップはクラスターの分かれ方，クラスターの大きさ，線の流れ方から読み取り・比較を行うことで，多くのライフログの中でも類似したライフログか，特徴的でイベント性のあるライフログかわかる．階層的クラスター分析，共起ネットワークはクラスターの分かれ方やデータを構成する単語の関係性からどのような行動があるのかがわかる．多次元尺度構成法，対応分析はプロット点やプロット間隔から類似する行動やイベント性のある行動がわかる．