2015年8月22日土曜日

Deep Learning のフレームワーク Chainer を使った画像分類 その4

前回記事: Deep Learning のフレームワーク Chainer を使った画像分類 その3

最初から: Deep Learning のフレームワーク Chainer を使った画像分類 その1

Optimizer

train_mnist.py 58-60行目

# Setup optimizer
optimizer = optimizers.Adam()
optimizer.setup(model.collect_parameters())

optimizerはこの後、訓練中に前述の関数 forward より返却された F.softmax_cross_entropy() の戻り値(オブジェクト)に対し backward() された(83行目)後に optimizer.update() される(関数名末尾の括弧は関数の実行を示す)。Optimizerはパラメータと勾配からなりたち、update()を実行するたびに、対応する勾配にもとづき、パラメータを更新する。

勾配について、学習のゴールは、誤差関数 E(w) に対し最小値を与える重み w を求める事だが、E(w) は一般に凸関数ではなく、大域的な最小解を直接得るのは通常不可能1。 代わりに E(w) の局所的な極小点 w を考えるが、E(w) の極小点は一般に多数存在するので、たまたまみつけた局所的な極小点が E(w) の大域的な極小解とは限らない1。それでも E(w) の値がある程度小さいなら、クラス分類の問題をそれなりにうまく解決できるという様に考える1。このとき、勾配とは

というベクトル(Mはwの成分数)1

今回、train_mnist.py は Optimizer として Adam法を使用する。理由、その他理論については不明。なお、Chainer のチュートリアルにおいてはSGD(確率的勾配降下法)が利用されている。

setup 関数は与えられたパラメータ/勾配に対し状態(?)を準備するOptimizerはパラメータと勾配を実際に管理している関数を知らないので、一度パラメータと勾配を指定したら、forword と backward を通して同じパラメータと勾配を使用する必要がある。

1岡谷 2015 p.24

エポックの走査(パラメータの更新)・訓練・訓練結果のテスト

訓練

train_mnist.py 62-90行目

# Learning loop
for epoch in six.moves.range(1, n_epoch + 1): 
    print('epoch', epoch)

    # training
    perm = np.random.permutation(N)
    sum_accuracy = 0
    sum_loss = 0
    for i in six.moves.range(0, N, batchsize):
        x_batch = x_train[perm[i:i + batchsize]]
        y_batch = y_train[perm[i:i + batchsize]]
        if args.gpu >= 0:
            x_batch = cuda.to_gpu(x_batch)
            y_batch = cuda.to_gpu(y_batch)

        optimizer.zero_grads()
        loss, acc = forward(x_batch, y_batch)
        loss.backward()
        optimizer.update()

        sum_loss += float(cuda.to_cpu(loss.data)) * batchsize
        sum_accuracy += float(cuda.to_cpu(acc.data)) * batchsize

    print('train mean loss={}, accuracy={}'.format(
        sum_loss / N, sum_accuracy / N))

train_mnist.py 24行目で指定されたエポック回数(20回)分、訓練と訓練の評価を繰り返す(forループ)。np.random.permutation 関数を使い毎回N(=60000← train_mnist.py 35行目より, =訓練用データの量)までの数値をランダムに並び替えた順列を生成し、その順列 perm を使い x_train および y_train よりデータセットを選択しているため、毎回対象となるデータが異なる。エポックとは岡谷 2015 p.28 によると「パラメータ更新回数」と同義の様に読み取れる。

np.random.permutation(N) より訓練が開始される。

訓練の結果のネットワークの性能を代入する sum_accuracy および sum_loss 変数の0による初期化に続き、さらに内側の forループが開始される。このループは0〜N(=60000)までを batchsize (=100) で刻んだ分だけ繰り返し、i には繰り返すごとに、0, 100, 200, .. , 59000 までの値が代入される。

