メモ帳

python, juliaで機械学習をやっていく

2019年にやったこと・2020年にやりたいこと

2019年にやったことをふりかえる

年末なので、1年の振り返りをしたいと思います。

アウトプット

はてなブログ

本ブログを2019年の3/30日に開設しました。 以前のアウトプットは、社内のwikiにまとめていましたが、

  • より多くの人に見てもらって反応をもらいたい
  • 業務でたくさんの記事を参考にしているので、少しでも自分も貢献したい
  • ラフに「データを分析して意思決定を助ける」というプロセスを試せるコンテンツがほしい(データアナリストっぽいことをしてみたかった)

という自己顕示欲と少しの社会貢献欲から技術ブログを書き始めました。

1年間での活動は以下のような形です。月に3〜4本しか書いていないのは反省したいです。書きたいことは色々ありますが、筆が遅すぎておしゃかになったものがいくつもあります。良かったことは、スターや読書になる、はてなブックマークなどの反応がもらえたことです。すごくモチベーションが上がるので、ありがたいです。

f:id:atelier-0213:20191231020128p:plain
2019年のブログ活動まとめ

記事数とPVの推移は以下のようになります。漠然と成長を感じられて年末っぽいです笑
記事数はあまりかわっていませんが、10月下旬から4 ~ 5倍にはね上がっています。見てもらいやすい記事を書けるようになってきたのかもしれません。(12月はアドベントカレンダー効果で一時的にあがっています)

f:id:atelier-0213:20191231020228p:plain
記事数とPVの推移

書くのがうまくなっているだけなのか確認するために記事のPV率(閲覧数ランキング)をプロットしました。9月中旬以降の記事は赤枠で囲っています。(記事ごとに世に出ている日数が違うので正規化するべきでしょうが、年末なので休みます)
1位の記事はちょうど10月下旬に書いた記事です。この記事がPVをはね上げてくれたと言えそうです。ですが、その他は意外と古い記事が上位を占めていることがわかります。しかも割合はそこまでかわらないので1位の記事だけでPVを稼いでいるわけではなさそうです。

f:id:atelier-0213:20191231024754p:plain
記事のPV率

なので、記事のクオリティが上がったというよりは少しずつコンテンツの蓄積が効いてきているような感じですかね。
ということで、自由に好きなことを書きつつ、たまにがっつり見てもらいやすい記事を書いていくスタイルで当分いきたいかなと思います。

とは言え、実際にモチベーションが上がるのは「はてなスター」なのでPVはそこそこに、来年はどうやればスターが増えそうか探りたいなと思います。

Qiita

2019/11/11にQiitaに初投稿しました。機械学習にあまり関係なさそうで、がっつりエンジニアリングっぽい内容はQiitaかなーという思いで使い分ける気です。

qiita.com

また、アドベントカレンダーに初挑戦しました。終わってみればなんだかんで4つのカレンダーに参加していました。お祭り感があって楽しかったです。

Twitter

twitterで論文や技術記事の一言紹介をはじめました。(関係ないことも結構書きますが) 2年前に作成されていたアカウントを使っていますが、まったく記憶になく、SNS自体初心者みたいなもんです。毎回ビビりながら投稿しています。 インプットとしても結構有用なので重宝しています。

twitter.com

Teratail

Python, numpy tensorflow, kerasあたりの質問に答えはじめました。 すぐ回答がつくので貢献できる質問が少ないですが、本当にちょこちょこやっていってます。

インプット

論文

ざっくりですが、(業務中に読んだもの含む)

  • アブストだけ: 70本
  • 読み込んだ物: 20本
  • 実装: 1本

分野の比率は、
(自然言語処理) : (CV) : (基礎理論) : (Maasへの応用) = 5 : 1 : 1 : 3

内容的には、ざっくり以下のようなテーマを追っかけていました。

  • NLPの転移学習
  • レコメンド
  • 表現学習
  • few-shot learning
  • 説明性
  • グラフ

読書

特におもしろかったものを抜粋します。 (まとめるの大変なので来年はこまめに読書の記録をとっていきたい)

機械学習

book.mynavi.jp 囲碁AI(Alpha Go)のチームの一員が著した本です。基礎的なところから順を追って囲碁AIを強くしていきます。ベースライン -> 教師あり学習 -> 強化学習の流れで開発を進めていくので、強化学習の実用的な開発イメージが掴めました。

www.oreilly.co.jp 色々な特徴量が紹介されています。ざっくり全体を頭に留めておいて、必要になったら本誌を確認しています。また、レコメンドの基本も学べました。

エンジニアリング

www.shoeisha.co.jp GCPの勉強になるだけでなく、大規模データを扱うためのインフラについて概要が学べました。機械学習の実運用をしていくために必須の知識が豊富に載っているので読み込みたい本です。

www.oreilly.co.jp kubernetesの機能が一望できます。実務でも趣味開発でもkubernetesが必要なほど大規模なサービスを扱っていないので知識としてインプットした段階ですが、使えるものなら使ってみたい技術です。

ビジネス書

