Diary over Finite Fields

515ひかるの日記と雑文

技術書典7にて『scikit-learnでこなすPoCプロジェクト』を頒布しました

技術書典7にてPDFを頒布してきました。現在は Booth でも販売中です。

515hikaru.booth.pm

ちょっとこぼれ話をここには書きます。

Pipeline クラスを紹介する本ではない

もともと、scikit-learn の Pipeline を中心に据えた記事や本を書きたい、ということは考えていました。しかし、単に道具としての Pipeline クラスを紹介するだけでは足りない、という直感がありました。実際、本書は目次にこそ Pipeline という文字はありますが、タイトルには Pipeline という単語は出していません。この本は Pipeline の使い方を解説した本である、とは思われたくなかったからです。

実際、3 章に書いたように Pipeline の仕組み自体は極めて単純です。その仕組みやメソッドの実装を網羅的に解説したところで「どんな益が(PoCプロジェクトに)あるの?」という疑問には答えられません。その仕組みや実装内容自体に惚れ込んだわけではないのです。1

わたしが Pipeline クラスを "選んだ" のは、PoC プロジェクトを通して踏みぬいた地雷、見聞きした落とし穴を解決する手段として最適だと思ったからです。それは本文にも書いた、

  • 前処理(特徴量エンジニアリング)とコアの学習器は本来はまとめてひとつのオブジェクトであるべき
  • 前処理、学習器は可変であるべき

という 2 つの内容を実現するための手段として選んでいます。今回は "たまたま"2 scikit-learn の Pipeline クラスが選ばれただけで、上記の状態を実現できるのであれば手段はなんだっていいとさえ思っています。

だからわたしは先に課題、問題点に焦点を当て、第 2 章を書きました。どんな技術も課題に対して適用するものであり、技術が発達すれば自動的に課題が解決されるのではありません。よくあるコードで生じる問題に対し、 Pipeline クラスという技術を適用するという構成をとっています。

技術を紹介するだけの本にはしたくない

技術はそれ単独では何の意味もなしません。わたしは数学を学んでいる最中にそのことを痛感しました。正確には当時は技術ではなく、概念とか定義とかいうふうに呼ばれるものでしたが。

いわゆる純粋数学であっても、何かしらの問題意識がありその意識を前提にして様々な概念や手法が生み出されます。定義・概念が生まれたときは何かしらの課題を解決するための道具なわけです。いわんや、プログラミングをや。ソフトウェアもサービスも勝手にできるわけではありません。誰かが課題解決のために労力を払ったから存在しています。3

わたしは技術者ですが、常に課題に目を向けたいと思っています。課題を解決すること、それこそが技術者の使命だとわたしは思っています。技術を高めることも当然重要です。しかし、課題に対して適切に技術を適用できないのでは最終的には価値を提供できません。

こうした哲学が、本書を通じて少しでも表現できていたら、伝わっていたら、とても嬉しいなと思います。

おわりに

会社員になって初めて技術ブログ以上の粒度の文書を作りました。まとまった文書を作るのは大学の卒業レポート以来なので3年半振りくらいでしょうか。

実際に目の前で自分が書いたものが売れていくのはとてもうれしいことでした。買っていただいた方、本当にありがとうございました。

この本に関する宣伝記事はこの記事で終わりです。また何か世に出せるような文書を出したいなと今は思っています。


  1. わたしはこんな記事を書くくらい Pipeline クラスに惚れ込んでいます。しかし、このような複雑な問題が Pipeline クラスで解決できる課題であるとは一見では思えないでしょう。もっと Pipeline クラスの可能性を感じる情報をもっと増やしていくべきだと思っています。

  2. scikit-learn の Pipeline を実装した人が、どのようなモチベーションでそのクラスを実装したのかはわたしは知らないので、実は偶然ではなく必然なのかもしれません。わたしにはわかりません。

  3. 作りたいから作るという人も一定数居るとは思います。

技術書典7にてscikit-learnの本を頒布する予定です

どうも、515ひかるです。

2019年9月22日に池袋にて行われる予定の技術書典7において、本を頒布する予定です。この記事は宣伝記事です。

書籍の情報

  • タイトル: scikit-learn でこなす PoC プロジェクト
  • 形態: PDF A5版 A4に変更。
  • ページ数 57 ページ(校正完了前の現時点、表紙なども含む) 42 ページ(校正完了・サイズ変更後のページ数)
  • 価格: 500 円
  • サークル名: 人形町遊び人(詳細)
  • 頒布場所: え03C(マップ)

