yukiyoshisato's blog

とりとめのないめも

日本ディープラーニング協会(JDLA)のG検定を受けました。

本日、日本ディープラーニング協会(JDLA)が主催するG(ジェネラリスト)検定を受験しましたので、雑感を述べてみたいと思います。

G検定とは何か

www.jdla.org

JDLAの提供する資格試験にはG検定とE資格という二つの種類があります。

G検定

ディープラーニングの基礎知識を有し、適切な活用方針を決定して事業応用する能力を持つ人材

E資格

ディープラーニングの理論を理解し、適切な手法を選択して実装する能力を持つ人材

ディープラーニングを取り巻く主要な2種類の登場人物を育成していこうという狙いです。いわゆるシステム業界で分かりやすい言葉で言えば、「ユーザー」と「エンジニア」です。

エンジニア側はともかく、ユーザー側のお話としてAI界隈でよく聞く話で、「AI使ってなんかやれ」とか「金払ってデータもやったのになんで精度出ないんだ」とかAIのことを何もわかっていないのにこういうおかしな事を言う人が出てきてしまうと、うまくいくものもうまくいかなくなってしまいます。どんなにエンジニアが努力をしても、そもそもAIで解くべき問題でもなければ、いくらお金払われても何の役にも立たないようなゴミデータばかり出されても、こればっかりはどうにもなりません。

恐らくそういった残念な人が出てくることを抑止したいという狙いもあってこのG検定ができたのかな…?という気もしますね。

なぜ受けたのか

私は今、東京大学松尾研究室が提供する寄付講座である、Deep Learning 基礎講座を受講しています。この講座のレベル感は恐らくE資格の方に当たると思います。この講座では高レベルなライブラリを使わずに、自力でディープラーニングのモデルを開発できるようになることを目指していて、実際に演習ではそういったことをやっています(今のところ私はコピペしてなんとか動かすのが精一杯ですが)。

でも、ふと思ったときにディープラーニングで何をしたいのかという点について、自分の中でもまだあまり具体的なイメージを持てていなかったというか、そもそも何ができるのかをあまりよく知らなかったので、アイデアが湧いてこないというような感じもありました。そんな中、本屋でG検定のテキストを手に取ってぱらぱらっと眺めてみたら、今の私がちょうど知りたかったようなことなどが簡潔にまとめられているなという印象を持ちました。

また、そのすぐ横にJDLAが発刊したばかりのこちらの本もありましたので、両方合わせて買ってみることにしました。

あと、最後に一番大事な点ですが、G検定合格者Slackなるものがあると聞き、これに加わりたいと思ったのがこれに受かりたいと思った一番の動機です。機械学習界隈では、こういったコミュニティが色々なところでできており、無料で入れる上に、その道のエキスパートから色々と教えてもらうこともできてしまいます。本当に学習意欲のある人にとっては素晴らしい環境が整っていると思いますし、こういった動きを見ると本当にいい時代になったなぁとしみじみ思います。ご参考までに私が参加しているコミュニティをご紹介します。

Kaggler-ja
https://kaggler-ja.herokuapp.com/
機械学習工学研究会
https://sites.google.com/view/sig-mlse/

どう勉強したのか(どう勉強するとよかったのか)

この記事を書いている時点では、まだ合格していませんでしたので、内容を踏まえてどう勉強すればよかったのかも含めて反省してみたいと思います。

まず、私がG検定を受けようと決めたのは締め切り1日前の11月14日でした(遅)。

次回は2019年3月9日に予定されていますので、気になる方は早めに勉強を開始しましょう。

私の場合、もともと機械学習は勉強していたところに、松尾研の講座と講座の副読本としてこちらを読んでいました。

そのため、ゼロから勉強する方に比べればだいぶアドバンテージはある状態だったと思います。でもやっぱり実際に試験勉強をして試験を受けてみて実感するのは自分が苦手にしているところとか、理解をおろそかにしていた部分とか如実にわかるので大変良い自己点検の機会になりました。結局私がやれたこととしては、公式テキストを一読する程度で終わってしまいました。

で、肝心のどう勉強すると良かったのかという点についてですが、まず公式テキストだけでは足りません。出題内容に関して触れられてはいるけど回答につながるまでの情報は書かれていないものもあったり、AI白書2017からもかなり出題がありました。

もうすぐ、これの2019版が出ますね。

あと、これはちょっと意外だったのですが、簡単な計算問題(微分やベクトル計算)も出ました。ディープラーニングをかじっていれば普通にやる程度のものではありましたが、エンジニアでもないユーザーサイドの方からすると、「お、まじか」ってなる気はします。社会実装例(自動運転、他)に関しても結構細かいところまで突っ込まれていたりしたので、活用例もしっかり勉強しておいた方が良いと思いました。

本番対策Tips

あまり本質的ではないですが、ルールを破らない程度のTipsをまとめてみたいと思います。この試験は自宅受験になっており、わからないことは自分で調べながら試験を受けることができます。ただ、120分で226問とかなりボリュームがありますので、恐らく調べるスキを与えないためのボリュームなのかと思います。でも調べることはできますので、これを最大限活用しましょう。

問題の中には、比較的簡単な選択問題が1つの文章で4問とかあるケースもあれば、1問で5つぐらいの長文を読んで内容を判定しないといけないようなものもあります。絶対に犯してはならないのは、自信のない読解問題で時間を消費することです。そのため、試験中、私の中で以下に問題を分類しました。

  1. 調べればすぐに答えにたどり着きやすい設問
  2. 読解が必要で答えにたどり着きにくい設問
  3. 読解が必要で答えにたどり着きにくそうで、後で調べても回答できなさそうな設問

この試験には、後で振り返るためのマーキングをする機能がありますが、3に関してはマーキングをやめました。つまりその場でテキトーに答えるだけ答えて完全に捨てました。

