就活したことない Advent Calendarの話

2012年12月,就活したことない Advent Calendar という企画をしました.参加してくださった皆様,ならびにコメントをくださった皆様,本当にありがとうございました.

今回の記事を項目別にまとめました.リンク切れなどありましたらご連絡ください.

博士後期課程の生活

学振

英語,海外生活

Computer Vision Advent Calendar 2012 Saliency Icon Championship (CVAC2012 SIC)

Computer Vision Advent Calendar 2012は,@sakanazensen さん主催のACです.私は参加者の @yonetaniryo です.

Saliency Icon Championship (SIC) の概要

Saliency Icon Championship (SIC)は,色々な方のTwitterアイコンをタイル上にならべ,saliency mapと呼ばれる視覚的注意の計算モデルを適用することで,「どのTwitterアイコンが最も視覚的注意を誘起しやすいか(ぱっと目につきやすいか)」を調べてみようという企画です.

本企画の意義
  • タイムライン上でどのようなアイコンが目につきやすいかが分かり,アイコンデザインに関する何らかの手がかりを得ることができます.
  • Saliency mapのモデルがいかに直感に即していないか(!)が分かります.

アイコン収集の過程

参加希望の方には以下の要項をお読みいただいたうえで,アイコンを送っていただきました.

  1. 提供いただいたアイコンは,上のような形式でウェブ上にアップされる予定です.同アイコンは,本企画(Computer Vision Advent Calendar 2012 Saliency Icon Championship)以外では利用いたしません.また,本企画が営利目的になることもありません.
  2. ご自身が権利を保持していない(著作者より転載の許可を得ていない)アイコン(例: アニメ画像のキャプチャなど)のご提供はご遠慮ください. また,提供いただいたアイコンの改変が(画像処理的に,ではなく法的に)難しいと判断される場合,こちらからお問い合わせ,あるいは掲載を見送りさせていただく可能性がございます.ご容赦ください.
  3. 本企画にあたって,著作権を譲渡いただくことはありません.ただし,提供いただいたアイコンからsaliency mapを計算し,ウェブ上にアップすることを許可していただければ幸いです(これを許可いただけない場合,同一性保持権の侵害になる可能性があるかと思います).

最終的に,以下の方々よりアイコンをご提供いただきました.ありがとうございます.
@_akisato_様,@derivecv様,@hanihani34様,@kanoji_BOTCH様,@kansaicvprml様,@Kyabatalian様,@lachesis1120様,@miyabiarts様,@naejimu様,@progranate様,@q_tarou様,@sakanazensen様,@T_Y_K様,@tackson5様,@takmin様,@tomoaki_teshima様,@yasutomo57jp様,@yonetaniryo
いただいたアイコン一覧はこんな感じです.

顕著度計算の過程

前処理

前処理として,いただいたアイコンをクロップ&リサイズすることで,同一サイズ(144x144pixel)に揃えました.クロップはアイコンに映る主体がなるべく完全に映るように行いました.また,リサイズによって解像度が大幅に変化するアイコンはありませんでした.

顕著度計算

以下の2x3条件で計算を行いました.

入力画像
1. アイコンそれぞれ独立に評価
2. アイコン(全20種類)を5x4のタイル上に並べた画像を評価
特に2. に関して,saliency とは「周囲と比較してその点がどれだけ異なるか」を測るので,アイコンの並びによって結果が変動することが予測されます.そこで本調査では,アイコンの並びをランダマイズしつつ,合計100枚のタイル画像を作成し,それぞれについて計算を行いました.アイコン間には隙間ができないように並べました.

計算モデル
現在,"saliency"と名のつくモデル・手法は概ね以下の2種類に分類できます.
a) Visual attention model: 文字通り,人間の視覚的注意(visual attention)のモデルです.「周囲と比較してその点がどれだけ異なるか(center-surround difference)」に基づいて入力画像の各画素の顕著度(saliency value)を計算するモデルです.
b) Salient region detection: 「目立つ領域を検出しよう」という手法になります.こちらは人間の視覚的注意機構を考慮しないものがほとんどで,しばしばsuperpixelなどのセグメンテーション手法と併用されます.
今回はa),b)について,Matlabコードの公開されている以下の3種類を用いて評価を行いました.
a-1) Saliency map: A Model of Saliency-Based Visual Attention for Rapid Scene Analysis - Itti+, 1998 (code)
Ittiらによって実装された最初のsaliency mapになります.大まかには,色(補色差),輝度,エッジ方向といった基礎的な特徴量を多重解像度で表現し,解像度間の特徴量差分の大きさをもってcenter surround differenceを測るモデルになります.
a-2) GBVS: Graph Based Visual Saliency - Harel+, 2006 (code)
GBVSではまず,画像のピクセルをノードとした完全グラフを構築します.そして,エッジの重みに「特徴量差 x exp(-ピクセル間マハラノビス距離)」を与えます.このグラフをマルコフ鎖としてとらえ,その定常分布を計算することによって,各ピクセルが持つ特徴量のcenter-surround differenceが計算されることになります.
b) CBSaliency: Automatic salient object segmentation based on context and shape prior - Jiang+, 2011 (code)
本モデルでは画像をいったんsuperpixelに分割し,各superpixelとその周囲のsuperpixelが持つ色分布のカイ二乗距離をもってcenter-surround differenceを測ります.顕著度はsuperpixelごとに与えられます.

評価

アイコンごとに顕著度を総和し,その試行に対するスコアとしました.タイル化画像に関しては,100試行の平均と標準偏差を計算しました.

