Subscribed unsubscribe Subscribe Subscribe

SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

機械学習エンジニアとは.

life

最近ずっと頭を悩ませていることに自分のポジションの話がある。今の自分は立ち位置がかなりうやむやになっていて、機械学習という技術トレンドの大波に乗ってはいるものの、これをキャリアにするとなんなのだろうと悩みに種になっている。ここ最近は機械学習を扱うエンジニアでもいろいろと区分けがあるようだが、どうもその区分けがピンと来ていない。

たとえば、Researcher, Analyst, ML Engineer, Consultant といった区分けが挙げられるだろうか。なんとなく得意分野の伸びで分かれそうなのがわかる。Researcherなら研究寄り、Analystは統計や数学に強みを持った解析寄り、ML Engineerはプログラミング寄り、Consultantはビジネス寄り、とかだと思う。基本的に4つとも網羅していないといけないスキルは共通していて、数学、機械学習、統計、プログラミング、と大きく分けるとこんなもんだろうが、その中でどこを尖らせるか、であったり、スキルの使い方であったりで分かれそう。

その場合自分はやっぱりプログラミング寄りなので、ML Engineer、つまり機械学習エンジニアになるのだろうが、こいつの活躍場所がいまいちピンと来ていない。転職市場を見てみても、機械学習エンジニアはかなり需要が高まっているが、Analyst(イメージとしてデータサイエンティスト)がいれば万事解決じゃんと思って見てしまう。おそらく機械学習エンジニアはプロダクトへの機械学習アルゴリズムの実装をメインとしているのだろうが、実装だけならそんなに難易度は高くないんじゃないかと。

一番難しいところって、データを見て、自分で前処理して、数学や統計学を駆使して特徴量をいい感じに抽出し、機械学習のモデルに当てはめて、評価してうんぬん、みたいなところだと思うが、機械学習エンジニアの担当領域がそこまで根を張っているのか?と疑問符が付く。そしてこの一連のデータマイニングのプロセスを踏むのがAnalystで、機械学習エンジニアは決まったモデルをただ実装するだけなら、そこまで大した仕事ではないんじゃないのか?というのが自分の中のモヤモヤの正体である。

まぁでも理解出来ないモデルをプロダクトへ実装するなんて許されないから、そういう意味で機械学習の知識があるプログラマーが必要なのかもしれない。それは確かに自分の仕事の中でもあった気がする。実際にプロダクトに実装するプログラマー機械学習のモデルの説明をした時、ホワイトボードに数式を書いて説明したりしたが、「なんとなくやりたいことはわかったが、数式はわからん。」みたいなことを言われ、そのためプログラムの品質を担保出来ない、と言い切られたことがあった。そこをわかるプログラマーが欲しい、とそういうことなのか。

うだうだと自分の中のモヤモヤを書いたが、理想はAnalyst分野もある程度出来てかつ、プロダクトへの実装も出来る機械学習エンジニアだよなぁと思う。自分はデータサイエンティストか、というと違う気がするので、数学と統計学を伸ばしつつ、実装寄りの人間を目指すのだろう。むしろプロダクトを作る方がただ解析するより楽しいのでそれがいい。そしてこの分野でいくとしたら、機械学習が乗る分散処理系も技術として持ってないといけないんじゃないか、とか今後の技術の習得計画が凄く悩ましいものになっている。

もういろいろゴチャゴチャ考えるのはやめて、面白そうな技術を遮二無二に習得していく、という今まで通りに方向に倒すのもありだが、26歳を目前にした今、それってこれからも通じるのか、とかを変に考えてしまっている。いい感じのロールモデルが近くにいればいいんだが、周りはすげぇ出来るデータサイエンティストばかりなので、自分の方向性とはちょっと違うな、とか思ったりする。とにかく、数学と統計学をガンバレ、ということでこの場は締めておくとしよう。

Remove all ads