先日の出版イベントのレポートを書いて頂きました
karino2
先日の私の本の出版記念トークのレポートをdex.fmでおなじみの@hydrakecatさんに書いて頂きました。
今月のWEB+DB PRESS Vol. 100に掲載されています。
http://gihyo.jp/magazine/wdpress/archive/2017/vol100

なんか凄い褒められていて照れますね。
本もみんなこのくらいブログとかで褒めてくれよ、とか思ったがおいといて。

自分の経歴とかは隠している気は無いけれど、あんま表で語る機会もこれまで無かったので、今回のイベントでは、意図してなかったけれど「お前誰だよ」感はだいぶ緩和されたのかな、と思います。

ここ三ヶ月はディープラーニングのお仕事してるのでその話ばっかりですが、15年とか20年とかやってると、気づけばいろいろやってきたものですねぇ。

もともとあまりtwitterやらイベントやらで有名人になりたいとは(少なくともプログラムでは)思ってないけれど、たまには歳相応の露出があるのも悪くないな、と今回本を出版してその派生でいろいろあって思いました。
まぁ本書くのは大変だったのでそんなしよっちゅう書きたいとは思いませんが^^;

ガジェット体制について考える
karino2
ギャラノとKindleの二台持ちは「これだよ!」って感じがする。
でも、コードを読んだりpdfの論文読んだりするのはちょっとつらい。
また、ページの行き来がめんどくさい。

ここで10インチWinタブを入れると、確かに目的は達成されるのだが、「これだよ!」感は劇的に低下する。
Windowを複数出して使ってる時と全画面で本を読んでる時はちょっと気分が違って、Window使ってる時にカフェとかでちょっと取り出して読む、というのはかったるい。
本読む時はスクリーンロックとか要らんのだが、PC的な作業する時はロックが要る物が入ってしまう。dropboxとか。
そしてちょっと取り出すって感じでも無いんだよなぁ。

ちょっと取り出せてページめくりとかも頑張れるという点ではKindleFireもそこそこ。
で、KindleとはかぶってるのでKindleFireとスマホ体制にして、10インチのWinタブと組み合わせると、なんか10インチWinタブとFireがかぶってる。

KindleFireの所をもっと軽くて8インチのタブレットにすると、PCの役割をもうちょっと減らせないだろうか?
論文読みとかは8インチでいけたりしない?

そもそもスマホ要るのか?という話もあって、スマホが無いとtwitterとかやらなくなるんだろうけど、別にいいんじゃね?という話はある。
8インチタブレットにSIMさしときゃいいんじゃね?的な。

AndroidStudioをクラウド側に持っていければもう8インチまでで生きていけるような気もして、それなら8インチタブ一台で全部頑張れるような気もする。でも8インチでAndroidStudioは辛いか?

スマホと10インチで頑張れると良い気もするが、Winタブはダメな気がする。
Galaxy Tab A with S-penの10インチとギャラノの2台体制とかでどうにかならんか?
AndroidStudioはクラウド側に入れて。
でもやっは10インチは8インチとして使うのは辛いんだよなぁ。

うーん、このなんか違う感をどう解決したら良いのだろうか。

今更Tensorflowの論文を読んだ(素晴しかった)
karino2
複数グラフィックスボードとか複数マシンで学習がどれくらい早くなるか知りたい、とか職場で話題になり、軽く調べるとこの手の様々な環境でリソースを使い切るのが結構大変。
Googleはどうやってるのよ!?と聞いたら以下のペーパーを紹介される。

TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems
https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/45166.pdf

これは2015年の割と昔の話題なのだが、分散どうこうよりも、そもそものTensorflowの内部解説として良く書けていて驚いた。これまで見た中で一番分かりやすく詳しく書かれていたよ。こんな文書があったのか…

複数のtf.Deviceにグラフがまたがる時は分離してプロキシノードが出来るとか、そうそう、こういう事を知りたかった!という内容。

ただ結構多くの重要な事が「社内にはあるがオープンソース版には入れてないぜ」とか書いてあってずるい…って気持ちになる。
一回カラ実行して割り当てるとか凄い便利そう。

Tenrflow自身については大分理解が進んだので、もうちょっとちゃんとソース読んでみたい気になった。

自分への期待値はもうちょっと上げたいなぁ
karino2
歳を食うと、自分のアウトプットが絶対的にはしょぼくても以前よりは相対的には良くなる。
さらに現実のいろいろな事とぶつかってる過程でだんだんと自分への期待が落ちていき、この落ちていく期待とアウトプットの向上から割と自分の人生やらアウトプットやらに満足しやすくなると思う。