調査結果

各図上4x5がモデル適用結果,6行目がスコア(総和された顕著度,タイル化画像は標準偏差のエラーバーも込み),7行目がトップ5のアイコンになります.皆さんのアイコンはいかがでしたでしょうか.

1. アイコン独立

a-1) saliency map

a-2) GBVS

b) CBSaliency

2. タイル化画像

a-1) saliency map

a-2) GBVS

b) CBSaliency

考察

アイコン独立 vs. タイル化画像

アイコン独立の評価では,主に「そのアイコン中でどこが目立つか」が分かります.一方で,タイル化画像に対する評価では,「周囲に別のアイコンが配置された際に,そのアイコンがどれだけ目立つか」が分かります.両者で顕著度の高いアイコンが異なることが分かるかと思います.その原因としては,

  • タイル化画像におけるあるピクセルの顕著度は,その点における特徴量が「そのアイコン内でどれだけ異なっているか」のみならず「周囲のアイコンと比較してどれだけ異なっているか」に基づいて計算されるため
  • タイル化画像の場合,アイコン間の境界に特徴量差が出やすく,またその部分が顕著であると判定されやすくなるため

といったことが考えられます.
また,スコアの散らばり(偏差)を見てみると,CBSaliencyが最も大きく,saliency mapとGBVSは似たり寄ったりという感じになっています.これに関して,CBSaliencyではsuperpixelごとに一つの顕著度が与えられています.したがって,アイコンの並びが変化することでsuperpixelの作られ方が変化すれば,結果としてドラスティックに値が変わってしまうことが予想されます.

手法ごとの評価

Saliency mapでは異なる解像度間での特徴量の差分によってcenter-surround differenceを評価するため,ある点における特徴量を画像全体の特徴量と比較するGBVSやCBSaliencyと異なり「より局所的な範囲でcenter-surround differenceが高い」点が評価されることになります.1. アイコン独立 - a-1) saliency map において,小さな極大点がたくさん出るのはこれが原因であると考えられます.CBSaliencyではsuperpixelごとに顕著度を与えているので,元の入力画像が想像しやすいですね.

今回用いたモデルは基本的に画像の基礎特徴量のみを用いるものであり「顔が目立つ」「文字が目立つ」といった情報は反映されません.ですがGBVSやCBSaliencyにおいていくつかの結果では,明らかに顔や文字が高い顕著度を得ています.理由の一つとして,アイコンを作る段階で,アイコン作成者が「顔や文字が視覚的に目立つように」陰に背景のテクスチャや色を設定していることが考えられます.

まとめ

いかがでしたでしょうか.僕自身としては,

  • 視覚的注意モデル,意外とアテになんないな
  • Salient region detectionの方が直感的に分かりやすい結果だな

などの印象を持ちました.また,実験条件(画像の並べ方など)によって結果に大きな差が出てくるところも個人的には面白かったです.
視覚的注意モデルやsalient region detectionは色々な場面に応用されており,たとえば

などがありますので,よければチェックしてみてください.

最後に,本調査にご協力いただき,アイコンをご提供してくださった皆様,本当にありがとうございました.

スペクトラルクラスタリングの話

Machine Learning Advent Calendar 2012に参加させていただきました,@yonetaniryo と申します.現在,博士後期課程2年で,コンピュータビジョン・パターン認識に興味があります.最近,クラスタリング手法の一つであるスペクトラルクラスタリングについて勉強する機会があったので,今回はそれを紹介しようと思います.

  • 2013 1.24 いただいたコメントをもとに,図を一部更新しました.

はじめに

本記事のモチベーション

本記事では,「スペクトラルクラスタリングについて何も知らない」人を「スペクトラルクラスタリングとは何かを大雑把には知っている」状態に持っていくことを目標にしています.具体的には,文献[1]の最初の方を紹介します.

本記事で扱う範囲
本記事で扱わない範囲
  • Normalized cutsとの関連: 文献[1][2]が詳しいです.
  • カーネル法との関連: 文献[1][3]が詳しいです.

スペクトラルクラスタリングのざっくりした説明


グラフの特性を表現するような行列としてgraph Laplacian matrixがあり,graph Laplacian matrixの固有値集合はグラフのスペクトル(スペクトラム)と呼ばれます[4].スペクトラルクラスタリング(spectral clustering)は,データをサンプル間の類似度に基づいてグラフ表現し,そのスペクトル(固有値)の計算を通してクラスタリングを解く手法です.[3][5][6]などで指摘されている通り,データをその局所性(元の特徴空間におけるペアワイズな類似性)を保存しつつ低次元空間に飛ばし(Locality preserving projection; LPP),その低次元空間の中で通常のクラスタリング(たとえばk-means)を行うことと同じです(良いグラフ表現をしていればk-meansなどせずにクラスタ分割ができます.詳しくは後述).

Similarity graph([1] Sec. 2)

スペクトラルクラスタリングにあたって,サンプル x_i (i=1,\dots, n) のペアワイズな類似性をグラフ表現する必要があります.このグラフをsimilarity graphと呼びます.

  • G=(V,E): similarity graph.
  • v_i \in V: サンプル  x_i に対応.
  •  e_{ij}\in E: サンプル間の類似度に対応.類似度に応じて重みw_{ij}が与えられる(似てる/近いほど大きい).w_{ij}\geq 0であり,w_{ij}= 0のときはエッジ無し.ちなみにw_{ii}=0です.

