トマトと卵の中華スープのレシピ [簡単中華]

[概要]

トマトエッグスープ

中華の基本トマトエッグ。 中国人はトマトエッグを料理しながら、料理の腕をあげるやらなんやら。
炒めものの方が有名だけど、スープもよく作るそう。 簡単な割にご飯と良くあって美味しい。

[調理時間]

10分

[準備するもの]

トマトエッグスープの材料

トマト  1個
卵    1個
干し筍  3、4本 (あれば美味しいけどなくても大丈夫)
水    300ml程度

塩    小さじ半分程度から調整

[手順]

1. トマトを8つ切りに切る

2. 乾し筍を小さく切っておく

3. 卵は白身を切るようにしっかり溶いておく

4. 水を張った鍋に1・2を投入する

水にトマトと干筍を投入

5. 強火で沸騰するまで加熱する

トマトを入れた鍋を沸騰

6. 一気に卵を入れてお箸でぐるっとかき回す

7. 完成!

卵を投入

[雑感]

  • 写真のタイプの干筍が手にはいればとてもgood
  • 搾菜とかを使っても美味しい
  • 何もなかったら塩だけでも美味しいけど
  • 簡単に1品足したいときに便利なスープ

関連記事

自炊レシピのまとめ

D

日本で時折り起こる研究不正疑惑への雑感

旬は過ぎたけど京大のips細胞研究所の研究不正が話題になっていた。 サプリメンタリーを含めて論文のほぼ全ての図表が対象ということ。 なので残念だが意図的な改竄なのだろう。

表に出てこない研究不正というのもあるだろう。 しかしこういった生命科学の分野は成果や雑誌が派手になりやすいもの。 インパクトが大きい反面比較的バレやすい分野なのかもしれない。 それだけ期待をされている分野ともいえよう。

私のいる分野は正式だろうが不正だろうがあまり注目されない分野なのだが、この機会にせっかくなのでちょっと研究不正について考えてみることにした。

研究不正が起こるのはなぜか?

最近あまり見ないけれど、きっとこういう改竄もあるのだろうね。 資金出すから都合の良いデータ出しといて的な。
網羅しているかは知らないが、発覚した研究不正の一覧についてはwikiでみることができる[1]。

研究者は研究資金の提供先から影響されちゃいけないのだ。

研究者の不安定な将来

最近はむしろこっちが多いのではないだろうか。 やっぱりなんだかんだで研究者の不安定身分ってのは大きいよ。 特に日本では。
某東大の教授がおっしゃっていたけれど、日本ではある年齢域を超えるとそれに合わないポジションが取れなくなる。 だからなんでも良いからさっさとポジション取れと。
そういうシステムを変えることのできる立場の人が、学生をそっち方向に後押ししてるんだからシステムが変わることは当分ないはず。

現状そういう状態なのだからポスドクや任期付助教は、できるだけ早くにやめたいというポジション。 それではじっくりと腰を落ち着けて研究に邁進することも難しい。
年が行ってようが行ってまいが能力のある人がふさわしいポジションを取れる制度ならば焦ることもない。 むしろしっかりとポスドクや任期職中に技術・知識・人脈を広げることに集中できるだろう。 逆に実力に合わないポジションを早々に掴んでしまうのもなかなかにして不幸なことだろうしね。

私もポスドク期間がだいぶ長いが、次のステップに進んでも大丈夫かなと思えたのはつい最近だ。 私はいろいろと他の問題も抱えているから、実際に次のステップに進めるかどうかはわからないがそこは今は問題じゃない。
数年前に運だけで次のステップに進んでいたら、きっとうまくいかなかっただろうなと思うのだ。

それからドロップアウトした研究者の受け皿ってのもはっきりしていない。 というかあるのかな? 例えば企業が研究職のような特化した人たちを中途で上手に採用するのにはそれなりに経験とノウハウが入りそう。 ヨーロッパ・アメリカは少なくとも求人は見るけれど、日本はどうなのだろう。
もちろんボスのコネとかで企業に行く人もいるし、自力で何かしら見つけて転職する人もいる。 とはいえどこに行ったかわからない人もいるのだからもったいない。
なんだかんだでphdまでとる才能か努力を見せた研究者。 そんな人材をうまいこと再利用できる仕組みってのがあっても良いのじゃないかとも思う。
わかりやすい逃げ先があれば不正してまで待遇の良いわけでもないアカデミックな研究職に執着することもないだろう。

だいぶ脱線したので話を戻す。 そんな不安定な状況下で一発当たれば大きい研究テーマをやっていたとする。 後1・2個良いデータがあるだけでハイインパクトな雑誌に投稿できるってなったら、何かしら悪魔が耳元で囁いちゃう人もいるんじゃないか。 特に職が期限切れ間近だったらね。

技術的容易性

実験研究者の場合研究不正は技術的には難しくない。 理論研究の研究不正ってあったのかしら?

実験の場合数値の改竄なんて追試をしなきゃ分からないだろう。 近年だと得られた図を適当に捏造するなんてのも別に難しいことではない。 そういった画像改変スキルなどは別の職種ではむしろ求められるものなんじゃないだろうか。

そもそも論文を書くときに生データをそのまま載せることはまずない。 生データってとってもわかりにくいから。 そんな生データを綺麗にみせるために色々と工夫する必要がある。
そんなデータプロセスはデータを綺麗に見せつつも、科学的本質を変えないようにというところに苦労するものなのだ。 これには理論的な補正、偶発的機械的エラーの修正、バックグラウンド除去、スムージングなどの操作が含まれる。

しかしあまりにこういったデータプロセスに慣れすぎると、思わず手が滑ってデータを綺麗にしすぎた! なんて不正もあるのでしょうかね。

内部発覚の可能性も低い