結果どうだったかというと、この戦略は正しかったと思います。私のペース的に、半分ぐらい来たところでまだ85分くらい残っていました。ただ、この前半は考えることを一切しなかったので、ちょっとでも不安に感じたらマーキングして次に進んでいました。このペースでいけば、50分くらい余ることになりますので、後半は、1の調べればすぐに答えにたどり着きやすい設問について、初見でも調べながらやることにしました。特に、1つのテーマで穴埋め4-5問とかあるやつは調べるコストに対して回答効率がぐっとよくなりますので、多少自信がある方でも絶対に落とすまいと調べながらやりました。

その結果、一通り解き終えた時点で余った時間は17分ぐらいでした。この17分を使って前半かなり飛ばしたところを中心に振り返りをしていきました。ここで、公式テキストでも書いていないこととかもあったので、ググったりして回答していきました。そうこうしていたら、いくつか回答しきれずに時間切れになりました。やはりググり出すとすぐに回答にたどり着けるかわからないですし、可能な限りググる個数を減らすのもポイントですね。 

あと、公式テキスト調べるときは索引を利用して該当ページを探したりしていましたが、まだこれからテキストを購入される方は、楽天Koboでの電子書籍購入がオススメです。なぜなら、電子書籍の中身をPC上で検索できるからです。ではなぜAmazon Kindleではないのかと言うと、Amazon Kindleは日本語での検索に対応していません。試験内容は日本語ですので、日本語で検索することになりますが、Amazon Kindleで検索しようと思うと、テキストエディタなどで一度日本語を入力してから、それをコピペして検索する感じになります。これだけ時間がタイトな試験なので、そのリードタイムは下手したら数問回答をできるぐらいの時間になりかねません。推薦図書の楽天Kobo版リンクを貼っておきます。

これは試験を受けた後にTwitterを眺めていて知ったのですが、どうやらG検定の模擬試験を受けられるところがあるようで、軽くググってみたところ恐らくこちらですかね…?試験形式になれるためにも問題に解きなれておくのは大切だと思いますので、ご活用ください。

study-ai.com

 最後に、間違っても数人で結託して設問をブートストラップサンプリングして解いてアンサンブル回答する(?)みたいなことはしないでくださいね。

 これからG検定を受けようとされる方の参考になれば幸いです。

データサイエンティストとして入社するまでにやったこと

こちらの記事では、データサイエンティストを目指すきっかけからデータサイエンティストとしてオファーを頂くまでのことを書かせていただきました。

yukiyoshisato.hatenablog.com

今回は、データサイエンティストとしてオファーを頂いてから入社するまでにやったことについてまとめてみたいと思います。

 

ミートアップやイベントへの参加

業界研究やお勉強も兼ねて色々なミートアップやイベントに参加させていただきました。

 

www.datarobot.com

AIジョブカレに通い始めるまでは名前も知らなかったのですが、機械学習の自動化に力を入れているDataRobotという会社があります。DataRobotは定期的にユーザー向けに説明会などを開いており、まだユーザーではない人でも参加してみて、実際に触ってみることができる会もありましたので、行ってみました。

大体一通りの機械学習の流れは実践してみて掴めていた頃にお邪魔したので、そのすごさが良くわかりました。こんなことできたら、いいな、あーPythonでどうやって書いたらこういうことできるんだろう、とか色々考えていたことが、まぁものの見事に全部自動化されていますね。細かいパラメータとかデータの型とか細かい調整が必要なところもGUIからやれるようになっており、これならPythonが実装できない人でも機械学習できそうです。

一言でいうと、カッコイイ!と思いました。自分は機械学習に必要な実装をPythonでひとつひとつ調べながらやってますが、これがあれば、出したい予測に対してそれなりのデータがそろっていれば、かなりイケてるモデルで学習と予測をぶん回すことができそうです。デモ用のアカウントでもデータを吸い上げたら本国経由でAWSにつなげてそこで機械学習の処理をぶん回しているようです。色々なモデルで同時に学習と予測をしてその予測結果とか一覧やグラフやらで比較検討できちゃう感じでした。

ただ、データが揃うまでのところが実世界ではかなりキーポイントになりますが、その辺のソリューションはおそらくDataRobotのデータサイエンティストがガイドしていくような感じなのでしょうか・・・?機械学習やってみたいけど、手が出ない会社にはうってつけかもしれません。

 

Slush Tokyo 2019 - Slush Tokyo

スタートアップに転職しようと思っていたこともあり、スタートアップ界隈のことを調べていたら出てきました。どうやら毎年開かれていたようで、こういった催しがあったこと自体知らなかったことも、本当にここ数年自分のアンテナが低くなってしまっていたんだなと感じました。

行ってみたら、サイトの雰囲気の通りというか、もはや完全にフェスのノリでしたね。昔はサマソニとかROCK IN JAPANとかよく行ってましたけど、本当にそんな感じでした。みんな真面目な話するはずなのに爆音のシャレた音楽とともにアントレプレナー登場みたいな感じでしたし、メインステージはちょっとマイクの音が大きすぎたので、インナーイヤーヘッドフォンを着けたまま聞く感じでちょうどよかったです。

イベントで集まる人たちも、ブロックチェーン周りやAI周り、IoT周りの人が沢山いたので、最先端の領域を学ぶのに本当に良い場だなと思いました。チケット代はそれなりにしますが、全然払う価値あると思います。

にしても本当に世界の第一線を走っているアントレプレナーのみなさんの熱量は凄かったです!!みんな情熱をもって自分たちの事業に取り組んでいて、凄く良い刺激になりました。やっぱり事前に会社のホームページを調べたり、インタビュー記事読んだりしてても、実際会うのとは全然違いますね。なんだろう、やっぱりすごい人って本当にエネルギーやオーラに満ち溢れているし、それに触れるだけで自分までそうなれるような錯覚すら感じるような気がしてきます。