重みの与え方はいくつかの種類があり,

  •  \epsilon-neighbor: 距離 \epsilon以下のサンプルのみ重みを与えます(他はゼロ).
  • k-nearest neighbor: 各サンプルについて最も類似しているk個のデータ点にのみ重みを与えます.
  • Fully-connected: 重み(たとえばガウシアン重み)を全サンプル同士について与えます.


Graph Laplacian matrixとその諸性質([1] Sec. 3)

スペクトラルクラスタリングでは,similarity graphの性質をよく表現するような行列,graph Laplacian matrixを導入します.具体的には,

  1. データ点 x_i, x_jの重み(近さ)w_{ij}(i,j)要素に持つ n\times nの行列(nはサンプル数)を weighted adjacency matrix Wとして定義します.
  2. サンプル x_iに与えられる重みの総和  d_i =\sum_j w_{ij}(i,i)要素に持つような n\times nの行列をdegree matrix  Dとして定義します.
  3. これらの行列W,Dを用いて,graph Laplacian matrix L=D-Wが得られます.

Graph Laplacian matrixは別名Kirchhoff matrixと呼ばれており[7],グラフを回路に見立てて,各頂点の電流入出量を表した行列と捉えることもできると思います.

Graph Laplaciansには幾つかの重要な性質があります.以下ではそれを簡単に説明します(証明は付録).

