七転八転

よしなしごとを。

2018ねんのおわりと、2019ねんのはじまり

前文

あけてしまっておめでとうございました。今更ですが、今年もよろしくお願い致します。

2018年はどうだったか

仕事は自分の興味とあっているかというと微妙。必要性はわかるので、まあ学んでおいてもよいのではという一方、それだけではどうしようもない感。とはいえ、自分自身何がしたいのか。少なくとも魅力を感じる技術者・技術を尊重するというスタンスは死守する。
仕事の出来については、前提・ゴールを描くという点はまあまあいけるようになってきた一方、ゴールへの至り方がきちんと設計できずに迷走しがちだった。周囲を振り回しがちで反省(現在進行系で燃えてる)。自分自身で仕事を抱え過ぎという指摘もあったのですが、メンバのロールに基づいて設計すると仕方ないのではという気持ち。

趣味:旅行

年始に沖縄までP28旅割でいって「今年はANAプラチナいけるんじゃね!?」といっていた、そんな時期もありました(遠い目)。結局その後一回も飛行機に乗りませんでした(死んだ目)。旅行先は以下の通り。旅行先が近場に集中したのは私の無計画さか、気力不足か。

  • 1月:沖縄
  • 5月:東北(気仙沼→大船渡→遠野)
  • 6月:秩父
  • 8月:北陸(金沢→氷見→城端
  • 9月:群馬
  • 11月:河口湖
趣味:楽器

データサイエンティスト(?)なので、定量的な指標を出すと、楽団への練習出席率(活動期間5月~10月)は13/18(72%)。例年に比べると低かった気もするが記録がなく、今後の推移を見定めたい。去年に比べると、個人練習の量も減ったし、ちょいモチベーション維持に苦しんだ。とはいえ、楽器吹きたいのも事実。

雑感

上記ルーチン的な人生に多少飽きてきたような、そうでないような。あるいはそう思いたがってるだけか。

2019年はどうありたいか

労系

振り回される系シャインとして、かくあるべきか悩ましい。問題解決とか合意のとり方とか、必要最低限のスキルを労で得るというスタンスにして、別途自分で努力したい。困りごとを技術で解決するという大上段のモチベーションはあるのだが、具体的に何がしたいといわれると悩む。

趣味:旅行
  • 飛行機乗りたい。一回くらい海外に行きたい。
  • 行ったことない都道府県にいきたい(通ってもいない:和歌山・宮崎・秋田、通過のみ:岡山・滋賀)。
  • 温泉にいきたい。

新しいことをはじめたい。

タイトルでネタばらしをしない(2017年記事の再掲)

前置き

リバイバル版作成時に、古い記事を上書きするという情弱プレイをしてしまったので再掲)
この記事はまたまた!ぴょこりんクラスタ Advent Calendar 2017 - Adventarのために書かれたものです。

前置きその2

ぴょこりんをフィーチャーするということを念頭に置きました。

本文

鶏肉と玉ねぎですね。
f:id:darumap:20171203194424j:plain:w300

バターとケチャップ(ハインツ)で炒めるとこうなりました。
f:id:darumap:20171203194813j:plain:w300

これは卵ですね。
f:id:darumap:20171203194815j:plain:w300

つらい…
f:id:darumap:20171203194818j:plain:w300

つらい!!!
f:id:darumap:20171203194820j:plain:w300


・・・


・・・・・・























オムライス featuring ぴょっこりん
f:id:darumap:20171203194822j:plain

あとがき

  • ほんとは絵を書くつもりだったが、卵が破れた時点で諦めました。
  • チキンライスが多すぎたのが全ての敗因でした、多分。
  • オムライスを作るのは2度めですが、1回めはチキンライスの上に卵をかぶせるというやる気のない仕様でした。(こっちの方が良かった疑惑はある)
  • オムライスはスタッフ(私)がおいしくいただきました(味は良好)。

Pairwise Ranking Aggregationについて

前置き

この記事はカレーのち ぴょこりんクラスタ Advent Calendar 2018 - Adventarのために書かれたものです。ちなみにこのACが何なのかについては、ぴょこりんクラスタ Advent Calendar is 何? - ぴょこりんブログが詳しいです。

