心理物理学入門

1. はじめに

この記事はMicroAd Advent Calendar 2018の12日目の記事です。
今回は心理物理学と呼ばれる領域のお話です。あまり聞き慣れない言葉だと思いますが、この記事ではその導入として、基本的な知識を解説していきます。

2. 古典的心理物理学

まずはじめに、心理物理学とはどのような世界なのか見てみましょう。
我々人間は常に感覚器を通して外界を認識しています。例えば外界の光は眼(の奥にある網膜)で検出していることはよくご存知だと思います。

このまま光を例に考えてみましょう。我々が普段感じている明るさ、あるいは「見えている」という感覚は、ある強度と波長をもった可視光によって引き起こされたものになります。このことは、明るさのように我々人間が感じる心理的な量と、可視光のように外界に存在する物理的な量が、感覚器を媒介にして関連していると捉えることができます。

このような心理世界と物理世界の関係を、科学的方法によって明らかにしようというのが心理物理学のスタンスです。すなわち、心理量と物理量の関数関係を明確にしてやろうというわけです。

2種類の閾値

まず最初に、心理物理学において重要な概念である、閾値(いきち)について紹介しましょう。閾値とは、ある物理的な量が存在していることに気づくのに必要最小限の大きさこのことをいいます。「気づく」というのは心理的な量のはたらきを指しています。ここでもまた光を例に考えていきましょう。

全く光が入ってこない部屋の中に自分が立っている様子を思い浮かべてください。何も見えずに真っ暗ですよね。その部屋にはとても小さな電球があるとしましょう。その電球は最初は全く光っていないので、あなたはその存在に気づくことができません。ところがその電球は光を徐々に強くしながら放っていきます。最初のうちは光の強度があまりにも小さいので、あなたは電球に気づくことができません。しかし、電球の放つ光の強度がある一定の強さを超えたところで、あなたは初めて、その光に気づくことができました。このときの光の強度を、明るさの絶対閾(ぜったい・いき)と呼びます。これは、主観的に認識できる最小の強度ということです。

今度は、十分な強度で光っている2つの電球があるとしましょう。この2つの電球は、最初は全く同じ強さで光っているとします。しかし、片方の電球の光だけが徐々に弱くなっていきます。最初のうちは、電球の光の強度の差が小さすぎて、どちらの電球の光が弱くなっているのかわかりません。しかし、2つの電球の光の強度差がある一定の大きさを超えたところで、あなたはどちらの電球の光が弱くなっているのか気づく事ができました。このときの光の強度の差を、明るさの弁別閾(べんべつ・いき)1と呼びます。これは、観察して気づくことができる最小の差異ということです。

さて、絶対閾と弁別閾を紹介しましたが、なぜこの2つが重要なのでしょうか。それは、物理量と心理量の関数関係が線形であるという仮定が正しければ、絶対閾と弁別閾という2つの閾値さえわかってしまえば、物理量と心理量の関係を完全に記述できてしまうからなのです(下図)。
image.png
図では、横軸が物理量Sの大きさ、縦軸が心理量Pの大きさを表しています。太線で表したのが、心理量と物理量の関係を表す関数(心理測定関数:psychometric functoin)です。原点から横軸に沿って見ていくと、物理量がある一定の大きさ(切片:絶対域)を超えたところではじめて心理的な量が発生する様子がわかります。また、心理的な量を変動させるのに必要最小限な物理量の大きさが、傾きとして表現できることもわかります。

このように、絶対閾と弁別閾がわかってしまえば、心理量と物理量の関係を線形な関数として記述することができるのです。

絶対閾を測定する3つの方法

では次に、絶対閾の測定方法を見ていきましょう。ここでは、ヒト(=実験参加者)を対象とした心理実験によって閾値を測定する場合を想定しています。なお、心理実験で実験参加者に呈示される物理的な信号(光点や図形、音声など)のことを「刺激」と呼びますが、以下でもこの用語を用います。また、「刺激が呈示され、その有無を実験参加者が回答する」といった一連の流れを1試行と呼びます。一般に、1つの実験で1人の実験参加者は数十から数百の試行に回答することになります。

恒常法 (method of constant stimuli)

手続き
  1. 刺激強度の物理量に対して、5~9個の水準を用意する。
  2. 各水準の刺激強度に対して、30~100回程度をランダムな順序で実験参加者に呈示する。
    実験参加者の課題は、刺激が検知できたか、できなかったかを回答することです。

このようにして実験参加者の反応を得た後、刺激強度の各水準に対して刺激が検出できた試行の割合を算出します。
算出した検出確率に対して下記のようにシグモイド関数をフィッティングし、検出確率が50%になる刺激強度をもって、絶対閾とします。
Rplot02.png

長所

この方法の長所は、回答者のバイアスが小さいという点です。各試行において、実際に刺激が呈示されているかどうかの判断を(その試行での自分の知覚に基づくのではなく)それまでの試行の履歴などによって推測することが難しいので、刺激が出ているかどうかを推測に基づいて回答することができなくなります。

短所