過剰な自分への期待で押しつぶされてしまうような状態では人生は生きにくかろうと思うので、ある程度調整されるのは健全な事のようにも思う。
日々が幸せなのは良い事だ。

ただ、以前よりはある程度実力がついているから、以前の、より力が無かった頃に調整されてしまった自分への期待は、過小になりがちな事もある気がする。
また、第三者から見るとそうした調整はされてないので、なんだか凄いしょぼいアウトプットのくせに自分の成功の秘訣とか語り始めてる風に見えて、大変みっともない事もある

自分の印象としては、自分はもうちょっと自分に多くを期待するようにした方が、ちょうど良い感じになるんじゃないかなぁ。
という事でもうちょっと上げても良い気がする。

ところで、自分への期待値ってどうしたら上がるのかね?
うぉ〜!俺はやれば出来る子!とか言ってるといいのか?
柔道部物語の俺って天才だぜぇ〜メソッドみたいに。

お仕事二ヶ月が終了
karino2
二ヶ月目は出版記念イベントをやったり風邪を引いたりして、体感的にはすぐ終わってしまった。
労働意欲という点では体感的にすぐ終わるのはありがたい話だが、貴重な労働意欲を消費して労働一ヶ月した分のアウトプットが出ているか?というと不安もある。

なお、風邪はまだ多少咳が出るがもう大分いいかなぁ、という位。
体調が悪いとQoLも低いし良い事無いので、治ってきたのは嬉しい。

お仕事は実務的な奴が意外と奥が深く、当初一月くらいで片付くのを期待してたのがほぼ三ヶ月全部かかってしまうんじゃないか?くらいの感じになってきた。
内容的にはDeep Learningをちゃんと実サービスに持っていく時の、デモと実際のギャップを埋めるという物で、これは経験として結構意義は感じているので、そんなに不満も無い。
なかなか新しい発明もあるし、モデルを持ってきて動かすだけ、よりは大分頭使ってる感じはある。

ただ、もう一つくらい研究的な事やりたかったなぁ。
三ヶ月だとどうしてもタスクの手強さの分散とかの影響を受けちゃうよなぁ。
論文一本くらい書きたかったが、あと一ヶ月でそういうネタをちゃんとやるのはなかなか難易度が高い。
この辺は自分の実力不足を感じる所。ぐぬぬ。

そろそろ仕事が終わった後の事も考え始めないとねぇ。

kerasのソースコード読み実況動画を作ってみた
karino2

kerasのソースを読みながらそれを実況する、という動画を作ってみました。

- Keras01: sess.runの呼ばれ方を追う(ソースコード読み実況) https://www.youtube.com/watch?v=j3XcXsh74n8
- Keras02: tensorflowのグラフの作られ方を追う(ソースコード読み実況) https://youtu.be/tpDEdCEc4kU


見直してはいませんが、結構面白い物が出来たんじゃないか?と思っています。どうでしょう?


背景:

最近将棋のyoutubeの実況で、「アゲアゲ将棋チャンネル」というのを見ている。
元奨励会の個人の方がやっている実況なのだが、これが凄い将棋の実力を背景にテンポ良く解説していく感じが、動画のコンテンツとして面白い。

そこで私も、自分の得意な分野でなんか実況やりたい!と思う。
だが、アプリ開発実況とかではそう短時間で結果も出ないし難しいよなぁ、と思っていた所、先日、本の出版イベントでコードを読むのを少し実演する機会があった。
コード読みならある程度簡単な奴ならコンテンツになりそうだな、という気がしてやってみました。

以前からコード読みはいろいろやっているのだけれど、ブログにするのが大変かったるい、という問題があります。
もっと気軽にコード読みの過程を公開出来ないものかなぁ、と思っていました。

ぶっつけ本番の実況だと、あんまり「うーん」とか悩んでばかりでは成立しないので、ある程度読むのが大変なコードではうまく行かないな、という気がしたけれど、kerasくらいだと割といい感じに成立しているんじゃないか、という気がします。

最初に読んでおいてから実況すると難しいコードに対してもやれるとは思うのだけど、それはちょっとずるっぽくて面白く無いなぁ、と思い今回は基本読んだ事無いコードに対してやっていこうと思っています。

結構反響あったら他のコード読み実況もやっていこうかなぁ、と思うのですがどうでしょう?