以下、この『scikit-learn でこなす PoC プロジェクト』を本書と呼びます。

表紙

表紙は @sub_nira さんに書いてもらいました。今回わたしは表紙を作るつもりがなかったのですが、好意で作ってもらいました。本当にありがとうございます。

f:id:hikaru515:20190916224421j:plain
表紙

目次

※頒布物とは差分がある可能性があります。

f:id:hikaru515:20190916225434p:plainf:id:hikaru515:20190916233032p:plain
目次

どんな人に向けた本なのか

本書は、わたしが PoC プロジェクトの実験を円滑に進めるために実施したことのまとめです。2 年前の自分に渡したい本として書きました。強いて対象読者を挙げるなら、次のような人になると思います。

  • scikit-learnをドキュメントなどのサンプルコードを切り貼りして使っているだけの人
  • 様々な処理が複雑に依存してしまい、ひとつ関数を編集すると他の部分にも影響が出るようなコードを書いてしまうことが多い人
  • scikit-learnのAPIが統一されている恩恵を正直感じたことがない人

一方で、機械学習フレームワークの名を冠したタイトルではありますが、あんまり機械学習の本っぽくないです。

本書を読むべき でない 人がどんな人かというと、

  • 機械学習初学者
  • 機械学習の理論的な側面を学びたい人
  • モデルの精度を追求する方法を学びたい人
  • 機械学習コンペで勝つ方法を知りたい人
  • 深層学習フレームワークに関するコードの書き方を知りたい人
  • Tensorflow や numpy などの低レベルな API を駆使して実装することを仕事にしている人

などです。ふつう機械学習に興味がある人が知りたがることを書いていない本です。自覚はあります。1

どんな本なのか

scikit-learn を使って学習や学習済みモデルの評価をする「コード」に焦点を当てた本です。どのようなコードを書くべきなのか、どんな課題を解決するためにこのように書いたのか、ということを書いています。

学習済みモデルを作るコードはサービスやソフトウェアの1機能を作るためのコードであって、取り扱いがとても難しいと思っています。素人考えですが、こんな風にやるとよくある問題の一部でも、解決できるんじゃないかなと思って書きました。

モチベーション

仕事をはじめ 2 年半を越えますが、 scikit-learn を使って実験を円滑に進めることが難しいな、と感じ続けてきました。昨年度におぼろげに「どうも scikit-laern の Pipeline クラスってめっちゃ使えそうだな」程度の感覚はあったのですが、それを試す機会にはなかなか恵まれず。今年度のはじめに機会があり試してみました。その試した結果を書いた本です。といっても諸々の事情で、試したコードをそのまま持ってくるわけにも、同じタスクを同人誌にするわけにもいかないのでタスクは自分で(興味ないタスクだけど)考えて、そのプロジェクトに対して自分ならこういうコードを書く、というのを綴りました。

ということで(多くの人が興味がないと知っているけど)自分はとても興味がある内容というのを書き上げてひとつの形にしてみたかった、というのがモチベーションです。もし興味を持ってくださる人がわたし以外にひとりでも居れば、正直望外の喜びです。

そのほか

もう一度書きますが、PDF版のみです。見本誌は紙で持っていくとは思いますが、頒布物としては考えていません。2別に進捗がダメなわけではなく、最初からそのつもりでした。3いや、進捗はダメでイベント当日まで一週間切った今も校正が終わっていないんですが。。。今週も原稿追い込みでがんばります。

むすび

この本を書きながらも、わからないことが出てきてググったら過去の Qiita 記事などで自分と似たようなことを書いている記事をいくつも見て、心が何度か折れそうになりましたが、「出ない神本より出るクソ本!」と言い聞かせて頑張ってきました。新規性なんてなくても、わたし自身が良いと思ったものを書けていると思っています。まだ校正終わってないけど...

わたしが良いと思ったものが、誰かにとっても良いものであれば、それはとてもうれしいことです。この記事をなにかのきっかけで読んで、面白そうだと思っていただけたら、ぜひ 9/22 の池袋で会いましょう。

技術書典7は2019年9月22(日)、池袋サンシャインシティ展示ホールC/D(文化会館ビル2/3F)にて。我々「人形町遊び人」のブースは「え03C」です。


  1. 自分は過去にこんな記事を書いているんですが、これの反響がないことからもやっぱり自分の興味は他の人とは大幅にズレているんだなと感じています。 https://qiita.com/515hikaru/items/25b182ecc62dc30d0eb1

  2. たぶんどこかでコピーしてホチキスで留めたものになります。

  3. 技術書典では物理本のほうが好まれることは認識していますが、同人誌初心者だというのと、自分は「初めて」のことが複数同時にやってくると過剰にストレスを感じることを知っているので、PDF頒布であれば初めてのことは少ないだろうと思い一旦PDFのみにした次第です。次回以降どうなるかは不明です。そもそも同人活動を継続するのかも不明。

