hiroktsのブログ

IT開発系の勉強会の感想とか雑記とか

Y Combinator のオンラインスクール採択者が語る "Startup School" の教えと学び

書くの遅くなりましたが、2017.05.15にあった表題のイベントを聞きに行ってきました。

atnd.org

ツイートのまとめはこちら

togetter.com

イベントの内容としてはYCのオンラインスクールに参加された2組のスタートアップの方に、主催の馬田さん(『逆説のスタートアップ思考』の著者)が司会となってパネルディスカッションと Live Q&Aを行うという形式です。

質問自体は会場の方からSli.doというサービスで募集されていました。

www.sli.do

メモ

※ 誤りなどがあればご容赦ください。

Mike Eidlin (Perapera Inc CEO) さん

シリコンバレーの最新ニュースやブログが日本語で読めるクラウドソーシング翻訳サービス「Perapera」を運営。

ペラペラ (PeraPera) - シリコンバレーで話題の記事を日本語でお届けするメディア

Kaya Onda (Founder at cocotrek) さん

世界中の人々が、グローバルにおける活躍のオポチュニティが得られるように、キャリア開発用のプラットフォームを開発し、非公開β版で運営中。

  • マイクさん

ペットのSNSの資金調達が当初の来日の目的だった
日本でシリコンバレーの情報をどうやって得ているのか調べたら、あまりにも手段がなさ過ぎた。
自分でキュレートと翻訳してみたら、そっちのサービスのほうがいけるんじゃないかということでピボット。

「ユーザと話せ」
ユーザと話すために1月に引っ越した

  • おんださん

カーネギーメロン大学
だれでも参加できるコミュニティだった

アメリカにいるときに感じた 世界中のトップの人が目指す オポチュニティ スタートアップに限らず

アジアにいる人たちに紹介する 日本にあるオポチュニティを自分のネットワーク(中国、アメリカ)に紹介する

十数人のアーリーアダプター

スクールを知ったきっかけ

オンラインビデオの授業 スクールがあってメンタリングがある YCombinator

何となく前から知っていた。

3,4回くらい応募していた。
アプリケーションするだけで自分の会社のことを考えられる

YCSchoolまたやるのでアプライしたほうがいい

おすすめの講義は?

一つはWhatsappのファウンダーの話

もう一つはアドラー? と 名前忘れたけどファウンダーのかた

ファウンダーのバックグラウンドやスキルに影響される

  • Whatsapp

先に物を作っちゃった
電話にでれるかでれないか みたいなアプリ
全然受けなかったけど、ユーザーの声を聴くことができた
それでピボットすることができた

「ユーザーと話せ」
「人がほしがるものを作れ」

起業家として(顧客の話を直接聞くのは)すごく難しい
人と話すことはめんどくさい

カフェで話す 「火曜日はダメなので水曜日にしましょう」みたいに何が何でも話す

「スケールしないことをやれ」

スタートアップが強いのはスケールしないことができるから
いっぱい動画見ているとパターンが出てくる
Dropbox, Airbnb なんで大きくなったか?

talk to user too much

新しく気付いたこと

企業とは伸びないといけないのにどうやってスケールしないことをやるのか
ユーザーと話すのは何を作るのかを分かるため
わかったら 作れ 出せ
トラクション がでないとき ユーザーと話せ

自分のPeraperaのメトリクス
リテンションいまいちだな、というのはわかっていた。
疲れててユーザーと話したくなかった

でもユーザーと話した
「このボタンが良くない」 「オンボーディングのフローが良くない」
ということがわかった

スケールしない中でも明確にKPIを決めたほうが良い

KPIステージごとに変わる

KPIを決めないとだらだらしてしまう

(質問: KPIをYCのメンターからきかれるのか?)
毎週アップデートをださないといけない

毎週出す YCがいっていること 決めたメトリクスが毎週10パーが伸びていたら当たってるね

YCのメンターは マジックじゃなくて簡単なことを言ってくる オンラインとかウェブで言われたり、書かれていること

だが難しい

周りの人
なるほどな、すごく勉強になる