別に最先端じゃない難しくないDeepLearningでも、出来る事はたくさんあるんじゃないの?(あんま無い)
karino2
機械学習の仕事は、最先端じゃない奴を実サービスに持っていく、というのは、ごく少数の自明な応用の類以外では難しい。
というのは、数年前まではかなり自明な類の応用くらいでしか使いみちが無かったからだ。そういう応用はむしろ凄く例外的で、ほとんどの会社で自分のドメインに偶然それがあるなんて確率は無視して良いレベルで稀だ。
それなりに多くの所で実際に使い物になりそうだな、と思える所まで来たのは、2014年あたりからで、一線の研究者じゃない人がそれを応用出来そうな所まで来たのは画像回りでは2015年くらい、自然言語処理は去年とか今年というレベルだろう。

だから研究的興味とかわざわざ難しいことやってるという訳じゃなくて、今は使い物になりそうなのが先端のそばにしか無いのだよな。
もともとかなり無茶な問題を、人海戦術で片っ端から、凄く問題依存で汎用性の無さそうなトリックを片っ端から試して使えるのを探している、という状態な訳で。
他人が試したトリックがそのまま使える事は無いのだが、それらのトリックをたくさん知ってると、いろいろ試した時に自分の問題に使えるトリックをたまに編み出せる、という感じになってる。

数年後には状況は変わるかもしれないけれど、数年経てば今のカッティングエッジもこなれてもっと庶民でも使えるんじゃないか、と思い始めてから5年くらい経って、むしろ状況は悪化してる。
今の所待ってるとコモディティ化が進む、と期待する根拠は無い。今SVMがブラックボックスで使えるようになりました、と言っても、誰も見向きもしないよね…

昨今の問題がなかなか研究的なやり方から抜け出せないのは、本質的にはニューラルネットの不安定さに起因している。
でもこんなに皆がニューラルネットをいろんな問題に適用しようとしてるのかと言えば、不安定だからいろんな問題に対して偶然解けるのを探せるポテンシャルを持ってる、というのが理由だ。この驚くべき不安定さこそが、驚くほどいろんな所で応用ができるポテンシャルを持つ、本質的な所なのだ。
でもこの驚くほどの不安定さは、触ってないと良く分からんのだよね。だから偶然うまくいく、ラクダのコブのちょうど上で偶然バランスを取る事に成功したものだけで、偶然うまく行く凄く希少な例外だけ(=デモ)を触っても、実サービスに持っていく事との距離は全然分からない。
jspでペットショップのサンプル動かしたからって、コンシューマー向けのオンラインショッピングサイトはそう簡単には作れないじゃない?

この不安定さは我々がこれまで見た事のない新しい要素で、これまでのシステム開発の常識のかなりの部分に凄まじい影響を与えるもので、全然違うやり方でやる方が良い、と思うくらいにいろいろな前提を覆す。
で、それは非常に研究に似てるので、研究のようにやりましょう、というのが今のコンセンサスなんじゃないか。

プログラマが実務で偶然隣のチームのデータ分析の人と話すと、システム開発について凄く素人なのを知る機会は多いと思う。
彼らは本当に素人みたいな事を言うだろうし、結果として素人のような失敗もするだろう
でも、だからといって自分が彼らより問題を理解してる、とは限らない。ほとんどのプログラマは、昨今のデータ分析界隈で直面しているレベルの不安定さには触れた経験は無い
例えるなら、中規模くらいの開発をしなくては行けなくて、でもwebアプリの開発を始めたら二週間後にはWin32のデスクトップ開発に変更になり、その二週間後にはAndroidアプリ開発になってるようなものだ。

そして驚くべきは、こんなこれまでの常識では全然実サービスまで辿り着けそうも無い環境で、全くこれまでとは違うアプローチで、最近は結構実サービスにこぎつけてる事である。
自分もそういう仕事をしている。
人間は意外と難しい問題も解けるんだなぁ、と驚いている日々。

数学の話を英語でする(のが下手)
karino2
トヨタの偉い人も昨今は日本語だけで必要な人材は集められないって言ってた!

という事で、職場では結構英語で喋る機会多いんだが、なんか良く詰まる。
もともと英語ペラペラって訳でも無いが、そんなストレス感じるレベルでも無かったはずだが…と考えてみると、内容が数学寄りなせいなんじゃないか、と思い当たる。
思えばあんまり数学とかをフォーマルに英語で話し合うって、これまでやった事無かった。学生時代はそもそも海外で活躍する所まで行ってないし、社会人になってからこの辺の話をする機会は無かった。
そりゃ出来ん訳だな。

プログラムのトピックはそれなりに話す機会はあったのでコーディング回りの表現はそれなりにあったから似たようなもん、と無意識に思っていたが、数学は微妙に違う表現がある。
聞く事はCourseraとかyoutubeの動画で聞いてきたので言われれば分かるけれど、あんま口からすぐは出てこない。
考えてみると詰まって当然だよな。

