How important is reinforcement learning among machine learning techniques?

強化学習って自分の仕事にはあまり関係ないかな?と思ってあまり重要視してなかったんだけど、ChemTSではMCTS使っているし他にも強化学習組み合わせたものを使うことが増えたので、転職祝いに頂いたこの本をもう一度きちんと読んでいる。

ProductName これからの強化学習
牧野 貴樹
森北出版 / 4536円 ( 2016-10-27 )


一章を何度も読み返して数式の意味をきちんと理解するだけで、結構応用が効きそう。これで論文読むのちょっと楽になったかな?二章はいきなり先端研究事例が出てきてハードルが上がるので流し読みにとどめて、3,4章の事例を読むのが良いかと思います。

「十分なデータを持っておらず、データの収集にコストがかかる世界において、データをどのように収集するか」が強化学習である、とみることもできる。その意味で、強化学習はいわゆるビッグデータと呼ばれるような、データが与えられることが前提とされる他の機械学習とは本質的には異なる問題に取り組んでいる (まえがきより)

AIの定義も曖昧で困るんだけど、ビッグデータもまたその定義が曖昧なものかと思っていて、データ数足りない場合には強化学習を利用してデータを獲得していく必要がでてくる場面も増えてくると思うんだよね。

それにしてもAIとかビッグデータとかいうバズワード嫌いやわ。

         ,. -'''''""¨¨¨ヽ
         (.___,,,... -ァァフ|          あ…ありのまま 今 起こった事を話すぜ!
          |i i|    }! }} //|
         |l、{   j} /,,ィ//|       『おれはビッグデータを使っていたと
        i|:!ヾ、_ノ/ u {:}//ヘ              思ったらスモールサイズだった』
        |リ u' }  ,ノ _,!V,|
       /´fト、_{{,'eラ , タ人      な… 何を言ってるのか わからねーと思うが
     /'   ヾ|| {´,)⌒`/ |<ヽトiゝ       おれも何をされたのかわからなかった…
    ,゙  / )iLレ  u' | | ヾlトハ〉
     |_/  ハ !ニ⊇ '/:}  V:::::ヽ        頭がどうにかなりそうだった…
    // 二二二7'T'' /u' __ /:::::::/`ヽ
   /'´r -―一ァ‐゙T´ '"´ /::::-‐  \     催眠術だとか超スピードだとか
   / //   广¨´  /'   /:::::/´ ̄`ヽ ⌒ヽ  そんなチャチなもんじゃあ 断じてねえ
  ノ ' /  ノ:::::`ー-___:::::/       ヽ  }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::...      もっと恐ろしいものの片鱗を味わったぜ…

From Promiscuity Degree (PD) to Target Family Degree (TFD) and Selectivity Degree (SD)

前回のPDの続きを楽しんでいた。

Considering similarity with Promiscuity Degree

やりたいことはPDで単にActivity Cliffをカウントしているだけのところをターゲットファミリーの重複を除けばターゲットの依存性が解消できるだろうということ。

試したこと

最初にChEMBLのターゲット分類項目を使おうとしたがオントロジーのせいなのかまとめられないものが多くて上手くいかなかった。

続いてsimilarity matrixを地道に計算する方向を試してみた。これはbiopythonのpairwise2を使ったら遅すぎたのでclustalomegaを呼び出すことにした。マトリックスが出来たらMDSで二次元にマップしてからAffinityPropagationを使ってクラスタ分類させる方向でやってみた。 これで適当なクラスター数に分けることは出来たのだが、散布図を眺めていると、どうも思ったように集団を形成しておらず結果としてはあまり上手くいったとはいえない感じだった。

考察

similarity matrixが上手く作れていなかったのが分類が上手くいかなかった大きな要因であるが、これはglobal similarityを計算したのが問題だった。多分ドメイン等の類似性が重要なのでlocal alignmentをするべきだった。つまりblastのp値とかE値を距離として使えばよかったように思う。または局所相同性かな。

当初、Xmeansでクラス推定する予定だったが距離行列をインプットに取れなかったのでMDS+APという方法をとったけど、このクラスター推定ももう少し上手い方法がありそうかなと思う。

Selectivity Degree

SBDD的に興味が有るのはファミリー間の選択性を発揮する小さな構造変化であり、PDの増減するかつTFDが変化しないものであろう。そのようなクリフがデータベースから検索できると面白いかなと思う。こういうものをSelectivity Degreeとでも呼べばいいと思う。

Dr. Bonoの生命科学データ解析

2000の手前くらいから2005のおしまいくらいまでbioinformaticsやっていて、次世代じゃないマイクロアレイとかDNA chipsいじってたくらいで、NGSはDRY本読んだりして押さえてあるけど実務では経験はしてないなーって感じだけど楽しく読みました。

これからバイオインフォマティクスやる人は買って読んでおくべき本かなと思いますね。あとはケモインフォマティクスの人もバイオインフォマティクスは知っておいたほうがいいので読んでおくといいです。両方できると確実に幅が広がるのでキャリア的に有利です。

ProductName Dr. Bonoの生命科学データ解析
坊農秀雅
メディカルサイエンスインターナショナル / 3240円 ( 2017-09-29 )


ざっとバイオインフォマティクスを知るには良い本だと思いました。個別の具体的な問題に答えるというよりは、それらの問題に取り掛かるために知っておかないといけない前提知識を手っ取り早く理解する本という位置づけなのかな。

章立てはこんな感じです。個人的には一章の歴史が面白かった(会社に入ってからバイオインフォマティクスに関与したので自分の関わっている年代の前後がどうだったかをよく知らなかったため)

  • 第1章 生命科学データ解析の歴史
  • 第2章 生命科学分野の公共データベース
  • 第3章 データの形式とその取り扱い方
  • 第4章 基本データ解析
  • 第5章 実用データ解析

第4,5章をきちんと学びたかったらDRY本を読めばいいと思います。

以下、読んでいて付箋を貼ったあたりを。

p.6 表1.3

年表の1990, 1997,2002にBLAST論文の出来事が記述されているのだが、2002年のBLASTで何が起こったのかがわからなかった。読書会で 「マニアしか知らないBLASTの歴史」 みたいなLT希望w

p.15

いきなりsuffix arrayが出てきていたのでざっと知りたければ下の方の高速文字列解析の世界を読むことをオススメします。

p.64

蛋白質構造論文の話は知らなかったのであとでちゃんと把握する。

p.84

~~rsync懐かしかったが、scpにはrsync相当の機能はないのだろうかと思いました。というのは今時のOSだとrsync,rcpはデフォルトでは入らないし、オフになっているのでは(セキュリティの関係で)と思ったので。これに関してはちゃんと調べてないからわからん。rshはデフォルトではオフにはなっているはず~~

追記:ボケてた

その他

最近の出来事なんだけど、同僚に「clustalw入れたら?」ってアドバイスしたら、「それってclustalomegaのことなんですね!」と言われて、調べたらそういうのがあって時代を感じたことがありました。本書にはそのあたりが触れてあってなるほどー!とおもいましたね。

読書会があるそうです。

静岡でやるみたいなので、ホテル取って次の日の旅行計画を立てつつ、バイオインフォマティクスやりにくるのがいいと思います。発表者も製薬企業の一線級の方々が熱い思いを語る感じなので楽しみだしね(ハードルあげdone w)

DRY本

僕は今では実務ではバイオインフォマティクスはやらんのだけど、新規ターゲット探索したりあれやこれやする時に公共データを自由に解析できる手段があると強いのでキャッチアップは出来る限りやっています。ハンズオンは経験値上がりますね。

もちろん読書もおすすめ

ProductName 次世代シークエンサーDRY解析教本 (細胞工学別冊)

学研メディカル秀潤社 / 5832円 ( 2015-10-15 )


高速文字列解析の世界

インフォマティクスはゲノムも蛋白質もヌクレオチドやアミノ酸を文字列として抽象化した後に、ゴニョゴニョ処理するので文字列関係のアルゴリズムにアンテナを張っておいたほうがお得です。

というわけでバイオインフォマティクスに関係なさそうなこんな本もきちんと読んで理解しておく必要があります。

Mishima.syk #8やりました

発表者のみなさん、参加者のみなさんお疲れ様でした。そして急遽幹事を引き受けてくださった@no85jさんありがとうございました。

今回は日程決定後に僕の都合が悪くなってしまったり、前日にハンズオンの発表者が入院したりとバタバタでしたがw 次回はハンズオンの続きをやる予定です。

懇親会はバルイベントに。もともとのサイトが失効して怪しいサイトになってたり、バルといいつつ、チケットで下着(74)とかサンダル(67)が買えたりと「パンツを肴に飲めっていう深いメッセージか?」みたいなごちゃごちゃ感のあるバルだったけど。かなり楽しめたので良しとしよう。

途中ご当地アイドルとそれに群がるファンみたいなのが居て、ほうこれがヲタ芸ってやつかと感心していたら、あれは動きが全然足らないからヲタ芸未満だと詳しいヒトがバッサリ切り捨てていた。ご当地ヲタ芸が認められるようにヲタの人達もっと頑張ってくださいと思った(余談)。

参加したお店

一軒目 とりう(69)

とり天とビール。美味しかった

1464481110

二軒目 Vanzo

なかなか洒落た店内。ワインと肉

1464481111 1464481113

三軒目 半蔵2

白隠ハイボールと海豚ベーコン。海豚は本当に癖のある匂いだった。これは好き嫌い激しいと思う。海豚刺しはもっと強烈に臭いらしい。二次会のネタになったので良しとしよう。もう一回食べるかと言われたら遠慮する。

みりん干しとかちゃんと匂い消しをしたものは美味しいらしいです。三島に住んでた頃はスーパーによく並んでたけど、富士の方ではみかけないなぁ。

1464481114

二次会はうさぎの木

一次会の感想戦とか色々楽しくおしゃべり出来て満足。

1464481115 1464481117

ここでも肉とかアヒージョを堪能した。

1464481118 1464481119

1464481120

肉の流れで反省会は鈴木屋に決定しましたw

次回のMishima.syk(5/28)の演題が決まりました

タイムテーブルが決定しました。

メインは久しぶりのハンズオン、しかもScikit-learnなのでデータサイエンティストにちょっと興味ある方にはおすすめでしょう。講師は最近ヒットを飛ばした@y_samaです。

他には@iwatobipenによる、実践的なケモインフォマティクスの話と@bonohuの塩基配列DB事情で、EBIあたりの現状がどうなっているかとかのフレッシュ情報をゲットできると思います。

懇親会は、ぬまづ港の街barでぶらっと繰り出した後、みんなで集まってワイガヤする予定です。

参加お待ちしています

Mishima.syk #8やります

今回はScikit-learnのハンズオンをメインにやります。

ついでにGitHub Organizationアカウントを用意してGitHub Pagesの用意もした。

当初Hydeを使おうと色々いじってみたんだけど、ドキュメントが少なすぎてハマった時にめんどくさそうなのでおとなしくJekyllを使うことにした。(個人的にはHakyllいじるのが楽しいと思うけど)

最近Homebrewをリフレッシュしたのでrbenvも入れなおした

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
vim ~/.bash_profile
# add
# export PATH="$HOME/.rbenv/bin:$PATH"
# eval "$(rbenv init -)"

source .bash_profile
rbenv install -l
rbenv install 2.3.0
rbenv global 2.3.0
gem install jekyll

これでjekyllコマンドが使えるようになる。

GitHub Pagesのほうは最初にコミットしちゃうとjekyll new .がこけるのでjekyll new . --forceしないといけない。あとはpushすれば勝手に静的ページを作ってくれるので楽かも。

次回のMishima.sykは5/28の予定です

昨晩の(遅すぎる)新年会できまりました。

内容はscikit-learnのハンズオンがメインですので、予測モデルとか作ってみたいヒトは参加するといいと思います。

尚、静岡のPythonの機運が高まってきたのでShizuoka.pyも近々予定していますので皆さんネタのほうよろしくお願いします。

さて、昨日行ったお店は三島のBeerバーでBeer Windでした。

居心地は良くて楽しかったです。

ゆずホワイト、美味い

1457774309

ミルクスタウト、超美味い。香りが良すぎ

1457774310

プリムス、無難

1457774312

ジェットスターインペリアル、そこそこ美味い

1457774313

今日はちょっと車をディーラーに見せにいったついでに、昔住んでた家めぐりをしてきましたw 徒歩圏内を3箇所くらい移り住んだので(ペット可マンションに移りたくて数百メートル移動したこともあるw)

娘とワンコを連れてよく遊びに行った公園。何もないけどw

1457774314

帰りに弥栄に寄って手火山式の塩ラーメンを食べた。

1457774316

最近色々と思うことのある日々を過ごしている。

AJACS三島のNGS解析のハンズオンに参加してきた

色々勉強になり充実した二日間でした。皆様お疲れ様でした。

こういう立場のヒトもいるってことで参加に至った背景(+α)をちょっと書いておきますね。

僕自身は完全にドライな立場のバイオ(ケモ)インフォマティシャンで、手火山式やでってくらいカッチカチの乾燥タイプです。そして、 うちの職場にはウェットなNGSの人材(普通のマイクロアレイとかDNAチップを扱う人材も)はいません(重要)

じゃぁ、なんでNGSのデータ解析すんの?っていうことになるんですが、僕は企画調査的な立場で公共のデータをゴニョゴニョしたりする必要がたまにあるんだけど、最近NGSのデータって増えてきているわけです。公共データの使い方を知らなければ「分からない☆」と無知で通せるので幸せなんですが、流石にそれは自分のキャリアを考える上でよろしくないわけです。で、年末にちょっとそういった仕事が入ってきたので、いいタイミングだなぁと年始にDRY本を読んでいたんですがところどころ実験を理解していないとわからないようなところがあって消化不良だったところにハンズオンが丁度開催されたので参加したわけです。

ProductName 次世代シークエンサーDRY解析教本 (細胞工学別冊)

学研メディカル秀潤社 / 5832円 ( 2015-10-15 )


具体的にはQCのところだったんですが、実際に実験やっている人だったら機械や手法にどういう癖があって、だからこういうあたりに注意してQCするとかそういうことを意識しながらトリミングしたりするんでしょうが、そこら辺の間隔が分からなかったので参加して非常に勉強になりました。それからウェットの参加者の割合が比較高かったせいか講師の方が「実験やっている方ならわかると思いますが」っていうあたりは押さえておくべきことがらなんだろうなとメモった。

それから、基本的に発現解析だけ押さえておけばいいかなと思っていたんだが、やはりChIP-seqも勉強しとかなあかんかなと思った。推薦されていたのはこの本だったかな?

あと DAVIDを知ることができたのが良かった。あれは便利そう。他にはMetascapeも良いらしいく、調査が捗る感ある。

最後にハンズオンやっていてちょっと気になったあたりをメモっておきます。

Pipe(|)

隣のヒトにPipeを使ったコマンドの意味を聞かれたのだけど、unix初心者にパイプって馴染み薄いよなと思った。level2で

find * | grep gtf

みたいな記述がいくつかみられるんだけど

find . -name '*.gtf'

のほうがわかりやすいかも

R関係

  • p.117のextdataPathをpasteする必要はないと思う
  • p.118はsend <- csDendro(my.genes)とするべき

ダウンロード関係

p.105でebiにwgetするという記述があって、年始に写経した時にこの部分で結局3日取られてデータ取得もDRY本のネックやなと感じたけど、これはよく考えたら(考えなくてもw)DDBJからダウンロードするべきで、DRA Searchにアクセッション番号を入れて検索すればいいとのこと。

ただ、これはちょっとステップを踏むのでスクリプトを書いてみた。

wget `python draget.py ERR266338`

こんな感じでデータが取れる

お食事

たまに僕のタイムラインに握りの盛り合わせが投稿されるw もろこしずしで地魚丼を食べた。寒すぎて握りの気分ではなかったので次回はおまかせにぎり8貫で攻めたい

1456660556

二日目の帰りにはつこでちょっと引っ掛けるかと思い寄ってみたが休みだった。facebookで告知して欲しいところ。

1456660558

その後やごみも振られて、蕎麦宗は休日だし、濃いものは嫌だとダラダラと駅に向かったら香香についてしまったw

ピータンと砂肝の唐揚げをつまんで帰った。

1456660559 1456660561

Bioinformatics版のProject Euler

RosalindというProject Eulerっぽいサイトがあったので少し遊んでみた。

楽しくbioinformaticsの問題を解きながらアルゴリズムを覚えていく感じなので、BioPythonを覚えるのにちょうどいいかなと思った。

GC Contentを計算するメソッドくらいあるだろうとは思うんだけど知らないので素朴に計算。リスト内包表記でmaxで取り出すのがいいかなと思ったけど、面倒くさいのでこれまたループで素朴に。

import sys
from Bio import SeqIO

def count_gc(seq):
    return float((seq_record.seq.count("G") + seq_record.seq.count("C"))) * 100 / len(seq_record.seq)

if __name__ == '__main__':
    fasta = sys.argv[1]
    highest_id = ""
    highest_content = 0
    for seq_record in SeqIO.parse(fasta, "fasta"):
        c = count_gc(seq_record)
        if c > highest_content:
            highest_id = seq_record.id
            highest_content = c

    print highest_id
    print "{0:.6f}".format(highest_content)

僕はBioPerlでバイオインフォマティクス関連のプログラミングをしてたので、BioPythonで配列解析をしたことは殆ど無いんですよね。

missing heritability

遺伝子と疾患(表現形)との強い相関と弱い相関が見られるが中程度の相関がみられないという謎(missing)のことらしい。

それだけ、環境要因が強いということなのだろうか?

The "missing heritability" problem[1][2][3][4][5] can be defined as the fact that individual genes cannot account for much of the heritability of diseases, behaviors, and other phenotypes. This is a problem that has significant implications for medicine, since a person's susceptibility to disease may depend more on "the combined effect of all the genes in the background than on the disease genes in the foreground".Missing heritability problem