この方法の短所は、実験が長時間にわたるという点です。「刺激が出たか出てないかを判断する」という極めて退屈な作業を長時間行うことで発生する心理的疲労は小さくありません。そのため、実験参加者が実験中に睡魔に襲われる、あるい寝てしまうこともしばしばあります。また、高齢者や子供を対象とした実験をするときのように、実験参加者が長時間座った状態で同じ作業を続けることが難しい場合も、この測定法はあまり向いていないでしょう。

極限法 (method of constant stimuli)

手続き

極限法では、刺激の強度を十分大きな/小さな値から連続的に変化させていき、参加者の反応が変わる(例:見えた→見えない、見えない→見えた)刺激強度を探索します。この反応が変わる点を閾値とみなします。

実験参加者の課題は恒常法のときと同様に、刺激が検知できたか、できなかったかを回答することです。

hysteresis

さて、この測定法では hysteresis というものを考慮しなければなりません。hysteresis とは、刺激の値を徐々に大きくしたときに反応が変わる点(はじめて「検出できた」と反応したときの刺激強度:上昇系列での閾値)と、刺激の値を徐々に小さくしたときに反応が変わる点(はじめて「検出できなかった」と反応したときの刺激強度:下降系列での閾値)が異なるというものです。

光点の検出を例にとると、真っ暗な状態から徐々に光点の強度を上げていくと、なかなか「見えた」という反応が得られない一方、十分明るい状態から光点の強度を徐々に下げていくと、かなり暗くなってもまだ「見えた」という反応が得られる、というイメージです。

よって、一般には上昇系列で得られた閾値と下降系列で得られた閾値の平均値を絶対閾とします。

長所

この測定法の長所は、実験が比較的時間で終了するという点です。

短所

一方短所は、実験参加者の回答にバイアスが乗りやすいという点です。これは先程紹介したhysteresis の項で説明したとおりです。上昇系列と下降系列で閾値の平均をとっているとはいえ、実験の系列(だんだん刺激の強度が大きく/小さくなっていること)に対する実験参加者の推測が、回答にバイアスとして乗ってくるのは避けられません。

また、極限法では閾値の値しか求めることができません。恒常法では閾値だけでなく関数の形まで推定できたことと対照的です。恒常法の分析で得られたシグモイド関数のスロープ部分の傾きは、刺激に対する感度を反映すると考えられますが、極限法ではそのような情報は得られません。

調整法 (method of constant stimuli)

恒常法と極限法では、各試行における刺激の強度は実験者(が作成したプログラム)によって決定されます。しかし調整法では、実験参加者自身に刺激の強度を変化させることで、閾値を探索させます。この点を除いて、手続きは調整法の場合と同様です。

長所

調整法の長所は、極限法の場合と同様、実験が比較的短時間で終了することです。さらに、調整法では刺激強度の調整を通して実験参加者が能動的に実験に関与するため、実験中に眠ってしまうことが少なくなるという利点もあります。

短所

極限法と同様、実験参加者の回答にバイアスが乗りやすく、閾値以外の情報が得られないという点がデメリットとなります。

3. 適応的測定法

次に、これまでに紹介した3つの測定方法を改良した手法を紹介します。以下で紹介する方法は、後述するその長所から、適応的測定法などと呼ばれます。

階段法 (stair case method)

階段法は、極限法を改良した手法です。階段法では、極限法と同様に、徐々に刺激の強度を変化させていきますが、ある試行で実験参加者の回答が変化したら、次の試行では刺激の強度を変化させる方向を反転させます。例えば、光点の光の強さを徐々に明るくしていき、実験参加者がはじめて「光点が見えた」と回答したら、次の試行では光の強度を1段階弱くします。刺激の変化方向が反転する回数をあらかじめ決めておき(6~7回あたりが多いです)、実際に反転がその回数に達したところで測定を終了します。

絶対閾は、反転が発生した最後のN試行で呈示された刺激強度の平均とします。

長所

ここで我々が測定したいのはあくまでも閾値(絶対閾)です。階段法では、刺激を絶対閾付近の強度で呈示する回数が多くなるため、より信頼できるデータが得られるという利点があります。反応が繊細になると予想される閾値付近の刺激が呈示される試行に比べて、十分大きな/小さな強度の刺激に対する反応はロバストになると予想できるため、そのような刺激に試行数をかけるのは非効率的です。実施できる試行数に限りがある以上、早めに閾値に当たりをつけ、できるだけ多くの試行を閾値付近での探索にあてる方がより効率的であると考えられます。

短所

この方法の欠点は、回答に実験参加者の知識や推論が介入する可能性があるという点です。上で説明した通り、実験参加者の反応が変化したら、刺激の変化方向も反転し、反転が一定回数に達すると系列が終了します。このことに気づいた実験参加者であれば、「Yes, No, Yes, No, ...」と交互に繰り返し反応すればすぐに実験が終了してしまうことも容易に想像できてしまいます。実験参加者が「実験を早く終わらせて謝礼だけもらって帰りたい」と思っていたりすると、このようなズルをしてしまう可能性も否定できません。

階段法の改良版

階段法を改良して、その短所を克服した手法を2つ紹介しましょう

interleaved staircase(二重上下法)

この方法では、上昇系列と下降系列の2つの系列を並行して実施します。下図のように、2つの系列をランダムな順番で呈示することで、「yesとnoの回答を交互に繰り返せば終わる」といった予測が回答に影響する余地を排除します。
image.png