一番気がつく可能性が高いのは直接の研究の上司だろう。 しかし同じ目標を目指して苦労してデータを集めていて、ちょっと都合のいいデータが出てきたとする。 それを疑うことのできる研究者というのはあまりいないかもしれない。
というかいちいちデータの捏造を疑ってくるボスとか嫌だし。 解析ミスを疑う人はかなりいるので、その過程でふと改竄を見つけるなんてことはあるのかな。

シニアオーサーが直近のボスじゃない場合はそこでも発覚のチャンスありか。 シニアオーサーは結構しっかり読む人が多いと思う。
ここでもやはり捏造を疑うってよりは、何かおかしいから追試したらってくらいで言われるのだろうけど。

それ以外の著者が気づくかというと微妙だと思う。 今回の論文も10人も著者がいるらしいけど、逆にしっかり読んでる人が少ないって可能性もある。
自分の実験と結果考察が絡んでいない場所までがっつりと読み込んでくれる。 そんな時間のある素敵な共同研究者って残念ながらあまりいない。 たまにいると逆に面倒臭かったりもするけれど。

雑誌の査読を通り抜けちゃう可能性も結構ある

さていよいよ論文をどっかの雑誌に投稿するとする。 科学論文は最初に雑誌のエディターが読む。 論文が新規性があってその雑誌にふさわしいかどうかを判断するのだ。
ここが通常の論文を通す時には意外と難しいところなんだ。 しかしエディターはよっぽどあからさまでなければ研究不正かどうかなんて考えもしないだろう。
あからさまならその前段階ではじかれているだろうし。 というわけで改竄されたような派手論文はむしろ通り抜ける可能性が高い。

エディターの審査を通り抜けるといよいよ同じ分野で学ぶ研究者の査読(論文が正しい方法でデータをとって、正しく解釈しているかのチェック)へと回ることになる。
査読に当たる研究者は著者からも推薦できる雑誌が多い。 それから査読をしてほしくない研究者を数人選ぶこともできる(とても同じ分野を競っている同業研究者など)。
大概は推薦から一人か二人、雑誌独自に選んで一人か二人といった感じで査読者が選ばれるだろう。

さて。 分野しだいだろうけど完全に同じことをやっていて、かつ公正に評価してくれる研究者ってのはなかなかいない。
そうすると同じテーマをやってるけれど解析手法は違う人。 同じ解析手法だけどちょっと違うタイプのサンプルを使ってる人。 そんな人たちへと査読が回ることになる。
そうなると査読が回ってきた研究者は、自分の専門でわかるところを中心に読むことになる。 そのため自分の専門以外の部分へのチェックは甘くなることもあるだろう。
私自身が査読した経験でも似たような事例がある。 かなり考察の甘い論文だったので、かなりきつめの修正を要求したことがあったのだ。 だがその時のもう一人の査読者は4行くらいの短文。 しかも問題なしの良い論文だとのことで終わっていた。
翻って自分が論文を投稿する場合でもだいたいそんな感じだ。 一人か二人は真面目に読みこんでくれることが多いけど、読んだか読んでないかわからないような返答が混ざっていることもあるものだ。

それから査読をするにしても査読者は研究不正を前提に論文を読んだりはしない。 なのでむしろデータが綺麗な不正論文は、ここをあっさり通り抜けてしまう可能性が高いとすら言える。

真面目に追試する時間のある人があまりいない

さて一旦査読者の審査を通り抜けると、論文が出版されることになる。 ここまできたら発覚の最後のチャンスだ。
少しでも興味を持たれる内容の論文だった場合、どこかしらのグループが再試や実験手法を応用しようとするかもしれない。 今回のケースはこの例だろうか?
なので興味を持たれない不正論文は単に埋もれていくんじゃないだろうか。

ちょうど私も今ある論文の実験の追試をボスに頼まれてやっている。 これがなかなかにして面倒臭い。 適当に書いてあることも多い実験手法を、一つ一つと再現していかないといけないからだ。
完全に実験をコピーできたと思っても何かしらその論文の手法と異なるところがあるかもしれない。
というわけでぱっと追試して同じ結果が出なかったとしても、研究不正という言葉は浮かばない。 手法の細かい条件設定や何かしら書き洩らされた描写があるんじゃないかなど、チェックすることがたくさんあるからだ。

何度か追試をして同じ結果が出ない場合、いよいよ論文の著者に連絡することになるだろう。 論文を投稿すると一人か二人連絡担当の著者を決めているはずだ。 論文を読んでも不明なことは彼らにメールして確認することができるのだ。 そこで書き落とされた手法がないかを確認する。
そこでいろいろと言われたら一つ一つチェックしていくことになる。 それでも再現できないとなったとき、初めてどうなってんだってことになる。

この追試の過程ってかなりの時間がかかる。 ぱっとやって再現しなかったら諦めちゃう研究者もいるんじゃないかな。 よっぽど結果に興味があるだとか、その方法をどうしても応用したいとかじゃなければね。

研究不正を防ぐには

実験ノートよりもパソコンをなんとかしたい所

よく言われる実験ノート。 数年前の理研での一件の後、大学での実験ノートが厳しくなったとの話を聞いた。
しかしこれは今の時代あまり効かないんじゃないかな。 京大でも実験ノートを使うように指示していたというし。 手書きのだから不正できないっていうのはどうなんだろうかね。 不正するくらいやる気のある人だったら、そこの隠蔽もしっかりするだろう。
また硫酸など試薬をこぼして読めなくなった実験ノートがあったとして、実際その間の取得データ全部廃棄するのかしら。 まあ毎日スキャンをとって保管するようにすれば良いのか。 しかしそれ用の職員を雇うんでもなければ数多い研究者に対してコストが高そう。

やはり今の時代普通はパソコンでデータをまとめるのだから、こちらの透明性を高めるような努力があった方が良いのではないだろうか。
仕事は個人のパソコンの使用を禁止して公的パソコンだけで作業するようにするとか。 ポスドクからは良いけど学生はちょっと大変かな。 でもやっぱり不正はパソコンの中で起こるのだから、パソコンをなんとかするのが一番だよね。