正直自分はそれなりに情熱があってやりたいことに向かってやれるタイプとは思いますが、やっぱりちょっと横道にそれたり、気持ちがめげそうになったり、全力で逃げることもあったりする凡人なので、こういった方々に定期的に触れて栄養補給するのは大切なんだなと思います。

 

techplay.jp

次はTeam AIのイベントに初参加しました。代表の石井さんの動画はちょこちょこ見ていたのですが、この会は以下のテーマで、もうまさに今の自分のためにあるかのようなテーマだったので行ってみました。

①BLOCKCHAIN/仮想通貨取引は金融業界の再成長エンジンになるのか?
②RPA(Robot Process Automation)による劇的な事務合理化と働き方改革
③AIロボットによる金融無人店舗化へ
量子コンピューターとAGI(汎用人工知能)が読み解く資本市場

恐らく10~15人くらい集まっていたかと思います。進め方も面白くて、一方的にレクチャーをする感じではなく、みんなでラウンド形式でトピックについて話し合ったりする場もあったり、会の後には近くのレストランで一杯やりながらみんなで業界の話をするような流れもあって本当に楽しかったです。

Blockchainのこととかは、入門書をちょろっとかじった程度ではありますが、やっぱりきちんと理解できていないところがあったり、あるいはさらに最新の情報があったりと代表の石井さんがとても幅広くわかりやすく解説してくださるので、本当に参考になりました。

その後の量子コンピューターを解説してくださった伊藤さんも、難しいお話をすごくかみ砕いてお話してくださるので、入りとしてこの場を選んで本当に正解だったなと思いました。いきなり別の講義とか本とかにアタックしてたらちんぷんかんぷんのまま終わってしまいそうなところ、なんとなくどんなことをしてくれるのかのイメージは湧かせられるようになりました。

 

mlxse.connpass.com

mlxse.connpass.com

機械学習ソフトウェア工学の学問体系的な感じでまとめていこうというような流れが始まったようで、そのキックオフがありました。当日は行くことは難しかったので、これまで使ったことのなかったニコニコ動画でプレミアム会員になって視聴しました。本当に便利な世の中になりましたね。動画配信で生の話を聞けるなんて本当にありがたいですね。

ただ、家のこととかやりながら見ていたので、工藤さんと杉山先生の発表を見たあたりであとは録画みればいいやと思って中断してしまい、その後1週間以内に見なければいけないのに見そびれてしまうという失態を演じてしまいました。やっぱりこういうのは直接行って聞いた方がいいですね。人のエネルギーに触れることもできますし。もちろん動画でもお話の内容は大変参考になりました。

杉山先生は機械学習の手法を簡潔にまとめてくださっていてとても参考になりました。

というわけでまだ杉山先生の論文見れてませんが、見なければ!ブログに書くのがちょうどよいリマインダーになりました。

 

www.asahi.com

こちらでは、前の記事でも紹介させていただいた『会社を変える分析の力』を執筆された滋賀大学の河本先生のプレゼンがある!ということで気になっていました。河本先生のお話は実際の現場でのお話なので、ビジネスでどのようにデータサイエンスが活かされるのか、どんなところでつまずきやすいのかなどお話してくださいました。また、最近だとGEなんかはエンジニア自身がデータサイエンスを普通にできるようにするということを目指しているとか、データサイエンスにおける人材育成のお話なんかも参考になりました。割と今いる会社もそんな雰囲気で、非エンジニアの方とかでもTableauとかPythonとか使ってデータ分析を普通にやる雰囲気がありますね。きっとデータサイエンスってロジカルシンキングとかみたいにビジネススキルの基礎を成す一般教養レベルにいずれなっていくのだと思います。

その他感想はこちらをご覧ください。

東北大学大関先生の話は本当に感動しましたね…!映画とかみたいに特別な演出もなく、普通に素でお話を聞いて鳥肌が立ったのって人生で初かもしれません。未だにその時の感動を思い出すと体の底からフルフルしてくる感じがあります。そうだ、D-WAVEのAPIとかも調べないと!目標に挙げておきながらそれ以来何もしていないという…。ブログを書きながらリマインドするのが定着化しそうですね…!

 

自学自習(2018年4月~2018年6月)

内定を頂いてからはイベントなどに合わせて予習する目的もかねて以下の本を読みました。

ベイズもかじってみました。まだきちんと理解はできていませんが、どんなことをやるのかはつかめた気がしています。この辺も追って学習を深めたいと思います。

こちらは大分前に買って寝かせていましたが、ざっと目を通しました。Googleがどういう領域でディープラーニングを適用しているかの事例を中心にまとめられています。理論面にはそれほど触れずに、だれでも読みやすくなっていると思いますので、AI導入したい人が読むのにちょうどよいと思います。

東北大学大関先生の本です。ぜひみなさんご一読ください。そして機会があれば大関先生のお話を直接聞いてみてください!DVD化されたら真っ先に買います。冗談抜きで。

TED SAPPOROでもブームになった植松さんの本です。ほぼTEDでのお話とリンクしていますが、私は植松さんの考え方が大好きです。このブログで書いている内容も植松さんに影響を受けているところが結構あります。

正直転職するのは少し怖かったです。でも勇気を出してその一歩を踏み出してみることにしました。でもやっぱり怖かったので、入社日前夜と入社日の通勤時間でこの本を読み切りました。勇気出ました。よっしゃ、やってやるぞ、という気持ちになれました。自分の気持ちが浮かないときとか、イマイチなことが続くときとかにも定期的に動画を見て気持ちをリフレッシュさせていただいています。今はそんなにイマイチな気分ではないですが、また見てみよう。

TEDの動画はこちらです。

www.youtube.com