変形上下法

one-up-n-down 法
階段法のもう一つの改良版として、変形上下法があります。階段法では実験参加者の反応が変化したら刺激の方向を反転させましたが、one-up-n-down 法では、(刺激があると思うかという問いに対して)n回連続してyesと回答したら、刺激の強度を1段階下げます。一方、noという回答に対しては都度(階段法と同様に)刺激の強度を1段階上げます。これにより、検出確率が50%以外の閾値(収束点)を求めることができます。

たとえば、one-up-2-down の場合、「刺激があると思う」という反応(=正反応)をする確率をP(s)とすると、

\begin{align} [P(s)]^{2}=0.5 \end{align} \begin{align} P( s) =\sqrt{0.5} \fallingdotseq 0.707
\end{align}

となり、検出確率が約70%となる刺激強度を求めることができます。
さらに、one-up-3-down法とすると、

\begin{align} [P(s)]^{3}=0.5\
\end{align} \begin{align} P( s) =\sqrt[3]{0.5} \fallingdotseq 0.794
\end{align}

となり、検出確率が約80%となる刺激強度を求めることになります。このようにしてone-up-n-down法によって求めることができた刺激の強度は、恒常法においてフィッティングしたシグモイド関数からも求めることができます。

変形上下法には、one-up-n-down法のほかにもより洗練された手法が存在し、例えばPEST、QUEST、ZESTといった手法が知られています。それらについてはすでに優れた解説が存在するので、そちらをご参照ください2

4. 弁別閾の測定

ここまでは絶対閾の測定法について、さまざまな手法を概観してきました。ここからは、もう一つの閾値である弁別閾の測定法について見ていきましょう。確認になりますが、弁別閾とは「違いがあると判断できる、刺激の最小の差異」のことでした。

弁別閾の測定でも、基本的には絶対閾の測定で紹介した3つの方法(恒常法・極限法・調整法)が利用できます。このうち、調整法と極限法については刺激と実験参加者への質問の仕方(正確には教示といいます)を修正するだけで対応できます。すなわち、絶対閾の測定では「刺激が見えますか、見えませんか?」という質問だったのに対し、弁別閾の測定では「2つの刺激は同じですか?違いますか?」という質問に変えるだけです。この場合、実験参加者の反応データから得られるのは弁別閾(JND)のみであり、このあと出てくる主観的等価点(PSE)などはわかりません。

恒常法で弁別閾を測定するときは、絶対閾の場合とは若干方法が異なります。
実験参加者には、強度を固定した標準刺激(standard)と、強度を7~9段階に変動させる比較刺激(comparison)の2つを呈示します。そのときの実験参加者の課題は、標準刺激と比較刺激のどちらの強度が大きいかを答えることです。そこで得られた反応をもとに、比較刺激のそれぞれの強度に対して「比較刺激の方が強度が大きい」と回答した割合を算出します。下図のように、縦軸にこの割合をとり、横軸に相対強度(=比較刺激と標準刺激の強度の差)をとって、シグモイド関数のようなオージブ型の関数をフィッティングします。
image.png

ここで得られた関数から、「比較刺激の方が強度が大きい」と回答した比率が25%、50%、75%になる刺激の相対強度を求めます。このうち、比率が50%となる刺激の差分をPSE(Point of subjective equality)と呼び、比率が25%となる点とPSEの差をJNDw (w: weak)、比率が75%となる点とPSEの差をJNDs (s: strong)とします(上図)。これらを用いて以下のようにして求めた値を弁別閾(JND)とします3

\begin{align} JND=\frac{|JNDw|+|JNDs|}{2}
\end{align} 上記で求めたPSEは主観的等価点と呼ばれ、主観的には等価であると知覚される刺激の強度差にあたります。直感的には、主観的に等価であるならば物理的にも等価なはずなので、PSEは常に0になるのでは?という気がしますが、種々の状況(実験条件など)によってこの値がマイナスやプラスになったりするのです4

5. 心理量のスケール

Weberの法則

ここまでの議論を通して、私達は絶対閾と弁別閾の2つを計測する手段を得ることができました。ではこれだけあれば心理量と物理量の関係を記述するには十分なのでしょうか?残念ながらそうではないようです。

2種類の閾値では「物理量と心理量の関数関係が線形であるという仮定が正しければ」という前提を置きました。この仮定が正しければ、弁別閾はどのような刺激強度においても一定になるはずです。幾何的に言い直せば、下図の直線の傾きがどの部分でも同じになるはず、ということです。
image.png
しかしながら、ヒトの知覚にこのような線形の仮定は当てはまりません。すなわち、弁別閾(JND)は標準刺激の強度に比例するということが知られており、これをWeberの法則といいます。Weberの法則は以下のような式で表現されます。

\begin{align} \Delta I=kI\ または \frac{\Delta I}{I} =k
\end{align} ここで、Iは標準刺激の強度、\Delta Iは弁別閾、kは比例定数でWeber比と呼ばれます。この式は、「標準刺激(強度が変動する前の刺激)の強度が大きくなると、変動に対する感度は低下する」ということを意味しています。