そういった意味では実験装置も変えた方が良いのか。 手書きでデータを取っていくような装置は廃止して、パソコンに自動出力するような装置に変えていく。
生データもしばらく装置本体にも保管されるようにしておけばなお良い。

しかしなんだかギスギスした感じで嫌な感じになるね。 しょうがないのかな。

研究者の待遇改善

これは研究者に限らずだけど。 それなりに努力が報われる社会が良いよね。 努力の方向性が間違っていたとしても。 そういった方向性ってボス次第でどうしようもないこともあるし。

それからドロップアウトに優しい社会の方が、むしろドロップアウトが少なくなるんじゃないかな。 特に頑張って、頑張った上でドロップアウトする人たちには、それなりに良い代替の道が用意されていてほしいもの。

ここでは具体的な話には踏み込まないけど、こういった対策の方が優しい感じがして良い。

アメリカでの印象なんだけど、研究者ってそんなに人気じゃない。 たくさん勉強しなきゃいけないし。 科学は多くいる中国人・インド人を中心としたphdやポスドクに支えられている部分がある。
アメリカ人の優秀所の人たちは生来の科学好きを除けば、もっと給料や待遇の良い道を選んでいるのじゃないか。 ちなみにアメリカの研究者の待遇は悪くなくて、他の仕事の方が努力に対するコストパフォーマンスが良いというだけだけど。

日本だと研究者の人気がないわけではなさそう。 研究職が若い人たちに人気みたいな記事を最近どっかで読んだ。
しかしそういった職業に能力のある人たちに定期的に来てもらうには、それなりの給料や安定した生活を保証する必要がある。 そうでなければ好きでやっている以外の能力ある人たちは別の仕事に行ってしまうよね。 実際理系から文系就職する人ってとても多いし。
アメリカみたいに外人部隊を雇うってのなら良いけれど、日本っていう国はあまり向かないと思うんだ。

研究不正のタイプ別対処

こういう不正の対策に対応するのって、やはりお偉い先生方ってことになるのだろう。
印象先行のところはあるかもしれない。 だがお偉くなっている年代の人たちが自分で研究不正をする場合って金目当てだったり名誉目当てだったりと人生の追加目的って感じがする。 そういった不正に対する対策だったらなんとなくうまいんじゃないかなって。

今回みたいな若手の不正って、先が見えなくて切羽詰まってみたいなところがあるのじゃないか。 そいういのって上の人たちには頭ではわかっても感覚ではわからないんじゃないだろうか。 もちろん状況は理解できるんだろうけど、経験してない人にはそれがどれだけ切実かなんてわからないもんだし。

特に今の30代くらいの人たちって経済が悪化し続けるなかで生きて来た世代。 若い間にどんどん成長する社会を経験してきた人たちとはそもそも精神性からして違いそう。

こういった世代格差って研究分野じゃなくてもよくある。 どちらが悪いってんではなくて違うってだけなんだけど。 自分の常識は自分の成長過程において形成されるものってことで、そんな自分の常識打ち破るのって結構なエネルギーいるよね。

機械的論文審査

またまた脱線してきたので話を戻す。
論文不正は今の時代人に判定させるよりも機械的に判定させた方がよいのでは。 図表やデータにおかしなところがないか読み込ませて判定するようなソフトがあれば良い。 作られたデータに綺麗すぎるなどの特徴があればだけど。 それなりにあるんじゃないかな。
AI研究者の人たちには是非とも頑張って欲しいところ。 そっちで不正が起こってしまったりするかもしれないが。

ソフト自体は別に正確じゃなくても良いんだ。 怪しげだったら追試データを求めるくらいのゆるい審査をすれば良い。 それくらいならみんな嫌がらずに読み込ませるのじゃないか。

研究不正が本当に何か将来に繋がるとも思わないけれど、やったもの勝ちの世界になってしまうのも何か違うよね。

まとめ

*研究不正は技術的に簡単だしバレない可能性も高い

*不正を止めるよりは不正の温床となる原因を取り除こう

*不正審査・不正対策をするなら人的よりも機械的な対策を

[1] 「科学における不正行為」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org)。2018年1月23日 (水) 15:04更新版

D

雪菜トマト豚肉麺のレシピ [簡単中華]

[概要]

雪菜トマト豚肉麺

ラーメンと言うと気合が入ってるのはやはり日本なのだけど、中国にもお手軽なヌードルショップはたくさんある。
何と言っても安いのが一番だけど、いろいろとスープの種類があってこれが結構美味しいのだ。 一方で麺自体にはそんなに気合が入っていないことも多い。

前置きが長くなったけれど、この投稿では中国で人気の麺の一つ雪菜麺のレシピを書く。 雪菜は高菜の漬物みたいなもの。 ちょっと酸っぱめでしょっぱい漬物。 なので日本で調理するなら高菜の漬物でも代用できるはず。
漬物なので酸味の効いたスープになり、豚肉などと合わせるととても美味。 ここでは豚のひき肉、トマトと白菜と合わせたスープで。

[調理時間]

20分

[準備するもの]

*2人前くらい

フライパンと鍋

底の深いフライパン
麺を茹でる鍋

〜スープ〜

白菜   3枚くらい
トマト  1個
豚ひき肉 50g
白しめじ 半パック
雪菜   大さじ2−3 (お好みで)
水    500ml
調理油  大さじ1

〜麺〜

麺    2人前 (うどん、そうめん、ラーメンなどなんでも良い)

〜調味料〜

A 醤油  小さじ半分
A 片栗粉 大さじ1
A 生姜  薄切り1枚

B 醤油  大さじ1
B 酒   大さじ1
B 塩   小さじ1くらいから (スープの味見をしながら調整)

〜仕上げのおまけ〜

目玉焼き、分葱など

[手順]

1. 豚ひき肉と調味料Aをスプーンなどを使って混ぜる

2. 白菜は細切り、トマトは8つ切りに、それからしめじを適当に分割する