デリバティブ取引における担保と仮想通貨の親和性

ちょっと最近気になる動きがあったので、前々から感じていたことを徒然なるままに吐き出してみたいと思います。

jp.cointelegraph.com

バークレイズとかこういうことやってたんですね。どうやらこういったハッカソンはちょこちょこ行われていたみたいなので、自分のアンテナの低さを恨みますね。チャンスがあればやってみたかったなぁ・・・。

それはさておき、一応前職まででおよそ11年程デリバティブビジネスに身を置いたものとして、ぼんやり考えていたこととか書き記しておきたいと思います。

はじめに

この記事で触れられているISDA CDMについてですが、これはもともとISDAはFpMLというデリバティブプロダクトを表現するMarkup Languageをたぶん10年以上前ぐらいから?開発していたのですが、前々職でデリバティブ取引システムを開発していた頃も、「ふーんそういうのあるんだなー」ぐらいにしか思っておらず、その頃のシステムといえばまだ電子コンファメーションをするMarkitとかマージンコールするMarginSphereとかとも連携してなくて、孤立無援のシステムという感じで、他のシステムとの連携を意識してそういうのを使うような感じはありませんでした。あっても個々の金融機関内のインターフェースを個別に開発するような感じでした。

ところが、最近の電子化の流れからFpMLにもまた光があたり、ISDA CDMとしてプロダクト表現を統一的な解釈の元みんなで同じデータモデルの管理しようよ、プログラミングの仕方しようよ、となってきています。その背景には先にも触れた様々な外部サービス(Markit、MarginSphere、triResolve、等)との連携がほぼ必須になってきていることが後押ししていると思います。

デリバティブ取引と担保

簡単にデリバティブ取引と担保について触れておきたいと思います。デリバティブ取引とは金融商品の一種で、金利や為替、株などを指標にして様々のキャッシュフローをカスタマイズして作れるような商品です。そのため、取引をすると取り決めた日(約定日)があって、個々のキャッシュフローが発生する日が一定のルールに従って決められます。取引所などで取引されている定型化されたものとは異なり、機関投資家(バイサイド)などが個別の事情に従って証券会社(セルサイド)と取り決め内容を検討します。つまり、機関投資家と証券会社で1対1で取引が行われます。これを店頭取引(OTC取引:Over the Counter)といいます。

店頭取引の場合、あらかじめ決められたスケジュールでキャッシュフローを定義していても、その相手方が倒産した場合は、そのキャッシュフローをとりっぱぐれてしまいます。それが顕著になったのがリーマンショックですね。リーマンブラザーズは相当な額の取引をしていたので、それが全部水の泡になってしまって取引相手にも大打撃になりました。まともな会社はその予兆を感じ取ってあらかじめ取引を解約しておきますが。。。とはいえ解約するにもリスクヘッジやらなんやらで再取組み相手がいるかどうかとかいろいろ課題もあります。いずれにしろ倒産されては困るので、現時点で計測される商品価値(現在価値:Present Value)の分の担保をいれておくわけです。友達にお金貸すけどその代わりそれ相当の品物を預かっておくようなイメージですね。

担保管理業務の実態

簡単に言うと、担保管理は、日々変動するマーケットの情報をもとに各取引の現在価値が再計算され、それに合わせて担保物(お金、債券、株式、等)のやり取りをするわけです。例えばデリバティブ取引の価値が金利のマーケットが変動したことによって変わったらその分追加で担保を出すとか、あるいは担保物としてもらっていた債券の価値がさがってしまったのでデリバティブ取引の価値はそんなにかわってなくても追加の担保を請求するとか、そんなことを毎日やります。

そこにリーマンショックの反省から、グローバルな金融規制の一部としてこの担保管理業務もより精緻に厳密にやることを求められるようになりました。

実際、規制以前の担保管理の実務なんて、今日の締め処理(大体日本時間夕方のマーケットデータでやります)の時の現在価値を計算したら、それを翌日に相手方へ通知してそれから2~3日後に担保物を決済するような状況でした。なぜなら、締め処理自体夕方なので、それから相手方に通知していたら連絡取りあえるのは夜中になってしまいますし、お金はともかく証券の決済には現物の決済慣行やらブツの調達やら管理やらなんやらで手間暇かかりますので、2~3日のリードタイムは当たり前にかかっていました。

担保管理にかかる金融規制の内容

どのような内容だったかと言いますと、まぁもう一言でいえば、とにかくデリバティブ取引の現在価値が計算されたら直ちに担保のやり取りをせいという感じでした。担保が間接的に関連する規制では(金融の世界には色んなところに規制があります)、あたかも現在価値が計算された瞬間に担保がやり取りされないと要件をみたさないとして追徴金のようなものを課せられそうになったようなものもありました(恐らくそこは最終的にはある程度緩和されたはず…)。

でも規制当局の言っていることは理論的には極めて正しいです。株はともかく為替なんかは24時間動き続けますし、担保のやり取りのためのデリバティブ取引の現在価値の計算もとある夕方の一時点の断面でえいっと計算しているにすぎないですし、実際にその担保が決済されるのは計算時点から3~4日後(相手方への通知から2~3日後)なので、時々刻々と変化するマーケットにおいては、その分倒産リスクにさらされていることになります。そのため、マーケット変化に合わせてリアルタイムに現在価値計算がされて担保のやり取りをできれば、より精緻に倒産リスクを回避することが可能になります。

妥協策

結局のところ、担保請求のやり取り(マージンコールといいます)にしても、担保の決済にしても各国通貨、各国債券しかりですが、決済インフラの時間制約もあったりするので、はっきり言ってそんなことは無理なわけです。そこで、当局もある程度譲歩してくれつつも金融機関も頑張りましょうてきなところで一旦は落ち着きました。

仮想通貨の可能性

でも規制対応の業務考える仕事をしている傍らでこんなニュースを目にしました。

