なつれNotes

一般向けに、'科学そのもの'と'科学者の思考法'を簡単に説明していきます。書評や雑記も書くよ。

物理学者はマルがお好き

 Image result for ç©çå­¦èã¯ãã«ãã好ã

この本の著者は、ケイス・ウエスタン・リザーヴ大学で物理学・天文学を教えている理論物理学者です。1993年に出版され、物理学者がどのように考えて研究しているかを教えてくれる本です。

 不要なものは削ぎ落とす

物理学者は物事を簡単にして捉えようとします。本書で印象的なのが、

まず、牛を球と仮定します。

という一節です。これは、不要なものは削ぎ落とす、という物理学者の思考を的確に表現しています。不要な情報を捨てることで、問題を簡単にしていくことを物理学者は行なっていると著者は述べています。ただし、私たちは厳密に考えようとしすぎて、あれもこれもと入れ込みがちになるので、意識的に取り組む必要があるとも言っています。

 

この本が説明している物理学者の思考過程から、理系大学生や研究者は多くを学ぶことができるのではと思います。

本書を読む事で、物理だけでなく科学全体の営みがどのように発展してきたかを学ぶことができるようになるのではと思います。

教師あり学習・教師なし学習の違い

教師あり・教師なしって何が違うの?

この疑問点を定性的に理解して解消します。

教師あり学習

硬貨で例えてみます。

ここに三つの硬貨1円、10円、100円があり、それぞれ3g、6g、10gであると仮定します。

これらの重さは硬貨の"特徴"(feature)と呼ぶことに決め、硬貨のそれぞれ種類を"ラベル"(label)としよう。

教師あり学習とは、”特徴”(重さ)と"ラベル"(硬貨の種類)を関連づける学習のことです(図1)。

f:id:Coji_02:20180927163205j:plain
図1硬貨の種類と重さを関連付ける

関連付けが終わったら、計算機に重さを入力すれば適切に硬貨の種類を当ててくれるようになります(図2)。

f:id:Coji_02:20180927163619j:plain
図2 学習後に重さから硬貨の種類を推論する

教師なし学習

あるバスケットチームに所属する選手のリバウンド数とパス数を記載したリストがあるとします(図3)。

f:id:Coji_02:20180927165313j:plain
図3 バスケット選手のリバウンド数とパス数のリスト

このリストを元に二次元の散布図を書いて見ると図4のようになったとします。

f:id:Coji_02:20180927165319j:plain
図4 選手の散布図

こうして見ると、パスが多くてリバウンド数が少ない集まり(A)と、パスが少なくてリバウンド数が多い集まり(B)に別れていることがわかります。おそらく、AはセンターでBはポイントガードと考えられます。このように、あるデータから情報を抽出して要約してくれる学習のことを、教師なし学習と呼びます。教師あり学習とは異なり、ラベルと特徴を結びつけることはしません。今回は二次元のケースでしたが、多次元になると図4のような図は私たちには描けません。しかし、教師なし学習を使用すれば、多次元を低次元にすることができ、我々にも理解ができる形にしてくれます。

pymolで周期境界の箱を描く方法:分子動力学で使用する計算系の描写

(1)本ページ下のコードをコピぺしてdrawBoudingBox.pyというファイルを作成

(2)pymol上のコマンドライン

run drawBoundingBox.py

を実行

(3)再度コマンドライン上で

drawBoundingBox

と入力

これでpymol周期境界の箱を描くことができる。

*サンプル f:id:Coji_02:20180927123045p:plain

以下コード

# -*- coding: utf-8 -*-
from pymol.cgo import *
from pymol import cmd
from random import randint

#############################################################################
#
# drawBoundingBox.py -- Draws a box surrounding a selection
#
#
# AUTHOR: Jason Vertrees
# DATE  : 2/20/2009
# NOTES : See comments below.
#
#############################################################################
def drawBoundingBox(selection="(all)", padding=0.0, linewidth=2.0, r=0.0, g=0.0, b=0.0):
        """
        DESCRIPTION
                Given selection, draw the bounding box around it.

        USAGE:
                drawBoundingBox [selection, [padding, [linewidth, [r, [g, b]]]]]

        PARAMETERS:
                selection,              the selection to enboxen.  :-)
                                        defaults to (all)

                padding,                defaults to 0

                linewidth,              width of box lines
                                        defaults to 2.0

                r,                      red color component, valid range is [0.0, 1.0]
                                        defaults to 1.0

                g,                      green color component, valid range is [0.0, 1.0]
                                        defaults to 1.0

                b,                      blue color component, valid range is [0.0, 1.0]
                                        defaults to 1.0

        RETURNS
                string, the name of the CGO box

        NOTES
                * This function creates a randomly named CGO box that minimally spans the protein. The
                user can specify the width of the lines, the padding and also the color.
        """

        ([minX, minY, minZ],[maxX, maxY, maxZ]) = cmd.get_extent(selection)

        print "Box dimensions (%.2f, %.2f, %.2f)" % (maxX-minX, maxY-minY, maxZ-minZ)

        minX = minX - float(padding)
        minY = minY - float(padding)
        minZ = minZ - float(padding)
        maxX = maxX + float(padding)
        maxY = maxY + float(padding)
        maxZ = maxZ + float(padding)

        if padding != 0:
                 print "Box dimensions + padding (%.2f, %.2f, %.2f)" % (maxX-minX, maxY-minY, maxZ-minZ)

        boundingBox = [
                LINEWIDTH, float(linewidth),

                BEGIN, LINES,
                COLOR, float(r), float(g), float(b),

                VERTEX, minX, minY, minZ,       #1
                VERTEX, minX, minY, maxZ,       #2

                VERTEX, minX, maxY, minZ,       #3
                VERTEX, minX, maxY, maxZ,       #4

                VERTEX, maxX, minY, minZ,       #5
                VERTEX, maxX, minY, maxZ,       #6

                VERTEX, maxX, maxY, minZ,       #7
                VERTEX, maxX, maxY, maxZ,       #8


                VERTEX, minX, minY, minZ,       #1
                VERTEX, maxX, minY, minZ,       #5

                VERTEX, minX, maxY, minZ,       #3
                VERTEX, maxX, maxY, minZ,       #7

                VERTEX, minX, maxY, maxZ,       #4
                VERTEX, maxX, maxY, maxZ,       #8

                VERTEX, minX, minY, maxZ,       #2
                VERTEX, maxX, minY, maxZ,       #6


                VERTEX, minX, minY, minZ,       #1
                VERTEX, minX, maxY, minZ,       #3

                VERTEX, maxX, minY, minZ,       #5
                VERTEX, maxX, maxY, minZ,       #7

                VERTEX, minX, minY, maxZ,       #2
                VERTEX, minX, maxY, maxZ,       #4

                VERTEX, maxX, minY, maxZ,       #6
                VERTEX, maxX, maxY, maxZ,       #8

                END
        ]

        boxName = "box_" + str(randint(0,10000))
        while boxName in cmd.get_names():
                boxName = "box_" + str(randint(0,10000))

        cmd.load_cgo(boundingBox,boxName)
        return boxName

