いっしきまさひこBLOG

Web制作関連、プログラミング関連、旅行記録などなど。

2019年の自分戦略(機械学習 & ディープラーニング)

今回は「決意表明・所信表明」的なものを書いてみました。有言実行を頑張ろうと思います。

Deep Insider における仕事の現状

2019年も1カ月が過ぎました。わたしの今の仕事は、「Deep Insider: 機械学習エンジニアを目指す人~初中級者のための技術情報サイト」の編集長です。このサイトを2018年4月16日にオープンしてから、早くも約10カ月目です。Google検索からの流入が大きいと思うのですが、Deep Insiderの各記事のページビューも上がってきており、各記事の閲覧時間も約30分ほどでしっかりと読まれているようで、まずまずの成果が出ているのかと思います。

Deep Insiderは、当初、「デベロッパー寄り」の読者像をイメージしてコンテンツを展開していました。現在の好調はそのころの成果に寄るところが大きいと思います。9月~11月ごろには記事展開方針に調整が入り、「エンジニアの素養はある程度持つが、機械学習やディープラーニングはまったく初めて取り組む、幅広い層の人材」を読者ターゲットに、より一段優しい内容のコンテンツを作成し始めました。

それが、下記の『機械学習 & ディープラーニング入門』連載群です。

これらを4カ月ほどかけて執筆しました。若干、急いで書いて殴り書きの部分があるので、問題ないか丁寧に見直しながら、順次公開していっています。目標としては、4月になる前にすべてを公開し終わりたいと思っています。

「機械学習」や「ディープラーニング」のコンテンツで思うこと

わたし自身は、もともとデベロッパー系のWeb編集者&ライターであり、C#を中心にプログラミングを20年近くやってきました。2017年ごろから、機械学習やディープラーニングを徐々に学び始めて約2年間になります。今は、データサイエンティストや機械学習エンジニアのように、イベントに参加して情報を収集しています。

そこで感じるのは、デベロッパーは昔はJava、少し前はRuby、今はPython?など、ズブの素人から学べる雰囲気があり、実際にプログラミングやWeb制作などに手を出す人は非常に幅広いということです。だから書籍などのコンテンツも、本当に中学生や小学生でも学べるようなレベルから解説しているものが多くあるのではないかと思います。

一方、機械学習やディープラーニングは学術的な雰囲気があり、特に数学が苦手な人など、ズブの素人はあまり手を出していないという気がしています。デベロッパーから機械学習エンジニアやデータサイエンティストへの転身も、想像していたよりは多くない気がしています。そのせいか、より教科書的で、厳密にまとめられた書籍が、好まれているのかなと考えています。逆に言うと、中学生や小学生でも学べるようなレベルから解説しているものは少ないのではないでしょうか。

Deep Insider編集部の中で喧喧諤諤の議論があって、上記のような連載群をわたし自身が執筆することになりましたが、「機械学習」や「ディープラーニング」のコンテンツという観点で、かなりオリジナルな立ち位置を確保できたのではないか、と自分のことながら考えています。しかも、概要の概要から、Python、本当に初めての基礎実習までを、1人の筆者で一気通貫で執筆できたのは、個人的にも本当にラッキーだったと思っています。

「機械学習 ディープラーニング 入門」をわたしの代名詞に

冒頭でGoogle検索の話を書きましたが、上位のページ(中には1位)の記事もちらほらとあり、「機械学習 ディープラーニング 入門」を検索すると上記の連載群がヒットするようになりました。

わたし自身の経歴では、2003年からC#を扱い初めて2017年までの14年間、C#関連の記事を出し続けました。わたしを知っている人は「C#の人」と理解しているケースが多いです。その強烈にこびりついたラベルを、2019年、剥がしに掛かりたいと思っています。

つまり、これからは「『機械学習 ディープラーニング 入門』でググれ」を自己紹介に使っていこうと(※とある「C#でググれ」の人のパクリです……)。

今から、検索キーワード長すぎだけど「機械学習 ディープラーニング 入門」の人となりますので、今後ともよろしくお願いいたします。

Microsoft MVPは更新しないつもり

こちらの記事:「Microsoft MVP を12年連続受賞。Visual Studio and Development Technologies [2018-2019] カテゴリ - いっしきまさひこBLOG」にあるように、2007年からC#に関連するカテゴリでMicrosoft MVPをなんとか受賞してきました。しかし今後のわたしにとって、このラベリングは逆効果になるかなと思っています。

もちろんMicrosoft MVPにもAIカテゴリがあり、それを目指してもよいかもしれません。しかしながら、やりたいことをやって結果的に受賞したのであればよいですが、受賞を目指して何かをやるのはおかしいかなと思っています。

マイクロソフト技術で「機械学習」や「ディープラーニング」というと、確かにCNTK(Cognitive Toolkit)がありますね。しかし、TensorFlow/Keras、Chainer、PyTorchなどの有力候補がある中、CNTKになかなか触手が伸びないし、そもそもマイクロソフトはCNTKを諦めたのではないかと想像しています(※そう思った理由はありますが、ここはパブリックな場なので書くのはやめておきます)。

マイクロソフトは、CNTKよりも、C#で機械学習ができる「ML.NET | Machine Learning made for .NET」を押しているとわたしは見ています。ML.NETはわたしも試してみました。しかしまだ発展途上で、「えっ、これもできないのか」など思ったこともあり、記事にして広く紹介したい、という気持ちにはなれていません。

ML.NETもそうですが、マイクロソフトが見ているのはデベロッパーや既存のエンタープライズ向けベンダーであり、データサイエンティスト/機械学習エンジニアやデータ分析の企業ではないと感じています。今のマイクロソフトの売りはAzureであり、AIという分野ではCognitive Servicesを一番強く押していると思います。Cognitive Servicesは確かに確実に結果が出せる学習済みモデルであり、何らかのシステムに組み込むのであれば非常に便利です。でも、それこそがデベロッパー目線だと感じるゆえんです。Cognitive Servicesは他の筆者記事で展開することはあれど自分で書くことはあまりないかなと思います。

ということから、AIカテゴリでの申請もちょっと難しいかと、今のところ考えています。

わたしが一番使っているライブラリはTensorFlow(Keras)なので、同様の受賞を目指すならGoogle Developers Expertsになるのかなと思っていますが、目指すのはまだまだ先の話ですね。

『機械学習 & ディープラーニング入門』連載群の後

『機械学習 & ディープラーニング入門』連載群の後には、実はまた変化が予定されているのですがそれはまだ秘密として、例えば機械学習エンジニアやデータサイエンティストにすでになっている人が読んで楽しめる単発記事などが増える予定です。なので「単発記事を書いてもいいよ」という人をできるだけ多く、今春は探していきます。わたし自身も新しいものを書いていきたいと思います。