一番重要だと思うメンタリング

  • 早くローンチしろ
  • プロダクト出したものからフィードバックをもらえ

プロダクトマーケットフィット

実はトラクションが直感的に感じられる

ユーザーから返ってきたもので感じられる

ホロヴィッツが話すPMフィットについて
市場があなたのプロダクトを引っ張ってくるくらいわかる
自分の頭が火山のようになった人たちはレンガを頭にやったらとけてそれをこねて柔らかくできるくらいである

リードホフマン
恥ずかしかったとしてもすぐ出せ

YCのいいところ
フォーカス
何が大切か?
やらないことを選ぶ
毎週10パーセントあげろといわれる
一つだけメトリクスを選んでそれを10パーセント上げる

力のフォーカス サービスのフォーカス
あれもこれもやりたくなる
スタートアップにはそれをやる体力はない
「フォーカスして MVP」

毎週火曜日の夜以外は会わない 怖がっていくか 10パーあがってうれしく行くか

3か月でやっていること 結構自分を追い込んでいる
その状態を続けられたら

メトリクス毎週10パー続けるメトリクス難しい
同じグループオフィスアワーに投資家が入ってくる
どうやって10パー続けるのか

日本では当てはまらないと思ったことは?

中国日本アメリカ
ユーザーインタビュー日本が一番難しい

学生頭いいけどリターンが低いと思われている

YCの主張

ユニコーンを作れ ベンチャー投資のため ユニコーンユニコーンユニコーンっていうカルチャーがない

medium資金調達やりすぎた

成功したらエンジェル投資家になる場合がある

YCombinatorはエンジニアをリスペクトしている
CEO 80パーセントとかを日本でやりがち
エンジニアに50パー渡せ
「信頼のため」
51,49でも信用してないことを示す
3か月遅かったからと言ってその後数年一緒に働く

メトリクスの10パーは本当に厳しい ただ、PMフィットしていればすらすら行く

一見よくないアイデア

学ぶのはすごく難しい
自分がほしいプロダクトを作っちゃう
僕が頭がいいからユーザーはこれ絶対ほしがる と考えてしまう

イデアそのものに対するダメ出しはない
パッションややる気があればやればいい

これを実行するために何をやるのかみたいなことは批判される

一見悪いアイデアは人に伝わらない
どうしたら伝わるのかというのをひたすら繰り返していかないといけない

やらないほうがいいといったことをfounderがやったりする

ユーザーインタビューの中でやることやらないことをどうやって決めている?

ボタンが一つ足りない confuse
直接顧客にインタビューすると、やさしいから「使うよ」っていうときがある
プロダクトを見せる前に 人生に関するインタビューをしたりして 本当にその問題があるのか validateする必要がある

お金を払ってくれるかどうか

そのハードルが高すぎる場合 個人情報を使ってアカウントを作ってくれるかどうか
そういうものはいずれ聞かないといけないけど今じゃないこともある

スケールしないところからスケールするタイミング

プロダクトマーケットフィット
いったことあるお友達は「なったら絶対わかる」といっている

このままのチームではやっていけない気がして、「エンジニア雇わないといけない デザイナー雇わないといけない」と感じた
wantedlyさん 「ほんとにPMフィットしていますか?」ってきかれる
きかれて冷静になった

PMフィットするまではリーンにしておく必要がある (※リーンとはムダ、ムラ、モレをなくす手法。リーンスタートアップそのものというよりもそういった意味合いだったと思う。)

ほんとのPMフィットはなかった企業がある

PSはしても市場が大きくなかった

PMフィット見つけるのは4年で早いほう
それぐらい大変なこと

本当に上手なスタートアップでも18-24か月かかる
逆に自信がありすぎると12か月分しか資金調達しないみたいなことがある

PMフィットを探している段階 いかにローンチするか

次のスタートアップスクールに入る人に向け一言

起業家はローラーコースター
ハイを高すぎないようにロウを低すぎないように
朝起きるまで考えない
スプリントするマラソン

感想