サマリ

  • "Pairwise Ranking Aggregation in a Crowdsourced Setting"という論文に興味があり、実装してみました。
    • Chen and Bennett, Pairwise Ranking Aggregation in a Crowdsourced Setting, WSDM13.
  • これはぴょこりんクラスタ夏の大ハッカソン(仮)の成果です。

本文

論文の内容

データから順序関係を学習することを目的とする。例えば、画像が10枚あったとして、(画像1)>(画像10)>...>(画像8)のような好みのランキングを学習することが目的。
この論文はCrowdSouringによりデータを取得することを目的とする。問題設定には以下のように反映される。

  • 評価者の負荷を鑑み、入力を2オブジェクト間の比較結果(一対比較)の組とする。すなわち画像が10枚あったときに10枚すべての順序関係ではなく、(画像1)>(画像7)のような1対の比較を入力とする。
  • 適当に入力するspammerがいることを前提とする。この評価者はあてにならないみたいことがある。

詳細は論文にゆずるが

  • 比較すべきオブジェクト[\tex:o_{i},o_{j}]について、順序関係が[\tex:o_{i}>o_{j}]となる確率を下記とおき(Bradley-Terry model)

Pr(o_{i}>o_{j}) = \frac{e^{ s_{i} }} {e^{s_{i}}+e^{s_{j}}}

  • 評価者kが順序関係を正しく評価する確率を\eta_{k}

とする。
順序関係をつけるべきオブジェクト o_{1},o_{2},...,o_{N}、評価者K人がいたもとで、
入力データである(評価者, 一対比較結果)の組に対して正則化付き対数尤度
 \sum^{K}_{k=1} \sum_{(i,j) \in S_{k}} \log( \eta_{k}  \frac{e^{ s_{i} }} {e^{s_{i}}+e^{s_{j}}} + (1 - \eta_{k}) \frac{e^{ s_{j} }} {e^{s_{i}}+e^{s_{j}}}) + \lambda  \sum_{i=1}^{N} \log( \frac{e^{ s_{0} }} {e^{s_{0}}+e^{s_{i}}} + \frac{e^{ s_{i} }} {e^{s_{0}}+e^{s_{i}}})
を最大化することで、パラメータ s_{1},...,s_{N},s_{0},\eta_{1},...,\eta_{K}を推定する。
( s_{0}正則化に関わるパラメータ、 S_{i}は評価者iによる一対比較結果の集合)

第一項が対数尤度、第二項が正則化項。
なお、論文では、逐次的な入力に対するオンライン推定についても提案しているが、今回の実装は一括での推定である。

実装

試しに遊んでみるデータとしてsushi preference datasetを用いる。
www.kamishima.net
2種類のアイテム集合に対するデータセットがあるが、今回はAのもの(sushi3a.5000.10.order)を用いる。
これは10種類の寿司ネタの好みのランキングを含んだデータセットである。

0 10 5 0 3 4 6 9 8 1 7 2
0 10 0 9 6 3 7 2 8 1 5 4
0 10 7 0 2 3 8 4 5 1 9 6

1行が1人に対応、最初の0はヘッダ、次は集合の要素数10、以降が寿司ネタ好みのランキングである。
ちなみに寿司ネタのidは

0:えび 1:穴子 2:まぐろ 3:いか 4:うに
5:いくら 6:玉子 7:とろ 8:鉄火巻 9:かっぱ巻

である。

これだと今回の問題設定に合わないので、(情報量は落ちるが)一対比較の組として作りなおす。
github.com

0 0 2
0 1 2
0 5 4
0 8 1
0 4 2

のような(評価者、一対比較結果)の形に変換した。一対比較はもとのデータセットからランダムに2つ選択して生成した。
試しに評価者20人、1人あたり30組の一対比較結果をサンプルして、手法を適用してみた。
ソース下記。
github.com

#評価者が正しく評価する確率
[0.43379004 0.22232044 0.79776574 1. 0.19814816 0.22618328
1. 0.33754379 0.82956798 0.42050427 0.63106899 0.94282202
1. 0.5472771 0.74122849 1. 0.41946646 1.
0.96373038 1. ]
#学習されたランキング:
[7 4 5 1 0 3 2 8 6 9]