淡々とした日々

代わり映えのない毎日を過ごしている。

ケガは無事治って、ランニング(というかジョギング)を再開した。

blog.515hikaru.net

筋トレはあんまり変化を実感はしないけど続いている。

強いて言うならテトリス99に熱を上げ始めているが、まぁそれくらい。特に変化がない。この1週間はなんやかんや忙しかったので、余計に変化がない。

www.nintendo.co.jp

本当に余計なことに頭を使っていたが、もういいや。過ぎたことにいつまでも固執するのは良くない。

世界が憎らしくなってきたときにはあいみょんを聴くようにしている。

www.youtube.com

閑話休題

そういえば、本を書いている。同人誌というやつだ。最近宣伝をするのが当たり前という雰囲気を感じているが、全く宣伝する気がない。ちゃんと宣伝をするべきなのは知っている。だけど僕はこのブログで何度も書いているように広告が嫌いだし、その広告を自分自身が出稿するということに猛烈に抵抗感がある。買ったものを褒めるときはAmazonアフィリエイトリンクを貼るのもやめる人間に、自分の書いた本の宣伝なんぞできるわけがないのである。

とかいう戯言も「何いってんの」って思われるだけなのは自覚している。

blog.515hikaru.net

この記事にはとりあえず本の内容は書かない*1。そもそも、まだ完成していない。とはいえ誤字脱字とか不整合はあるけれど一応40ページを越えたひとつの技術文書にはなっていると思うので、いま現在の成果物となっているPDFを頒布や展示をして怒られることはないだろう。

イベントが来週に迫っているというのに、どこか淡々とした感情で過ごしている。楽しみだとも、意気込みも、締め切りが近づいていてヒーヒーという感覚もない。

ただ、無難に時がすぎるのを待っているだけ。

ただ、淡々とした毎日をこなしているだけ。

*1:本当のところ、本当に頒布すべきなのか悩むトラブルが発生してしまい、ほとんど出来上がっているんだけどお蔵入りしようかと悩んでもいる。でももったいないよなぁという気持ちもあり、安い価格で頒布ダウンロード版のみ頒布か、見本誌の展示だけにしようか、などと考えている。

うまいと思ったジンのまとめ

唐突だけど最近うまいと思ったジンを書いておこうと思う。

というのも、日付変わって一昨日、都内にあるジンが多いバーのひとつに行ってきて「やっぱりジンっておいしいなぁ...」と思ったのだ。だから魅力を伝えたり、名前を教えたりしたいのだけど、いろいろなジンを知るわりになかなかすぐに名前を忘れる、あるいはぱっと出てこない。

ということで、ブログ記事に書いとけば忘れてもさっと引っ張り出せるじゃん、ということで書く。なお味については語彙がないのでそんなに書けない。

Greenhook GinsmithsOld Tom Gin

seequor.jp

いきなり買えないものを挙げて恐縮だが、これはおいしかった。ロックで飲んだ。

アメリカのジンらしい。スパイシーで力強い感じがした。3ヶ月以上前に飲んだのでさすがにあんまりなにも言えない。サイトを見ていて知ったがまだ創業が浅いようだ。

わたしはジンをロックで飲むのは珍しくて1、これとカフェジンとあとにあげるSILENT POOLしかない。本当は知っている(と思っている)ジンもロックで飲むと面白かったりするんだろう。

カフェジン

ニッカ カフェジン [ ジン 700ml ]

ニッカ カフェジン [ ジン 700ml ]

みんな大好き2カフェジン。カフェウォッカもおいしい。

ニッカ カフェウオッカ [ ウォッカ 700ml ]

ニッカ カフェウオッカ [ ウォッカ 700ml ]

ニッカがジンを出すんですよ〜と当時通っていたバーテンダーさんに教わって、発売してわりとすぐくらいにロックで飲んだ。ジンをロックで飲んでおいしいと感じたのはこれが初めてだったと記憶している。

もうどこでも飲める3ので、てきとうにジンがありそうなバーに行って飲んでみればいかがだろうか。ジンをロックで飲んだことがないという人にも、ロックで飲んでみてほしい。逆にこれのカクテルを飲んだことないかもしれない。