PMフィットが喉から手が出るほどほしいものだということが分かった。
とにかくパッションがすごい。一番重要なことだと思う。
この話を聞いた後にリーンスタートアップの本も改めて勉強してみて、とにかく顧客の話聞くとか、バッチサイズ小さくとか、真実のメトリクスとか、MVPを可能な限り早くローンチとかいろんな考え方が奔流のように頭を巡っている。
つたないメモですが、このメモを何回も読み返したいと思います。

非常に学びが多く、登壇者のお二人と馬田さんやスタッフの方に本当に感謝します。

虚栄の評価基準

リーンスタートアップの青い本を読んでいる

「リーンにとってメトリクスはエッセンシャルだ」という話はこの本を読む前から目にしたり、聞いたりしていた。
「いいメトリクスってなんだろう?」という疑問を漠然と持っていたけど、リーンスタートアップを読んで以下のような印象を受けた。

真実のメトリクスにアカウンティングしろ

虚栄の評価基準とは

  • 総顧客数
  • 登録数

などの累計数値がなりやすい

爆発的に成長するためのUI/UX改善などの施策をやったときに、過去の決断で変わっているのか、施策で変わっているのかがわからない。 もちろん、ABスプリットテストをするなどすれば、判断できることもあるだろうけど。

紹介されているのはコホート分析、つまり顧客が最初に製品に触れた時期ごとに分別されたもので、1回使った、5回使った、有料登録した、などのファンネルの割合がどうなっているのかを見る。 1%で推移していないなら、改善は効果がないことがわかる。

どんな時にでもコホートを使え、というのも往々にして正しいと思うが、顧客の本当の行動をメトリクスにできているかどうかが重要なんだと思う。

そして、その分析ができていれば顧客の話を聞くという行動にたどり着ける

ポエム

僕達は世界をライトウェイトにスクリプティングしたい。

 

だから大きなプログラミングはしないというのは大前提だ。

 

でもそうはいってられないことももちろんある

 

そういうときの考え方に役立つことをRebuildfmでnaoyaさんが言っていて、具体的にはデザインパターンのあの本読むといいですよ、ということだった。

 

地力をつけたいエンジョイ勢、ガチ勢にオススメなんだろう

Ubuntuでintellij IDEAのインストール、アップデート

ランチャーのショートカット情報の更新などで迷ったのでメモ (2017.12.13追記)

jetbrainsからダウンロードしたtar.gzを解凍したディレクトリを配置して、ランチャー用のdesktopファイルを作成するだけです。

/usr/local/にファイルを配置するようにしています。

gist.github.com

とにかくidea最高なので今すぐ使い始めるべき

むろん、pycharmやphpstorm,webstormでもいいです。

理由はいろいろあるけど、強力な補完機能だけでもメリットがコストを上回ってるのが直感的にわかります。

Djangoでformsetを使って、セレクトボックスを含むformにchoiceを注入する

これが必要になった理由

エディット画面で、セレクトボックスを持つformを複数個追加したい。
また、その時の選択肢には単純にchoiceにmodelのタイトルを出すのではなく、タイトルが設定されていない場合はmodelがグルーピングしているものをサマリーして出したい。

コード

モデルではstaticmethodで選択肢となる「タイトルのリスト」を作る関数を作っておく。

gist.github.com

formとformsetではとりあえずchoicesを空に

gist.github.com

viewsで作ったタイミングで注入する。理由としては、modelがmigrateされているの前提で処理を作ると最初からDockerなどでビルドするとエラーが出てしまう場合があるから

gist.github.com

やってることはformsetの中身をイテレートするとformをいじれるのでそのときに設定してしまえ、という感じなのですが結構ごちゃっとしてて忘れそうなのでメモ

とりあえず、うまく行きました。 articleやarticle_groupが増えたとしても選択肢に出てきます。

データ分析、人工知能、機械学習などについて最近聞きかじっていること

タイトルの通り聞きかじって、感じていることを雑にアウトプットします。多少誤りがある場合もあるのでご容赦ください。

スマートホームの技術

Amazon alexaなどロボットやセンサーを使う時代が、未来ではなく、今の話として出てきている
企業がロボットやセンサーを使う、つまり大量のデータを使う時代である