deutsche-boerse.com

こちらは店頭取引ではなく、CCP(Central Counterparty)取引に関する部分ですが(店頭取引は相手方の倒産リスクがあるので、それを排除しようと入れられた集中清算義務により、取引所でデリバティブ取引の決済をできるようにしたものです)、担保に関するブロックチェーンの仕組みを入れようというものでした。どうやら、最近アップデートがあったみたいですが、この記事を見てパッと感じたのは、店頭取引における担保も全部仮想通貨でやり取りしちゃえば決済インフラの制約とかうけなくていいじゃんと思ったことです。

なんなら、現在価値の計算結果照合なんかも一定のルールに従ってやるだけなので、Ethereumのスマートコントラクトとか使って実装してしまえば、

 

         デリバティブ取引の現在価値が再計算される

                  ↓

          その瞬間担保が仮想通貨で決済される

 

みたいなこととか普通にできるんじゃないかと思います。現状ではまだそのレベルでまともに使える(うまくヘッジできる)通貨とかなさそうですが、時代が進んでそういう面も市場が成熟してきて、そもそもどこの会社もその国の法定通貨で決算とかじゃなくて仮想通貨でやるような感じになってきたらガラッと変わるかもしれませんね。

突然突拍子もないことを言いましたが、もはや決算を親会社の特定の国や通貨に縛ってやるとかグローバルにビジネス展開している会社からしたら本当に意味があるのか謎ですし、いい意味でボーダーレスが進んで、ここで触れたことが自然とおこなわれるような時代が来たらいいんじゃないかと思います。

冒頭のニュースに話を戻すと、もうこのレベル以上にとがったものがハッカソンで出てくることを期待しています。私自身は今回のハッカソンに出るのはさすがにもうちょっと厳しいですが、別にこのハッカソンに限らず、今の自分がやっている仕事の延長なのか、あるいは別なのかはともかくとして、私自身もこういったことを社会実装していくためのお勉強もしていこうと思います。

データサイエンティストになるまでにやったこと

前回の記事からだいぶ間が空いてしまいましたが、ここでデータサイエンティストの職を頂けるまでにしてきたことを記しておきたいと思います。もし興味があって、この職についてみたいと思う方の参考になれば幸いです。

 

きっかけ(2017年秋頃)

 この本を読みました。だいぶ前に一度流行った本ですが、

そのうち読んでみようと思ったまま月日が流れていました。でもデータサイエンティストの職業にちょっと興味もあったので、なんとなく読みはじめてみたらまぁ面白かったです。統計の教科書というよりは読み物として非常に読みごたえがありました。いろいろな事例を交えて説明されており、うまく興味を掻き立てられ、本を読み終えた頃にはどうやったらデータサイエンティストになれるのかを考え始めていました。

 

スクールに入学(2017年12月)

とりあえずデータサイエンティストにどうやったらなれるのかググっていたら、データサイエンティストを養成するスクールが出始めていることに気が付きました。で、最初にこちらの説明会にお邪魔しました。

datamix.co.jp

すごくみっちり鍛えてもらえそうでいい感じはしたのですが、時間的な面と金額的な面(70万円程)でそこまでの覚悟は決められず、断念しました。その後見つけたのがこちらです。

 

www.aijobcolle.com

金額も10万円と破格で、講義のペースや回数なんかも仕事しながらなんとかやれそうな気がしました。また、初回の講義を受けてちょっと違うなと思ったら返金も受け付けてもらえるとのことだったので、ものは試しで行ってみようという気持ちでいくことができました。

実際に行ってみたら、こちらのサイト見てもらえれば分かりますが、講師陣はものすごく充実しており、お話もすごくおもしろかったです。仕事としてもすごく興味を持てて純粋に勉強したいと思えて、なおかつ非常に優秀な講師の方に教えてもらえるので、これはやってみる価値はありそうだと確信できました。

ただ、今思えばここでひとつ判断ミスをしました。機械学習や深層学習等いわゆる人工知能にかかるようなプログラミングをするためには、非常に性能の良いPCが必要になります。システムエンジニアをやめて証券会社で働き始めてからは家でプログラミングすることもめっきりなくなり、ちょっとしたネットブック的なしょぼいPCしか持っていなかったので、まともな性能のPCを買うことにしました。しかし、自分は昔からWindows一筋だったので、Dellでそこそこ性能の良いWindowsマシンを購入しました。実は説明会だけ行って失礼してしまったデータミックスさんでも開発環境のアドバイスをちゃっかりいただいた時に、データサイエンティストとか機械学習エンジニアはみんなMacBook Proですよ、と言われ、AIジョブカレの講師の方もMacBook Pro使っているのを見ていたのに、Windowsにしてしまいました。でもやっぱりMacBook Proにしておけばよかったと今は思います。なぜなら、職場で一緒に働いているデータサイエンティストはMacBook Pro以外使っている人はいません。Windowsでやっている人もいるでしょうが、かなり少数派だと思います。今は私もご多分に漏れず仕事でMacBook Pro使ってます。とりあえず、データサイエンティストや機械学習エンジニア目指すならうだうだ言わずにMacBook Pro買った方がいいと思います。慣れるのに少し時間は必要ですが、毎日使ってれば誰でも使えます。当たり前ですけど。さすがにまだ購入して半年ぐらいしかたっていないので自宅PCはしばらくWindowsで我慢しますけど、そこそこ後悔してます。でもWindowsだとSteamで聖剣伝説2ができるので許します。

 

スクールでの講義と宿題(2017年12月~2018年3月)

AIジョブカレは動画も取ってくれるので、講義の時に分かった気がしててもあんまり分かっていなかったところとか聞き洩らしていたところとかも復習できるので、すごく学習しやすかったです。また、宿題の内容も最初とりかかったときはPythonも初めてだったのでちんぷんかんぷんでしたが、そういった初学者でも手が動かせるようにすごくよく工夫されていたと思います。