ルジン

この瓶がかわいいのでもう優勝だよね。ルジンです。わたしの知り合いなら一度は耳にしているはずのジンの名前。

わたしはジントニックで飲むのが好きです。そろそろ帰ろうかな〜ってときに飲むのがいい感じ。

SILENT POOL

これは一昨日のシメに飲んだもの。ロックで頂いた4。ちょっと酔っ払っていて正確なことがあまり思い出せないんだけど、毒々しさがなくて、とても優しい味わいだった気がする。

季の美

最後はなんやかんやいってこれかあという季の美。大人気のジンなので今更取り立てておく必要もないですが。

季の美 京都ドライジン 箱入 [ ジン 700ml ]

季の美 京都ドライジン 箱入 [ ジン 700ml ]

ジントニックでいただきました。美味しい。自分が京都に住んでいた時期がある、というのもありなんというか色々と思うところがある酒です。たまには飲まないとね。

おわりに

いかがでしたでしょうか。(書きたくなっただけです)

タンカレーとかボンベイサファイアとかがないやん、というのは承知しているが、そのあたりはメジャーすぎるので備忘するまでもないから書かなかった。あと最近飲む機会がない...

タンカレー No.10 は飲みたいかも。

夏はそろそろ終わるが、ジンはいつでもおいしいので夏が終わろうが冬になろうがジンを楽しもうと思う。


  1. だったらトップバッターにあげるなよ、という話はある。

  2. とわたしが思い込んでいる

  3. というと言い過ぎな気がする。

  4. あれ、ロックで飲んだものばかり紹介しているな…

悲しいなぁ

ああ、悲しいなと思う。過ぎ去ってしまった8月への感想ではないし、季節性のものではない。一過性のものでもない。

とても残念なことがあった。ただただ、残念だとしか言いようがない。

割り切れる真実

物語は何かしらの結末を迎えるけれど、現実世界ではそうも行かない。結末らしきものがあったとしても、この世界は望むと望まざるとにかかわらず続いてしまうし、何か明瞭な真実があるわけでもないし、何か明瞭な終わりがあるわけでもない。

正義も悪も所詮は相対的なものでしかないし、むしろ絶対的なものを定めてはならないのだというのが歴史教育から得られる教訓のひとつでもある。

そんなことを、Netflixのドキュメンタリーを見ながら考えていた。

www.netflix.com

今となってはなにがあったのか、もうわからない。

真実なんてものがあるとするならば、それは虚構の中にしかない。真実の存在自体が虚構とも言える。なにを言ってんだ。こういう何か言ってそうでなにも言っていない言い回し高校生の時に好きだったけど、今でも油断すると出てくる辺りなにも成長していないのかもしれない。

それはさておき。

結局、つい僕も欲してしまう真実というやつは、実際にはどこにもない。たとえそのドキュメンタリーで取り沙汰されている殺人事件の真犯人がわかったとして、僕の心はすっきりするかもしれないけれど、それは別に何の解決にもならない。それに「それが真実である」保証なんてどこにもない。

僕は名探偵コナンをみるのは好きだけど、あれは伝統芸能だと思っている。犯人を賢い子供が暴けば、事件の全貌は芋づる式に明らかになる。でも実際そんな事件なんて存在しないし、それに彼が暴いている真実とやらは辻褄の合う説明でしかない。

現実の事件においては、誰もが自分の見地から辻褄の合う説明くらいできるものだ。議論を戦わせている二人ともが辻褄の合う説明をしていて、そのどちらにもそれなりの信憑性と説得力がある状態というものはそんなに珍しくないだろう。僕は模擬裁判みたいなものを聴いた時に、そういう議論を聞いたことがある。

そもそもの問題は、殺人事件にしろ麻薬取引にしろ、犯罪が多い街であるということだ。良識のある市民は犯罪のない(あるいは少ない)街を望んでおり、そのために戦っていたのは果たして誰だったのだろうか。とはいえ、戦っているからと言って嫌疑をないことにしてもいいのだろうか。やはりどちらも正しいし、どちらも完全には正しくない。

割り切れない現実

正しいこと言っているけどムカつくことだってあるし、間違っているけれど受け入れてしまうこともある。誰にも悪意はなかったはずなのに、残念なことになってしまうこともある。

「無能で十分説明されることに、悪意を見出すな」という言葉がある。認識の齟齬があったとき、おかしな質問が意見をぶつけられたとき、何かしらの問題1のサインだと認識している。故意に(言い換えれば悪意を持って)引き起こされたことかどうかの判断は先送りにして、なにがその問題を引き起こしているのかを考えなければならない。本来は。