訓練用データ x_train、y_train から x_batch および y_batch にランダムに batchsize (=100) 分のデータが代入される。GPU(一部のPCに入っている並列計算が得意なCPU)を使う場合は、データをGPUに転送する。

optimizer.zero_grad 関数で optimizer が管理する勾配のベクトルをゼロで初期化し、あらかじめ train_mnist.py の中で定義した forward 関数を実行する。

forward 関数では、その第一戻り値として F.softmax_cross_entropy の実行時の戻り値を指定した。そのため、変数 loss は関数 F.softmax_cross_entropy が返却する chainer.Variable型となる。loss.backward()では chainer.Variable が提供する関数 chainer.Variable.backward が実行される。この backward 関数は誤差逆伝搬を行う。「誤差逆伝搬」とは「順伝播」型ネットワークよりも効率的にネットワークの重みとバイアスに関する誤差関数の微分を計算する方法の1つ1。この前に forward 関数を使い順伝播を行っているにも関わらず、あらためて「逆」伝搬を行う事に違和感も感じるが、「順伝播(各層における入力 u = Wx + B、出力 z = f(u) の計算)を行った後に最終層の出力を使い、逆方向に(デルタを使い2)各層のパラメータに関する微分の式を求める」のが、誤差逆伝搬による誤差勾配の計算手順3

その後 optimizer に対し、関数 update を実行し、対応する勾配を使いすべてのパラメータと状態(?)を更新する。

内包されたforループの最後の処理として、今回の損失と正確さを変数、sum_loss と sum_accuray にあらかじめ代入されていた値に加算する形で記録する。

1参考: 岡谷 2015 p.41, 2岡谷 2015 p.46, 3岡谷 2015 p.48

訓練結果のテスト

train_mnist.py 92-100行目

# forループ内手続き宣言の続き
    # evaluation
    sum_accuracy = 0 
    sum_loss = 0 
    for i in six.moves.range(0, N_test, batchsize):
        x_batch = x_test[i:i + batchsize]
        y_batch = y_test[i:i + batchsize]
        if args.gpu >= 0:
            x_batch = cuda.to_gpu(x_batch)
            y_batch = cuda.to_gpu(y_batch)

        loss, acc = forward(x_batch, y_batch, train=False)

        sum_loss += float(cuda.to_cpu(loss.data)) * batchsize
        sum_accuracy += float(cuda.to_cpu(acc.data)) * batchsize

    print('test  mean loss={}, accuracy={}'.format(
        sum_loss / N_test, sum_accuracy / N_test))

訓練で調整されたパラメータを持つネットワークを使い、テスト用データでネットワークの性能のチェックを行う。forward関数を実行する際に、訓練時とは異なり train 引数の値として False を指定する。Falseを指定した場合、関数 forward の内部にて関数 F.dropout の引数 train の値がFalseとなり、ドロップアウトが無効化される。

参考書籍

  • 岡谷貴之(2015)『深層学習 』(機械学習プロフェッショナルシリーズ)講談社

2015年8月9日日曜日

Deep Learning のフレームワーク Chainer を使った画像分類 その3

前回記事: Deep Learning のフレームワーク Chainer を使った画像分類 その2

最初から: Deep Learning のフレームワーク Chainer を使った画像分類 その1

ネットワーク内伝搬手順の定義

train_mnist.py 51-56行目

# Neural net architecture
def forward(x_data, y_data, train=True):
    x, t = chainer.Variable(x_data), chainer.Variable(y_data)
    h1 = F.dropout(F.relu(model.l1(x)),  train=train)
    h2 = F.dropout(F.relu(model.l2(h1)), train=train)
    y = model.l3(h2)

    return F.softmax_cross_entropy(y, t), F.accuracy(y, t)

このforward関数はこの後、train_mnist.py内82, 102行目で直接参照し実行される。実行時、第一引数 x_data には画像データが指定され、第二引数 y_data には分類の答えのデータが指定される。