でも、正直最後の方になるまでは、私はかなり落ちこぼれの部類だったと思います。理系でもなく、Pythonも初めてで、受講生の方で結構活発に質問されている方とかはすでにデータ分析の仕事とかしているような感じの人もいて、内心、やばい・・・やっぱり敷居高そうだな・・・と感じていました。宿題もなんとかかんとか食らいつきながらこなしているような状況でした。本音を言うと当時は全然内容理解できていなかったと思いますがが、とりあえず動くものを作ってなんとかギリギリで提出するの繰り返しでした。

 

自学自習(2017年12月~2018年3月)

Javaは最初の会社でずっとやっていたので、基本的なプログラミングの知識とかは大丈夫かなと思っていましたが、Pythonは見たことも触ったこともなかったので、まずはここから始めました。

まずは第一歩です。Pythonって動的に型付けするところとかすごく新鮮な感じがして、シンプルにかけるんだなーと思って面白かったです。

あと、実際にデータサイエンティストがどんなライフサイクルで仕事しているのかさっぱりイメージが湧かなかったので、こちらの本を読みました。

こちらも非常に良い本で、2018年1月当時では機械学習プロジェクトの始まりから終わりまでを描いている本はそんなになかったと思いますので、大変参考になりました。

最後の1冊は、AIジョブカレで講師の方にかなり最初のころに推薦されていたのですが、書店で手に取ってパラパラっとめくってみたらだいぶ込み入った感じがして、ちょっと手を出せずにいました。

でも、いざ読み始めてみたら、すごくわかりやすく解説されていて、AIジョブカレ受講生であれば、初学者でも全然読める内容だと思います。というか講義の流れと本の流れがほぼリンクしているので、漠然としか理解できていなかったところが改めて本で復習できるような感覚がありました。ゼロから読んだらもしかしたらとっつきにくいところもあるかもしれませんが、AIジョブカレの講義の副読本としては非常に良い本だと思います。

あとは、やはりFinTech周りの勉強をしたいなと思っていたので、仮想通貨も盛り上がっていることだし、以下の本を読みました。

 

転職活動(2018年2月~3月)

2月24日に仮想通貨・ブロックチェーン企業合同企業説明会 in 東京第1回というものが開かれるということだったので、行ってみました。

withb.co.jp

仮想通貨がかなり盛り上がっていたこともあって、参加者の数もすごくてLIFULLさんの会場にすし詰め状態でしたし、報道陣もかなり来ていました。ちょっとあれは具合悪くなるレベルの人口密度でしたね・・・。でもイベントとしてはかなり良かったと思います。話を聞いた中では、カレンシーポートの杉井さんとBitFlyerの江田さんの話はすごくおもしろかったですし、このお二方は凄く本物感がありました。杉井さんは社長なので当たり前と言えば当たり前かもしれませんが、BitFlyerは現場の人でもかなり優秀な人集めてるんだなーと思いました。コンセンサス・ベイスの志茂さんともお話させていただける機会を頂けて、かなり多方面でご活躍されていて、その縦横無尽ぷりに大企業色に染まり切っていた自分としてはちょっと面食らう感じもありました。一方で、社長のくせにかなりイマイチな人とかもいましたけど、それはここでは割愛します。

ここの参加企業でデータサイエンティストの職を募集しているのを発見し、個別の企業ブースでもかなり色々をお話を聞かせて頂くことができ、会社のビジネスもチームの方々もすごく魅力を感じたので、その場で応募することにしました。やはり自分としてはFinTech×データサイエンスで探していたこともあって、運命感じるレベルで出会っちゃった感がありました。

で、採用プロセスが始まり、大体のデータサイエンティストや機械学習エンジニアの職では課されるプログラミングテストがありました。データをもらってそれで機械学習のプログラムを書いて提出する、というものでしたが、やはりAIジョブカレでこなしていた宿題とはワケが違いました。AIジョブカレの宿題は自分で考えなければならないものも出てきますが、そうは言っても講義でやった内容を踏まえればやれるものでした。しかし、本当に教科書的に整っていないというか、現実世界のデータに触れて思ったのは、「まじでわかんない」でした。データサイエンティストや機械学習エンジニアの仕事の8割はデータの前処理と言われています。どういうデータを集めてきてそれをどう加工してやれば予測に役立つデータになるのかを考える部分です。なんだかんだ、AIジョブカレで用意してくれていたデータセットはすごくわかりやすいというか、初学者でも理解しやすいデータセットが使われていると思います。こういう特徴量からたぶん予測できるだろうなと思えるものがある程度綺麗にそろっており、そこからPythonでscikit-learnの学習器を呼び出してやればなんとかなる感じでした。でも出されたお題では当時の自分の理解力や実装力ではどう前処理してやれば分類器にうまくかけられる状態になるのか全然わからなかったので、ここにきて、初めてまともにExploratory Data AnalysisやPythonの実装やら機械学習のロジックの組み立て方やら「自分で調べて自分で考えて自分で作る」ということをやりました。スクールで宿題こなしているとなんとなくできている気がしてしまいますが、やはりそれは思い込みで、スクールが上手に導いてくれているからそう思えていただけでした。スクールの外で真の実力を問われた瞬間に異次元の課題の海に飛び込んで溺れかけるような感じがしました。でも、なんとかやらねばという思いで、上記のPython機械学習プログラミングを読みながらいろいろ試して平日は睡眠時間を削って、休日は朝から晩までひたすら勉強・プログラミングをし続け、正直、全然できたという手応えはなかったのですが、なんとか提出させていただきました。

 

AI関連企業の研究(2018年3月)