野菜を切ってひき肉を下ごしらえ

3. コンロが二つあるなら麺を茹でるためのお湯を鍋に沸かしておく。 スープが出来上がる少し前に麺を茹でておくと手早くできる

4. フライパンに油を引く

5. の豚ひき肉を炒める

豚ひき肉を炒める

6.  少し固まってきたら適当なサイズに割る

ひき肉を適当なサイズに

7. の野菜を火の通りにくい順に投入。 この場合は全部一緒でも大して変わらない

野菜を炒める

8. 雪菜投入

雪菜を投入

9. しっかり炒め合わせる

炒め合わせる

10. 水を500mlほど投入

水を500ml投入

11. 煮立ったら調味料Bを投入。 味見をしながら調整してスープの完成

12. 麺とスープを混ぜて出来上がり! お好みで目玉焼きなどを乗せて

完成

[雑感]

  • 細麺、太麺なんでも合うけど、蕎麦とかは喧嘩するかも
  • 野菜・きのこはスープに入れるようなものならなんでも美味しい
  • 肉はひき肉でなくても良いけど豚肉が合う
  • 飽きたら酢やラー油などを入れると雰囲気が変わる
  • 残り物の野菜炒めなどを流用すると、朝食とかでもぱっぱと作れる

関連記事

自炊レシピのまとめ

D

 

全豪オープンテニス2018の雑感

2018年のテニスシーズンが始まった。 昨年は最初にブリスベン国際を制したディミトロフが年間を通して活躍を見せ、最後にはファイナルまで取るという偉業を達成した。

今年のそんなブリスベン国際を取ったのは地元オーストラリアのキリオス。 今年はまさかのキリオスの年になるのだろうか。
キリオスのプレイは見てて楽しいけど安定はしてないからな。 でもブリスベンの勢いに任せて全豪オープンを取ったりしないだろうか。 昨年のディミトロフもベスト4まで進出したし。 なんて思っていたらキリオスはそんなディミトロフに負けてしまった。

残念ながら全豪オープンは時差の都合で平日はほとんど見られない。 そういうわけでEurosports playerで放送はされてはいるのだけど、今回は観戦はスキップ。 結果だけフォローすることにした。

2018年全豪オープンテニスの序盤戦

昨年に引き続き怪我がちのトップランカー達。 マリー・錦織などが残念ながらトーナメントに姿を見せることができなかった。 ラオニッチやパブリンカも怪我明けの影響で早期敗退してしまった。
一方でジョコビッチや昨年末故障を抱えてそうだったナダルが全豪オープンに間に合った。 少しずつ豪華なグランドスラムに戻りつつあるのかな。

さて序盤戦はまず日本人選手が1回戦を勝ってくれたのが嬉しいところ。
杉田が昨年末にフィーバーしてたジャックソックに勝ったのは嬉しいサプライズ。 カルロビッチに負けてしまったのは残念だけど、序盤戦のカルロビッチは運次第なところもあるからしょうがない。
これからに期待が持てそう。

西岡もコールシュライバーにフルセットでの勝利。 こちらも昨年調子の良いところで怪我してしまったけれど、その調子の良さを引き継いでいる感じだろうか。 セッピに負けてしまったけど、セッピは4回戦まで勝ち進んだのだししょうがない。
若いしこちらもこれからに期待。

その他の序盤戦は順当といったところか。 ジョコビッチが勝ち上がっている。 次のチョンヒョン戦が最初の山か。
フェデラー・ナダルが相変わらず調子が良さそうなので、やはりこの二人をどう倒すかというトーナメントになりそう。

ウイメンズの方も割と順当な様相。 その中で勝ち上がってきたなおみちゃんには是非とも頑張って欲しいところ。 ハレプに勝ってその勢いで突き進んで欲しい。

終盤に向けて今更ベスト4予想

優勝    チリッチ

準優勝   フェデラー

ベスト4  ディミトロフ・ジョコビッチ

チリッチはナダルに勝てるポテンシャルはあると思うのだよね。 ナダル強いけど。 ナダル戦で疲労しそうなチリッチだけど、なんとなくディミトロフには勝てそうなイメージ。

反対側はベルディヒを倒して調子の上がったフェデラーがティエム戦で疲れたジョコビッチを倒すと予想。 しかしジョコビッチは粘るので疲れるフェデラー。

決勝はスーパーチリッチが出てきてウインブルドンの雪辱を果たす。 なんてのも面白そうだけどさてどうなることでしょう。 チリッチかディミトロフの錦織世代にグランドスラムをとって欲しいところ。

追記:結果は以下の通り

優勝   フェデラー
準優勝  チリッチ
ベスト4 ヒョン・エドモンド

D

フィンランドで2年目に税金カードが送られてきたらすること

フィンランドで生活をしていると年明けになると送られてくるものがある。 あまりありがたくないようでもあり、大切なものでもある。 そう、税金カードだ。

税金カードに書かれていること

税金カードが送られてくると困ること。 それは英語で書かれていないこと。 フィンランド語かスェーデン語が読めない場合はちょっと翻訳に苦労することになる。
そんな時はvero.fiのWebページへ。 Webページは英語ページがある上に十分な情報が書いてある。
ちなみに税金カードに書かれているのは前年度の総所得や課税された金額など。 月ごとや2週ごとなどの給料も書かれているので逆にわかりにくい。

さて、ここで問題になるのが総所得。 外国人がフィンランドで働き始める場合には、区切りの良いところから働き始めていないことが多いと思う。
その場合1年目の給料は税務署の計算では一年分フルに出ていないことになる。 そのため2年目の税金カードはその少ない総給与情報から計算して低税額で送られてくる。 これを修正申告しないと年末に追徴課税されることになってしまうのだ。
また前年度から昇給している場合や何かしら税金減免に相当するような変化がある場合も修正申告が必要であろう。

税金カードに対してするべきこと

vero.fiにアクセスすればオンライン更新ができる。 税金オフィスに直接訪れて変更することも可能だ。