forward関数内ではまず、引数 x_data と y_data 両方をchainer.Variable()で包み込み、追跡可能としている(→chainer.Variable)。x_data はl1〜l3層を通り、最終的に変数 y となる。l1〜l2を通る際、relu関数を使った活性化とドロップアウトがなされる。

活性化関数とは、ユニットが受け取る入力u=w1x1+w2x2+w3x3+w4x4+bより出力zを生成する関数f。z=f(u)。活性化関数は古くは出力が0~1に収まる、ロジスティックシグモイド関数あるいはロジスティック関数と呼ばれるが使われてきたが、近年では入力が0以上であれば出力もそれに従って増加する(0以下の場合は0となる)正規化線形関数(Rectified linear function)がより良い結果が得られ、また計算量が小さいためよく用いられている1。この関数をもつユニットはReLU(Rectified Linear Unit)と呼ばれる1

ドロップアウトとは学習時にネットワークの自由度を強制的に小さくし、過適合を避ける方法の1つ。具体的には学習時に出力層以外の層のユニットについて決まった割合pで選出しその他を無効化する。pは層ごとに異なる値を指定しても構わない2。過適合(=過剰適合, 過学習)とは訓練後にネットワークの性能をテストした際に、パラメータ更新回数を増やすにつれ、テストの誤差が大きくなってしまう状態3

forward関数は最終的に、多クラス分類の誤差関数(損失関数, loss function, とも呼ばれる4)である交差エントロピー式の算出結果と、このミニバッチの分類の正確さを返却(return)する。

1参考: 岡谷2015 p.10-11, 2岡谷2015 p.31, 3岡谷2015 p.28, 4岡谷2015 p.15

次回、Optimizerとは何か、学習と学習結果の評価手順を紐解く。→Deep Learning のフレームワーク Chainer を使った画像分類 その3

参考書籍

  • 岡谷貴之(2015)『深層学習』(機械学習プロフェッショナルシリーズ)講談社

2015年7月20日月曜日

Deep Learning のフレームワーク Chainer を使った画像分類 その2

入力データの構造

six パッケージ

前回、Deep Learning のフレームワーク Chainer を使った画像分類その1にてインストールしたパッケージ、sixとは何だったのか。train_mnist.py 内にてファイル mnist.pkl の読み込みに使われていたので調査。結論としては six は Python 2 と Python 3 の違いを吸収するユーティリティ。恐らく 2 と 3 を乗算して six (推測)。

データフォーマット

ファイル mnist.pkl は下記のように読み込まれている(train_mnist.py 30行目)。

mnist = six.moves.cPickle.load(mnist_pickle)

PickleはPythonオブジェクトのシリアライズを行うモジュールで、cPickleはC言語でそれが実装された高速版

なお、MNISTとはアメリカ国立標準技術研究所が提供するデータを元に作られた手書き数字のデータベース。(→配布元)

多層パーセプトロンの作成

(train_mnist.py 43-45行目)

# Prepare multi-layer perceptron model
model = chainer.FunctionSet(l1=F.Linear(784, n_units),
                            l2=F.Linear(n_units, n_units),
                            l3=F.Linear(n_units, 10))

Chainerが提供するLinear関数は数式

(行列Wとベクトルbはパラメータ)を示す。
ニューラルネットワークのうち、「最も基本的かつ最もよく使われている」順伝播型ネットワーク(=多層パーセプトロン)において、ある層のあるユニットの入力をx1〜x4とすると、このユニットが受け取る受け取る総入力uは
u = w1x1+w2x2+w3x3+w4x4+b
と表される1。wは重み(weight)とよばれ、各入力に異なる重みづけがなされる。これにバイアスbを足したものが総入力1。第1層のユニットをi=1,...,I、第2層のユニットをj=1,...,Jで表すと、第1層のユニットの出力xと第2層のユニットの入力uは、ベクトルと行列を用いて表記すると

この時、