今回はそれさえも叶わなかった。なにがそういう状況に追いやってしまったのか、もはやわからない。

怒ってなどいない。とても悲しい。

どんな理由であれ、そんな状況が引き起こされてしまったことが。そんな状態に知らぬ間に追い込んでしまっていたことが、とても残念でならない。


  1. 『エンジニアリング組織論への招待』の認知の歪みに相当すること。

足ケガした

blog.515hikaru.net

上記のような記事を書いておいて、出落ち感甚だしいが、早速ケガをした。歩けるのだけれど「歩けなくはない」みたいな感じで右足のかかとが痛い。ずっと立っていたり、誤って負荷をかけ続けてしまうと痺れるような感覚を覚える。調子乗って走りすぎたのかなと思うも時既に遅し。

普段は徒歩通勤なんだけど電車通勤のほうが歩かないので、今朝も電車通勤をしたのだけれども、地下鉄とかいうやつ階段しかない箇所が多すぎて足への負荷は結局徒歩通勤と変わらないんじゃないかと思った。そして下り階段がキツい。とにかく右足のかかとに気をつけて歩くしか無い。久しぶりにエスカレーターに並ぶ人の気持ちを理解した。

結局退勤は徒歩で。家に帰ってからはずっと足を休ませていた。通勤だけでなんやかんや毎日8,000歩も歩いてしまったようだ。足をケガした人にやさしくない街だな、いや知っていたけど思い知らされたなという感想。

あとはなんだ、ちょっと前に突然誘われてサマソニ行った話とか、あいみょんいいよねって話とか、夏夜のマジックっていいよねとかあるけど、まぁ書かなくてもいいんじゃないかと思う。とりあえずケガ直したい。治ったら3日に1回は積極的に休むようにします。あとストレッチをもっとていねいにやります。


indigo la End「夏夜のマジック」

どうでもいいけどわたしはYouTube滅多に見ないんですが、自分のブログ記事とかにはちょいちょい貼ってる気がする。

運動を始めた

あまりになにも書かないので、久々に近況報告という形でも。

なぜか運動を始めた。モチベーションは特にない。やっていることは簡単な筋トレとランニング。

筋トレは腕立てと腹筋と背筋を 15回3セット/1日 って感じ。特にノルマとかは課していない。課すと達成できなかったときにやる気を失いそうなので。ただ0回はやめようということだけを意識している。といってもなんかいきなりやりすぎたのか少し腕が痛いので1日くらい休んだほうが筋肉をつけるという意味ではいいのかもしれない。

ランニングは今週から始めた。お盆だがわたしは普通に仕事なので*1、仕事から家に戻り、すぐに着替えて10分弱走る & 10分くらいクールダウンで歩くというのをやっている。

運動をするのなんて猛烈に久しぶりだが、自分がなにに駆り立てられているのかよくわからない。たぶんPowerBeats Proを買ってしまったせいかと思う。

Powerbeats Pro完全ワイヤレスイヤフォン ? ブラック

Powerbeats Pro完全ワイヤレスイヤフォン ? ブラック

ランニングをするときは音楽を聴いている。最近プレイリストを作った。iPhoneを持ちたくないのでApple WatchからBluetoothでPowerbeats Proに流している。

今は普通にApple Watch標準のワークアウトアプリでランニングの記録をしている。おかげでApple Watchの消費カロリーの目標を余裕で達成できるようになった。Nikeのランニング用のアプリがあるみたいなので、それも使ってみようと思っている。

あと走っているせいか、最近やたら眠い。日付変わる頃には眠くて布団に入ってしまう。26:00くらいにならないと寝られなかったので大きな変化を早くも実感している。

ジムに行くとかは今の所考えていない。家で寝っ転がっていて「暇だなー」と思った時に腹筋とか背筋とかストレッチをしてみたら、思いの外雑念がなくなって良いのではないかと思ったというだけの話なので、何か目標があるわけでもないし、すごい筋肉をつけたいわけでもない。

その他

あとはなんだろう、エチケットカッターなるもので鼻毛をきったらくしゃみが止まらなくなった話とか、若干部屋を模様替えしたとか、映画よこがお見たとか、どうでもいいことばかりな気がする。

何か書こうかなと思えることがあまりない、ということを毎回書いている気もする。

*1:IT業界ではそんなに珍しいことでもないと思う。知らんけど。