vero.fiでオンラインバンクを使った個人認証

フィンランドでこういった公的ウェブページを使う場合、まず個人認証をする必要がある。 いろいろ方法はあるけれど、外国人が簡単に使えるのは銀行認証。 働いてればまず銀行口座は作るので。 オンラインバンクのコードを使うとサクッとログインできる。

オンライン更新でやること

まずは一年の年収を入力。 私の場合だとこれは休暇分を合わせて11.5ヶ月分の給料になる。 それから月ごとの給料と税金を入力。 これは確認のためなのかな? 金額はこの頃には1月分の給与明細が送られてきているはずなのでそれを使って入力する。
年収の計算の仕方は人によって違うので部署の秘書さんに聞くとよい。 その後はつらつらと他に所得があるかどうかなどを聞かれるので素直に答えて行けば良い。 特に何もなければそのまま進行。

3ページ目まで行くといくら収入があるかといくら税金が引かれるかのまとめに入る。 私は20%くらいの所得税率だった。 なかなか。。
特に問題が見当たらなければそのまま進めていけば良い。

最後のページに行くと、税金カードを郵送するか自分でプリントするかというオプションが出る。
うちの職場の場合は自分でプリントして秘書までメールで送ってねと言われていた。 大体の職場はそういう求め方をするとは思うけど、職場次第のやり方をすれば良い。 ここをクリックすると入力情報が税金オフィスに送られる。
これだけでこの手続きはおしまい。 たぶんこういった手続きの説明は初年度に税金オフィスを訪れた時にされていたのだろう。 しかしそれを覚えている人もあまりいないだろうと思った年始の1日だった。

関連記事

1. 海外就職手続きのまとめ

2. フィンランドの移住手続き 〜住民登録・税金KELAカード

D

pythonを使って網羅的計算 〜高速計算を求めて

というなかなか自己矛盾なタイトルでの投稿。 pythonはスクリプトの書く時間を短縮するのが利点であって、pythonに計算をやらせるのはそんなに早くないことが多いので。
だからと言ってふと思い立ったときにCを書くかと言うとちょっと手が渋るのも事実。 この投稿ではそんな大量計算をpythonで頑張ってやってみた時の経験について書きたい。

私的結論から書いておくと道は二つ。 一つはやはり面倒臭がらずにC系統で書く。 pythonを使うことにこだわるならpython的な高速化は求めずに、愚直にスクリプトを書いてからcythonに書き直したりnumba@jitで高速化を目指す。 このどちらかの方が結果として早くなるんじゃないかなと思った。

しかしこの投稿で書くのはそう言う方法ではなく、なるべくpython的に頑張ろうとした時の試行錯誤をいくつか書いていきたい。 もちろんpythonianな人たちはもっとエクセレントな方法を知っているだろう。 気づいたことがあったら教えていただけるととても助かる。

pythonでどのような網羅的計算をしたかったか

ちょっとここの説明が長いので、この章を飛ばしてもらってもなんとなくわかると思う。
4つのパラメータa,b,c,dがある式。 この式は3つの整数変数h,k,lの総組み合わせに対してそれぞれ解を吐き出すような式。 例えば

s = h*a+k*b+c*l+d

といった感じで。 実際はもう少し複雑な計算をさせているが。 いずれにしろ10個ずつ整数変数があるとしたら一つのa,b,c,dに対して1000個のs値が計算されることになる。

一方でこの時の実験値が8個。 この実験値と上記で計算された値sとが良く合うパラメータa,b,c,dのセットを探したいというのがやりたかったこと(どのsと実験値を合わせても良い)。
ある程度情報があって最小二乗法などで解けるなら何も問題がない。 そうでない場合はちょっと考えないといけない。

いくつかある方法の中で一番愚直な方法は、とりうるパラメータa,b,c,dを細かい刻みで動かして全ての値のを網羅的に計算する。 その中で一番実験値と合う値を引き算で算出。 その値を叩き出したパラメータa,b,c,dを求めるという方法だ。

プログラムの構成

a,b,c,dのパラメータ変数を適当な間隔で定義する。 各a,b,c,dから式の値を計算して、実験値との差分を計算する関数を回す。 差分が例えば0.001以下のパラメータセットを出力する。 そんな単純プログラム。 しかしa,b,c,dを増やせば増やすほどガンガンと計算量が増えるプログラムだった。

for文を避けてnumpyで頑張る

上記のようなプログラムを書きたい時はCだったらfor文をガスガス回すと言うのは正しい戦略だと思う。 わかりやすいし早いし。
ただpythonはfor文が割と遅いという特徴がある。 for文を如何に避けるかはpythonで重たい計算をするときの一つの方針にはなる。
と言うわけでまず4つのパラメータに対して式を計算するのにfor文を回すのではなく、numpyのarrayに収納してみることをトライ。 どの程度速度が変わるかをまずは単純計算で比較。 4つのパラメータを10個ずつ取ったとき。 まずは単なる網羅的足し算での比較を。

for文:

import time
import numpy as np

def main():
 start = time.time()
 for a in range(10):
 for b in range(10):
 for c in range(10):
 for d in range(10):
 a+b+c+d
 elapsed_time=time.time()-start
 print ('elapsed_time',elapsed_time)
 return
結果
elapsed_time 0.00111 [s]

array文:

import time
import numpy as np

def main():
 start = time.time()
 a = np.linspace(0,9,10)
 b = np.linspace(0,9,10)
 c = np.linspace(0,9,10)
 d = np.linspace(0,9,10)

 ar1 = np.array(np.meshgrid(a,b,c,d)).T.reshape(-1,4)
 np.sum(ar1,1)

 elapsed_time=time.time()-start
 print ('elapsed_time',elapsed_time)
 return
結果
elapsed_time 0.00107 [s]