2
Liner関数はデフォルトの挙動ではWはランダムに初期化されるが、bはゼロで初期化される。またLiner関数の第一引数は入力ベクトルの次元数、第二引数は出力ベクトルの次元数。

Chainerが提供するFunctionSet関数は、複数のパラメータ化された関数の管理を行う。この関数は単純なオブジェクトの様に振るまい、指定されたキーワード引数は下記のようにそのオブジェクトの属性となる。

model = FunctionSet(
  l1 = F.Linear(4, 3),
  l2 = F.Linear(3, 2))
model.l1
// <chainer.functions.linear.Linear object at..>

以上より、下記の形のネットワークが形成された。


次回、Optimizerとドロップアウト、交差エントロピーをはじめとする伝搬手順の定義。→Deep Learning のフレームワーク Chainer を使った画像分類 その3

1参考: 岡谷2015 p.7-8, 2参考: 岡谷2015 p.9

参考書籍

  • 岡谷貴之(2015)『深層学習 』(機械学習プロフェッショナルシリーズ)講談社

2015年7月18日土曜日

C言語における局所変数とグローバル変数の確保過程

きっかけ

C言語にて構造体を新規作成し返却する関数を書いてた際、malloc関数で領域を確保する必要があると聞いた。もし確保しなければ、戻り先でこの関数が作成した構造体が使えないとのこと。
例:
struct str1 func1(void)
{
  struct str1 target;
  memset(&target, 0 sizeof(str1));
  target.member = 1;
  return target;
}

int main(void)
{
  struct str1 retval = func1();
  // str1 は使えない
}
参照さえあれば変数が生き延びるJavaと大分勝手が違う。また「〜と聞いた」と濁してるのは、私がC言語の言語仕様の当たり方に慣れていないため。C99 にあたる JISX3010 は探し当てることができたが、いずれ「どの言語仕様」が理由で「malloc関数で領域を確保する必要がある」と言い切りたい。

2015年7月5日日曜日

デフォルト・モード・ネットワーク (Default Mode Network)

この記事は、クリエイティブ・コモンズ・表示・継承ライセンス3.0のもとで公表されたWIKIPEDIAの項目"Default Mode Network" 15:43, 15 May 2015‎版 の一部を邦訳し二次利用しています。この記事の著作権も同ライセンスを継承しますが、明示的、暗示的問わず内容に関するいかなる保証もありません


神経科学において、デフォルト・モード・ネットワーク(以下DMN)とは個人が外界に注意を払っていなく、かつその脳がウェイクフルな休憩にある時に活性化される脳の領域。デフォルト・ネットワーク、デフォルト・ステート・ネットワーク、タスク・ネガティブ・ネットワークとも呼ばれるDMNは、0.1Hz以下のコヒーレントな神経振動によって特徴付けられる。目標志向的な活動中、DMNは非活性化され、タスク・ポジティブ・ネットワーク(以下TPN)と呼ばれる別のネットワークが活性化される。DMNはタスクから独立した内観あるいは自己言及的な思考に相当し、一方でTPNは行動に相当する可能性がある。ゆえにDMNとTPNは「反相関関係にあるコンポーネントをもった一つのデフォルト・ネットワークの要素群と考えられる」可能性がある。

解剖学

DMNは相互に結ばれ、かつ解剖学的に次のように定義される脳のシステム: 個人が白昼夢そして未来の予測、記憶の想起、他者の視点の推測のような、内省的なタスク取り組む時に優先して活性化される―。DFNは外界の視覚的な信号に注意を向ける脳のシステムと負の相関関係にある。DFNは記憶のために内側側頭葉の一部を、心の理論のために内側前頭前皮質の一部を、統御のために後帯状皮質を、隣接する腹側楔前部と内側、外側、下頭頂葉皮質と共に利用する。構造的そして機能的な接続性でDFNは極めて高い一致を示しているとみられており、これは脳の構造的な基本的設計は、この特定のネットワークが他の精神的な活動が処理されてない限り通常状態で活性化されるという様な方針の上に成り立っていることを示唆している。幼児の脳においてはこのデフォルトネットワークの証拠は限定的だが、デフォルトネットワークの接続性は9歳~12歳では強固となり、デフォルトネットワークは発達にともなう変化を行うことが示されている。