とろ、ウニ、いくらが上位とあるように、なんとなくみんなの好みにあった結果になっているように見える。
例として、正しく評価する確率が低い( \etaが低い)評価者の内容を、元データから眺めると、

0 10 0 9 6 3 7 2 8 1 5 4

確かに、えびが1位、かっぱ巻が2位で好みの傾向が異なるので、それっぽく挙動しているように思う。

備考
  • 定式化のすっきり度合がすごい好み。
  • この手法は明確な正解があるケースを前提としているように思い、今回のように評価がばらけるようなタスクだとちょっと違うのかなあと思った。
  • 最適化はscipyで1発だったのでしゅごい。

スマートリモコンの活用と効果検証

前置き

この記事はカレーのち ぴょこりんクラスタ Advent Calendar 2018 - Adventarのために書かれたものです。ちなみにこのACが何なのかについては、ぴょこりんクラスタ Advent Calendar is 何? - ぴょこりんブログが詳しいです。

サマリ

スマートリモコンを買って睡眠環境の改善を図った。ついでに効果測定をしてみた。

施策の導入

私には電気をつけたまま寝落ちをする癖があった。そのまま寝てしまうのがわかっていながら、お布団でスマホをいじったり、タブレットで動画を見ていたりするうちに、気づいたら朝になっているのである*1。さすがにまずいなと思い、面白半分でスマートリモコンを買ってみることにした。これである。

Nature Remo mini 家電コントロ-ラ- REMO2W1

Nature Remo mini 家電コントロ-ラ- REMO2W1

なにができるかというと、

  • スマートフォン等から一括して家電を操作できる。家電のリモコンをスマートリモコンに向けてボタンを押すと、波形を覚えてくれ、以降はスマートリモコンで操作可能となる。という仕組み。スマートリモコン側でのプリセットの機器はあまり多くないので、だいたいボタンを一つずつ覚えさせないといけないのでやや大変。
  • 特定の条件下で、リモコン操作ができる。例えば「XX度以下になったらエアコンをつける」とか「自宅に近づいたらエアコンをつける」等が可能。

ということで、これを使って毎日AM0時になったら、シーリングライトを自動で消すことにした。これで寝落ちしても寝ている間に電気が消えてくれるというわけである。なお、うちのシーリングライトはリモコン操作は可能であるがタイマー等の機能がないため、そこをスマートリモコンで補う形をとった。
これで安眠が約束できる気がする。

効果測定

ということで、施策を導入したのでその効果を測ってみることとした*2。私はfitbitをつけているので、毎日の睡眠時間を記録できている。スマートリモコン導入前後で睡眠時間がどのように変わったのかみてみよう*3

ソースはこれ。
github.com

データの収集は2年前のぴょこりんクラスタアドベントカレンダーでやったので、こちらを参照。ただし、使っているpythonクライアントが対応しているfitbit APIが古いバージョンであるのがちょっと気になる。(単に叩くURLが変わるだけなので自分で直せという話だが)
darumap.hatenablog.com
darumap.hatenablog.com

これを単にpandasのhistを使って可視化するだけである。ばばーん。
f:id:darumap:20181215222757p:plain

あ・・・れ・・・、変わってなくね・・・*4

思ったこと

  • 自分の睡眠時間って、ちゃんと正規分布ライクになるんですね。ちょっと感動した。
  • 平均時間は3分増えたが有意でないように思う。正規分布と思って検定すればよいのかな。
  • ヒストグラムのビンが揃ってないのは気持ち悪いので、揃えないと。。。
  • 電気代は減ってるよね、きっと(LEDなので微小な気がする)

*1:労働がいやで、まだ余暇を満喫したいという抵抗精神の表れである?????

*2:何がとはいわないがよくあるパターンとして、施策を導入するのに障壁が高いのに、その後効果測定をしないことがみられる

*3:やっぱり日頃からデータをとっておくことが大事だと切に思う

*4:なお、平均時間は3分増えた

ぴょこりんクラスタ 夏の大ハッカソン(仮)を振り返る

前置き

この記事はカレーのち ぴょこりんクラスタ Advent Calendar 2018 - Adventarのために書かれたものです。ちなみにこのACが何なのかについては、ぴょこりんクラスタ Advent Calendar is 何? - ぴょこりんブログが詳しいです。