あれ? ちょっとだけ早いけど10000回の計算だと大して変わらない。 しかもこのnumpyのarrayの組み方は弱点がある。 網目を大きくするとarrayがとっても大きくなる。 その分だけメモリを食うという弱点。
というわけで網目を30x30x30x30にした場合。

for: elapsed_time 0.0681 [s]
array: elapsed_time 0.1256 [s]

網目を50x50x50x50にした場合(6250000回計算)。

for: elapsed_time 0.51124 [s]
array: elapsed_time 1.07741 [s]

というわけでこれだけだと実はforの方が良かった。

さてこれをちょっとだけ複雑な計算にしてあげるとどうなるか。 各30パラメータの例で、変更は二乗の和をとるだけ。 変更と結果は下記の通り。
for:
a**2+b**2+c**2+d**2
elapsed_time 0.90076 [s]

array:
ar1 = ar1*ar1
ar2 = np.sum(ar1,1)
elapsed_time 0.13798 [s]

forは二乗を取るだけでかなり遅くなる。 一方でarrayは大して変わらない。 というわけでここでだいぶarrayの方が早くなった。

とはいえこういう単純計算だったらもっと早く書く方法があるのかな。 pythonianな方に教えて頂きたいところ。

ループで使用する関数内での変数宣言を避ける

これは回数の少ないループだとむしろ中に書いておいた方がわかりやすいかもしれない。 しかし100万回計算するループの中に変数宣言が入っていたりするとpythonはとても遅くなる。
普段はあまり使いたくないgrobal変数だけど、この場合は使用を検討してみると早くなるかもしれない。 grobal変数は、関数の外でgrobalに続けて宣言すればよい。

grobal h
h = np.linspace(0,5,6,dtype=int)

など。

argminよりargpartitionを使う

本題に戻って私がしたかったことは、実験値と計算値を比べること。 これは単純に差分を取ってあげて、そこから最小値を抜き取ればよい。 ここでパッと考えるとargminを使いたくなるところ。 しかしargpartitionという関数があり、こちらの方が早い。

dif2 = np.absolute(slist - dobs)
min =np.argpartition(dif2,0,axis=0)

こんな感じで差分を取ったarrayの最小のインデックスが抜き出せる。

@numba.jit

時折とても強力に高速化してくれる。 けれどむしろ遅くなる場合もある。 全体にかけて効くときもあるし、関数1個だけにかけた方がよく効くときもある。 よくわからないけれど、効いてくれたら嬉しい機能。 試す価値はあり。

数学関数はmathかnumpyか

物によってはmathのが早いし、numpyの方が早かったこともある。 というかあまり変わらない。 最後の最後にどっちのが早いか見てみてもよいかも。 100万回も計算すれば違いが出るかもしれない。

anacondaのpythonを使う

私がanacondaのpython3に乗り換えたのはこれが原因。 なぜかちょっとだけ計算が速くなる。 もっと早いのがあるなら教えて欲しい。

計算量を減らす努力

小さな努力が大きな結果に跳ね返る場合もある。 計算に対称性などがあって計算が減らせる場合は減らしておく。 計算量が多い場合だとパラメータが減ったり式が単純化されるだけで結構な違いに跳ね返る。 なんだかんだでマニュアル努力が大切。

終わりに

というわけでいくつか私がpythonの高速化を計った時に使った方法を書いてみた。 私は結局目的に使い物になるくらいのところ(1回の試行が帰宅前に回し始めて朝には終わっている)で諦めてしまったのだけど。
最終盤のプログラムでもCで適当に書いた似たようなプログラムに数十倍の速度差をつけられていた。 本職pythonの人がどのくらい早くできるのかは気になるところではある。

cythonへの変換も試した。 しかしいろいろnumpyで書いていたせいか、変数の宣言などcythonを単純に使っても速度を上げることはできなかった。
というわけである程度計算量が必要なプログラムを書く時は、最初からcythonを意識した書き方をしておく。 もしくはcythonフォーマットで書き始めるというのが正しい道なのかな。

関連記事

pythonのまとめ

 

D

豚ひき肉の簡単炊飯器蒸しのレシピ [簡単中華]

[概要]

豚ひき肉の炊飯器蒸し

ご飯を炊くときに炊飯器に突っ込んでおけば出来上がる簡単料理。 嫁がよく作っているのでたぶん中華なのだろう。 平べったい肉団子といった感じで簡単な割に美味しい。 醤油味の豚ひき肉なのでご飯がよく進む一品。 見た目を良くするのが難しいのが難点。

[調理時間]

準備10分以内
蒸し20分程度(炊飯器でご飯を炊き上げる時間)

[準備するもの]

豚ひき肉炊飯器蒸しの材料

豚ひき肉 200g
生姜   薄切り1枚
A 醤油  小さじ2くらいから調整
A 酒   小さじ2くらいから調整
A 塩   小さじ1/4くらいから調整
A ごま油 小さじ1くらいから調整 (風味付けなのでなくても良い)
A 片栗粉 大さじ1くらいから調整
卵    なくても良いけどお好みで

[重要] 下の写真のように炊飯器に付けられる蒸し器

炊飯器に付ける蒸し器

[手順]

1. 生姜は薄切りを縦に細切りにしておく。 もしくはみじん切りやすりおろしにして直接豚肉に混ぜてしまっても良い。

2. 豚ひき肉を直径10から15cmくらいのガラスや陶器などの耐熱容器に入れてスプーンなどを使って軽く混ぜる

3. 生姜と調味料Aを豚ひき肉に入れてよく混ぜ合わせる

4. 混ぜ合わせたひき肉を容器の側面に塗りつけるようにしてなるべく薄く成形する。 よっぽど厚くしなければ炊飯時間で問題ないと思うけど。

豚ひき肉をガラス容器につめる

5.  お好みでひき肉の上に卵を落とす

ひき肉の上に卵を乗せる

6. 炊飯器に付けられるタイプの蒸し器の上にガラス容器を乗せる

炊飯器にセット

7. 炊飯器のスイッチを入れてご飯を炊くのと一緒に蒸し調理をスタート