機能

DMNの機能ははっきりしていない。しかしこのネットワークの活動は、注意や遂行機能に使用される領域の活動と負の相関関係がある。ヒトにおいてはこのDMNは心が散漫としている(mind-wandering)時の自発的な思考を創出すると仮説付けられ、また想像力に関連する可能性がある。一方で、デフォルトモードの活動は特定のどの思考にも結びつかない、脳内をゆく潜在的な生理学上の過程を示しているかもしれない。

病態生理学

DMNはアルツハイマー病、自閉症、統合失調症、うつ、慢性疼痛などの病気と関連すると仮説付けられている。特に、認識的に困難な課題におけるDMNの非活性化の失敗は自閉症に、活動過剰時の失敗は統合失調症に関連付けられている。アルツハイマー病ではこのデフォルト・ネットワークはアミロイドβの生成によって優先的に破壊される。児童虐待等の長期のトラウマを経験した人においては、このデフォルト・ネットワークの低い接続性が発見されている。PTSDを経験した人の間では後部帯状回において、活性度の低調がみられた。このデフォルト・ネットワークの過剰な結合はうつ病の反芻思考と慢性疼痛に結び付けられている。

批判

「デフォルト・ネットワーク」の考えは例外なく受け入れられているわけではない。特定の「困難な」課題を行っている脳よりも休んでいる脳がより処理していることに対するより単純な仮説があるということ、また休んでいる脳の活動と本質的な違いがないという理由から脳の機能を理解するにあたり、このデフォルト・モードのコンセプトは有用ではないという批判が2007年になされた。

更新履歴

更改内容 更改日付(JST) 更改内容
1 新規作成 2015年7月5日 新規作成
2 更新 2015年7月6日 demanding taskの訳を修正

2015年7月4日土曜日

神経科学・脳科学・心理学略語集

学習の過程で登場した用語を整理するためまとめてます。

部位

省略形 原形 日本語 簡単な説明
IPS Intraparietal Sulcus 頭頂間溝(とうちょうかんこう) Wikipedia
FEF Frontal Eye Fields 前頭眼野 サッケード運動の発生に関与する
MT area (Middle Temporal lobe: 中側頭葉, ※MT野はマカクザルの中側頭葉内に存在することに由来する領野) MT野 =V5野. 対象物の動きの視覚処理を行っていると考えられる。
MT+ MT complex MT+野 MTとMT+の違いについては The Rokers Vision Laboratory at the University of Wisconsin - Madison 内記述より推測
MPF Medial Prefrontal Cortex 内側前頭前野(ないそくぜんとうぜんや) MPF - Wikipedia
PCC Posterior Cingulate Cortex 後帯状皮質(こうたいじょうひしつ) Wikipedia
LP Lateral Preoptic nucleus? 外側視索前核? LP = Lateral Proptic area? Preoptic Area 視索前核を含む視床下部
SMA Supplementary motor area 補足運動野 Supplementary motor area - Wikipedia 大脳基底核の神経回路網
RLPFC Rostrolateral prefrontal cortex 吻側外側(ふんそくがいそく)の前頭前野皮質 関連記事:
Neural Taskmaster: How the Rostrolateral Prefrontal Cortex Keeps Us on Task
SC Superior colliculus 上丘 関連記事:
How Judgment of Sensory Simultaneity May Develop in the Brain

物質