人工知能機械学習 その前に

speakerdeck.com

www.slideshare.net

Developer Summit 2017の講演資料です。上のは直接は聞けてないけど、どちらも面白かった。

とにかく今の時代は機械学習人工知能だ、といったことを考えたくなるが、その応用の前段として、大量のデータを扱うためのデータ分析の基盤が必要。
データ分析の基盤としては企業がすでにもっているデータウェアハウスなどをバッチとして利用したり、ウェブやアプリのログやロボットのセンサーデータなどのストリーミングデータをアドホックに分析できることが必要である。
そのための技術基盤として、Apache Kefkaなどのproxy技術が活用されている。
また、データを生に近いままストアしておくための仕組みとしてHDFSなどでのData Lakeを構築するためにcassandraという分散DBがすでに多くの企業で利用されている。
Data Lake周りの話ではAWSのRedshift SpectrumというS3にデータをホストするだけでSQLライクな仕組みで検索できる仕組みが最近発表されてた。
こうしたデータ分析基盤を構築するノウハウはやってるところはかなり溜まってきており、人気のアプリ等のバックエンドを支えるチームには強さみを感じる。

データ分析を語る上でのスキルセット

結局はSQLベースの分析と何ら変わりがないからそのためにSQLの知識は必須となっている。
PythonのJupyter Notebookなどで生のSQLを書いて実行し、その結果をデータフレームとして読み込んでBIとして使える形のグラフとしてレポート出力することは既に日常茶飯事である。
Jupyter Notebookからはscikit-learnなどを利用してダイレクトにクラスタリングやそこからの機械学習系のライブラリに食わせることも可能。
結局のところ、機械学習や人口知能を語る上ではpythonなどのプログラミングの知識やSQLの知識は必須になってきていると思う。

また、biz側も継続的にレポートして出てくるデータと向き合う根気が必要なので、dev x data x bizの連携が密接に連動する組織作りが一番重要ではないか?
スタディサプリの講演の受け売りですが。

センサーデータと機械学習

みんなのPython勉強会で紹介されていたというH2O.aiマシーンラーニングのプラットフォームについてのお話です。

startpython.connpass.com

MAPRテクノロジー
データエンジニア マテウスさん
ソフトウェアエンジニア マシューさん

例としてロボットの動作の異常検知をあげる
異常があるとロボットの動きがおかしくなるが、本当は異常が起きていても人間の目で分からない場合もある。
そういう異常があるかどうかを機械学習を使えばリアルタイム表示できる。

具体的には、

  1. ロボットのセンサーデータをラズベリーパイに無線データで送る
  2. ラズベリーパイからデータを分析するためにAWSクラスタに送る
  3. AWSクラスタからの出力はARのヘッドセットに出力され、リアルタイムに確認できる

H2O.aiは2の部分のAWSクラスタで処理系として使われている部分である。
データでパターンを作り、パターンを予測できる。
データがちゃんとないとモデルは役に立たない。だからデータが重要。そしてそのための仕組みづくりが重要
Apache kafkaがREST API proxyとしてメッセージキュー処理を行うのだが、そのためのRESTリクエストの仕組みはpythonのrequestsモジュールでかんたんに実装できるとのこと。

機械学習を利用したシステム構築のの実際
最初はとにかくデータを観察する。だからデータ分析ができるためにjupyterなどでのプログラミング+アドホックなデータ分析は必須。
そして、どう活用するか考えて、モデルを作る、仮説を作る。

「異常が出たら予測がほしい」

仮説はとにかく素早く検証する。検討ではなく検証。

センサーを作った人と話して、新幹線などでも使われている加速度センサーを使うことにした
普通のデータ以外の異常データが出たらすぐにわかるようにしたい

教師なしでの学習を行い、正常系の動作から変わったときに異常かどうかを判断する
おかしく見えるけど本当におかしくはない状態もある。
予測が変わったらすぐに異常を出すのではなく、ちょっと待つようにしている

デモムービーで実践が紹介されていた