8. ご飯が炊きあがるのを待つ

9. 一応中まで火が通ってるか確認して完成!

ひき肉炊飯器蒸し完成

[雑感]

  • 取り出す時容器がとても熱いので注意
  • ひき肉を柔らかく繋ぐのに片栗粉を使っているのだけど、代わりに豆腐などを混ぜてもよい
  • 最後の写真のようにこういうタイプの蒸し料理は水が入るので、少し味付けを濃いめにしておかないとだいぶ薄味になる。 けど最初は薄めの味付けに作っておいて、味が足りなかったら後で塩を振る方が失敗しない
  • ご飯と一緒に炊かずに普通に蒸し器を使ってもよいのだけど、ご飯と一緒に炊いた方が一手間省いた気分になれる

関連記事

自炊レシピのまとめ

D

セロリのニンニク塩炒めのレシピ [簡単中華]

[概要]

セロリのニンニク塩炒め

セロリを炒め物に。 嫁が以前よく作っていたので中華なのかな。 まあニンニク風味に炒めたセロリ。 シャキシャキとした食感とセロリとニンニクの風味が美味しい。 ご飯が進む一品。

[調理時間]

15分以内

[準備するもの]

セロリとニンニク

2人前くらいの目安

  • セロリ 4本
  • 鷹の爪 1個
  • ニンニク ひとかけ
  • 調理用油 大さじ1以上 (多い方が美味しいけど健康との兼ね合いで)
  • 塩 小さじ半分くらいから好みで調整
  • 調理酒+水 30ml (スーピーな仕上げにしたい場合はお好みで)

[手順]

1. セロリを斜めに1−2mmくらいに薄切りにする

2. ニンニクを縦に細切りにする。 輪切りでも良いけど

3. 鷹の爪を半分に割って種を捨てる

セロリ斜め切り

4. フライパンに油を大さじ1くらい。 もっと多くても良いかも。 中華は油が多い方が美味しい。

5. ニンニクと鷹の爪を弱火で炒めて香りを出す。 うちは電気調理器なので弱でしばらく放置。 ガスだと手早くあっためられて良いと思う。

6. 香りが立ったら強火に。 鷹の爪は辛いやつだったらこの時点で取り出してしまってもよい。

ニンニクを弱火で

7. フライパンがあったまったらセロリ投入。 2、3分強火で炒める。 水分飛びすぎているようだったら少し火を落とす。

セロリを炒める

8. 塩を振って味付け。 小さじ半分くらいから好みの味に調整。 スーピーな仕上げにしたかったら、最後に調理酒と水を少し加えてからアルコールを飛ばす。

9. 完成!

[雑感]

  • 結構ニンニクの香りが立つので、気になるなら少し控えめにしても良い
  • セロリが硬い場合はなるべく薄切りにした方が良い。 長く炒めてもセロリはあまり柔らかくならない
  • パプリカを入れると色合いが良くなる
  • スープのある感じの炒め物にしたい場合は調理酒と水を少し足すと良い。 ドライな感じに炒めても美味しいけれど。

関連記事

自炊レシピのまとめ

D

シェナンドーで1泊二日 〜楽しいトレイルハイキング

前回のシェナンドー国立公園の投稿の続き。 この投稿ではシェナンドーから見える夜景と星空、二つのユニークなハイキングコース、それからシェナンドーに生息する動物について書いていきたい。

夜景と星空観察

この投稿では二日目の出来事について書く予定だった。 しかし前投稿で1日目に夜景と星空を見に繰り出したことを書き忘れたいたのでそれから。

シェナンドー国立公園からの夜景

シェナンドー国立公園からの夜景

私たちはスカイランドのキャビンに宿泊していたので、そのすぐ近くのオーバールックまでドライブ。 とても真っ暗な道になるので、鹿などの動物には注意してドライブする必要がある。 この日はキャビンを出てすぐ近くに鹿の群れがいた。
夜景は都会じゃないのでそんなに派手ではないのだけど、山から見える人の生活という感じでなかなか印象的だ。

シェナンドーからの星空

シェナンドーのオリオン座

またそんな人の生活から視線を空にあげるとこちらもそれなりの迫力の星空。 ただそれなりに人の住居には近いので満点の星空とはいかない。 しかし住宅地に住んでいるのに比べれば綺麗な星を見ることはできた。 グランドサークルのブライスキャニオンで見た星空のようにはいかないけれど

Dark hollow falls滝へ向かうハイキングトレイル

さて一泊二日ということで色々行く余裕があった旅。 いくつかハイキングトレイルをこなすことにした。 私たちはまずシェナンドーで人気の滝の一つDark hollow fallsへ向かうことにした。

シェナンドーのdark hollow falls

水量豊富なDark hollow falls

Dark Hollow Falls Trailheadにそれなりに大きな駐車場がある。 そこから滝にたどり着くまでは片道1kmくらいの短いトレイル。 このトレイルはひたすら下りなので行きは良いけれど、帰りが大変というタイプ。 とはいえ1km程度なので大丈夫。
たどり着いた滝は写真のようななかなかの迫力の段々滝。 滝のすぐ近くまでいけるようになっているので写真撮影にも良い感じ。 ちょっとのウオーキングでなかなかの滝が見られるという良いトレイルだった。

アスレチックハイキング

さてDark Hollow Falls Trailじゃ歩き足りないというトレイル好きの方もいらっしゃると思う。 私の嫁もそうだった。 というわけで私たちは滝を見た後にもう一つトレイルを攻めることにした。 シェナンドーは簡単なのから難しいのまでハイキングトレイルの種類が揃っている。

シェナンドーのトレイル

岩場を抜けるbearfence rock scramble