省略形 原形 日本語 簡単な説明
CSF Cerebrospinal Fluid 脳脊髄液(のうせきずいえき) カラー版 ベアー コノーズ パラディーソ 神経科学―脳の探求 初版 p.139
BDNF Brain-derived Neurotrophic Factor 脳由来神経栄養因子 Wikipedia
関連記事:
Mice on Wheels Show How Exercise Benefits the Brain
DBHB Beta-hydroxybutyrate βヒドロキシ酪酸メチル 腎臓内で作られBDNF遺伝子を活性化させる。Wikipedia
関連記事:
Mice on Wheels Show How Exercise Benefits the Brain
HDAC Histone Deacetylase Complexes DBHBは、「HDACがBDNF遺伝子環境を変化させBDNFの生成を抑制し」ない様にすると主張されている

機能

省略形 原形 日本語 簡単な説明
DMN Default Mode Network デフォルト・モード・ネットワーク
TPN Task Positive Network タスク・ポジティブ・ネットワーク

関連部位

関連物質

関連機能

2015年7月1日水曜日

Deep Learning のフレームワーク Chainer を使った画像分類 その1

Chainerについては下記

環境

  • Mac OSX 10.7.5
  • Chainer 1.0.1

セットアップからサンプルコード挙動確認まで

$ sudo pip install virtualenv
$ virtualenv .
$ source bin/activate

$ # Pythonの参照先が書き換わる事を確認
$ which python
~/Documents/chainer_workspace/bin/python
# Pythonのバージョン確認。Chainerで[必要とされるのは Python 2.7+](http://research.preferred.jp/2015/06/deep-learning-chainer/)
$ python --version
Python 2.7.1

$ # QUICK START (http://chainer.org/) を参考にChainerをインストール
$ pip install chainer
~~省略~~
Successfully built chainer
Installing collected packages: numpy, chainer
Successfully installed chainer-1.0.1 numpy-1.9.2

$ # サンプルコードの実行
$ git clone https://github.com/pfnet/chainer.git
$ python chainer/examples/mnist/train_mnist.py
Traceback (most recent call last):
  File "chainer/examples/mnist/train_mnist.py", line 11, in 
    import six
ImportError: No module named six

$ # とりあえず QUICK START で必要 (requires) と記載されたパッケージをインストール
$ pip install scikit-learn
~~省略~~
Installing collected packages: scikit-learn
Successfully installed scikit-learn-0.16.1
$ pip install scipy
~~省略~~
Installing collected packages: scipy
Successfully installed scipy-0.15.1

$ python chainer/examples/mnist/train_mnist.py
Traceback (most recent call last):
  File "chainer/examples/mnist/train_mnist.py", line 11, in 
    import six
ImportError: No module named six

$ # フォーラムを探索。[Can't run the MNIST example](https://groups.google.com/forum/#!topic/chainer/pkIVsfPtL4c) それっぽいのを発見。sixというパッケージをインストールする必要があるよう。
$ pip install six
~~省略~~
Installing collected packages: six
Successfully installed six-1.9.0
$ python chainer/examples/mnist/train_mnist.py
load MNIST dataset
Traceback (most recent call last):
  File "chainer/examples/mnist/train_mnist.py", line 29, in 
    with open('mnist.pkl', 'rb') as mnist_pickle:
IOError: [Errno 2] No such file or directory: 'mnist.pkl

$ find . -name "mnist.pkl"
$ # mnist.pklは存在せず
$ ls chainer/examples/mnist/
README.md            train_mnist.py
download_convert.py        train_mnist_model_parallel.py
$ # download_convert.py がデータを取得するスクリプトと思われるので実行
$ cd chainer/examples/mnist/
$ python download_convert.py 
Downloading train-images-idx3-ubyte.gz...
Done
Downloading train-labels-idx1-ubyte.gz...
Done
Downloading t10k-images-idx3-ubyte.gz...
Done
Downloading t10k-labels-idx1-ubyte.gz...
Done
Converting training data...
Done
Converting test data...
Done
Save output...
Done
Convert completed
$ python train_mnist.py 
load MNIST dataset
('epoch', 1)
train mean loss=0.27741594178, accuracy=0.914916668298
test  mean loss=0.117256106085, accuracy=0.963500005007
('epoch', 2)
train mean loss=0.138578489823, accuracy=0.957850001852
test  mean loss=0.0929322862427, accuracy=0.970500005484
...
$ # 動いた