転職活動と並行して、AIジョブカレでも転職先の候補となる企業の方々を集めたプレゼンの場を設けていただき、現場のデータサイエンティストの方々のお話を聞かせて頂いて本当に参考になりました。中でも実際に企業にも訪問させていただいたブレインズコンサルティングさんとGA Technologiesさんのお話は本当に勉強になりました。特にGA Technologies橋本さんはデータサイエンティスト協会の活動などもされていた業界の第一線でご活躍されている方で、大変貴重なお話をたくさん頂くことができました。ご紹介いただいた滋賀大学の河本先生(当時大阪ガス情報通信部ビジネスアナリシスセンター所長)の本もものすごく勉強になりました(これは転職活動後に読みました)。

あと、以下のイベントにも参加しました。

techplay.jp

この中では、BEDOREの竪山さんにはとても親切に貴重なアドバイスを頂けたり、アースアイズ山内さんには夢物語ばかりじゃなくてすごく現実的な部分があることに関するアドバイスも頂けたり、その他いらっしゃっている企業さんみなさん特色のあるソリューションを持っていてとても興味深かったです。これからどんな分野でデータサイエンティストとしてキャリアを築いていけるのか全くわからなかった時期でしたが、本当に良い刺激をたくさんいただくことができました。

 

スクールでの最終コンペ(2018年4月)

AIジョブカレでは、最終課題として、受講生同士でKaggleライクのコンペをやります。その場でデータセットが配られ、それを分析して前処理して機械学習のロジックにかけて、予測してCSVファイルで予測結果を提出するというものです。

転職活動でいっぱいいっぱいだったこともあって、正直こちらには全然気が回っていなかったのですが、採用試験として課されたプログラミングテストの時のコードベースをそのまま使いまわせそうだったので、もうそれでいいやと思って、当日を迎えました。そうしたら、それでそのまま優勝出来ちゃいました。

他の受講生の方とかすでにデータサイエンティストとして働いていそうな人もいたので、自分が優勝と言われて全然実感が湧かなかったのですが、やはり採用試験の時に徹底的に「自分で調べて自分で考えて自分で作る」をやったおかげで、一気に成長できたのだと思います。採用試験でプログラミングテストが課されていなければこの優勝は間違いなくなかったですし、どう逆立ちしてもここまで自分を追い込んでやれたのは採用試験のおかげでした。また、困難な採用試験に立ち向かっていて気持ちがめげてしまいそうだったところ、AI関連企業研究でたくさんの方のお話を伺うことができてそれが頑張る原動力にもなりました。

 

データサイエンティストとして採用(2018年4月)

採用試験で分析結果を提出してから特にご連絡いただいていなかったので、正直ダメだったのかなと半ば思っていたところにスクールの最終コンペで優勝できたので、それを報告しました。すると次の日にデータサイエンティストとしてオファーを頂くことができました。最終コンペ優勝がオファーの材料になったのか真偽のほどは不明ですが、時系列ではそのような感じでした。

 

まとめ

振り返ってみると、本当に偶然の連続だったと思います。データサイエンティストになろうと思い始めたタイミングしかり、スクールとの出会いしかり、合同企業説明会での出会いしかり、AI関連企業研究で貴重なお話を頂けたことしかり、採用試験のプログラミングテストで鍛えさせてもらえる機会をもらえたことしかり、それでスクールの最終コンペで優勝できたことしかり、データサイエンティストの職を頂けることになったことしかり・・・。こんなにもすべての歯車がうまくはまることがあるのかなと思うぐらいな感じでした。

やっぱり、何事も本気で動き出せばそういう風に道は切り開いていけるし、人との出会いにも意味があるのかな・・・と自己中心的な驕る気持ちが見え隠れしつつも、関わってくださったすべての方のおかげで今の自分があることを忘れずに、世のため人のためにデータサイエンティストとして頑張っていきたいと思います。

思い出したことを片っ端から書きなぐってしまったので読みづらいところもあったかと思いますが、これからデータサイエンティストになりたいと思っている方の参考になれば幸いです。

アナリティクス・トランスレーター

www.mckinsey.com

こちらの記事の内容をざっくりサマリしてみたいと思います。(筆者の超意訳です)

 

注目されてきた背景

 昨今、AIやデータ分析が活用されるにあたって、純粋なデータサイエンティストのみならず、データエンジニア、データアーキテクト、データ可視化スペシャリストなどとチームを編成してやることが増えてきていますが、その中でも重要な役割がトランスレーターになります。なぜこの役割が重要かというと、データ分析の成果をビジネスのインパクトにつなげていくための役割を担うからです。

 

トランスレーターとは

トランスレーターは、 データエンジニアやアーキテクトのスペシャリストではなく、データ分析自体のプロフェッショナルでもなく、深い技術的な知識もありません。その代わり、データサイエンスの専門家とビジネスの専門家をブリッジする重要な役割をおいます。企業にとって分析のインパクトがより効果的に出るように貢献します。マッキンゼーの推定によると、米国だけでも200-400万人ほどの需要が見込まれています。

 

何をするのか

 トランスレーターはドメイン知識を活用して、ビジネスユーザーの課題を特定し、優先順位付けを行って、分析の価値の最大化を図ります。そのために、データサイエンティストにビジネスのゴールや必要なドメイン知識を提供したり、ビジネスユーザーに分析結果をうまく伝えて、業務改善を促進するように働きかけていきます。

 

どんなスキルが必要か

ドメイン知識
トランスレーターにとって最も重要なスキルで、対象とするビジネスの業界や分析している企業のことを詳しく知っている必要があります。

 一般的な技術理解

自身で分析モデルの構築などはできなくとも、データサイエンティストが出す分析結果の意味を理解してビジネスに適用していくための知識が必要です。STEM (Science, technology, engineering, and mathematics) のバックグラウンドを持っています。

プロジェクトマネジメントスキル