イシューからはじめよ――知的生産の「シンプルな本質」

イシューからはじめよ――知的生産の「シンプルな本質」

  • 作者:安宅和人
  • 出版社/メーカー: 英治出版
  • 発売日: 2010/11/24
  • メディア: 単行本(ソフトカバー)
ビジネスサイドもデータ分析と同じように「仮説設計 -> 検証 -> 改善」のプロセスでやってくといいよ、みたいな内容で親しみやすく、このやり方ならビジネスサイドでも力になれるかなーと思えた本です。

技術的なこと

  • プログラミング全般:
    • Juliaの活用: Pythonだとさばけないような重い処理をJuliaで書き換えるなどしました。学び始めたのは2018年ですが、今年は初めて業務で使いました
    • Tensorflow 2: 正式にTensorflow 2がリリースされたのでkerasから移行しました。
  • web (server side):
    • responderの使用: デモアプリ的にさくっとresponderでAPIをたてることが多くなりました。2018年はDjangoでがっつりとしたRESTfulなAPIをたてていましたが、徐々に機械学習がメインになってきたこともあってmicroframeworkに移行した年でした
  • infra:
    • cloudでMLサーバーをたてる: GCPでAI Platformを扱いました。2019年はインフラにも注力したので特にクラウド機械学習関連のサービスの重要さを感じました。がんがん使いこなせるレベルになりたいです。
    • serverlessの利用: AWS Lambdaをさわる機会がありました。2018年だとオンプレ or オンプレをクラウドにのせただけのアーキテクチャばかりでしたが、クラウド特有の設計思想に触れられました。

旅行

唯一の趣味といってもいいぐらいの旅行記録をざーっとまとめます。

沖縄

海がめちゃくちゃキレイでびびりました。 南国っぽい雰囲気があってのんびりできました。

f:id:atelier-0213:20191231100914j:plain
沖縄の海

草津

湯畑!!! ちゃんと緑色でした。 こじんまりとしたエリアの中に温泉がたくさんあって (温泉しかない) 、また、湯畑からくる硫黄っぽい匂いで、どこにいても温泉街っぽさを感じられました。

f:id:atelier-0213:20191231102138j:plain
湯畑

福岡

九州初上陸しました。飯うまい!街並みキレイ!って感じでした。

f:id:atelier-0213:20191231104604j:plain
福岡

長崎

台風に向かっていくという暴挙を犯しました。不思議な異国感があって、独特な文化を体験しました。台風が来ていたのであまり動けなかったのが悔やまれます。また行きたい。

f:id:atelier-0213:20191231104650j:plain
長崎

大阪

旅行関係のイベントに行きました。各地の名産や観光資源を紹介してくれる場でした。確か国外もあって行きたい所が増えました。

f:id:atelier-0213:20191231103715j:plain
大阪

京都

旅館に泊まりたいという理由だけで京都に行きました。最近MaaSに関わっていることもあって、はじめて道に置いているタイプのレンタルサイクルを使いましたが快適でした。

f:id:atelier-0213:20191231103702j:plain
平安神宮

2020年にやりたいこと

2019年にやったことを (いい部分は) 続けたいです。 加えて、新たにやりたいことをまとめます。あまりかっちりすると性格的にやらなそうなのでふわーっと書きます。

技術的なこと

以下のような項目に挑戦したいです

  • 検索システム: elasticsearchやfaissなど
  • Scalaを使う: クラウドのサービスだとデータ処理まわりはPythonよりもScalaが良さそうなのでScalaを使えるようになりたいです
  • 機械学習で核になる分野を見つける: 学生時代の専攻は物理なので、機械学習では特に専門がなく、ふらふらしているので集中して取り組める分野を一つぐらい探りたいです。(専門ってほどでもないですが量子コンピュータに関係することを少しやっていたので、そういう系を探ると差別化要因にもなりそうですし、おもしろいかなーと思っています)

インプット & アウトプット

勉強会

物理世界でも何らかの形でアウトプットしていきたいです。(もちろん業務以外で)

Kaggleなどのコンペ

各方面からやると楽しいという話は聞きますが、なんだかんだでまだ手を出せていません。やってみるねーと言いながら年を超えそうです。
一旦はじめると熱中することは目に見えているので、他のアウトプットが止まらないかすごく心配ですが、ラフに一度でもいいので参加したいです。

サービス/OSS を公開

一応web系エンジニアでもあるのでサービスやOSSをだしていきたいです。 OSSはお世話になっているライブラリへのPull Requestは最低限したいです。 サービスは案は一応あって、少しずつ開発しているので加速させていきたいです。

まとめ

年末現在 (2019年12月) で2年目の機械学習エンジニア (歴は満1年半いかないぐらい)ですが、アウトプットを始めたのが一番の成長だと思います。

来年はアウトプットの質を上げて、範囲を広げるのが目標です。機械学習は会社に入ってから勉強し始めたので経験が浅いため、間違いを指摘してもらったり、学びが多い環境にどんどん自分から飛び込んで研鑽を積んでいきたいです!