次回、train_mnist.py で行われていることの解析。→Deep Learning のフレームワーク Chainer を使った画像分類 その2

2015年4月15日水曜日

脳で浮気心をコントロールしうる神経伝達物質、バゾプレッシン

周囲の状況により関心の対象が変わるのは人として自然なことですが、大切な時はパートナーには一人の人間に集中してほしいもの。なぜ関心が移ろうのか、移ろう瞬間脳には何が起こっているのか、それを解明しようと以下の様な研究が行われたことがあります。

浮気症と一途な性格の比較

まず、浮気症とそうでない性格に明確な区別があるのか、研究にあたってはこの差が重要になります。おもしろいことに、ハタネズミは体の構造は似通っていながら、住む地域によりその行動に明らかな差がみられます。草原に住むハタネズミは出産後、雌雄共に1つの巣に居住し、お互い協力して長い間子供の世話を見る一方、山地に住むハタネズミは出産後、男は子育てをまったくせず、女もまた子供が自立する前に限り子育てを行うという特徴があります。

男を一途にする物質とは?

この性格の違いはどの様に生まれるのでしょう。脳の研究において、この問題を究明していく中で神経伝達物質の一つであるバゾプレッシンに注目が集まりました。バゾプレッシンはニューロン(神経細胞)間の情報の伝達に使われる物質の一種で、また同時に体内の血圧の降下と塩分濃度の上昇をきっかけに脳内の視床下部で血中に放出される物質です。

他の神経伝達物質の受容体の分布は草原に住む個体と浮気症の山地に住む個体の間で差は見られなかったものの、バゾプレッシン受容体の分布には草原に住む個体は一箇所に集中している一方で、浮気症の山地に住む個体では幅広い箇所に分布*1していました。

また驚くことに、草原に住む雄に新しい雌と出会った時にバゾプレッシンを投与すると、通常は交尾の後に雌と強い絆を形成しますが、この時は交尾することなしに強い絆が生まれたそうです。

まだ研究は未解明な部分が多いものの、この傾向は人間でも見られる様です。脳の状態をfMRIを使い調べてみると、母親が自分の子供の写真を見た時、脳内のバゾプレッシン受容体を多く含む部位が活性化された*2一方、知人の子供の写真ではバゾプレッシン受容体の活性化はみられなかったそうです。



*1 分布図: Young LJ, Wang Z, Insel TR. 1998. Neuroendocrine bases of monogamy. Trends in Neurosciences 12:71-75
*2 同様の研究がすすめられているオキシトシンの受容体にも同じ様な活性化がみられた。

[学習メモ]

[参考文献]
Mark F. Bear, Barry W. Connors, Michael A. Paradiso, 加藤宏司(訳), 後藤薫(訳), 藤井聡(訳), 山崎良彦(訳), 金子健也(訳)『神経科学 脳の探求』西村書店 2012

2015年1月1日木曜日

はじめに


  • ヒトの感情やその生理的基盤に興味を持った1人のSEの学習の記録です。
  • 医学部を出たわけでも生物学を専攻していたわけでもありません。訳の間違いや論理の飛躍等も多分にあるかと思います。内容については保証できませんのであしからず。 
  • 手持ちの本やアクセス可能なWebサイトをベースにまとめています。原典が示されていれば一緒に掲載していきたい方針ですが、原文の確認はしたいと思った時にしていきます。
  • PCやスマートフォンをはじめとする液晶画面で眼精疲労が溜まる生活です。将来的にもっと自然な形で、知識のインプットができるようになるといいです。