私たちが向かったのはbearfence rock scrambleというトレイル。 Dark hollow fallsからは車で10分ほど。 やはり駐車場があるけれどこちらは少し狭かったような記憶あり。 車を止めたら道路を渡った反対側にトレイルの入り口があったのだと思う。
写真のように岩場の上を通り抜けて行くようなトレイル。 岩の上だけど道案内のマークが岩に塗られているので迷う心配はなし。 時折少しだけ岩を登る必要があったりしてなかなか楽しい。 良い汗がかけたトレイルだった。 しかし公式の評価もmoderateだし特別難しいコースではない。 途中山の眺めもかなり美しいのでオススメのハイキングトレイルだ。

シェナンドーのbearfenceトレイル

bearfence rock scrambleの高台からの眺め

参考:国立公園の公式案内ページ

熊・鹿・鳥

最後にシェナンドーの動物について。 一番よくいるのは鹿。 結構人慣れしていて、あまり逃げないタイプの鹿。 なので逆に運転してる時は注意が必要。 なぜだか写真が見つからなかった。

シェナンドーの鳥

それから大きめの鳥が良く飛んでいる。 写真に収めるのは難しいけれど、上の写真の時はたまたま長い時間近くを飛んでくれたのだった。

シェナンドーの子熊

道路脇の木の上にいたシェナンドーの子熊

アメリカの場合だとクマは逃げるものではなく探すもの。 グレートスモーキーマウンテンでも目当ての一つになっているけれど、シェナンドーのクマも結構有名。 人を襲わないわけではないので見学に注意は必要だけれども。

さてシェナンドー二日目の午後、まもなくシェナンドーのドライブ旅も終わろうかとしていた。 そんな時道路脇に駐車している一台の車を発見。 こんな何もないところでなんで駐車しているのかと不思議に思う私たち。 よく見ると車から外に出たおじさんが上方向を見上げている。 つられて上を見る。 すると木の上には小さな子熊の姿が。 慌てて嫁を下ろして駐車場所を探すことになった。 残念ながら私が駐車して向かった時にはすでに逃げてしまっていたのだけど、嫁が一応写真に収めることに成功したのだった。

シェナンドーで宿泊したロッジのおばちゃんが言うにはクマに出会うのは珍しくはないそうだ。 とはいえ一泊二日ぐらいだと確実に会えるほどでもない。 私たちはギリギリで出会うことができてラッキーだった。 ケイズコーブでもそうだけど、駐車している車を見つけたら要注意だ。

関連記事

1. 海外旅行記のまとめ

2. シェナンドーで一泊二日 〜日の入り鑑賞とルーレイ鍾乳洞

3. 海外旅行記・グランドサークル 〜ブライスキャニオン国立公園

4. 海外旅行記・アメリカ東部 〜ケイズコーブの熊

D

フィンランドの図書館は子供向け設備が充実している

フィンランドでは子供向けの設備が整っているところが多い。 図書館もそんな設備が充実している場所の一つだ。

ISO OMENAの図書館の幼児コーナー

Iso Omenaの図書館入り口

ISO OMENAの3階のインフォメーションの奥が図書館

さてISO OMENAショッピングセンターでは3階に公共施設が集中している。 例えば、Neuvola(出産子育て支援)、Kela(社会福祉)、HSL(公共交通)など。 その一角に図書館も併設されている。

ベビーカー駐車場

幼児用広場の前のベビーカーの駐車場

さてその図書館を最奥まで進むと幼児用の広場がある。 ベビーカーの駐車場があるので、ベビーカーはそちらへ。 ここは1歳以下から小学生くらいまで幅広い子供層がいる。 ISO OMENAは1階にも子供用施設があるのだけどそちらはやや大きめのお子様が多い。

図書館の幼児向け広場

図書館なので本はたくさん。 椅子の上には大きな遊べるクッション

幼児広場は柔らかいカーペットが敷かれている。 入り口で靴を脱いで中へ。 幼児広場の中には子供向けの本がいっぱいある。 それから遊ぶように大きな柔らかいレゴブロックやクッション、その他色々が置いてある。 他の子供さん達とお知り合いになるには良い場所だ。

幼児コーナーの柔らかいレゴブロック

幼児コーナーの大きなレゴブロックは柔らかい素材

もう少し大きなお子様むけ設備

この図書館は幼児コーナーだけでなく色々と設備が充実していた。 以下はその図書館内ギャラリー。

図書館内漫画コーナー

日本の紹介イベント

図書館漫画コーナー

ちょうど日本文化の紹介イベントをやっていたのかな。 普通の常設漫画コーナーにも日本の漫画がたくさん。 漫画はドラゴンボールなどから最近のワンピースとかまで幅広く置いてあった。 NANAなど少女漫画も結構。 有名どころはフィンランド語の翻訳のものが置いてあったし、日本語のままの漫画も結構置いてあった。

図書館内パソコンとゲームコーナー

図書館のパソコンコーナー

パソコンコーナーは今では大体どこの図書館でもあるのかな。 この図
書館では結構小さめ。 子供達が使っていた。

図書館のゲームコーナー

この図書館はテレビゲームコーナーが付いていた。 日本の図書館でこの手のゲームコーナーは見たことがないような気がするんだけどどうなんでしょう?

図書館脇ビリヤードとテレビゲームコーナー

図書館のビリヤード

図書館にビリヤードコーナーは日本ではないだろう。 いや知らないだけであるのかな? ここにもいくつかテレビゲームコーナーが付いていた。 図書館ってよりは漫画喫茶みたいだな。 こちらのコーナーは遊んでいる年齢層は高め。

図書館内3Dプリンター

3Dプリンター

まさかこんなところで3Dプリンターを見るとは思わなかった。 最近だといろんなところで手軽に利用できるのかな。

図書館内その他設備

面白いと思ったのは一台だけど電子ピアノが置いてあった。 家にピアノがなくても練習ができるということ。 素晴らしい。
最後になってしまったけど普通の本もそれなりの品揃え。 それからCDとDVDのレンタルがあり。

関連記事

1. フィンランドのショッピングモールの赤ちゃん向け設備

2. 海外出産・海外育児のまとめ

D