cmd.extend ("drawBoundingBox", drawBoundingBox)

参考URL:DrawBoundingBox - PyMOLWiki

Linux on windows:Windowsのフォルダはどこにある?

/mnt/c/以下にCドライブのフォルダがある。

Cドライブ内の、例えば、デスクトップ(/mnt/c/Users/USER_NAME/Desktop/)にリンクを以下のコマンドで作成すればすぐにWindowsのフォルダにアクセスできて便利。 ln -s /mnt/c/Users/USER_NAME/Desktop/ /home/user_name

ちなみに、Windows 上でリナックスのファイルを操作すると不具合が生じるかもしれないので注意が必要(参考文献: How to Access Your Ubuntu Bash Files in Windows (and Your Windows System Drive in Bash))。

現在形、過去形、現在完了形の意味の違い

以下の例文を解析して、それぞれの意味の違いを理解してみよう。

Suzuki et al. report a method that employ newly developed laser. 鈴木が、定期的に(習慣的に)、ある方法を報告している、の意

Suzuki et al. reported a method that employ newly developed laser. 鈴木がある方法を、過去のある時点において、報告したの意。現在とは切り離されている記述。昔はすごい方法だったかもしれないが、今はどうだか曖昧。

Suzuki et al. have reported a method that employ newly developed laser. 鈴木がある方法を過去に報告し、それは現在でも有意義な報告(結果)である、の意。

因果関係を表す接続詞(続き)

physin.hateblo.jp の続き。

because, since

because, sinceはどちらも理由を示す接続詞である。インフォーマルな時にも使用される。

For the case of a Kelvin–Voigt material, the derivation of the fluctuation–dissipation theorem is simplified because the elastic stress in the model is derived from a strain energy that depends only upon the instantaneous deformation of the system.

この二つには違いがある。becauseは相手が知らない新しい情報である時に使用され、sinceは相手が知っていると思われる時に使用される。

as, for  

asは硬い文章によく見られ、英国感を持つ接続詞である。 一方、forは小説で使用される頻度が高い。  

therefore, so, thus, hence, thereby, consequently, as a result, accordingly

これらは、極めて強い因果関係を示す接続詞である。以下で例文を通じてどのように使われるかを見ていく。

私が論文を見たときによく見かける因果関係を示す接続詞は

  • therefore、so:したがって

  • hence:ある状態によって。

  • thus:こうして、このようにしてという意味。一般に、の意を含む。in this general way

そこまで使われていない接続詞(複数の英国の人の論文を読むとほとんど使われていなかった):

  • consequently, as a result:当然の結果として。

  • thereby:ある特定の行為によって。by the specific action.

  • accordingly:~に応じて。

なんで使用頻度が低いのか?

and

andは弱い因果関係を示す。以下例文

She had a bad cold, and lost a lot of weight.

過去形と現在完了形の意味の差

過去形で

Suzuki et al reported a method that employ newly developed laser. (実践日本人の英語)

と書くとする。これだと、鈴木が過去に報告した手法は今ではそんなに影響力がないという意味を含むことになる。 一方、

Suzuki et al have reported a method that employ newly developed laser. (実践日本人の英語)

と書くと、その手法は今でも影響力があり、効果的であることを含んだ文になる

ただし、

In 2011, Suzuki et al reported ...

と書くなら、過去の一時点を示すことになり、過去形を使用しても良い。この文は単なる過去にあったことの説明である。

もし、過去のある時点から今まで、と言いたかったら、

Since 2011, Suzuki et at have reported ...

と書く。

何個か例を選んできた(参考文献:doi:10.1107/S1399004714026777):

the first successful biomolecular simulation was reported in 1977.

これは、in 1977とあるので、単なる過去にあったことの説明。

many coarse-grained models have been reported

これは、粗視化モデルが今でも有意義なものとして捉えている例。

Shaw Research have designed a special-purpose parallel architecture for fast MD

これも今でも影響力のある有意義な研究であることを示している。