トランスレーター分析のライフサイクルを回していく上でイニシアチブをとりますので、プロジェクトマネジメントスキルは必須です。

起業家精神

他の人から教えをもらいやすいスキルに加えて、ビジネスを成功させるために、情熱やコミットメントが必要です。

 

現状の自分自身と照らし合わせて、目指す方向を再度確認したいと思います。

プロジェクトマネジメントスキルと起業家精神に関しては最初の会社の経験を活かせるかなと思うので、ここでは一旦横に置いて、ドメイン知識と技術知識にフォーカスします。

 

ドメイン知識

"金融"という意味ではバックグラウンドはありますが、ブロックチェーンで実装される金融ビジネスならびに転職するのでまだ次に働く会社のことも殆ど知らないので、これらはゼロから勉強していく必要があります。業務設計やプロジェクト対応の経験を活かして早期にキャッチアップしたいと思います。

 

技術知識

トランスレーターとしては、データサイエンティストほどの知識はいらないとありますが、私はデータサイエンティストとして働きますので、現場のデータサイエンティストとして求められる水準は当然満たせるようにしたいと思いますし、将来的には新たなモデルを開発しようと研究されている方レベルになれるぐらい上を目指して、磨き続けていきます。

 

アナリティクス・トランスレーターが登場する記事でAI関連のプロジェクトについてとてもよくまとめられている記事を見つけましたので、リンク貼っておきます。

AI/データサイエンスのプロジェクトが失敗する10の危険なサイン

 

私が目指すイメージとしては、こちらの記事の中腹に出てくる弁図のど真ん中ですね。役割いませんけど・・・(苦笑

現実的にはそんな役割を本当の意味でこなせる人はいないし、これからも出てこないのかもしれませんが、目指すのは自由ですので、目指します!

テニス草トーナメント(初中級)初勝利!

FinTechとかデータサイエンスとか全然関係ないですが、趣味でテニスやっているので、それも記録しておこうと思います。

 

一昨年の春にテニスを始めて、ずっと目標にしてきていた初級の草トーナメントで、今年の2月3日、ようやくで優勝ができました。出場資格はテニス初めて2年以内なので、かなりギリギリでした。 

www.facebook.com 

そして、今日、一つ上のレベルになる初中級の大会に挑みました!

フェニックス サバイバルリーグ とことんテニス@大磯プリンスホテル

ypage.tennis365.net

かなり強敵ぞろいでしたが、結果は3勝3敗でした!初勝利もできたので満足です。実はこの大会以前も出たことがあるのですが、その時は6戦全敗でした。1試合5-6ぐらいまで競ったと思うのですが、それ以外は0-6とか1-6とかお話にならない感じでした。

 

今日は以下の結果でした。

第1試合 0-6 負け

第2試合 5-6 負け

第3試合 6-2 勝ち

第4試合 2-6 負け

第5試合 6-2 勝ち

第6試合 6-2 勝ち

 

第3試合で初勝利し、その後第5第6試合でも勝てました!でもこの大会にはカラクリがあり、総当たり戦で時間が許す限りひたすら試合をやります。そして、試合を重ねるたびに勝率が似通ったもの同士で試合をしていきます。そのため、序盤で負けたおかげか後半はちょうど良いレベルの方との試合になりました。

 

これぐらいのレベルだと、やはり一発狙いでドーンと決めてやろうとするとミスって自滅して、ひたすら我慢して返し続けてたら相手が一発狙いでドーンと決めてやろうとしてミスってくれるので、以下の戦略でいきました。

 

  1. 自分からはなるべくミスらず、甘くなっても良いのでとにかく返す
  2. 足に疲れがきてそうなオジサマには緩いボールでも良いので時間をかけて前後左右にゆさぶって疲れさせて戦意喪失させる
  3. 相手のセカンドサーブのリターンはミスらない程度深く(できればある程度の球威で)返して、無理やりでもいいからとにかく前に出てボレーで仕留める(ファーストサーブが緩い相手はファーストからこれ)
  4. 流れがいい時は一発狙いでドーンと決めて戦意喪失させる(仮にミスったとしても、例えば「そんなダウンザラインあるの!?」と思わせる程度にビビらせる)

 

やはりまだ1にはだいぶ課題があり、そーっと返しすぎて相手コートまで届かなかったり、丁寧に深く返そうとしてロクにトップスピンもかけられずにそのままアウトするような残念なミスがありました。やはり練習の時みたいにしっかりスイングして普通にストロークするのが一番難しいですね。試合では3割ぐらいのスイングでしか返せません。

 

でも勝った試合は上記の1~4がある程度効率よく決まってた感じです。特にこのレベルでは3はかなり破壊力があったようで、ファーストサーブからひたすらこれをやりまくった相手は最後の方にロブをホームランするようになり、「もうダメだ~」みたいな感じで笑ってました。

 

負けた試合では、1も安定しないし、3のチャンスもあまりなかったり、うまくロブで返され続けてこちらから前に出られなくなったり、リターンミスを連発したり、4が全部ホームランしてました。

 

サーブが弱いのも課題ですが、やはり一番の課題は普段のストロークが試合だと全くできなくなることですね。普段通りのことを本番でやるのは本当に難しいですね…。普段の練習ではトップスピンとかもグリグリかけたりして、そこそこストローク力は自信ありましたが、本番で打てないんじゃ意味がないです。

 

おそらく練習でのストロークもきちんと入ってるのは半分以下ぐらいなのかもしれませんね…。練習でも本番と同じような緊張感を持って、基礎からしっかり見直して、次の大会に臨みたいと思います!

 

そういえば、今後2~3年のテニスの目標を前の記事で宣言し忘れたのでここに宣言しておきます。

  • 初中級の大会で優勝する

これまた達成までの道のりは全く見えていませんが、頑張りたいと思います。