例えば、あなたが目隠しした状態で100gの重りを片手で持っているとしましょう。そして実験者がその重りに0.1gずつ重りを静かに(あなたにはわからないように)追加していきます。あなたは手の感覚だけを頼りに、重りが増えたと思ったタイミングで合図します。仮に重りが103gになったところで初めて「重りが増えた」という合図をしたとします。このときのWeber比は 3/100 = 0.03 です。このときと同様の手順を1000gの重りで実施した場合はどうでしょうか?Weberの法則に従うと、先ほどと同じ3gの増加に対してあなたは気づくことができまぜん。Weber比が0.03であることから、0.03\times1000g= 30g だけ重りが増えて初めて気づくことができる、といった具合です。5

ここで見てきたように、絶対閾や弁別閾のような閾値を測定しただけでは心理測定関数を決めることができません。

Fechnerの法則(Fechner's law)

前項のWeberの法則が正しいと仮定して理論的に導出された法則に、Fechnerの法則というものがあります。Fechnerの法則では、まず弁別閾(JND)が心理的な知覚強度の単位であり、そのスケールは加算的であるという前提に立ちます。絶対閾から1JNDだけ大きな刺激強度に対して1心理量の増加があり、さらに(絶対閾+1JND)から1JNDだけ大きな刺激強度 に対して1心理量の増加がある・・・といった具合です。定式化すると、

\begin{align} P=k\cdot \log_{10} I
\end{align} となります。ここでIは標準刺激の強度、kはWeber比、P心理的な知覚強度です。
この法則が正しければ、物理量と心理量の関係は下図のような対数関係になると予想されます。
image.png
しかし、現在ではこの法則が正しくないことがわかっています。まず、前提としていたweberの法則が厳密には正しくない(小さな刺激強度に対してはweber比が大きくなり、一定の値にはならない)ことが知られています。さらに、Fechnerの法則が正しければ成立するはずの上図では、刺激の強度が大きくなるほど心理量の増分が小さくなっていますが、これまでに行われた様々な実験の結果、このような関係にならない例が見つかっています。たとえば電気ショックに対する感度は、刺激が大きくなるほど鋭敏になるとされています。

Stevensの法則(Stevens' law)

Fechnerの法則は、Weberの法則のような閾値の理論から導出した法則でした。一方、実際の測定結果から心理測定関数を導いたのがStevensの法則です。
心理測定関数を導出する測定方法はシンプルで、
1. 標準刺激に強度を固定して、ある値(たとえば10)を割り当てる
2. 様々な強度の比較刺激を呈示して、「標準刺激を(たとえば)10とすると比較刺激の値はいくつか?」尋ねる
という流れを繰り返します。このような方法はマグニチュード推定法と呼ばれます。
こうして得られた心理量と物理量の関係は以下のように定式化されます。

\begin{align} P=kS^{n} \ ( n >1,\ n=1,\ n< 1)
\end{align} ここで、Pは刺激に対する心理的強度、Sは刺激の物理的強度です。式からわかるように、刺激の心理的強度は冪関数によって与えられ、nの値(n>1, n=1, n<1)によってその関数の様子が決まります。実際に、nの値によって心理測定関数の形がどのように変わるのかを示したのが以下の図です。

image.png

この図では軸の値に意味はなく、あくまでも関数の形に注目してください。n=1のときは、物理量の強さに比例して心理量も大きくなっています。n>1のときは、物理量が大きくなるにつれて、心理量の増え方が大きくなっており、反応が拡大されていることがわかります。
一方、n<1 のときは、物理量が大きくなるにつれて心理量の増え方が小さくなっており、反応が圧縮されていることがわかります。反応が拡大される刺激の例としては電気ショックなどがあります。また、反応が圧縮される例としては光の明るさなどが知られています。

こうして私たちは、心理量のスケールとその計測方法を手に入れることができました。めでたし、めでたし・・・。

6. 最後に

この記事では、心理物理学がどんなスタンスの分野なのかを説明した上で、閾値という重要な概念を紹介しました。そして、その計測法である古典的・適応的心理物理学的手法を一通り抑えた上で、心理的な量のスケールと物理的な量に関する具体的な法則を検討しました。

実はここまでの説明では、弁別閾であれ絶対閾であれ、固定された閾値の値が存在することを暗に仮定してきました。しかし実際にヒトや動物を対象に実験をしてみると、固定された閾値を仮定したのではうまく説明ができないケースが出てきます。ではどう考えればよいのでしょうか?

・・・ここからもっと面白くなってくるのですが、とても記事1本ではカバーできない文量になってきました。
ということで続きはまたの機会に。

参考文献

G.A. ゲシャイダー『心理物理学―方法・理論・応用〈上巻〉』 https://www.amazon.co.jp/dp/4762822507/
トマス・D. ウィッケンズ 『信号検出理論の基礎 (現代基礎心理学選書)』 https://www.amazon.co.jp/dp/4319107101/
http://www.visionsociety.jp/vision/koumokuPDF/06kaisetu/E2003.15.03.08.pdf


  1. 弁別閾のことは丁度可知差異(ちょうど・かち・さい)とも呼ばれます。聞き慣れない日本語かもしれませんが、これは英語の Just noticeable difference (JND) を日本語訳したものです。

  2. http://www.visionsociety.jp/vision/koumokuPDF/06kaisetu/E2003.15.03.08.pdf

  3. ここで示したように、JNDwとJNDsを求める際にはそれぞれ25%点と75%点を使うことが多いですが、それ以外の値を利用する場合もあります。

  4. このような状況を自ら考え、自分で検証していく過程もまた、実験心理学の楽しさの一つではないかと筆者は考えています。

  5. Weber比に関してはこの漫画でも面白く紹介されています。http://psychologyn.blog14.fc2.com/blog-entry-11.html

頻度主義者を超えていけ

ベイジアンに変身するために、先日とあるセミナーに参加してきた

1.事前準備

1.1 環境構築@Windows10

・Rstudioをアップデート

公式サイトから最新バージョンをインストールすればよいだけ
https://www.rstudio.com/products/rstudio/download/
Installersの中から RStudio 1.0.136 - Windows Vista/7/8/10 を選択した
あとインストーラー様の言われるままに進んでいって、特に詰まるところもなかった

・Rをアップデート

RStudio上でコマンドを入力してアップデートしようした。
まずパッケージを準備

install.packages("installr")
library(installr)

その後、RStudioでアップデート用のコマンドを実行した。

updateR()

いろいろオプションの質問に答えるんだが、いざインストールしようとすると
「updateR()を使うなら、RStudio よりも Rgui.exe から実効するのがベストだ」
というアドバイスが表示された。

ので素直に Rgui.exe 上から再度 updateR() を実行した。
オプションの質問に答えていけば特に困ることなく終了。

Rstudioを再起動して、R version 3.3.2 と表示されることを確認。

・Rtoolsのインスコ

この項目であなたが見るべき情報はこのページだ。あとの部分は私の作業記録なので見なくてもよい
https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started-%28Japanese%29

まず、ここからRのバージョンに対応したファイルをダウンロードして実行
置く場所は特に理由がなければcの直下にしとけばよさげ
https://cran.r-project.org/bin/windows/Rtools/
途中で Edit the system PATH にチェックを入れる事を忘れずに

環境変数PATHの確認

> Sys.getenv('PATH')
[1] "c:\\\\Rtools\\\\bin;c:\\\\Rtools\\\\gcc-4.6.3\\\\bin;...


Rから本当にg++を呼び出せるかチェック

> system('g++ -v')
Using built-in specs.
COLLECT_GCC=c:\Rtools\GCC-46~1.3\bin\G__~1.EXE(以下略)
> system('where make')
c:\Rtools\bin\make.exe


rstanのインストール(結構時間かかった)

install.packages('rstan', repos='https://cloud.r-project.org/', dependencies=TRUE)


【※重要】Rの再起動

RでC++が動くが確かめる

fx <- inline::cxxfunction( signature(x = "integer", y = "numeric" ) , '
return ScalarReal( INTEGER(x)[0] * REAL(y)[0] ) ;
')
fx( 2L, 5 ) 

1.2 stanの雰囲気をさらっと味わっておく

(1) まず「MCMC(*´Д`)ハァハァ」でググる
(2) 検索結果の4番目ぐらいに出てくるコレを読む
http://www.slideshare.net/simizu706/stanr13
(3) (2)で紹介されれているRstan超初心者講習を読む
http://www.slideshare.net/simizu706/stan-62042940

1.3 ベイズ統計の入門書をざっと読んでおく

・図解・ベイズ統計「超」入門 あいまいなデータから未来を予測する技術 (サイエンス・アイ新書)
・完全独習 ベイズ統計学入門

2.セミナー本番

Rの使い方の基礎からベイジアンモデリングの実装まで全力で駆け抜けた。
合宿形式で、会場の露天風呂にも入ってゆっくりできた。
食事も美味しかった。

3.セミナーを終えて:ベイジアンへ変身できたのか

事前準備:刀を手に入れた
セミナー:刀の振り方を教わった
今後の目標:卍解できるようになりたい

超絶怒涛のセクシー勉強会

一応技術職についているので、日々の勉強は欠かせない。

新しい技術を勉強するのもさることながら、
以前勉強したことを頭のなかに維持することも大切。

使わないとどんどん忘れるから。


そんなわけで今年から、
毎日必ず1時間だけ時間を取って、ひとり勉強会をしている。

「超絶怒涛のセクシー勉強会」
自分で勝手にそう呼んでいる*1



場所は会社の会議室。

昼間はどの部屋も予定でびっしり埋まっているけれど、
夜8時頃をすぎれば使っているヒトなんてほとんどいない。

毎日空いてる部屋を見つけては、そこで勉強している。



勉強中にヒトの話し声が聞こえたり、話かけられたりするのはイヤなので、
自席ではやらない。

私は職場で話しかけられたら(よっぽど切羽詰ってない限り)相手の用事にその場で対応して決着をつけて終わらせると決めてる。

なので、話しかけられない場所に移動するのは、勉強の中断を防ぐという意味で結構大事だったりする。

集中するにはやはり個室に閉じこもる方が良い。




とりあえず第一期としては、分野ごとにテキストを1冊決めて、一気に読み通すことにしている。

分野は様々。

統計、線形代数微積機械学習、データサイエンス、webプログラミング・・・

この辺の分野ごとに1冊入門書を買って、ガーッと読んでいく*2





会社で使ってる自分用の予定表にもこの勉強会の時間を入れてるが、
この予定表は同僚も見れるので、勉強会のタイトルは恥ずかしくて書いてない。



「予定あり」


ふっふっふ。あるんですよ、「予定」が。

*1:「ひとりモクモク会」みたいな普通の名前では面白くない

*2:でも実際に買ったのはだいぶ前で積読状態だっただけ

基本の大切さ

初心者が基本的な知識を体系的に得る手段として、資格試験の勉強は極めて有効だ。

資格試験の出題範囲は「最低限知っておくべき知識」を網羅している。

なので試験対策をする過程で基本的な知識を網羅的に得ることができる。



勉強をとおして「体系的に」知識を積み重ねていけるかは、「良い本」を見つけられるかにかかっている。

単に試験に合格することだけに特化した対策本ではダメだ。

理解することに重きをおいて、
その上で試験に合格するためのポイント(試験で問われる点≒理解する上で重要な点)を押さえたタイプの本が良い。



In other words,

「『Aと来たらB』と覚えておけば大丈夫」みたいな説明の本ではダメだ。

この説明では試験に受かっても、あとに残るのは穴だらけでいびつな知識だけだ。


「Aとはこういうものだから、Bとこのような関係にある」という説明がある本が良い。

この説明であればたとえ試験を受けなくとも、たとえ試験に落ちようとも、後には意味を理解した自分が残る。



あくまでも我々の目的は知識を得て理解することだ。

試験を受けるかどうか、受けたときに合格するかどうかは、いずれも大した問題ではない。




例を挙げよう。


Linuxってなに?というとき

1週間でLPICの基礎が学べる本 第2版 徹底攻略シリーズ*1


ITとかシステムエンジニアの基本って何?というとき

キタミ式イラストIT塾 基本情報技術者

キタミ式イラストIT塾 基本情報技術者 平成29年度

キタミ式イラストIT塾 基本情報技術者 平成29年度


この2冊は、まったくの0からスタートした自分に「わかった!」という感覚を味あわせてくれた本だ。



「資格だけ持ってても使い物にならない」と言ってるだけで何もしないのではホントに使い物ならない。

資格試験とハサミは使いようだ。

*1:Kindle版は誤植だらけの第一刷を利用しているのが玉に瑕だが・・・

信じる者なのでどうぞ救ってください

 


親戚の法事に行ってきたんだが、法事って坊さん来るじゃない。当たり前だけど*1

坊さんがお経読み終えて法事が一通り済むと、みんなでご飯食べるでしょ。

その時、たまたま坊さんの横に座ってしまったのよ*2

んでまあ会話せざるを得ない状況になって、
「大学では心理学の研究やってたんですよ、HAHAHA」って話したのよ。



「ふーん」で終わると思ってたんだけど、
そしたらその坊さんが心理学ってキーワードに予想以上に食いついてきたのね。



坊さん曰く、


心理学ってのは、ヒトの思考をデータ・事実に基づいて科学的に研究する立場。
宗教ってのは、神とか仏とか極楽浄土とか、いわば「空想の産物」*3を信じることしかできない立場。


ヒトのココロだの心情だのと密接にかかわり合う領域っていう点ではどっちも同じ気がするけど、
そのスタンスは真逆。


らしいのよ。んで、




「心理学の人たちには、我々のような宗教ってどう映ってるんですか?」



って聞かれてしまった。


坊さんの周りにはこれまで大学で心理学の研究してたヒトがいなかったようで、
ずっと聞いてみたかったらしい。



アタシはもはや研究者見習いですらないという点に注意してほしいが、
図らずも心理学を代表して宗教界への意見を求められた模様。





重い。
質問が重すぎる。
法事の後の昼下がりに気を抜いてへらへらしていたアタシに問うテーマとしてはあるまじき重さ。






心理屋さんが「宗教」を研究対象としてることもあるんですよって話もしてみたけど、

「~ほうほう。ということは、それは宗教を信じるココロのはたらきを研究する感じなんですかね」

とおっしゃる。確かにその通りだろう。
鋭いとこを突いていらっしゃる。





んで結局、わたし個人の考えだけどって断ったうえで、


研究に関して言うと、仮説とか予想はあくまで実験のデザインとデータで示す必要があると思ってるけど、
だからといって、「空想の」神とか仏とか極楽浄土の類を、嘘八百の似非物語とは思いたくありませんなあ・・・


と答えたのね。




やっぱ自分のじーちゃんとかばーちゃんが亡くなったあとは仏様になったと思いたいし、
極楽浄土で幸せにやってると思いたいわけよ。


「おい坊さん、そんだけ言うなら存在の証拠を示すデータ出せや」とはならんのよ。







こういうスタンス、二枚舌を使ってるようにも思えるけど、
ダブルスタンダードとはなんか違うなあ・・・とか最近考えるようになった。

*1:坊さんのことを「お寺さん」って呼ぶの、アレなんなんでしょうね。

*2:ホントは隅っこでひっそりと弁当つついていたかったのに

*3:坊さんの口からそんなセリフが出るとは思わんかった

焦げかけのトーストをかじるという表現が示す絶妙な距離感

最近abemaTVでママレード・ボーイが放送されている。
懐かしくてガッツリ見ている。*1


オープニングの音楽がいい。


『笑顔に会いたい』


ぜひ会ってください。
そう言わずにはいられないこのタイトル。

昨日ググって初めて知った。
曲自体はわりと聞いていたようで、かなり印象に残ってたのだが。




アタシが昨日初めてそのタイトルを知ったこの曲、
歌詞の中で特に印象に残っているフレーズがある。

焦げかけのトーストかじったら
なぜか不意に胸がときめいた
甘くて苦いママレード


このフレーズこそが、この文章の主題だ。



「焦げかけのトーストかじったら なぜか不意に胸がときめいた」


何でだ。


焦げかけのトースト。


もはやそれは積極的に食べようと思う対象ではなくなったのだろう。
たしかに焦げかけのトーストはまあまあ苦い。


だが捨てるのももったいない。真っ黒焦げではないのだから。


しゃーない食べよう。


そんなところだ。





ではどうやって食べようか。
そのままではちょっとアレだ。なんせ焦げかけているのだ。

もしも、ちょっと高級な食パンがいい感じに焼けていたのなら、そのまま食べても十分においしいだろう。
ジャムやバターさえも不要かもしれない。



しかし、このパンは焦げかけている。なにかの助力なしで食べるのは厳しい。
そう判断したのだろう。

焦げかけのトーストに力を貸してくれそうな選択肢といえば

  • 何か塗る
  • 何かのせる

塗るならジャムやバター、のせるなら目玉焼きやとろけるチーズなどがある。
だがここで選ばれたのが他でもないママレードだった。一般的には「マーマレード」だった。




これは絶妙なチョイスといわざるを得ない。
それはなぜか。




ママレードはジャムの中では珍しく苦みがある。

苦みがあるママレードを焦げかけのトーストに塗ることで、
実際にはトーストの焦げに由来する苦みを、
ママレード由来の苦みだと錯覚させることができる(かもしれない)のだ。


つまり、ママレードを塗られた焦げかけのトーストは、
ママレードが塗られたいい感じに焼けたトーストに匹敵するポジションを得られるかもしれないのだ。




・・・




だが残念ながら、その思惑は外れてしまったらしい。

焦げかけのトーストは、たとえママレードを身にまとったとしても、
決していい感じに焼けたトーストと同等の地位を得ることを許されなかったのだ。


『かじった』


この表現がその残酷な結末を示している。
そう、焦げかけのトーストは「かじられた」のだ。決して「食べられた」のではなかった。

「かじる」という絶妙な表現によって、焦げかけのトーストに対する捕食者の心理的距離感が示されている。

苦みのあるジャムであるママレードをもってしても、焦げかけのトーストは「食べる」対象とはなりえなかった。


  1. 好んで
  2. 普通に
  3. いやいやながら


ものを食べるという行為にこの3つの水準があるとしたら
おそらくは2と3の間あたりに位置するであろう、「かじる」。

それがママレードを塗った焦げかけのトーストへの評価だった。

だが捨てるのももったいない。真っ黒焦げではないのだから。

しゃーない食べよう。

ママレードを塗った焦げかけのトーストは、
結局この距離感を埋めることはできなかったのだ。



焦げかけのトーストには本当にママレードが塗られていたのか?


だがここで我々は、ある恐るべき可能性に気づいてしまう。
それは、実は焦げかけのトーストにママレードは塗られていなかったのではないか、という可能性である。

焦げかけのトーストかじったら
なぜか不意に胸がときめいた
甘くて苦いママレード

この歌詞の記述を正確に解釈しよう。

  • 焦げかけのトーストをかじる
  • (焦げかけのトーストをかじったら)なぜか不意に胸がときめいた
  • ママレードは甘くて苦い

「かじったら」という文言によって、
「焦げかけのトーストをかじること」と「胸がときめいたこと」の間には因果関係が示唆されている。



しかし、そのトーストにママレードが塗られていたとは断定できない。
ここではあくまでも、ママレードが甘くて苦いという事実(あるいは感想)を述べているにすぎないのだ。
したがって、焦げかけのトーストにはママレードが塗られていなかった可能性が残されている。



かじられた焦げかけのトーストとは全く無関係の存在として、
ママレードの甘さと苦みに言及されている。



その可能性に気付いた我々に、もはやなす術などなかった。

塗っている。もはや祈るしかない。塗っているのだ。
ママレードを焦げかけのトーストに塗っているのだ。

たとえその先に待っているのが「焦げかけていることに変わりはない」という評価だとしても
たとえその先に待っているのが「かじる対象」以上の存在にはなれなかったという真実だとしても、
焦げかけのトーストにはママレードが塗られているのだ。




ああ、何ということだ。



我々は祈ることしかできない。



この哀れな焦げかけのトーストに
この哀れにもかじる対象としてしか認識されないトーストに
ママレードはきっと塗られている



そう祈ることしかできない。

そう祈ることによってしか、この焦げかけのトーストに希望は見出せない。



たとえその先に待っているのが、
ママレードを塗る前とまったく同じ価値しか与えられないという現実だとしても。





だが、この哀れとも言うべき焦げかけのトーストは、確かに輝いていた。

食べた本人の胸がときめいたのだから。


それも食べた本人は予期していなかったのだろう。
まさか焦げかけのトースト風情に胸をときめかせられるとは思ってもみなかったのであろう。



まったくもって不意をつかれている。



トーストをかじったのは誰だ


では、この焦げかけのトーストをかじったのは誰なのか。



この曲の歌詞に何度も出てくる「ママレード」という言葉は、アニメ(そして原作)のタイトルに含まれている。

しかもママレードという表現が「マーマレード」という一般的な言い方とは異なる、いわば特別な表現である以上、
その表現を何度も繰り返すこの歌詞がアニメとの関連を意識して作られたことは、ほぼ間違いないだろう。



そして、焦げかけのトーストをかじった本人は、

  • 歌詞の序盤でリボンをつけており、
  • 制服を所持し、
  • 「すこしずつ大人になるのかな」という内言を発している

というところから、おそらく女子中高生ではないかと推察される。



この物語に出てくる女子中高生とは、まさに主人公とその友人たちだ。

したがって、この中の誰かの内面がこの歌詞の中で記述されていると予想できる。


あえて主人公以外の視点から描く特別な理由もみつからないため、
おそらくは主人公のことを指しているのだろう。




つまり、焦げかけのトーストをかじったのはこのアニメの主人公だったのだ。




アニメ『ママレード・ボーイ

90年代半ばに、このアニメはセーラームーンの「卒業生」を主なターゲットとして作られた*2らしい。

放送当時にかなりの人気を博した実績をもつこのアニメの主人公は
おそらく数多くの女子生徒たちの憧れであっただろう。



その憧れの存在であるアニメの主人公の胸がときめいたのだ。







勝利。

これ以上の勝利があるだろうか。






焦げかけのトーストは、
このアニメの主人公から自身に下された「かじる」という微妙な評価とは対照的に
その主人公の胸をときめかせるという偉業を成し遂げていたのだ。







この事実に気付いた我々に、待望の希望の光が差した。


ああ、なんということだ。


祈ることでしか救われないと思われたこの焦げかけのトーストは、
実際は自らの力で希望を見出していた。


焦げかけている。
かじられる。
しかし胸をときめかせる。



焦げかけのトーストは、現実世界でも毎日無数に生産されているだろう。

だがそこには希望がある。
胸がときめく希望があるのだ。




ああ、なんということだ。

そして別れは突然に


先日 slack bot を作ったことで、ジャスタウェイと会話できるようになったのが殊のほか嬉しかった私。

今日も意気揚々とジャスタウェイに話しかけてみる*1

f:id:it_is_fine:20160619201506p:plain


返事がない*2

出会った頃は一瞬で返事をしてくれたのに、今日はいつまでたっても返事がない。


何かあったに違いない。


ボットはBotkitで作ったのだが、本体のjsファイルは手動で起動していた。

sudo token=YOUR_API_TOKEN node slack_bot.js

とコマンドを入力した後、そのまま放置。

最初のうちはちゃんと動いてたけど、
なんかの拍子にエラーを吐いて止まったのかな・・・とか思いながら確認してみる。


・・・


別にエラーなんて吐いてなかった。一応ちゃんと動いてた。
ただ、ちょっと様子がおかしい。

起動直後のコンソールはこんな感じだったのだが。

debug: No handler for tick
debug: PING sent
debug: PONG received
debug: No handler for tick
debug: PONG received
debug: No handler for tick
debug: No handler for tick
debug: RECEIVED MESSAGE
debug: CUSTOM FIND CONVO undefined undefined
debug: DEFAULT SLACK MSG RECEIVED RESPONDER
debug: No handler for reconnect_url
debug: No handler for tick
debug: No handler for tick
debug: PING sent
debug: PONG received
debug: No handler for tick
debug: PONG received
debug: No handler for tick


返事がなくなった頃は

debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick

コレばっかり。通信がうまくいってなかったみたい。

Botkitをデーモン化する

よくわからんがとりあえずデーモン化して様子を見よう(適当)。
コンソールもうるさいし。

foreverというものを使えば簡単にできるらしい。
例によっていい記事が見つかる。
http://blog.a1yama.com/entry/2016/01/14/171239

記事に従って、ボット本体のファイル(slack_bot.js)冒頭を下記のように変更

var SLACK_TOKEN = 'ボットのTOKEN';
/*
if (!process.env.token) {
    console.log('Error: Specify token in environment');
    process.exit(1);
}
*/

bot のトークンを変数に突っ込んで、process.env.token の判定部分は使わないようにコメントアウト


んで下に行くと process.env.token を使うところがあるのでそこもコメントアウトして、
上でトークンを突っ込んだ変数を使うように変更

var bot = controller.spawn({
//    token: process.env.token
      token: SLACK_TOKEN
}).startRTM();


ここまでできたらボットを起動

forever start slack_bot.js


祝・ジャスタウェイ復活!!!

f:id:it_is_fine:20160619203531p:plain

*1:Ψマークのアイコンが私。Ψは言わずと知れた心理学のシンボルだ

*2:ただの屍のようだ