サマリ

10月に、ぴょこりんクラスタ 夏の大ハッカソン(仮)*1を企画・開催したので、振り返りをします。

本文

1.はじまり

それは夏のことであった。
A「今年もPクラスタアドベントカレンダーやるんだよね?」
P「うん」
B「今年も書くネタが足りなくて困りそう」
P「なら、みんなで夏の大ハッカソンして圧倒的成果を出せばいいのでは?」
みんな「よし、そうしよう」
といった感じで、暗黙の了解が生まれた*2

2.企画

が、皆さん*3多忙を極めており、気がつくと9月。
このままでは企画が流れてしまい、私はまたクソ記事を量産してしまう*4焦りから、日程調整を開始。結果、4名で10月に開催することになった。

個人的に考えたポイント。

  • 会の設計

どうせ開発するだけでしょ?というスタンスだったが、意外と色々なスタンスや用語が存在することがわかってきた。開発合宿、ハッカソンもくもく会なるものがありそうで、
 開発合宿:泊りがけで開発する会
 ハッカソン:決められた時間・テーマで、チームや個人でものを作り、発表する会
 もくもく会:個人でやりたいことをきめて、もくもくとやる会
くらいのものだとわかった[要出典]。

会の趣旨を考えると、もくもく会くらいかという話になり、もくもく会となった。各自やることを考えてきた上で、
1日目
朝:やることの発表@貸会議室
昼:開発@貸会議室
(移動
夜:開発+温泉@宿
2日目
朝:発表準備+発表@宿
となった。改めて振り返るとテーマはなかったものの、結局みんな成果物について発表していたのでやっぱりハッカソンだった気がする(???)。

  • 場所

開発合宿付きのプランを選べばよいのかな?と思ったが、4名だと厳しい*5場合が多く、普通に宿を選ぶこととした。気にしたのは以下。
無線LAN:温泉旅館系だと無線LANが整ってない可能性があり、その辺の実績は気にした。経験則より、さすがに無線LANが存在しないところはなくなってきたが、品質が気になることがある。(ひどい場合、一晩まるでつながらないことがあった)とはいえ、ネットでの評判をみるくらいしかできることはないのですが。
部屋の広さ:4名の場合、宿の会議室はなかなか借りられず(最低人数を満たさないor人数割りで高すぎ)、部屋に閉じこもることになる。狭いとつらいかも。
といった感じ。

3.本番

皆さんの圧倒的成果は、きっと後日発表されるでしょう。私の感じたメリット。

衆人環視の効能:私は一人でいると徹頭徹尾だらける人間なので、周りに自らを律せる人間が揃っているのは大事。ちょっとでも泣き言言うと容赦なくみんな煽ってくるので、作業がんばれました。みんなすごいなあ。(なお準備がgdgdで、久しぶりに「かー3時間しか寝てねーわつれーわー」をやった)
集中できる環境:部屋が洋室+和室+寝室という広々構成だったので、ストレスを感じることなく作業できた。
温泉:大浴場みたいな殺風景な感じだったけど、のびのび入れてよかった。

まあ、会の趣旨上、参加者間のインタラクションがなかったのはしょうがない気もするが、なんかあるとよかったかも。

4。おわりに

やっていきましょう。あとこの会の正式名称はなんだったのだろう。

*1:実施済みなのになぜ仮?と思うだろうが、みんなが異なる名称でこの会を呼ぶのである。みんな違ってみんないい。詳しくは本文にて後述。

*2:執筆者の記憶に基づく

*3:ぴょこりんクラスタ各位、私以外は結構忙しいのである

*4:?????

*5:非対応or高くつく

タイトルでネタばらしをしない(リバイバル)

前置き

この記事はカレーのち ぴょこりんクラスタ Advent Calendar 2018 - Adventarのために書かれたものです。
ちなみにこのACが何なのかについては、ぴょこりんクラスタ Advent Calendar is 何? - ぴょこりんブログが詳しいです。

前置きその2

ぴょこりんをフィーチャーするということを念頭に置きました。

本文

玉ねぎです。やっていきます。
f:id:darumap:20181202203547j:plain:w300

フードプロセッサは甘え。
f:id:darumap:20181202203602j:plain:w300

どこからどうみてもみじん切り(つらい)
f:id:darumap:20181202203630j:plain:w300

やりました。
f:id:darumap:20181202203701j:plain:w300

肉をやっていきます。(ボウルは甘え。なお存在しない模様)
f:id:darumap:20181202203820j:plain:w300

整いました。
f:id:darumap:20181202203835j:plain:w300

焼きます。
f:id:darumap:20181202203913j:plain:w300


???
???
































はんばーぐ featuring ぴょっこりん

f:id:darumap:20181202203931j:plain
(ref. カレーのち ぴょこりんクラスタ Advent Calendar 2018 - Adventarのアイコン)

あとがき
  • ハンバーグ2つ焼いた理由は?
    • 髪の毛部分を作るつもりだったが、仕込みの手間にやられて断念した。
  • 日頃料理しない私にとって、仕込みが絶望的に大変だった。
  • あのアイコンは斜め向きなので、ちょっと作りに困った。
  • 作るものはメイド喫茶のメニューを参考にして決めました。

北陸旅行

夏休みに旅行した。

コンセプト

鉄道成分多め。UFOと温泉とご飯(のはずだった)。

旅程

1日め:長野(帰省)→金沢
2日め:金沢→高岡→越ノ潟→(新能町→能町)→氷見
3日め:氷見→城端→(新高岡→上越妙高直江津)→越後湯沢→東京

メモ

1日め
  • 実家から直接金沢に向かう。
  • 夕方、金沢着。以前21世紀美術館に行ったときは夜営業していたので、てっきり空いていると思っていたが、金・土のみしか夜間営業していないことに焦る。
  • 慌ててバスで直行するも、チケットカウンタ激混み・・・
  • コンビニで当日チケットも買えることがわかり、ダッシュで買ってくる。危ない。。。
  • 「起点としての80年代」をみた。現代に向かって抽象度が高くなってくるんだけど、なんとなくぼんやり見てみる。
  • でも、作者っぽさがちゃんとあるのが面白い。
  • 例のプールは当然混んでいた。
  • そのまま近江町市場でご飯。
  • 旅行のときに酒飲まなくなった。
  • 歩いて駅前まで。ホテルに。
  • 寝る。
2日め
  • 時間がありそうなので、兼六園へ。素直に香林坊の方に宿とっとけばよかった。
  • 無料開放中。よきかなよきかな。
  • そのまま金沢城公園へ。
  • 香林坊からバス乗ろうと思ったが、やっぱり金沢駅まで歩ききってしまった。
  • 七尾線羽咋コスモアイル羽咋)→和倉温泉に…と思ったら、なんと七尾線が大雨で運休に。
  • 16時和倉温泉→氷見のバス(わくライナー)が最終であり、14時くらいまでは動かないとのアナウンスあり、なくなく見切る。
  • 三セクをたどって、高岡から回ることに。
  • こっちも危険っぽかったが、徐行運転あるも、なんとかセーフ。
  • 高岡。空いた時間でなにするか考える。明日乗るつもりだった城端線も運休。。
  • しょうがないので海王丸を見に行く。万葉線でのんびり。当然終点まで行く客は私だけ。。
  • 幸いにも雨は小ぶりであった。新湊大橋雄大
  • あまり時間もなく、引き返して氷見線に。
  • 氷見。宿が遠いんだ。。バスも期待できず2kmくらい歩いてしまった。
  • 番屋街で飯くおうと思ったら、店ほとんどしまってるし・・・何故だ・・・。
  • 適当に寿司とか買って(泣)ホテルで食べる。
3日め
  • バスをうっかり乗り過ごし、早足で氷見駅まで・・・
  • なんとかセーフ。氷見線城端線城端駅。
  • 善徳寺とかみて、ふらふらする。 夏が映える。(暑かったけど)
  • どことなく小布施に似ている気がした。
  • あとはひたすら列車。
  • 新幹線→越後はねうま→ほくほく
  • 越後湯沢のぽんしゅ館で利き酒。
  • 帰る。
備考
  • 天気!!!天気!!!!