幸い職場で話す相手は日本語も日常会話くらいなら結構出来て下手な英語と話すのにも慣れているので、そんなには困ってないけれど。
For all epsillon greater than zero, there exists…くらいはスラスラ出るようになっておきたいなぁ(さすがにこれを使う機会は多くは無いが)

何故手持ちのWinタブのペンはほとんど使わないのだろう?
karino2
働いている時は金を多めに使う事で労働意欲を高める方針でいる自分としては、8インチのタブレットでも買おうかな、と思っている。
そこで8インチはペン付きかどうか、を考えるにあたり、手持ちの10インチのwinタブレットのペンは何故あんま使ってないのかを考えてみようと思った。

持っている端末はDynabook Tab S 90という物。
10インチのWindowsタブレットだが、ペンは全然使ってない。
一方で6インチのギャラノ3のペンは非常に良く使っていて、しかも画面の狭さは辛いなぁ、と思っている。
なぜ10インチのタブレットを持っていながら使うのは6インチの方なのか?

幾つかの複合的な要因がある気がしていて、どれが効いてるのかは自分でも良く分からない。

1. ペンのずれとか精度がいまいち
2. OSがwindowsなのがいまいち
3. アプリがタブレット用に作られてないのがいまいち
4. サイズが大きすぎる

-ペン精度
自分が最近でペンを使う一番の部分は数式とかを書く所。
でもDynabookTabのペンはずれるし、細かい文字が全然書ける感じじゃない。ギャラノの方がずっと文字が書ける。
これが根本的な理由な気もする。
DynabookTabのペンは結構良いと聞いて買った端末だが、自分の手元のは少なくともギャラノよりは遥かに悪い。

もしこれが原因なら、同じようなスペックの端末を買い直すとペンを使う可能性はある、という事でもある。
これなら選択肢になりそうなタブレットならどれを買っても使う事にはなりそう。

- OSがwin +アプリがタブレット用じゃない

この2つはたぶんセットだと思う。
アプリに多少タブレットUIモードがあるくらいでは解決しない気がする(改善はするが
例えばメニューとかファイルダイアログとか、細かい所でタッチで使いにくい要素が出て来る。

また、範囲を指定してMeatPieDayに送ったり、imgurに送ってしたらばに貼ったりするのが主な用途だが、簡単にこれが出来ない。

これの問題だったら、例えば10インチのGalaxy Tab A with S-penを買えば使う、という事になる。
逆にraytrekタブではまた使わない、という結果に終わる。

- サイズが大きすぎる

10インチはデカすぎる、というのはある気がする。
いつも手元においておく、という感じじゃないので、計算したい、と思った時に手元に無い。
例えば職場で計算したい、と思った時に家の棚に置きっぱなし、とかが良くある。

サイズの問題なら8インチのを買ってみる価値はある気がしている。
逆に10インチのGalaxy Tabでは使わないという結果になる。

うーむ、ペン付きタブレットを買うべきか、ペンなしの8インチを買うべきか…

Androidを支える技術、出版記念イベントやります
karino2
https://connpass.com/event/60607/

Androidを支える技術、出版記念イベント(テックトーク)
- 日時: 7月14日 19:00〜21:00
- 場所: 恵比寿ガーデンプレイス12F クックパッド社

自分のブログでアナウンスする前にいっぱいになってしまってますが(^^;

内容としては本書でどういう事が言いたかったのか、というストーリー的な話と、それぞれの場所で書こうと思ったが書かなかったトピックやその理由などを、自分のこれまでのプログラマの経歴と絡めて話していこうと思っています。
AndroidのGUIシステムとActivityのライフサイクルについてのインターナル解説、という内容になります。
また、その過程で、この本書くのがどのように大変だったのか、という話などもしていきたいと思います。
Binderに関してもあれだけフリーのebookで書いた以上は何か言いたいですが、時間的に入りそうかどうかで切るか入れるか考えます。

私にあまり客観的でフェアな話とかを期待されているとも思えないので、自分の好きな事を好きという感じの話をしていこうと思います。
綺麗な資料を作って無難に話すよりは、「ようするにこういう感じ」という、あまり建前の無い話にしていきたい。

本書で扱ってない話もするつもりではいますが、より深い話というよりは、本文を読んでいると見えにくくなりがちな章をまたいだ全体的な話を重視したい気でいます。
本書を読んだ人向けの話のつもりですが、読んでない人がどういう本か想像出来るような内容に出来たらいいなぁ、とも思っています(出来るかは未定)。

イベントの人数に関しては、もうしばらくキャンセルの様子を伺った上でもう少し近い日付になったら50人くらいに増やすかもしれません。

?

Log in

No account? Create an account