性質1: n次元ベクトルf=(f_1,\dots,f_n)について,f^T L f =\frac{1}{2} \sum_{i,j} w_{ij} (f_i-f_j)^2
性質2: Lは半正値対称行列(なので,固有値はすべて\lambda\geq 0
性質3:  Lの最小固有値は0であり,対応する固有ベクトルは全要素1のn次元ベクトル\mathbb{1}
性質4: 固有値0の重複度(multiplicity) K L中の連結部分グラフの数に対応する(すなわち,similarity graph  G \{A_1,\dots, A_K\}に分解できる).また,固有値0に関する固有空間は \left[\begin{matrix}\mathbb{1}_{A_1}\\0\end{matrix}\right],\dots,\left[\begin{matrix}0\\\mathbb{1}_{A_K}\end{matrix}\right]によって張られる( \mathbb{1}_{A_k}は連結部分グラフ A_kの頂点数だけ1を並べたベクトル).

特に性質4が重要で,固有値0に対応する固有ベクトルが連結部分グラフの頂点集合を示しているということで,固有値問題を解くことでグラフの分割ができる=データのクラスタリングができる,というのが直感的に分かるかと思います.以上で準備は完了です.

ちなみに,冒頭に定義したgraph Laplacian matrix L=D-Wは,正確にはun-normalized graph Laplacian matrixと呼ばれ,normalized graph Laplacian matrixというものもあります.2種類あります.

  •  L_{sym}:=D^{-1/2}LD^{-1/2}=I-D^{-1/2}WD^{-1/2}
  •  L_{rw}:=D^{-1}LD=I-D^{-1}W

Normalized graph Laplacian matrixも,これまで紹介した諸性質に非常に似た性質を持っています.本記事では省略しますので,詳しくは[1]を参照してください.

スペクトラルクラスタリングのアルゴリズム([1] Sec. 4)

ここでは,unnormalized graph Laplacian matrix  L=D-Wを用いたun-normalized spectral clusteringのみ紹介します.

Un-normalized spectral clustering

Input: データ (x_1,\dots,x_n)クラスタ k
Output: 各サンプルについてのクラスタID.

  1. Similarity graph~ graph Laplacian matrix  Lをつくる.
  2.  L固有ベクトルを,固有値が小さいものから順に k個( u_1,\dots, u_k)求める.
  3. 固有ベクトル u_p p列目に持つような行列  U\in \mathbb{R}^{n\times k}を作る.
  4. Lが理想的に k個の部分グラフに分割されている場合… u_p p番目の連結部分グラフのindicatorであるはずなので, Uについて  i番目の行はサンプル x_iの所属するクラスタを示しているはず.おしまい.
  5. そうでない場合… i番目の行をサンプル x_iの新たな特徴ベクトルとして,通常のクラスタリング(たとえばk-means)を行う.

4. は先の性質4に由来する部分であり,スペクトラルクラスタリングのキモの部分になります.また,5. を考えると,スペクトラルクラスタリングが実質のところ局所性を保存した次元削減→通常のクラスタリング,となっていることが分かります.

Lが理想的に k個の部分グラフに分割されている場合,と書きましたが,実際はそんな綺麗な分割になっていることはなく(similarity graphの計算の仕方に大きく依存します),出てくる固有ベクトルがindicator vectorsになることはまれです(多分まれだと思います).そこで,問題をちょっと読み替えて,部分グラフ間のエッジ重みが小さく(クラスタ間の距離が大きく)なるようなグラフの分割を探そうということを考えます.すなわちgraph cutsの問題であり,ここでようやくnormalized cutsが出てきます(つづきは付録).

まとめ

データのグラフ表現〜スペクトラルクラスタリングのアルゴリズムを紹介しました.基本的には,[1]の前半を踏襲した内容になっています.スペクトラルクラスタリングは非常に奥の深いテーマで,まだ理解できていないところは多いです… 誤り,補足等ありましたら随時修正していきますので,ぜひぜひよろしくお願いします.

参考文献

[1] A Tutorial on Spectral Clustering - Ulrike von Luxburg (url)
[2] Normalized Cuts and Image Segmentation - Jianbo Shi and Jitendra Malik (url)
[3] 機械学習概論 次元削減(2) - 東工大 杉山先生 (url)
[4] Spectral graph theory - Wikipedia (url)
[5] スペクトラルクラスタリングは次元圧縮しながらKmeansする手法 - 観月橋日記 (続生駒日記) (url)
[6] スペクトラルクラスタリングの基本的な解説、および高速化手法のざっくりとした説明 - The beautiful mind (url)
[7] Laplacian matrix - Wikipedia (url)
[8] Spectral partitioning works: planar graphs and finite element meshes - Daniel A. Spielman and Shang-Hua Teng (url)
[9] Algebraic connectivity of graphs - Miroslav Fiedler (url)

付録1: graph Laplaciansの諸性質とその証明

性質1: n次元ベクトルf=(f_1,\dots,f_n)について,f^T L f =\frac{1}{2} \sum_{i,j} w_{ij} (f_i-f_j)^2

証明
 f^T L f = f^T D f - f^T W f = \sum_i d_i f_i^2-\sum_{i,j}w_{i,j}f_i f_j
 =\frac{1}{2}\left\(\sum_i d_i f_i^2 +\sum_j d_j f_j^2 -2\sum_{i,j}w_{i,j}f_i f_j\right\)(ここが一番トリッキーですね!)
 =\frac{1}{2}\left\(\sum_{i,j}w_{i,j} f_i^2 +\sum_{i,j}w_{i,j} f_j^2 -2\sum_{i,j}w_{i,j}f_i f_j\right\)
 =\frac{1}{2} \sum_{i,j} w_{ij} (f_i-f_j)^2

性質2: Lは半正値対称行列(なので,固有値はすべて\lambda\geq 0

証明
性質1 のところで, w_{ij}\geq 0なので,任意のベクトル fについてf^T L f\geq 0

性質3:  Lの最小固有値は0であり,対応する固有ベクトルは全要素1のn次元ベクトル\mathbb{1}

証明:  L i番目の行を L_iとおくと,
 L_i=\left\(-w_{i1},\dots,\sum_j w_{ij},\dots, -w_{in}\right\)よりL_i \mathbb{1} = 0
したがって, L\mathbb{1}=\mathbb{0}=0\times \mathbb{1}

性質4: 固有値0の重複度(multiplicity) K L中の連結部分グラフの数に対応する(すなわち,similarity graph  G \{A_1,\dots, A_K\}に分解できる).また,固有値0に関する固有空間は \left[\begin{matrix}\mathbb{1}_{A_1}\\0\end{matrix}\right],\dots,\left[\begin{matrix}0\\\mathbb{1}_{A_K}\end{matrix}\right]によって張られる( \mathbb{1}_{A_k}は連結部分グラフ A_kの頂点数だけ1を並べたベクトル).

証明:

  • K=1のとき

固有値0に対応する固有ベクトルは性質3より \mathbb{1}_G

  • K\geq2のとき

K個の連結部分グラフからなるgraph Laplacian matrix Lを考える.
たとえば K=2のとき L=\left[\begin{matrix}L_1 & 0 \\ 0 & L_2\end{matrix}\right].これまでの議論より L_kの最小固有値 \lambda_kは0,対応する固有ベクトル \mathbb{1}_{A_k}.このようなblock diagonal matrixについて,
 L=\left[\begin{matrix}L_1 & 0 \\ 0 & L_2\end{matrix}\right]\left[\begin{matrix}\mathbb{1}_{A_1}\\0\end{matrix}\right]=\left[\begin{matrix}L_1\mathbb{1}_{A_1}\\0\end{matrix}\right]=\left[\begin{matrix}\lambda_1\mathbb{1}_{A_1}\\0\end{matrix}\right]=\lambda_1\left[\begin{matrix}\mathbb{1}_{A_1}\\0\end{matrix}\right]
したがって,連結部分グラフ A_k のgraph Laplacian matrix  L_k固有値 L固有値であり,その固有ベクトル A_kのindicator vectorとなる.

付録2: Normalized cuts とスペクトラルクラスタリング

Normalized cutsは,最小カットに基づくグラフの分割を求める方法の一つで,分割された2つの部分グラフA, Bに関して,A, B間のエッジコストが小さく(最小カット)なり,かつA, Bそれぞれについて「頂点集合から全頂点へのエッジコストの総和」がバランスよくなるような目的関数を入れることが特徴になっています.また,この目的関数の最小化はレイリー商の最小化に帰着でき([2]に詳しく式変形が書かれています),結果としてグラフ分割を固有値問題で解くことになります.Normalized cutsによるグラフ分割は,先のnormalized graph Laplacian matrixを用いたスペクトラルクラスタリングに対応しており,

  • クラスタ内サンプル間の距離が小さくなるような分割
  • クラスタ間距離が大きくなるような分割

の両方を考慮することができます(un-normalized spectral clusteringは前者のみ考慮します.この辺の詳細は[1] Sec. 8.5を参照してください).

付録3: 固有ベクトルの選び方についての補足

Lが理想的に k個の部分グラフに分割されていない場合においても,最小固有値は0かつ対応する固有ベクトル \mathbb{1}となります.したがって,実際のスペクトラルクラスタリングでは2番目に小さい固有値から順に k-1個の固有ベクトルを用いる場合が多いようです.この2番目に小さい固有値に対応する固有ベクトルをFiedler vectorといい,Fiedler vectorのみを用いたグラフ分割はFiedler cut([8] Sec 2.3に概要があります)と呼ばれます.Fiedlerの論文は[9]にあります.

スクールカーストの話

就活*1したことないAdvent calendar3日目,今日は「進学するとこういう経験もできるよ」という小話の一つとして,スクールカーストの話を紹介したいと思います.といっても大学で友達できないよ〜とかそういう話ではないです.

海外学生との交流

進学すると,サマースクール(あるテーマで世界中から著名な先生をお呼びして,数日〜数週間ぶっ続けで講義を受ける)やdoctoral symposium(D論研究計画発表会みたいな感じ.著名な先生からコメントがいただける)なんかに参加する機会も出てくる.これらは通常の会議と違って,コーヒーブレイクや飯を同じく博士後期課程の学生と共にすることになり,ファーストコンタクトに失敗すると,なかなか世知辛い感じになる.

失敗... サマースクール編

今年の6月,スペインで開催されたパターン認識のサマースクールに参加してきた.会期は5日,うち1日は研究発表+social event(カテドラルみたいなとこ行った)で,残りはひたすら講義という感じ.本スクールの場合,スペインのパターン認識連合が主催するスクールで,日本人は僕だけ,他のアジア人(中国人)参加者もヨーロッパに長期留学してる人ばかりという状況であった.したがって,明らかに僕が一番英語ができないという構図ができあがっており,開始早々エンド感高まる.

とはいえ,さすがに5日間ぼっち飯はつらいので,なんとかアジア人捕まえて話しかけて話しかける.日常会話はからっきしだが,なんとか研究の話はできるので,研究テーマの話とかで攻め込む.最終的にアジア人4人+イタリア人1人からなるグループが構成された.

と,ここで気付いたのである.スクールカーストが形成されておる…!

  • グループA: イケてるヨーロッパイケメン軍団+女性.すごいキラキラして見える
  • グループB: わりかし温和な感じだけど,コミュニケーション能力は十分にあるヨーロッパ+中東系軍団.やはりキラキラして見える
  • グループC: アジア勢

グループBはグループAと自由に交遊できるし,グループCにも非常に気さくに話しかけてくれるのだが,基本的にグループAとグループCが交わることはない.唯一交流があったのは,4日目の晩ご飯で,グループAが「最後の晩だしみんなで飯いこうぜ!!!」「「「ウェーイ!!!」」」「グループBもいこうぜ!!あ,グループCもくる?いいよ」みたいな感じの提案をし,グループCはひょこひょこと飯についていくに至った.今思うと完全に罠だった.

―――店はシャレオツなフランス料理屋.どうも席が足りないらしく,グループAが交渉している.申し訳ない感じになるグループC.それでもなんとか席が足り,食事が始まる.「それで,おれはこう言ってやったのさ!!」「スゲー!」(マジでこんな感じだった)僕はひたすらニコニコ笑いながらご飯を食べていた.日常会話だと,彼らマジで超速でトークしてくるので,話を追うのがやっとなのである.「可哀想にこの子はあんまし英語が分からないのね」みたいな感じでドイツ人女性が哀れみの目を送ってきてくださる.途中でグループBのとてもとても親切なトルコ人の方が話しかけてきてくださって,マジで涙出そうになった.

食事会後,グループA,Bは「バーで二次会やろうぜ!!!!」「「「ヒュー!!!」」」みたいになってたが,グループCは「あっおれらかえるわ,夜遅いし.楽しんでな!」みたいん言ってそそくさと帰った.

帰国後,僕は悟った.研究発表は練習したらなんとかなるけど,日常会話はそうはいかないということ.そして,スクールカーストを克服しなければ,サマースクール結構辛い感じになること…

割と成功... Doctoral symposium編

11月,奈良で開かれたマルチメディア系の国際会議のDoctoral symposium sessionに参加してきた.セッション自体は一日だけなので,上ほどの重荷ではなかったが,それでも僕は「欧米の人と仲良く話すんだ…!」という良く分からない野望を胸にセッションに臨んだ.
地の利もあり,「銀閣,実は銀でできてないんだぜ!」みたいな小粋なジョークも飛ばしつつ,なんとか欧米人に切り込んで行く…最終的にバンケットでドイツ人学生と仲良くなり,その後も京都で一緒に飯食ったりもしたので,これはかなり成功した例と言える.ちなみにバンケットではひたすら舞妓さんや日本料理の説明してた.やはり日本開催の会議だけあって,日本に興味を持ってる人が多いのがよかった.逆に言うと,会議開催国のことをある程度調べておけば,何らか話のネタにできるのでは??と思った.

まとめ 英語の勉強について

英語,どのように勉強すべきだろうか.研究活動をしていくにあたって,「論文読んだり書いたり,あるいは会議で発表するための学術英語」および「コーヒーブレイクやバンケットを楽しむための日常英語」が必要であるように思われる.前者は毎日論文読んでおけば何とかなるとして,後者はなかなか厳しい.これに関しては月並みな意見ではあるが,やはり英語でしゃべる機会を増やすことが一番の近道のように思われる.ただ,うまくしゃべった経験がないと「うまくしゃべれたことないし…」といって尻込みしてしまうものなので(僕もよくする),以下に「外国人と仲良く話すTips」を紹介して本記事を締めたい.

おまけ 外国人と仲良く話すTips

guysって言う

参考: http://www.eigowithluke.com/2012/03/you-guys/
あっちの人達は,やたら「you guys ...」みたいな感じでguys ってつけてくる.後で知ったが,フレンドリーな感じのスラングらしい.僕もdo you guys... とかhey guys...とかguys guys言いまくっている.あんま変な顔されないので,多分間違ってない…と思う.

  • sorryって聞き返す

参考: http://alcom.alc.co.jp/questions/show/2616
あんましPardon?とか聞かない気がする.Sorry?↑って語尾を上げながら聞き返すと,それっぽくなる.

イタリア人はコーヒーネタで攻める

イタリア人はエスプレッソ大好きなのでそこを攻める.
「フランスでトランジットだったんだけど,そこで飲んだコーヒーがマジで小さくてビビったよあれが本場のエスプレッソか」みたいなん言ったら,イタリア人が「あれは本場ではない.うちが本場だ」みたいなん言って場が盛り上がったし,その後インドネシア人が「まあ豆はうちのだけどな」みたいなん言って,完全にいい感じの会話になっていた.それからというものの,会議でイタリア人みつけたら「ここのコーヒーはどう?」と聞いてみるようにしている.だいたいうまくいく.

イギリスの飯の話で攻める

どうもイギリスの飯がいまいちというのは割と共通見解らしく,「今度イギリスいくんだけど飯だけが心配だわ」みたいなん言ったら「カレー食っとけカレー」「Aleはうまい」みたいな感じで盛り上がった.ちなみにイギリス飯,不味いとは思わんかったが,味ねえなあとは思った.

アメリカンジョーク

アメリカ人が「3カ国語話せる奴のことトリリンガル,2カ国語だとバイリンガルだろ.じゃあ1カ国語だとなんて呼ぶか知ってるか?」と聞いてきたので,「モノリンガル?」と聞き返したら,「NO, American!」と言って一同爆笑していた.これぞアメリカンジョークである.

丁寧英語も覚えておく

この前,敬語の英語という本を見つけたので読んでみた."「〜してもよろしいですか?」… Can I … でなく,Would you mind if I …こっちの法が,相手の立場を考えているという控えめな姿勢が伝わる"とか"相手を思いやる」たとえば I was wondering,…とおいてから人を誘うと,「ちょっと思いついたまでだから,断ってもええよ」という響きになる"とか,有益な情報が載っている.興味のある方はぜひ.

敬語の英語

敬語の英語

どうしても話題尽きたら博士後期課程つらい話しとく

D論書けそう?就職考えてる?この辺は各国共通の悩みっぽいので,だいたいうまい感じで会話できます.

*1:進学したことないになってたので直しました.なんで今まで誰も突っ込みを入れてくれなかったんだ…

コミュ力の話

今日はコミュ力の話について書こうと思います.コミュ力ないと進学しても死ぬという話です.

コミュ力

ここではコミュ力を,「他人に対して,双方の立場をわきまえ,礼儀を持って積極的に関わることができる」力として定義する*1

進学した先でコミュ力が必要となる場面

会議のバンケット(懇親会)

修士に上がると,国内研究会,運のいい人は国際会議に行くことになるかと思う.その際,会議のバンケットをどのようにお過ごしだろうか.

  1. 参加しない
  2. 同じ研究室 or 近場の研究室で固まる
  3. たまたま近くにいた人と話す
  4. 色んな人に積極的に絡んで行く
  5. 偉い先生にぶっ込む

僕は国内・外ともに基本は2.と3.という感じだろうか.国内研究会とか小さい集まりだと頑張って4.5.くらいまでやるが,まだ積極的に4.や5.という感じにはなってない.バンケットは,博士後期課程学生のみならず修士学生にとっても重要な役割を果たす.たとえば「M1です!」とか「D2です!」とかアピールすると,たまに企業の方あるいは大学の先生方から「うちこない?」と誘ってもらえることがある.この際,知らない人に話しかけるわけで,当然礼儀を持って接する必要がある.また積極的に話しかけて自分のことを売っていかないと,上述のようなお誘いなどくるはずも無い.したがって,バンケットではコミュ力が非常に重要となる.書いてて耳が痛い.一つだけ経験的なコツを披露すると,割と歳を召した先生方には,若さを前面に出す形でぶっ込んでいくと,かわいがっていただける(気がする).

企業インターンシップ

進学しない場合であっても,M1の夏に企業インターンに行く人は多いかと思う.進学すると,たとえば海外インターンであったり,あるいは国内でも長期のインターンに参加することもあるだろう.インターン参加に際しては,企業のウェブサイトからの通常エントリ,あるいは研究職の場合,直接お会いした際,あるいはSNS上で参加を表明する場合もあり*2,いずれにしてもその際にコミュ力が必要となる.あるいは,長期間にわたって外部の企業に出入りすることになる場合,そこでさまざまな方々と知り合うことになるので,その際にもコミュ力が必要となる.僕はM1のインターンでは主に後者でしくじってつらい感じになった.あと,実はD1前期に某海外研究所のインターンに応募したのだが,最終の電話面接で落ちた.今思い出してもひどい受け答えをしてしまった.コミュ力の欠如である.

共同研究

上の企業インターンシップは主に学生個人と企業の関わり合いであるが,共同研究になると大学(研究室)と企業の関わり合いになる.しかるに,自分の置かれた立場を良く理解した立ち振る舞いが重要になる.また,しばしば実動部隊である学生が板挟みになることもあるので,この辺をうまく立ち回る必要がある.

勉強会

近年,技術系の勉強会がブームである.勉強会とは,ある決まった分野に関して論文紹介や輪講,あるいはハッカソンなんかをする集まりである.学術会議と比較して参加費が非常に安いor無料であり,参加ハードルが非常に低い点が特徴の一つである.勉強会ではコミュ力が非常に重要であり,誰かが何かしら発言(質問とか)しないと,発表者がぼそぼそとしゃべり続けてまばらな拍手がおこるだけのお通夜状態が非常に簡単にできあがってしまう.勉強会関連の話が出るたびに言ってる気がするが,勉強会は学術会議と違って「知らない」「分からない」ことに関して非常に寛容なので,とにかく何でも良いので質問しよう.

ウェブ上の情報発信

これは僕の所属するコンピュータサイエンス系コミュニティに限ったことかもしれないが,SNSでの交流は非常に盛んである.SNSでは相手の顔・声が観測できず,反応もリアルタイムに返ってこない.また,知らない人に話しかけられる機会もたまに訪れる.その際,適切な応答をするためには非常に高いコミュ力が必要となる.これがうまくできると,会議などで「あ,(twitter id) さんですね〜!!」みたいな感じで最初のハードルが低くなるなどの恩恵があるし,これがうまくできないと,最悪の場合社会的に死ぬ.特に,自分の身分を明かしている場合は細心の注意を払わねばならない*3
余談だが,修士・博士課程に関わらず,研究活動をしている限りにおいては,自身のウェブページはちゃんと整備しよう.よく言われることだが,英語ページも作っておくと良い*4.所属と興味のある分野だけでもいいと思う.自分に興味を持ってくれた人が自分を検索してきたときに,快く迎え入れるためである.これもまたコミュ力の一つであろう.

研究とコミュ力

話す内容がなければ,そもそも話ができない.そんなとき,上に挙げた数場面に関して言えば,研究内容について話をするのが一番手っ取り早いのでよい.それでは,研究内容についてどういった話をすればよいか?理想的には,「自分がどういう分野で研究をしていて」「その分野ではどういうことがチャレンジングで」「自分のテーマはどういう立ち位置にある(からこういうコントリビューションがあって,しかるに面白い研究だ!)」ということが言えると良いのだと思う.僕も時間を持て余したときとか,良くこういったことを考えるようにしている.またこれは,「立場をわきまえる」ということの一側面かと思う.それでは,研究内容についてしっかり話をできるようになるにはどうしたらいいか?自分で書いてて非常に耳が痛いが,やはり日頃から研究活動するしかない,といったところだろうか.

なぜコミュ力が必要となるか

ヒューマンネットワークを広げるために必要である.上の数場面は,いずれもうまく立振舞えばヒューマンネットワークが連鎖的に広がる場である.そういう場面においてヒューマンネットワークを積極的に広げる努力をすれば,良い巡り合わせに出会い,自らの進路も自ずと開けてくる.個人的に,研究活動は研究者にとって必要条件であるが,十分条件でないのだと思う*5

知らない人に話しかけるのは恥ずかしいし,現に僕も尻込みして話しかけられない,ということがよくある.しかし,礼儀を持って人と接する限りにおいて,悪い関係にはそうそうならないだろうし,みんなでコミュ力鍛えていきましょう!

*1:余談かつ個人的見解だが,僕には就職活動においてコミュ力が必要とされる理由が「就職活動においてコミュ力が必要とされているから」であるように見える.結局,どのような力が,なぜ必要とされているのか,もう一つよく分からない.

*2:僕がD1の時に参加したインターンは,Twitter経由で応募した.

*3:自分の身分を明かすことには,メリットもデメリットもある.何が適切かについては議論の余地があると思う.

*4:一度,ウェブページ経由で海外の企業からヘッドハンティングがきたことがあった.

*5:というような話をこの前教授としていたところ,「研究成果がよければそれで良い,人間性は関係ない,という生き方もある」という話も出て,まあそうかもしれないと思った.ただ,それをするには非常にタフな精神力・多くの研究業績が必要となるため,多分コミュ力つける方が手っ取り早く,簡単だろう.

就活したことない話

就活したことないAdvent Calendar,二番手の @yonetaniryo です.いくつか話のストックがあり,どれからいこうかな,と考えていたのですが,やはりACのタイトルにもなっている「就活したことない話」からしようと思います.ちょっと長いですが,最後の段落だけでも読んで参考にしていただければ幸いです.

Mixiに書いてあった話

僕の場合,実は3回生くらいのときから博士課程行きたいと思っていた.というのも,Mixiの日記にそう書いてあった.

2007年10月(3回生後期)の日記

楽しかった大学生活も早3回後期まで来てしまったことに最近驚きを隠しきれないのです。

最近は周りのみんなが就活就活言っているのですが,僕は完全にその流れに乗れていないのです。それを如実に示しているのがこのパソコン。「しゅうかつ」と打って変換すると「週勝つ」ちなみに今週はバイトばっかでどちらかというと負けです。

周りのみんなは就活頑張っているみたいなのですが,最近僕は大学に骨を埋めてもいいなぁと思っているのです。修士にとどまらず博士,挙げ句には大学教授を目指してみてもいいかな!なんてね!大学の講義なんてしてみたいな!なんて思ったりしています。

もし僕が般教の授業を受け持ったとして,どんな授業をするか。出席重視にするのか,レポートのみで単位を取れるようにするのか,はたまた試験一発にするのか。
「ぽぴっ(当時のアカウント名)先生の授業って楽勝やしとっといた方がいいよ」とか言われたりするのか。
「ぽぴっ先生って喋るの早すぎやし字汚いから正味まったくわからん」とか言われたりするのか。
「ぽぴっ先生って変な名前やんね。ぽぴって。どんな漢字なんやろ」とか言われたりするのか。

個人的にはあんま楽勝単位にしすぎて学生になめられるのは嫌なので,レポート3回+試験(持ち込み可)くらいにしたいです。出席は考慮しないが,レポートは人数分しか配りません。

そんで,ある程度京大で研究を続けて,老後は私大でのんびり暮らしたい。
そんなことを考えた21の秋。レポートは相変わらず溜まっています。

2008年3月(4回生前期)の日記

今日は研究室の先輩とご飯食べて僕の研究内容の話など相談にのっていただきました。
僕は,まぁ漠然と・ですが,今は博士とか行って,最終的には大学に骨を埋めたいと考えています。それがどれだけ厳しい道かは解っているようでおそらくあんまし解ってないのですが,それでも,研究に一生を捧げてもいいかな・って何となく考えています。元々そう考えていたのですが,あるいは第一志望の研究室に受かったからかもしれないのですけれども。

かつてSHIGEL(同期の友人)と「おれらが稼ぐだけ稼いで,嫁さんと子供のいる,幸せな家庭を築きたいな」って話してたんですけれど,正味博士以降に行くっていうのはそういうのとかガン無視な気がしてならないのですが,最近それでもいいかな・って思ってきてます。

僕には実はある信条があって,まぁ親に言われたことで,しかも,白い巨塔の財前さんが言うてたことなんですけれど,

「能力を持った者には、それを正しく行使する責務がある。 」

ってのがね。あるんですね。
折角ここまで上り詰めたんやし,一人前の研究者になって,情報学の発展に努めたいって思うんですよね。

まぁ言うてもこれからまだ4回生やし,博士なんてまだまだ先の話ですけれど,高いモチベーションで頑張っていきたいということをここに誓いたいです。

挫けそうになったら今日の日記読んで頑張る!
まぁ,酔っぱらって書いたんですけれどね。

2010年1月(M1後期)の日記

そういえば,前々から博士課程に行こうかなとは言っていましたが,先日教授に「行きますから!」と宣言し,ようやく不可逆性の地獄の釜が開かれたのです.

(1)2007年10月30日
(2)2008年3月25日

思えば,こんな前から博士課程行くという話をしていたんですね.
(1)の時はまだ3回生で,後期の授業がむずい〜とか言っていた時期だったし,(2)の時もまだ研究なんか始めてもいなかったのに,よくぞ博士なんて言っていたもんだ.

博士課程でうまいことやって行くコツは多分いくつかあると思うのだけど,おそらく割と重要なのは「自分を学生だと思わない」ことなんだろう.
これは修士に入った今年度初めから思っていたことではあるが,大学時代一緒に遊んでいた友達が社会に出て働いているのに,大学院に行った僕たちがだらだらと遊んでいるのは,なんかやはりしっくりこないのである.
大学院生活を送りながら社会人としての自覚を持つのは,おそらく社会に出て社会人としての自覚を持つことより難しいはずなのだが,そこを踏ん張って社会人張りの生活を送ることが,今後大学に残って研究を行ううえで最も必要なことの一つであるに違いない.そうでないと,今働いている人たちにあわせる顔がない.

改めて読むと,恥ずかしいし耳痛いしでもう大変な日記であり,あらためてしっかりしないとなあ〜と思った.あと,句読点が「、。」→「,。」→「,.」と遷移してるのも興味深い.

なぜ進学したか?

上の日記に書いてある通り,基本的には学部生(しかも研究室配属される前から!!!)の頃から研究というものに漠然とした憧れがあった.そんで卒論やって結構楽しかったので進学したい気持ちが強まった.ちなみに,「でもやっぱり企業も見とかないとな〜」と思いM1の夏にインターンシップに参加したもののもう一つな感じだったのを覚えている.そして,その直後に開催されたICCV (コンピュータビジョンのトップカンファレンス)を聴講したところ発表者が超かっこ良く,完全に進学を決意するに至った.今思えば,インターンこそ参加したものの,「就職しよう」とは全く考えなかったのが自分でも不思議である.

就職か進学か?

僕は人に進学を勧めるとき,よく「就職してから博士号とるの難しいけど,進学してから就職するのは情報系なら割と簡単」とか「研究で食べてくならどっかのタイミングで博士号は取らないと」とか言うことがある.でも改めて考えると,僕の研究に対するモチベーションはそういった打算的なことではなく,あくまで「自分のネームバリューを高めたい」「僕の名前を後世に残したい」,あるいは「壇上で周囲の注目を浴びて目立ちたい」とかだったりする.あと,1年に1回くらい,Mixiに書いたようなノブレス・オブリージュ的発想に至ることもある.結局,そういう生き方をしたい!という思いが強く,その時々で最善と思える手を取ってきて,あるいは巡り合わせに身を任せて,今に至った.

まとめとして,もし「就職か進学か?」と悩んでいる場合(あるいは悩んでいなくても),もちろんお金の話やキャリアプランの話も大事だけれど,それと同時に「最終的にどういう人間になりたいか?」「どういう生き方(精神的なあり方)をしたいか?」について考えることをお勧めしたい.「精神的なあり方で飯が食えるか!!」と思う人もいるかもしれない.でも「志があればお金はついてくる*1」というのが僕の主張である.そして僕自身は,就職か進学か悩んでる人達が何らかの決断をするにあたっての,進学側のベンチマークとして,彼らに「研究者かっこいい!」とか「研究って楽しそう!」とか思ってもらえるようないい感じの研究者になるのを今後の目標にしたい.

*1:僕が初めて予算取ったときに教授から言われた言葉