Q
教師あり 教師なし学習の差はどんなものがあるのか?
A
データによってアルゴリズムと問題を見て判断する。
クラスタリングなどは教師なしのほうがいいけども、基本的には、教師ありのほうが良い
教師ありが使えるなら使うべき
教師ありでラベルを付けるのがコストがかかる
作戦としては教師なしから教師ありを考えるべき

現場では基本的に正常系データしかないことが多い

Additional
最近ではGPUでの分析に対する顧客の要求が高まっているため、このプラットフォームでも全部で使える状態を構築中。(今は一部)

「Pysparkで始めるデータ分析」

BIと機械学習についてのお話 こちらもみんなのPython勉強会です。

田中裕一さん(日本IBM全文検索エンジン R&D

PysparkはApache sparkをpythonを使って利用できる!

分析アプローチのパターン

  • 健康診断アプローチ
    BIや現状の見える化を行うためのもので、サマライズすることがメインの要求になる
    例えば、「どういう顧客が製品を使っているのか」「どういう導線」

  • 探索的アプローチ
    これはセンサーデータの例でも出てきたように、データの中身を探索するときに使う
    基礎集計、機械学習、教師なし学習などで分類
    実際のビジネスでは有料会員化のフローなどを考える。
    「無料会員がどういう経緯を経て有料会員になったのか」などを探索して分析
    離脱ユーザーのカムバックフローなども
    UIUXのためのセグメンテーションで戦略を立てる
    「女性にはこういうUIがうける」

  • 検証のためのデータ分析アプローチ
    定量的な観測
    仮説を立てて検証のフェーズで使う。
    無料の会員を有料に遷移させるためにステップアップ施策
    「通常1000円を300円で使えますよ」という施策を実行したときにどういう結果が出たのか観測する

データ分析ってどういう人がやるのか

  • データエンジニア
  • データサイエンティスト
  • ビジネスアナリスト
  • アプリ開発者

4ロールが協調してデータ分析を行う

Apache sparkとは、

大量データを分散並列インメモリのフレームワーク
大きなデータにたいしてトライアンドエラーHadoop単体では難しかったアドホックな分析が可能になっている
最近はGPUでの分析が話題になることも多いが、こちらも相当有名。

お題 ABテスト

pythonからsparkを使ってデモンストレーションを行う。
pysparkもpandasと同様にデータフレームを持っている

jupyter上でデータフレームとして読み込みを行う

得られる内容としては以下の通り

k-means法をつかってABの対象顧客を抽出

sparkではshowで先頭データを見ることができる
文字列のデータを扱うのは難しいので、MFの性別の文字を変換するなどしてコード化
なぜコード化が重要なのか -> 性別は2値だがアンケートなら数十になることもある

pysparkを使うと分散処理意識せずに使える

無作為抽出を色々工夫しながら行い、K-meansというクラスタリング ラベルデータはなく3分類する
性別利用頻度によるセグメンテーションとAB抽出

大事なのは機械学習クラスタリングして、人がデータを見て意味づけする。
そこから次の施策を考えるための分析をアドホックに行うことができるということ。
抽出のための工夫などもプログラミングのスキルは必須なんだと思う。

感じていること

人工知能機械学習は常に進化していて、ひょっとしたらプログラミングなどの領域も人工知能に置き換えられるかもしれない。
ただその中間地点として、ドメイン人工知能などを適応させる領域には常にプログラミングが必要になるんじゃないかと思う。
もう一つはdev x data x bizのチームビルディングが重要だということ。もちろん基盤も必要だろうけどそれよりもチーム。
アジャイル、顧客開発、リーン、仮説検証。それらのキーワードもしっかり自覚しておく必要があると感じている。
そういう感想をいろいろと感じられたという意味でこのPythonの勉強会やDevsumi2017に参加した意味は大きかったと思う。
結局のところ主体的に機械学習に取り組めていないという意味ではまだまだちょろあまな自覚はあるけれども。

Amazonで「ハッカーと画家」を検索すると「ソフトウェアエンジニアに読んでほしい本○○冊」みたいになってる

タイトルの通り。
だけどどういう検索なんだろう?

f:id:hirokts:20170419095815p:plain